Files
life-echo/api/agents/__pycache__/conversation_agent.cpython-312.pyc

67 lines
6.5 KiB
Plaintext
Raw Normal View History

2026-01-07 11:56:53 +08:00
<EFBFBD>
y<>]i<><00><00>t<00>dZddlZddlmZmZddlmZddlmZddl m
Z
ddl m Z dd l mZmZGd
<EFBFBD>d <0B>Zy) uS
对话 Agent基于访谈问题清单动态选择问题实时生成回应
<EFBFBD>N)<02>List<73>Optional)<01>ConversationChain)<01>ConversationBufferMemory)<01>PromptTemplate)<01>
ChatOpenAI<EFBFBD>)<02>ConversationStage<67>get_conversation_promptc <00>z<00>eZdZdZd<02>Zdedefd<05>Z d dededee d ee
edef
d
<EFBFBD>Z dedede fd <0B>Z defd <0C>Z y)<0E>ConversationAgentu 对话 Agentc<00><><00>tjd<01>xstjdd<03>}tjdd<03>}tjdd<06>}|sd|_i|_yd||d<08>}|rJ|j d <09>r|dd
}n|j d <0B>r|dd }|r|j d <0A>s|d z }||d< t di|<04><01>|_i|_i|_y#t $r
d|_Y<00>!wxYw)N<> LLM_API_KEY<45>OPENAI_API_KEY<45><00> LLM_BASE_URL<52> OPENAI_MODELzgpt-4ogffffff<66>?)<03> temperature<72>model<65>openai_api_keyz/v1/chat/completionsi<73><69><EFBFBD><EFBFBD>z/v1<76><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F>openai_api_base<73>)<07>os<6F>getenv<6E>llm<6C>memories<65>endswithr<00> Exception)<05>self<6C>api_key<65>base_url<72>
model_name<EFBFBD>
llm_kwargss <20>IC:\Users\physi\PycharmProjects\life-echo\api\agents\conversation_agent.py<70>__init__zConversationAgent.__init__s<00><00><15>)<29>)<29>M<EFBFBD>*<2A>M<>b<EFBFBD>i<EFBFBD>i<EFBFBD>8H<38>"<22>.M<><07><15>9<EFBFBD>9<EFBFBD>^<5E>R<EFBFBD>0<><08><17>Y<EFBFBD>Y<EFBFBD>~<7E>x<EFBFBD>8<>
<EFBFBD><16><1B>D<EFBFBD>H<EFBFBD>AC<41>D<EFBFBD>M<EFBFBD> <12><1F><1F>%<25>
<EFBFBD>
<EFBFBD> <14><17> <20> <20>!7<>8<>#<23>D<EFBFBD>S<EFBFBD>><3E><08><19>"<22>"<22>5<EFBFBD>)<29>#<23>C<EFBFBD>R<EFBFBD>=<3D><08><17><08> 1<> 1<>#<23> 6<><18>C<EFBFBD><0F><08>,4<>J<EFBFBD>(<28> )<29> <1C>!<21>/<2F>J<EFBFBD>/<2F>D<EFBFBD>H<EFBFBD>
>@<01><04> <0A>>@<01><04> <0A><><19> <1C><1B>D<EFBFBD>H<EFBFBD> <1C>s<00>>C<00>C0<03>/C0<03>conversation_id<69>returnc<00>p<00>||jvrtdd<02><03>|j|<|j|S)u获取或创建对话记忆T<E5BF86>history)<02>return_messages<65>
memory_key)rr<00>r!r(s r&<00> _get_memoryzConversationAgent._get_memory;s8<00><00> <1A>$<24>-<2D>-<2D> /<2F>-E<> $<24>$<24>.<0E>D<EFBFBD>M<EFBFBD>M<EFBFBD>/<2F> *<2A><14>}<7D>}<7D>_<EFBFBD>-<2D>-<2D>N<> user_message<67> current_stage<67>covered_topicsc<00><00>|<03>tj}|<04>g}|jsyt|||<02>}|j |<01>}t ddg|<05>d<04><02><05>}t |j||d<06><07>}|j|<02><08>} | S) u&
生成 Agent 回应
Args:
conversation_id: 对话 ID
user_message: 用户消息
current_stage: 当前对话阶段
covered_topics: 已聊过的话题列表
Returns:
Agent 回应文本
uW抱歉LLM 服务未配置。请设置 LLM_API_KEY 或 OPENAI_API_KEY 环境变量。r+<00>inputz'
{history}
Human: {input}
Assistant:)<02>input_variables<65>templateF)r<00>prompt<70>memory<72>verbose)r5)r
<00> CHILDHOODrr r/rr<00>predict)
r!r(r1r2r3<00> system_promptr9<00>prompt_template<74>chain<69>responses
r&<00>generate_responsez#ConversationAgent.generate_responseDs<><00><00>& <19> <20>-<2D>7<>7<>M<EFBFBD> <19> !<21><1F>N<EFBFBD><14>x<EFBFBD>x<EFBFBD>l<>0<> <0A>~<7E>|<7C>\<5C> <0A><16>!<21>!<21>/<2F>2<><06>)<29>&<26><07>0<>%<25><EFBFBD>&W<>X<>
<EFBFBD><0F>
"<22><14><08><08>"<22><19><19> 
<EFBFBD><05><19>=<3D>=<3D>|<7C>=<3D>4<><08><17>r0c<00><><00><03>|j<00><00>t<00>fd<01>dD<00><00>rtjSt<00>fd<03>dD<00><00>rtjSt<00>fd<05>dD<00><00>rtj
St<00>fd<07>dD<00><00>rtj St<00>fd <09>d
D<00><00>rtjSt<00>fd <0B>d D<00><00>rtjStjS) u<>
检测对话阶段
Args:
conversation_id: 对话 ID
user_message: 用户消息
Returns:
检测到的对话阶段
c3<00>&<00>K<00>|]}|<01>v<00><01><00>
y<00>w<01>Nr<00><03>.0<EFBFBD>word<72> message_lowers <20>r&<00> <genexpr>z1ConversationAgent.detect_stage.<locals>.<genexpr><3E>s<00><><00><><00>c<>1b<31><14>t<EFBFBD>}<7D>$<24>1b<31><62><00>)u童年u 小时候u出生u 家庭背景c3<00>&<00>K<00>|]}|<01>v<00><01><00>
y<00>wrDrrEs <20>r&rIz1ConversationAgent.detect_stage.<locals>.<genexpr><3E><00><00><><00><><00>f<>3e<33>4<EFBFBD><14><1D>&<26>3e<33>rJ)u上学u学校u老师u同学u教育c3<00>&<00>K<00>|]}|<01>v<00><01><00>
y<00>wrDrrEs <20>r&rIz1ConversationAgent.detect_stage.<locals>.<genexpr><3E>rLrJ)u工作u职业u事业u公司u同事c3<00>&<00>K<00>|]}|<01>v<00><01><00>
y<00>wrDrrEs <20>r&rIz1ConversationAgent.detect_stage.<locals>.<genexpr><3E>rLrJ)u伴侣u孩子u家庭u家人u结婚c3<00>&<00>K<00>|]}|<01>v<00><01><00>
y<00>wrDrrEs <20>r&rIz1ConversationAgent.detect_stage.<locals>.<genexpr><3E>s<00><><00><><00>l<>3k<33>4<EFBFBD><14><1D>&<26>3k<33>rJ)u信念u 价值观u 座右铭u坚持u原则c3<00>&<00>K<00>|]}|<01>v<00><01><00>
y<00>wrDrrEs <20>r&rIz1ConversationAgent.detect_stage.<locals>.<genexpr><3E>rLrJ)u总结u回顾u感激u希望u未来) <09>lower<65>anyr
r;<00> EDUCATION<4F>CAREER<45>FAMILY<4C>BELIEFS<46>SUMMARY)r!r(r1rHs @r&<00> detect_stagezConversationAgent.detect_stageys<><00><><00>%<25>*<2A>*<2A>,<2C> <0A> <0E>c<>1b<31>c<> c<>$<24>.<2E>.<2E> .<2E> <10>f<>3e<33>f<> f<>$<24>.<2E>.<2E> .<2E> <10>f<>3e<33>f<> f<>$<24>+<2B>+<2B> +<2B> <10>f<>3e<33>f<> f<>$<24>+<2B>+<2B> +<2B> <10>l<>3k<33>l<> l<>$<24>,<2C>,<2C> ,<2C> <10>f<>3e<33>f<> f<>$<24>,<2C>,<2C> ,<2C>%<25>.<2E>.<2E> .r0c<00><<00>||jvr|j|=yy)u清除对话记忆N)rr.s r&<00> clear_memoryzConversationAgent.clear_memory<72>s<00><00> <1A>d<EFBFBD>m<EFBFBD>m<EFBFBD> +<2B><14> <0A> <0A>o<EFBFBD>.<2E> ,r0)NN)<0E>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__doc__r'<00>strrr/rr
rrArXrZrr0r&r r s<><00><00><16>'@<01>R.<2E>3<EFBFBD>.<2E>3K<33>.<2E>6:<3A>.2<EFBFBD> 3<18><1C>3<18><1A>3<18> <20> 1<>2<> 3<18>
!<21><14>c<EFBFBD><19>+<2B> 3<18>
<0A> 3<18>j/<2F>C<EFBFBD>/<2F>s<EFBFBD>/<2F>GX<47>/<2F></<2F>C<EFBFBD>/r0r )r^r<00>typingrr<00>langchain.chainsr<00>langchain.memoryr<00>langchain.promptsr<00>langchain_openair<00>promptsr
r r rr0r&<00><module>rfs-<00><01><04>
<EFBFBD>!<21>.<2E>5<>,<2C>'<27>?<3F>K/<2F>K/r0