Files
ai-chat-system/services/__pycache__/conversation_service.cpython-310.pyc

59 lines
4.9 KiB
Plaintext
Raw Normal View History

o
S<>i<EFBFBD><00>@s<>dZddlmZmZddlmZddlmZddlZzddlm Z m
Z
m Z m Z dZ Wney?ddlm Z m
Z
m Z d Z YnwGd
d <0B>d <0B>ZdS) uR
会话管理服务 - v2.0 兼容版
支持思考内容、Agent追踪等新字段
<EFBFBD>)<02>List<73>Optional)<01>datetime)<01>SessionN)<04>User<65> Conversation<6F>Message<67>AgentT)rrrFc@seZdZdefdd<03>Zd*dededed ed
ef
d d <0C>Zd+ded eded
e fdd<10>Z
ded
e e fdd<13>Z ded
e e fdd<15>Z     d,dedededededededed
efdd<1E>Zd-ded ed
e efd!d"<22>Zd.ded ed
e efd$d%<25>Zdefd&d'<27>Zdedefd(d)<29>ZdS)/<2F>ConversationService<63>dbcCs||_t|_dS)N)r <00>USE_V2<56>use_v2)<02>selfr <00>r<00>S/home/xian/.openclaw/workspace-coder/works/ai-chat/services/conversation_service.py<70>__init__s
zConversationService.__init__N<5F>web<65>user_id<69> display_name<6D> user_type<70>matrix_user_id<69>returncCsr|j<00>t<02><01>tj|k<02><01><05>}|s-t||p|||d<01>}|j<00>|<05>|j<00><07>|j<00>|<05>|St <09>
<EFBFBD>|_ |j<00><07>|S)u获取或创建用户)rrrr) r <00>queryr<00>filterr<00>first<73>add<64>commit<69>refreshr<00>utcnow<6F>last_active_at)rrrrr<00>userrrr<00>get_or_create_users<06> 
 
<EFBFBD>
z&ConversationService.get_or_create_user<65>title<6C>
channel_idcCsddt<00><01>jdd<03><00><00>}|jrt||||d<04>}nt|||d<05>}|j<05>|<05>|j<05><07>|j<05>|<05>|S)u创建新会话<E4BC9A>conv_N<5F> )<04>conversation_idrr"r#)r&rr") <09>uuid<69>uuid4<64>hexr rr rrr)rrr"r#r&<00> conversationrrr<00>create_conversation*s"<08><06> 
 z'ConversationService.create_conversationr&cCs|j<00>t<02><01>tj|k<02><01><05>S)u 获取会话)r rrrr&r)rr&rrr<00>get_conversationAs
<02><02>z$ConversationService.get_conversationcCs0|j<00>t<02><01>tj|ktjdk<02><02>tj<07><08><00><01> <09>S)u获取用户的所有会话T)
r rrrr<00> is_active<76>order_by<62>
updated_at<EFBFBD>desc<73>all)rrrrr<00>get_user_conversationsGs <02><02>z*ConversationService.get_user_conversations<6E>role<6C>content<6E>source<63>
extra_data<EFBFBD>thinking_content<6E>agent_id<69>
model_usedc
Cs<>|jrt||||||||d<01>} n t|||||d<02>} |j<02>| <09>|j<02>t<05><01>tj|k<02><01><08>}
|
rTt <09>
<EFBFBD>|
_ |
j sL|dkrL|dd<05>t |<03>dkrHdnd|
_ |jrT|rT||
_|j<02><0F>|j<02>| <09>| S)u 添加消息)r&r3r4r5r6r7r8r9)r&r3r4r5r6r N<>2z...<2E>)r rr rrrr<00>idrrrr/r"<00>len<65>current_agent_idrr) rr&r3r4r5r6r7r8r9<00>messager*rrr<00> add_messageNs: <08> <06> 
"

 zConversationService.add_messager:<00>limitcCs.|j<00>t<02><01>tj|k<02><01>tj<06><07><00><01>|<02><01> <09>S)u获取会话消息)
r rrrr&r.<00>
created_at<EFBFBD>ascrAr1)rr&rArrr<00> get_messages<65>s
<02><02>z ConversationService.get_messages<65>cCsf|<00>|<01>}|s gS|j<01>t<03><01>tj|jktj<07>gd<01><01><01><02> tj
<EFBFBD> <0B><00><01> |<02><01> <0A>}|<04><0E>dd<03>|D<00>S)u)获取会话历史用于AI上下文)r <00> assistant<6E>systemcSsg|] }|j|jd<00><02>qS)<01>r3r4rH)<02>.0<EFBFBD>mrrr<00>
<listcomp><3E>sz@ConversationService.get_conversation_history.<locals>.<listcomp>)r,r rrrr&r<r3<00>in_r.rBr0rAr1<00>reverse)rr&rAr*<00>messagesrrr<00>get_conversation_history<72>s
 
<02><02>z,ConversationService.get_conversation_historycCs&|<00>|<01>}|rd|_|j<02><03>dSdS)u删除会话软删除FT)r,r-r r)rr&r*rrr<00>delete_conversation<6F>s

z'ConversationService.delete_conversationcCs0|jsdS|<00>|<01>}|r||_|j<03><04>dSdS)u"设置会话使用的Agentv2FT)r r,r>r r)rr&r8r*rrr<00>set_conversation_agent<6E>s

z*ConversationService.set_conversation_agent)NrN)NN)rNNNN)r:)rE)<16>__name__<5F>
__module__<EFBFBD> __qualname__rr<00>strrr!<00>intrr+rr,rr2<00>dictrr@rDrOrPrQrrrrr
sD  <04><02><02><02><02><02><02><02> <02>
<EFBFBD>3 r
)<11>__doc__<5F>typingrrr<00>sqlalchemy.ormrr'<00> models_v2rrrr r <00> ImportError<6F>modelsr
rrrr<00><module>s   <02>