Files
ds_drone_bot/__pycache__/test.cpython-311.pyc
T

95 lines
21 KiB
Plaintext
Raw Normal View History

2025-07-24 14:27:56 +01:00
§
/Hh Eãó$ddlZddlmZddlmZddlZddlmZmZm Z m
Z
ddl m Z ddl
mZddlmZmZmZddlmZdd lmZmZmZmZdd
lmZddlZddlZdd lmZdd l m!Z!dd
l"m#Z#ddl$m%Z%ddl&m'Z'e!¦«Z(eGdd¦«¦«Z)Gdd¦«Z*Gdde ¦«Z+Gdd¦«Z,e-dkrNdddœdddœgZ.de.D¦«Z/e,e/d¬ ¦«Z0d!Z1e0 2e1¦«Z3e4d"e3d#¦«dSdS)$éN)Ú
ChatOpenAI)Ú
ChatAnthropic)ÚListÚDictÚAnyÚOptional)Ú TypedDict)ÚChatPromptTemplate)Ú
StateGraphÚSTARTÚEND)Ú MemorySaver)Ú HumanMessageÚ AIMessageÚ ToolMessageÚ
SystemMessage)Ú dataclass)Úwraps)Úsetup_prompt_manager)Ú LlmConfig)Ú AgenTools)ÚConfigcó$eZdZUeed<eed<dS)ÚMessageÚroleÚcontentN)Ú__name__Ú
__module__Ú __qualname__ÚstrÚ__annotations__©óú8/Users/macbook/Desktop/blessing_ai/mkd/drone_bot/test.pyrrs"à
€I€I
€L€LL€L€Lr#rcóDeZdZdZd defdZdZdefdZde fd „Z
d
Z d S)
ÚModelRotationManagerz+Manages model rotation and failure trackingTÚuse_openai_as_fallbackcóŒg|_|r¨tjjjdtjtjj d¦«dœtjjjdtjtjj d¦«dœg}|j  |¦«d|jD¦«|_
d|_ d|_ ||_
tdt|j¦«d¦«td |rd
nd ¦«|jD]$}td |d
d|dd¦«Œ%dS)openaiÚ drone_bot)ÚnameÚproviderÚapi_keyÚ temperaturecó i|] }|ddŒ S©r+rr"©Ú.0Úmodels r$ú
<dictcomp>z1ModelRotationManager.__init__.<locals>.<dictcomp>?óÐI°E˜u Vœ}¨aÐIr#réz&ModelRotationManager initialized with z modelsúOpenAI fallback: ÚEnabledÚDisabledz - r+ú (r,ú))Úmodelsrr)Úgpt_4orÚOPENAI_API_KEYÚ temperaturesÚgetÚgpt_4_1ÚextendÚfailure_countsÚcurrent_model_indexÚmax_failures_per_modelr'ÚprintÚlen)Úselfr'Ú
openai_modelsr3s r$Ú__init__zModelRotationManager.__init__ sið
ˆŒ ð :Ø (Ý4Ý#,Ô#3Ô#@×#DÒ#DÀ[Ñ#QÔ#Qð ðõ;Ø (Ý4Ý#,Ô#3Ô#@×#DÒ#DÀ[Ñ#QÔ#Qð ðð
ˆ
ŒK× Ò ˜}Ñ JÐI¸T¼[ÐIˆÔØ#$ˆÔ Ø&'ˆÔ#Ø&<ˆÔ
ÐPµs¸4¼;Ñ7GÔ7GÐ
ÐWÐ/EÐ"U ) )È:Д[ð @ð @ˆ Ð>˜˜Ð>¨%°
Ô*;Ð  @ð @r#có&|j|jS)z#Get the current model configuration)r<rD)rHs r$Úget_current_modelz&ModelRotationManager.get_current_modelIsàŒ{˜4r#Ú model_configcóò|ddkr$t|d|d|d¬¦«S|ddkr$t|d|d|d¬¦«Std|d¦«) z3Create an LLM instance based on model configurationr,Ú anthropicr-r+r.)r-r3r.r)zUnsupported provider: )rrÚ
ValueError)rHrMs r$Úcreate_llm_instancez(ModelRotationManager.create_llm_instanceMs à ˜
Ô # {Ò  Ø$ " Ôñôð
ð
˜
Ò
Ø$ " Ôñôð
õ ÐP°lÀ:Ô6NÐ Qr#Úfailed_model_namecó$|j|xxdz
cc<td|d|j|¦«d}|t|j¦«kr‰|jdzt|j¦«z|_|j|j}|j|d|jkrtd|d¦«|S|dz
}|t|j¦«k°‰td¦«d|jD¦«|_d|_|jdS) zRotate to next model on failureézModel z failed. Failure count: rr+zRotating to model: zBAll models have failed. Resetting failure counts and trying again.có i|] }|ddŒ Sr0r"r1s r$r4z:ModelRotationManager.rotate_on_failure.<locals>.<dictcomp>rr5r#)rCrFrGr<rDrE)rHrRÚattemptsÚ
next_models r$Úrotate_on_failurez&ModelRotationManager.rotate_on_failure^s/à ÔÐ.°!Ñ
ÐjÀ$ÔBUÐVgÔBhЈؘTœ[Ñ)Ø(,Ô(@À1Ñ(DÍÈDÌKÑHXÔHXÑ'Xˆ œ TÔ%=Ô>ˆÔ" :¨fÔ#5Ô6¸Ô9TÒÐ@¨J°vÔ,>Ð ˜‰MˆHð˜Tœ[Ñ ÐI¸T¼[ÐÔØ#$ˆÔ ØŒ{˜1Œ~Ðr#cóœ| ¦«}|j|d|jkr|S| |d¦«S)zGet next available modelr+)rLrCrErX)rHÚ
current_models r$Úget_next_modelz#ModelRotationManager.get_next_modelvsMà×
Ø Ô ˜}¨VÔ Ô8SÒ  Ð à×)¨-¸Ô*?Ñ @r#N)T) rrrÚ__doc__ÚboolrJrLÚdictrQr rXr[r"r#r$r&r&Ø'@ð'@¨tð'@ð'@ð'@ð'@ðRR°ðRðRðRðRð"°3ððððð0AðAðAðAðAr#r&cóneZdZUeeezed<eeed<eeed<eeed<dS)ÚStateÚmessagesÚfinal_responseÚ
user_questionrZN) rrrrrrr!rr r"r#r$r`r`sXØ< )јS”MИC”=Ð Ð Ñ Ø˜C”=Ð Ð Ñ Ð Ð r#r`có¨eZdZddeeedefdZdZde de
fd „Z de fd
Z
d eedeee zfd Zd
e
dee
effdZdS)ÚDroneBotNTÚhistoryr'cóì||ng|_||_t|¬¦«|_d|_d|_| ¦«|_td¦«td|rdnd¦«dS)
Initialize DroneBot - a simplified plotting agent
Args:
history: Optional conversation history
use_openai_as_fallback: Whether to include OpenAI models as fallback
N)r'ÚzDroneBot initializedr7r8r9) rfr'r&Ú
model_managerÚ
final_messageÚfinal_model_usedÚ
_create_toolsÚtoolsrF)rHrfr's r$rJzDroneBot.__init__ˆsð#*Ð"5ww¸2ˆŒ Ø&<ˆÔ2ÐI_ÐÔð ˆÔØ "ˆÔð×)ˆŒ
å
Ð
ÐWÐ/EÐ"U ) )È:ÐXr#cótj}|S)zdefine tools for agent)rrm)rHrms r$rlzDroneBot._create_tools sõˆØˆ r#ÚresponseÚreturncóŠ t|d¦«rLt|jt¦«r2|j ¦«r|j ¦«St|d¦«r…t|jt
¦«rk|jD]a}t|t ¦«rJ| d¦«dkr1| d¦«r|d ¦«cSŒbdSt|d¦«r |jrdSdS#t$r*}tdt|¦«¦«Yd}~d Sd}~wwxYw)
z<Extract the final message content from an AIMessage responserÚtypeÚtextÚ
tool_callsz Generating your visualization...zProcessing your request...z"Error extracting message content: Nz/I encountered an issue processing your request.) ÚhasattrÚ
isinstancerr ÚstripÚlistr^r@rtÚ ExceptionrF)rHroÚitemÚes r$Ú_extract_final_message_contentz'DroneBot._extract_final_message_content§svð Eåx Ñ
¸8Ô;KÍSÑ0QÔ0Qð
4ÐV^ÔVf×VlÒVlÑVnÔVnð
Ô'ט 9Ñ
4µ*¸XÔ=MÍtÑ2TÔ2Tð
4! $­Ñ4°$·(²(¸6Ñ2BÔ2BÀfÒ2LÐ2LÐQU×QYÒQYÐZ`ÑQaÔQaÐ2LØ# Fœ|×3øð
˜ 
4°XÔ5Hð
3øåð Eð Eð EÝ Ð?µs¸1±v´ Døøøøð Eøøøs+‚ADÁBDÃ0DÃ3DÄ
EÄD=Ä=Ecó&td¦«tt¦«}dtfˆfd }dtfd}Gdd¦«}|j¬¦«}| d|¦«| d |¦«| t d¦«| d|d d tti¦«| d d¦«t¦«}| 
|¬
¦«}td ¦«|S) zCreate the DroneBot workflowzCreating DroneBot workflowÚstatec ó„
j ¦«}d}d}t|¦«D]}
j |¦«}t d|dd|dd|dz¦«| 
j¦«}|d }|rt|d
t¦«s.t 
d ¦«}t|¬ ¦«g|z}t d
t|¦«¦«|  |¦«} t dt| ¦«j¦«t| d¦«r-t d| jrt| j¦«nd
¦«
 | ¦«}
|
_d |d | gzi} |d| d<|d
_| cS#t($rx} | }t d|dzd|ddt+| ¦«¦«||dz
kr4‰
j |d¦«}t/jd¦«Yd} ~ Œ
d} ~ wwxYw|)z+Main chatbot that handles plotting requestséNz
Using model: r+r:r,z ) - Attempt rTrarÚbooking©rzDroneBot input messages: zDroneBot response: rtz Tool calls: rZzAttempt z failed with model ú: )rirLÚrangerQrFÚ