Files
assist/src/agent/__pycache__/llm_client.cpython-310.pyc

63 lines
8.7 KiB
Plaintext
Raw Normal View History

o
\G<>i<EFBFBD>#<00>@s<>dZddlZddlZddlZddlmZmZmZmZddl m
Z
m Z ddl m Z ddlmZe<01>e<11>Ze Gdd<08>d<08><02>ZGd d
<EFBFBD>d
e
<EFBFBD>ZGd d <0C>d e<14>ZGd d<0E>de<14>ZGdd<10>de<14>ZGdd<12>d<12>ZGdd<14>d<14>ZdS)uH
大模型客户端 - 统一的LLM接口
支持多种大模型提供商
<EFBFBD>N)<04>Dict<63>Any<6E>Optional<61>List)<02>ABC<42>abstractmethod)<01> dataclass)<01>
get_configc@sVeZdZUdZeed<eed<dZeeed<dZeed<dZ e
ed <d
Z e ed <dS) <0C> LLMConfigu LLM配置<E9858D>provider<65>api_keyN<79>base_urlz gpt-3.5-turbo<62>modelgffffff<66>?<3F> temperaturei<65><00>
max_tokens) <0A>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__doc__<5F>str<74>__annotations__r rrr<00>floatr<00>int<6E>rr<00>>/Users/macos/Desktop/tsp-assist/assist/src/agent/llm_client.pyr
s
  r
c@sHeZdZdZededefdd<05><04>Zedeeeefdefdd<08><04>Z d S)
<EFBFBD> BaseLLMClientuLLM客户端基类<E59FBA>prompt<70>returnc<00><00><00>dS)<02> 生成文本Nr<00><03>selfr<00>kwargsrrr<00>generate <00><02>zBaseLLMClient.generate<74>messagesc<00>r)<02> 对话生成Nr)r!r%r"rrr<00>chat%r$zBaseLLMClient.chatN)
rrrrrrr#rrr'rrrrrs $rc@<00><>eZdZdZdefdd<04>Zdd<06>Zdedefd d
<EFBFBD>Zd e e
eefdefd d <0A>Z dedefdd<0F>Z d e e
eefdefdd<11>Z dS)<13> OpenAIClientuIOpenAI客户端 - 支持OpenAI和兼容OpenAI API的模型如千问<E997AE>configcC<00>||_d|_|<00><02>dS<00>N<>r*<00>client<6E> _init_client<6E>r!r*rrr<00>__init__-<00> zOpenAIClient.__init__cCsLzddl}|j|jj|jjd<03>|_WdSty%t<07>d<04>d|_YdSw)<05>初始化客户端rN)r r u-OpenAI库未安装将使用模拟客户端) <09>openaiZ AsyncOpenAIr*r r r.<00> ImportError<6F>logger<65>warning)r!r4rrrr/2s<0E> 
 <02>zOpenAIClient._init_clientrrc
<00>s<><00>|jstd<01><01>z)|jjjj|jjd|d<03>g|<02>d|jj<08>|<02>d|jj <09>d<06>IdH}|j
dj j WSt yG}z
t<0E>d |<04><00><02>|<04>d}~ww)
r<00>COpenAI client not initialized. Please install the 'openai' package.<2E>user<65><02>role<6C>contentrr<00>rr%rrNruOpenAI API调用失败: <20>r.r5r'Z completions<6E>creater*r<00>getrr<00>choices<65>messager<<00> Exceptionr6<00>error<6F>r!rr"<00>response<73>errrr#>s <02>

 <0C><08><02>zOpenAIClient.generater%c
<00>s<><00>|jstd<01><01>z%|jjjj|jj||<02>d|jj<08>|<02>d|jj <09>d<04>IdH}|j
dj j WSt yC}z
t<0E>d|<04><00><02>|<04>d}~ww)r&r8rrr=NruOpenAI Chat API调用失败: r><00>r!r%r"rFrGrrrr'Os <02>
 <0C><08><02>zOpenAIClient.chatcCsDd|jjvsd|jj<01><02>vrd|dd<05><00>d<06>Sd|dd<08><00>d <09>S)
