yj
2025-07-22 2a8d022a20f82c35e9df680dfb66c3c95863b190
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
§
<.hÈãóx—dZddlZddlZddlmZmZmZmZddlm    Z    ddl
m Z Gd„d¦«Z e ¦«Z dS)u
DifyAI API客户端
éN)ÚListÚDictÚOptionalÚAny)Úlogger)Úsettingscóž—eZdZdZd„Z        d dededeededeeee    ff
d    „Z
dededee eee    ffd
„Z dS) Ú
DifyClientuDifyAI API客户端cóô—tj d¦«|_ddtj›dœ|_t j¦«|_|jj     |j¦«dS)Nú/zapplication/jsonzBearer )z Content-TypeÚ Authorization)
rÚ dify_base_urlÚrstripÚbase_urlÚ dify_api_keyÚheadersÚrequestsÚSessionÚsessionÚupdate)Úselfs ú4d:\project\python\ECloud\app\services\dify_client.pyÚ__init__zDifyClient.__init__sl€Ý Ô.×5Ò5°cÑ:Ô:ˆŒ à.Ø>¥xÔ'<Ð>Ð>ð
ð
ˆŒ õ Ô'Ñ)Ô)ˆŒ Ø Œ Ô×#Ò# D¤LÑ1Ô1Ð1Ð1Ð1óNÚqueryÚuserÚconversation_idÚ max_retriesÚreturnc ó—|€ tj}|j›d}|d|idœ}|r||d<d}||kr»    tjd|›d|›d    |›¦«|j ||d
¬ ¦«}| ¦«| ¦«}    d |    vr3d|    vr/tjd |›d|         d¦«›¦«|    Stj
d|›d|    ›¦«n¶#tj j $rtjd|›d    |›¦«Yn†tj j$r4}
tj
d|›d    |›dt!|
¦«›¦«Yd}
~
nDd}
~
wt"$r4}
tj
d|›d    |›dt!|
¦«›¦«Yd}
~
nd}
~
wwxYw|dz }||kr>tj|z} tjd|›d| ›d¦«t'j| ¦«||k°»tj
d|›d|›¦«dS)u6
        å‘送对话消息(非流式模式)
 
        Args:
            query: ç”¨æˆ·è¾“å…¥/提问内容
            user: ç”¨æˆ·æ ‡è¯†
            conversation_id: ä¼šè¯ID(可选)
            max_retries: æœ€å¤§é‡è¯•次数
 
        Returns:
            å“åº”数据字典,失败返回None
        Nz/chat-messagesÚblocking)rÚ response_moderÚinputsrru发送Dify消息: user=z, conversation_id=z, retry=é<)ÚjsonÚtimeoutÚansweruDify消息发送成功: user=uDify响应格式异常: user=ú , response=uDify请求超时: user=uDify网络错误: user=ú, error=uDify请求异常: user=éu等待重试: user=z , wait_time=Úsu8Dify消息发送失败,已达最大重试次数: user=z, max_retries=)rÚmax_retry_countrrÚinforÚpostÚraise_for_statusr%ÚgetÚerrorrÚ
