
    g                         S SK JrJrJrJrJrJr  S SKJr  S SK	J
r
  S SKJr  \" 5         S SKrS SKr0 r " S S\5      rS rS	 r\S
:X  a  \" 5         gg)    )
AckMessageChatbotMessageDingTalkStreamClient
CredentialChatbotHandlerCallbackMessage)
AgentClass)add_user)load_dotenvNc                   6   ^  \ rS rSrU 4S jrS\4S jrSrU =r$ )EchoTextHandler   c                 *   > [         [        U ]  5         g )N)superr   __init__)self	__class__s    J   /Volumes/MOVESPEED/AI课程/xiaolang/DingTalk_langchain/src/DingWebHook.pyr   EchoTextHandler.__init__   s    nd,.    callbackc                   #    [         R                  " UR                  5      n[        U5        [        UR                  5        UR                  R
                  R                  5       nUR                  S   n[        SU5        [        5       R                  U5      n[        U5        U R                  US   U5        [        R                  S4$ 7f)NsenderStaffIduseridoutputOK)r   	from_dictdataprinttextcontentstripr
   r	   	run_agent
reply_textr   	STATUS_OK)r   r   incoming_messager    r   msgs         r   processEchoTextHandler.process   s     )33HMMBhmm$$,,224/&!l$$T*c
H'78##T))s   CC )	__name__
__module____qualname____firstlineno__r   r   r(   __static_attributes____classcell__)r   s   @r   r   r      s    /
*o 
* 
*r   r   c                      [         R                  " [         R                  S[         R                  " 5       [         R                  " S5      /S9  [         R
                  " S5      $ )zSetup logging configurationz4%(asctime)s - %(name)s - %(levelname)s - %(message)szdingtalk_connection.log)levelformathandlersDingTalk)loggingbasicConfigINFOStreamHandlerFileHandler	getLoggerr*   r   r   setup_loggingr<      sM    llE!!# 9:
 Z((r   c                  V   [        5       n U R                  S5        U R                  S[        R                  " S5       35        U R                  S5         [	        [        R                  " S5      [        R                  " S5      5      n[        U5      nU R                  S5        UR                  [        R                  [        5       5        U R                  S5        U R                  S5        UR                  5         g ! [         a  nU R                  S	U 3S
S9   S nAg S nAff = f)NzStarting DingTalk Stream ClientzApp ID: DINGDING_IDz(Using credentials to connect to DingTalkDINGDING_SECRETz$DingTalk client created successfullyz.Registered callback handler for ChatbotMessagezStarting DingTalk client...zError connecting to DingTalk: T)exc_info)r<   infoosgetenvr   r   register_callback_handlerr   TOPICr   start_forever	Exceptionerror)logger
credentialclientes       r   mainrM   +   s    _F
KK12
KK(299]3456
KK:<J		- 8"))DU:VW
%j1:; 	(()=)=?PQDE 	12 J5aS9DIJs   B*D 
D(D##D(__main__)dingtalk_streamr   r   r   r   r   r   
src.Agentsr	   src.Storager
   dotenvr   _load_dotenvrB   r6   user_storager   r<   rM   r+   r*   r   r   <module>rU      sQ    w w !   .  	  *n *$
)J. zF r   