<EFBFBD> 模拟响应<E5938D>千问<E58D83>qwenuQ【千问模型模拟响应】根据您的问题我建议采取以下措施N<EFBC9A>2u+... 这是一个智能化的解决方案。u模拟LLM响应: <20>d<00>...<2E>r*r<00>lower<65>r!rrrr<00>_simulate_response`szOpenAIClient._simulate_responsecCsX|r|ddnd}d|jjvsd|jj<01><02>vr"d|dd<08><00>d <09>Sd
|dd <0B><00>d <0C>S) <0A>模拟对话响应<E5938D><E5BA94><EFBFBD><EFBFBD><EFBFBD>r<<00>rJrKu6【千问模型模拟对话】我理解您的问题NrLu(... 让我为您提供专业的建议。u模拟对话响应: rMrNrO<00>r!r%<00> last_messagerrr<00>_simulate_chatfszOpenAIClient._simulate_chatN<74>rrrrr
r1r/rr#rrr'rRrXrrrrr)*s "r)c@r()<13>AnthropicClientuAnthropic客户端r*cCr+r,r-r0rrrr1pr2zAnthropicClient.__init__cCsFzddl}|j|jjd<03>|_WdSty"t<06>d<04>d|_YdSw)r3rN)r u0Anthropic库未安装将使用模拟客户端)<08> anthropicZAsyncAnthropicr*r r.r5r6r7)r!r[rrrr/us<0E> 
 <02>zAnthropicClient._init_clientrrc
<00>s<><00>|js |<00>|<01>Sz'|jjj|jj|<02>d|jj<07>|<02>d|jj<08>d|d<04>gd<05>IdH}|j dj
WSt yO}zt <0C> d|<04><00><02>|<00>|<01>WYd}~Sd}~ww) rrrr9r:<00>rrrr%NruAnthropic API调用失败: )r.rRr%r?r*rr@rrr<<00>textrCr6rDrErrrr#<00>s <02>

 <0C><08><02>zAnthropicClient.generater%c
<00>s<><00>|js |<00>|<01>Sz#|jjj|jj|<02>d|jj<07>|<02>d|jj<08>|d<03>IdH}|j dj
WSt yK}zt <0C> d|<04><00><02>|<00>|<01>WYd}~Sd}~ww)r&rrr\Nru Anthropic Chat API调用失败: )r.rXr%r?r*rr@rrr<r]rCr6rDrHrrrr'<00>s <02>
 <0C><08><02>zAnthropicClient.chatcCsd|dd<03><00>d<04>S)rIu模拟Anthropic响应: NrMrNrrQrrrrR<00>sz"AnthropicClient._simulate_responsecCs(|r|ddnd}d|dd<06><00>d<07>S)rSrTr<rUu模拟Anthropic对话: NrMrNrrVrrrrX<00>szAnthropicClient._simulate_chatNrYrrrrrZms "rZc@sVeZdZdZdefdd<04>Zdd<06>Zdedefd d
<EFBFBD>Zd e e
eefdefd d <0A>Z dS)<0F>LocalLLMClientu本地LLM客户端r*cCr+r,r-r0rrrr1<00>r2zLocalLLMClient.__init__c
CsHzt<00>d<01>WdSty#}zt<00>d|<01><00><02>WYd}~dSd}~ww)u初始化本地客户端u本地LLM客户端初始化u#本地LLM客户端初始化失败: N)r6<00>inforCr7)r!rGrrrr/<00>s <08><02>zLocalLLMClient._init_clientrrc<00>s<00>d|dd<03><00>d<04>S)ru本地LLM响应: NrMrNrr rrrr#<00>s<02>zLocalLLMClient.generater%c<00>s*<00>|r |ddnd}d|dd<06><00>d<07>S)r&rTr<rUu本地LLM对话: NrMrNr)r!r%r"rWrrrr'<00>s<02>zLocalLLMClient.chatN) rrrrr
r1r/rr#rrr'rrrrr^<00>s "r^c@s&eZdZdZededefdd<05><04>ZdS)<07>LLMClientFactoryuLLM客户端工厂r*rcCsJ|j<00><01>}|dvr t|<00>S|dkrt|<00>S|dkrt|<00>Std|j<00><00><02><01>)u创建LLM客户端)r4rKr[<00>localu不支持的LLM提供商: )r rPr)rZr^<00>
ValueError)r*r rrr<00> create_client<6E>s
zLLMClientFactory.create_clientN)rrrr<00> staticmethodr
rrcrrrrr`<00>sr`c@s`eZdZdZddd<04>Zdedefdd<08>Zd eeeefdefd
d <0B>Z deee
ffd d <0A>Z dS)<0F>
LLMManageru LLM管理器NcCs6|r||_nt<01>j|_t<03>|j<00>|_dddd<02>|_dS)Nr)<03>total_requests<74> total_tokens<6E> error_count)r*r <00>llmr`rcr.<00> usage_statsr0rrrr1<00>s
 <0C>zLLMManager.__init__rrc
<00><00><><00>z$|jdd7<|jj|fi|<02><01>IdH}|jdt|<03>7<|WStyC}z|jdd7<t<05>d|<04><00><02><00>d}~ww)rrf<00>NrgrhuLLM生成失败: )rjr.r#<00>lenrCr6rDrErrrr#<00><00><02><08><02>zLLMManager.generater%c
<00>rk)r&rfrlNrgrhuLLM对话失败: )rjr.r'rmrCr6rDrHrrrr'<00>rnzLLMManager.chatcCs
|j<00><01>S)u获取使用统计)rj<00>copy)r!rrr<00>get_usage_statss
zLLMManager.get_usage_statsr,) rrrrr1rr#rrr'rrprrrrre<00>s 
  re)r<00>logging<6E>asyncio<69>json<6F>typingrrrr<00>abcrr<00> dataclassesr<00>src.config.unified_configr <00> getLoggerrr6r
rr)rZr^r`rerrrr<00><module>s"  
  C>