Files
ai-worker-platform/__pycache__/llm_gateway.cpython-312.pyc
T

51 lines
4.9 KiB
Plaintext
Raw Normal View History

Ë
K{j
ãó\dZddlZddlZddlZGdde«ZdZdZdZ d
dZ d d „Z
y) uO
统一模型网关:多供应商 OpenAI 兼容å议调用 + è®¡é‡ + 计价
éNcó eZdZy)ÚLLMErrorN)Ú__name__Ú
__module__Ú __qualname__©óúV/home/openclaw/.openclaw/workspace-hz4th_coder/works/ai-worker-platform/llm_gateway.pyrr
sØr rcódtjj|«}|std|«|S)Nu未知供应商: )ÚconfigÚ PROVIDERSÚgetr)ÚproviderÚcfgs r
Úget_provider_cfgrs3Ü
×
Ñ
×
Ñ
˜
(€CÙ ÜÐ*¨8¨*Ð €Jr córtjj|tj«}|d|dfS)inputÚoutput)r Ú
MODEL_PRICINGrÚ
DEFAULT_PRICE)ÚmodelÚps r
Ú model_pricers3Ü×Ñ× Ñ  ¬×(<Ñ(<Ó=€AØ ˆW‰:q˜ "r cóTt|«\}}t|dz |z|dz |zzd«S)Ng€„.Aé)rÚround)rÚ
prompt_tokensÚcompletion_tokensÚpinÚpouts r
Ú calc_costr!s7ܘ"I€CˆÜ  Ñ$ *Ð->ÀÑ-DÀtÑ-KÑKÈQÓ Or c óât|«} |xs| djd«dz}
|xs| d} | std|d«d| dd œ} |||d
œ}
|r||
d <|xs| jd d
«}|tj
n|}d}t
|dz«D]g} tj|
|
| |¬«}|jdk(r|j«}|ddddxsd}|jdi«}|jdd«}|jdd«}||jd|«||||zt|||«dœcS|jdk(r7td|jdd«}tjd|dzz«Œô|jdk\r?td |jd!|jdd«}tjd«ŒBtd"|jd!|jdd
«|xs td&«#tjj $rtd#|d$«}YŒ©tjj"$r}td%|«}Yd}~ŒÙd}~wwxYw)'uI调用 OpenAI 兼容 chat/completions,返回 {text, usage, cost, model}Úbase_urlÚ/z/chat/completionsÚapi_keyu
供应商 u 未é…ç½® API KeyzBearer zapplication/json)Ú
Authorizationz Content-Type)rÚmessagesÚ temperatureÚ
max_tokensÚtimeouti,)ÚjsonÚheadersr*éÈÚchoicesrÚmessageÚcontentÚÚusagerrr)ÚtextrrrÚ total_tokensÚcosti­uæ¨¡åž‹é™æµ(429): éuæœåŠ¡ç«¯é”™è¯¯(z): u
调用失败(u
请求超时(zs)u连接失败: u 未知错误)rÚrstriprrr Ú MAX_RETRYÚrangeÚrequestsÚpostÚ status_coder,r!r4ÚtimeÚsleepÚ
exceptionsÚTimeoutÚConnectionError)rrr'r(r)r#r%r*ÚretriesrÚurlÚkeyr-ÚpayloadÚlast_errÚattemptÚrespÚdatar4r3ÚptÚctÚes r
ÚchatrNs˜ô ˜8Ó
$€CØ Ò &s˜:×
.¨sÓ
3Ð6IÑ
I€CØ
Ò
#‘^€C٠ܘ H :Ð-?Ð" 3 %˜Ø€Gð
ØØ€Gñ
Ø *ˆ ÑàÒŸ ¨CÓ0€GØ") /Œf×Ò°w€GØ€Hܘ 1™×ð—=‘= ¨7¸GÈWÔUˆ×Ñ —yy“{ؘI qÑ)¨)Ñ4°YÑEÀ2ØŸ ¨"Ó-Ø—Y‘Y˜°Ó2Ø—Y‘YÐ2°AÓ6à Ø!ŸX™X g¨uÓ5Ø%'Ø)+Ø$&¨¡GÜ% e¨R°Ó
òð×Ñ #Ð&9¸$¿)¹)ÀDÀS¸/Ð9JÐ$KÓLÜ
˜1 ¨!¡ ÑØ×Ñ #Ð&6°t×7GÑ7GÐ6HÈÈDÏIÉIÐVZÐWZÈOÐK\Ð$]Ó^Ü