exceptionsÚTimeoutÚwarningÚRequestExceptionÚstrÚ    ExceptionÚ retry_delayÚtimeÚsleep) rrrrrÚurlÚpayloadÚ retry_countÚresponseÚresultÚeÚ    wait_times             rÚsend_chat_messagezDifyClient.send_chat_messages€ð& Ð Ý"Ô2ˆKà”Ð.Ð.Ð.ˆàØ'ØØð    
ð
ˆð ð    9Ø)8ˆGÐ%Ñ &àˆ Ø˜[Ò(Ñ(ð Ý” Øl¨dÐlÐlÀoÐlÐlÐ_jÐlÐlñôðð œ<×,Ò,¨S°wÈÐ,ÑKÔKØ×)Ò)Ñ+Ô+Ð+à!Ÿš™œð˜vÐ%Ð%Ð*;¸vÐ*EÐ*EÝ”KØo¸ÐoÐoÐPV×PZÒPZÐ[lÑPmÔPmÐoÐoñôðð"Må”LÐ!ZÀÐ!ZÐ!ZÐRXÐ!ZÐ!ZÑ[Ô[Ð[Ð[øåÔ&Ô.ð Vð Vð VÝ”ÐT¸ÐTÐTÀ{ÐTÐTÑUÔUÐUÐUÐUÝÔ&Ô7ð ð ð Ý” ØY¨dÐYÐY¸KÐYÐYÕQTÐUVÑQWÔQWÐYÐYñôððððððøøøøõð ð ð Ý” ØY¨dÐYÐY¸KÐYÐYÕQTÐUVÑQWÔQWÐYÐYñôððððððøøøøð øøøð
˜1Ñ ˆKؘkÒ)Ð)Ý$Ô0°;Ñ>    Ý” ÐP°$ÐPÐPÀIÐPÐPÐPÑQÔQÐQÝ”
˜9Ñ%Ô%Ð%ðG˜[Ò(Ñ(õJ    Œ Ø hÀtÐ hÐ hÐ[fÐ hÐ hñ    
ô    
ð    
ðˆts0±BC%Ã
C%Ã%.FÄFÄ(*EÅ FÅ$*FÆFc    ód—    |j›d}||dœ}tjd|›d|›¦«|j ||d¬¦«}| ¦«| ¦«}d|vrtjd|›¦«|dStjd    |›d
|›¦«d S#tj    j
$r2}tjd |›d t|¦«›¦«Yd }~d Sd }~wt$r2}tjd|›d t|¦«›¦«Yd }~d Sd }~wwxYw)u¼
        èŽ·å–å¯¹è¯åŽ†å²æ¶ˆæ¯
 
        Args:
            conversation_id: ä¼šè¯ID
            user: ç”¨æˆ·æ ‡è¯†
 
        Returns:
            æ¶ˆæ¯åˆ—表,失败返回None
        z    /messages)rru$获取对话历史: conversation_id=z, user=é)Úparamsr&Údatau*成功获取对话历史: conversation_id=u6获取对话历史响应格式异常: conversation_id=r(Nu0获取对话历史网络错误: conversation_id=r)u*获取对话历史异常: conversation_id=) rrr-rr0r/r%r1rr2r5r6r7)rrrr;rEr>r?r@s        rÚget_conversation_messagesz$DifyClient.get_conversation_messageses™€ð    Ø”]Ð-Ð-Ð-ˆCØ)8À$ÐGÐGˆFå ŒKÐ]¸Ð]Ð]ÐW[Ð]Ð]Ñ ^Ô ^Ð ^à”|×'Ò'¨°FÀBÐ'ÑGÔGˆHØ × %Ò %Ñ 'Ô 'Ð 'à—]’]‘_”_ˆFà˜ÐÐÝ” ÐZÈÐZÐZÑ[Ô[Ð[ؘf”~Ð%å” ØqÈ_ÐqÐqÐioÐqÐqñôððtøåÔ"Ô3ð    ð    ð    Ý ŒLØdÀ?ÐdÐdÕ\_Ð`aÑ\bÔ\bÐdÐdñ ô ð ð44444øøøøÝð    ð    ð    Ý ŒLØ^¸_Ð^Ð^ÕVYÐZ[ÑV\ÔV\Ð^Ð^ñ ô ð ð44444øøøøð        øøøs*‚BB/ÂB/Â/D/Ã'C0Ã0 D/Ã='D*Ä*D/)NN) Ú__name__Ú
__module__Ú __qualname__Ú__doc__rr6rÚintrrrBrrG©rrr
r
sԀ€€€€ØÐð2ð2ð2ð*.Øð KðKàðKððKð" #œð    Kð
ð Kð
$s˜Cx”.Ô    !ð KðKðKðKðZ*Ø"ð*Ø*-ð*à    $t˜C ˜H”~Ô&Ô    'ð*ð*ð*ð*ð*ð*rr
)rKrr9ÚtypingrrrrÚlogururÚconfigrr
Ú dify_clientrMrrú<module>rRs­ðððð€€€Ø € € € Ø,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,ØÐÐÐÐÐØÐÐÐÐÐðCðCðCðCðCñCôCðCðNˆj‰lŒl€ € € r