pulkitme
commited on
Commit
·
dddddce
1
Parent(s):
2a23dee
simple smolagent with duck duck go search tool and youtube transcription tool
Browse files- app.py +1 -1
- test.ipynb +252 -0
app.py
CHANGED
@@ -10,7 +10,7 @@ from langchain_community.document_loaders import YoutubeLoader
|
|
10 |
|
11 |
|
12 |
#client = genai.Client(api_key=os.getenv("API_KEY"))
|
13 |
-
model = LiteLLMModel(model_id="gemini/gemini-2.0-flash-
|
14 |
api_key=os.getenv("API_KEY"))
|
15 |
# (Keep Constants as is)
|
16 |
# --- Constants ---
|
|
|
10 |
|
11 |
|
12 |
#client = genai.Client(api_key=os.getenv("API_KEY"))
|
13 |
+
model = LiteLLMModel(model_id="gemini/gemini-2.0-flash-lite",
|
14 |
api_key=os.getenv("API_KEY"))
|
15 |
# (Keep Constants as is)
|
16 |
# --- Constants ---
|
test.ipynb
CHANGED
@@ -363,6 +363,258 @@
|
|
363 |
"What does Teal'c say in response to the question \"\"Isn't that hot?\"\"\")"
|
364 |
]
|
365 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
366 |
{
|
367 |
"cell_type": "code",
|
368 |
"execution_count": null,
|
|
|
363 |
"What does Teal'c say in response to the question \"\"Isn't that hot?\"\"\")"
|
364 |
]
|
365 |
},
|
366 |
+
{
|
367 |
+
"cell_type": "code",
|
368 |
+
"execution_count": 12,
|
369 |
+
"metadata": {},
|
370 |
+
"outputs": [
|
371 |
+
{
|
372 |
+
"name": "stdout",
|
373 |
+
"output_type": "stream",
|
374 |
+
"text": [
|
375 |
+
"\u001b[1;31mInit signature:\u001b[0m\n",
|
376 |
+
"\u001b[0mCodeAgent\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m\n",
|
377 |
+
"\u001b[0m \u001b[0mtools\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mList\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0msmolagents\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtools\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mTool\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
378 |
+
"\u001b[0m \u001b[0mmodel\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mCallable\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mList\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mDict\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mstr\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mstr\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msmolagents\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmodels\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mChatMessage\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
379 |
+
"\u001b[0m \u001b[0mprompt_templates\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mOptional\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0msmolagents\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0magents\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mPromptTemplates\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
380 |
+
"\u001b[0m \u001b[0mgrammar\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mOptional\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mDict\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mstr\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mstr\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
381 |
+
"\u001b[0m \u001b[0madditional_authorized_imports\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mOptional\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mList\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mstr\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
382 |
+
"\u001b[0m \u001b[0mplanning_interval\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mOptional\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mint\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
383 |
+
"\u001b[0m \u001b[0mexecutor_type\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mstr\u001b[0m \u001b[1;33m|\u001b[0m \u001b[1;32mNone\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;34m'local'\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
384 |
+
"\u001b[0m \u001b[0mexecutor_kwargs\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mOptional\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mDict\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mstr\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mAny\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
385 |
+
"\u001b[0m \u001b[0mmax_print_outputs_length\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mOptional\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mint\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
386 |
+
"\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
387 |
+
"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
|
388 |
+
"\u001b[1;31mSource:\u001b[0m \n",
|
389 |
+
"\u001b[1;32mclass\u001b[0m \u001b[0mCodeAgent\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mMultiStepAgent\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\n",
|
390 |
+
"\u001b[0m \u001b[1;34m\"\"\"\n",
|
391 |
+
" In this agent, the tool calls will be formulated by the LLM in code format, then parsed and executed.\n",
|
392 |
+
"\n",
|
393 |
+
" Args:\n",
|
394 |
+
" tools (`list[Tool]`): [`Tool`]s that the agent can use.\n",
|
395 |
+
" model (`Callable[[list[dict[str, str]]], ChatMessage]`): Model that will generate the agent's actions.\n",
|
396 |
+
" prompt_templates ([`~agents.PromptTemplates`], *optional*): Prompt templates.\n",
|
397 |
+
" grammar (`dict[str, str]`, *optional*): Grammar used to parse the LLM output.\n",
|
398 |
+
" additional_authorized_imports (`list[str]`, *optional*): Additional authorized imports for the agent.\n",
|
399 |
+
" planning_interval (`int`, *optional*): Interval at which the agent will run a planning step.\n",
|
400 |
+
" executor_type (`str`, default `\"local\"`): Which executor type to use between `\"local\"`, `\"e2b\"`, or `\"docker\"`.\n",
|
401 |
+
" executor_kwargs (`dict`, *optional*): Additional arguments to pass to initialize the executor.\n",
|
402 |
+
" max_print_outputs_length (`int`, *optional*): Maximum length of the print outputs.\n",
|
403 |
+
" **kwargs: Additional keyword arguments.\n",
|
404 |
+
"\n",
|
405 |
+
" \"\"\"\u001b[0m\u001b[1;33m\n",
|
406 |
+
"\u001b[0m\u001b[1;33m\n",
|
407 |
+
"\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0m__init__\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m\n",
|
408 |
+
"\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
409 |
+
"\u001b[0m \u001b[0mtools\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mList\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mTool\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
410 |
+
"\u001b[0m \u001b[0mmodel\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mCallable\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mList\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mDict\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mstr\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mstr\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mChatMessage\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
411 |
+
"\u001b[0m \u001b[0mprompt_templates\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mOptional\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mPromptTemplates\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
412 |
+
"\u001b[0m \u001b[0mgrammar\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mOptional\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mDict\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mstr\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mstr\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
413 |
+
"\u001b[0m \u001b[0madditional_authorized_imports\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mOptional\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mList\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mstr\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
414 |
+
"\u001b[0m \u001b[0mplanning_interval\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mOptional\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mint\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
415 |
+
"\u001b[0m \u001b[0mexecutor_type\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mstr\u001b[0m \u001b[1;33m|\u001b[0m \u001b[1;32mNone\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;34m\"local\"\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
416 |
+
"\u001b[0m \u001b[0mexecutor_kwargs\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mOptional\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mDict\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mstr\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mAny\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
417 |
+
"\u001b[0m \u001b[0mmax_print_outputs_length\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mOptional\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mint\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
418 |
+
"\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
419 |
+
"\u001b[0m \u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\n",
|
420 |
+
"\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0madditional_authorized_imports\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0madditional_authorized_imports\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0madditional_authorized_imports\u001b[0m \u001b[1;32melse\u001b[0m \u001b[1;33m[\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\n",
|
421 |
+
"\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mauthorized_imports\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0msorted\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mset\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mBASE_BUILTIN_MODULES\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m|\u001b[0m \u001b[0mset\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0madditional_authorized_imports\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\n",
|
422 |
+
"\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmax_print_outputs_length\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mmax_print_outputs_length\u001b[0m\u001b[1;33m\n",
|
423 |
+
"\u001b[0m \u001b[0mprompt_templates\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mprompt_templates\u001b[0m \u001b[1;32mor\u001b[0m \u001b[0myaml\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msafe_load\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m\n",
|
424 |
+
"\u001b[0m \u001b[0mimportlib\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mresources\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfiles\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"smolagents.prompts\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mjoinpath\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"code_agent.yaml\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mread_text\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\n",
|
425 |
+
"\u001b[0m \u001b[1;33m)\u001b[0m\u001b[1;33m\n",
|
426 |
+
"\u001b[0m \u001b[0msuper\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m__init__\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m\n",
|
427 |
+
"\u001b[0m \u001b[0mtools\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mtools\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
428 |
+
"\u001b[0m \u001b[0mmodel\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mmodel\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
429 |
+
"\u001b[0m \u001b[0mprompt_templates\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mprompt_templates\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
430 |
+
"\u001b[0m \u001b[0mgrammar\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mgrammar\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
431 |
+
"\u001b[0m \u001b[0mplanning_interval\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mplanning_interval\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
432 |
+
"\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
433 |
+
"\u001b[0m \u001b[1;33m)\u001b[0m\u001b[1;33m\n",
|
434 |
+
"\u001b[0m \u001b[1;32mif\u001b[0m \u001b[1;34m\"*\"\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0madditional_authorized_imports\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\n",
|
435 |
+
"\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mlogger\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mlog\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m\n",
|
436 |
+
"\u001b[0m \u001b[1;34m\"Caution: you set an authorization for all imports, meaning your agent can decide to import any package it deems necessary. This might raise issues if the package is not installed in your environment.\"\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
437 |
+
"\u001b[0m \u001b[1;36m0\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
438 |
+
"\u001b[0m \u001b[1;33m)\u001b[0m\u001b[1;33m\n",
|
439 |
+
"\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mexecutor_type\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mexecutor_type\u001b[0m \u001b[1;32mor\u001b[0m \u001b[1;34m\"local\"\u001b[0m\u001b[1;33m\n",
|
440 |
+
"\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mexecutor_kwargs\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mexecutor_kwargs\u001b[0m \u001b[1;32mor\u001b[0m \u001b[1;33m{\u001b[0m\u001b[1;33m}\u001b[0m\u001b[1;33m\n",
|
441 |
+
"\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpython_executor\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcreate_python_executor\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\n",
|
442 |
+
"\u001b[0m\u001b[1;33m\n",
|
443 |
+
"\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mcreate_python_executor\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m->\u001b[0m \u001b[0mPythonExecutor\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\n",
|
444 |
+
"\u001b[0m \u001b[0mmatch\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mexecutor_type\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\n",
|
445 |
+
"\u001b[0m \u001b[0mcase\u001b[0m \u001b[1;34m\"e2b\"\u001b[0m \u001b[1;33m|\u001b[0m \u001b[1;34m\"docker\"\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\n",
|
446 |
+
"\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmanaged_agents\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\n",
|
447 |
+
"\u001b[0m \u001b[1;32mraise\u001b[0m \u001b[0mException\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"Managed agents are not yet supported with remote code execution.\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\n",
|
448 |
+
"\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mexecutor_type\u001b[0m \u001b[1;33m==\u001b[0m \u001b[1;34m\"e2b\"\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\n",
|
449 |
+
"\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mE2BExecutor\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0madditional_authorized_imports\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mlogger\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mexecutor_kwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\n",
|
450 |
+
"\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\n",
|
451 |
+
"\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mDockerExecutor\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0madditional_authorized_imports\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mlogger\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mexecutor_kwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\n",
|
452 |
+
"\u001b[0m \u001b[0mcase\u001b[0m \u001b[1;34m\"local\"\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\n",
|
453 |
+
"\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mLocalPythonExecutor\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m\n",
|
454 |
+
"\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0madditional_authorized_imports\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
455 |
+
"\u001b[0m \u001b[0mmax_print_outputs_length\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmax_print_outputs_length\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
456 |
+
"\u001b[0m \u001b[1;33m)\u001b[0m\u001b[1;33m\n",
|
457 |
+
"\u001b[0m \u001b[0mcase\u001b[0m \u001b[0m_\u001b[0m\u001b[1;33m:\u001b[0m \u001b[1;31m# if applicable\u001b[0m\u001b[1;33m\n",
|
458 |
+
"\u001b[0m \u001b[1;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33mf\"\u001b[0m\u001b[1;33mUnsupported executor type: \u001b[0m\u001b[1;33m{\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mexecutor_type\u001b[0m\u001b[1;33m}\u001b[0m\u001b[1;33m\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\n",
|
459 |
+
"\u001b[0m\u001b[1;33m\n",
|
460 |
+
"\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0minitialize_system_prompt\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m->\u001b[0m \u001b[0mstr\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\n",
|
461 |
+
"\u001b[0m \u001b[0msystem_prompt\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mpopulate_template\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m\n",
|
462 |
+
"\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mprompt_templates\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m\"system_prompt\"\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
463 |
+
"\u001b[0m \u001b[0mvariables\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;33m{\u001b[0m\u001b[1;33m\n",
|
464 |
+
"\u001b[0m \u001b[1;34m\"tools\"\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtools\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
465 |
+
"\u001b[0m \u001b[1;34m\"managed_agents\"\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmanaged_agents\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
466 |
+
"\u001b[0m \u001b[1;34m\"authorized_imports\"\u001b[0m\u001b[1;33m:\u001b[0m \u001b[1;33m(\u001b[0m\u001b[1;33m\n",
|
467 |
+
"\u001b[0m \u001b[1;34m\"You can import from any package you want.\"\u001b[0m\u001b[1;33m\n",
|
468 |
+
"\u001b[0m \u001b[1;32mif\u001b[0m \u001b[1;34m\"*\"\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mauthorized_imports\u001b[0m\u001b[1;33m\n",
|
469 |
+
"\u001b[0m \u001b[1;32melse\u001b[0m \u001b[0mstr\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mauthorized_imports\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\n",
|
470 |
+
"\u001b[0m \u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
471 |
+
"\u001b[0m \u001b[1;33m}\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
472 |
+
"\u001b[0m \u001b[1;33m)\u001b[0m\u001b[1;33m\n",
|
473 |
+
"\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0msystem_prompt\u001b[0m\u001b[1;33m\n",
|
474 |
+
"\u001b[0m\u001b[1;33m\n",
|
475 |
+
"\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mstep\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmemory_step\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mActionStep\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m->\u001b[0m \u001b[0mUnion\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;32mNone\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mAny\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\n",
|
476 |
+
"\u001b[0m \u001b[1;34m\"\"\"\n",
|
477 |
+
" Perform one step in the ReAct framework: the agent thinks, acts, and observes the result.\n",
|
478 |
+
" Returns None if the step is not final.\n",
|
479 |
+
" \"\"\"\u001b[0m\u001b[1;33m\n",
|
480 |
+
"\u001b[0m \u001b[0mmemory_messages\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mwrite_memory_to_messages\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\n",
|
481 |
+
"\u001b[0m\u001b[1;33m\n",
|
482 |
+
"\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0minput_messages\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mmemory_messages\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcopy\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\n",
|
483 |
+
"\u001b[0m\u001b[1;33m\n",
|
484 |
+
"\u001b[0m \u001b[1;31m# Add new step in logs\u001b[0m\u001b[1;33m\n",
|
485 |
+
"\u001b[0m \u001b[0mmemory_step\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmodel_input_messages\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mmemory_messages\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcopy\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\n",
|
486 |
+
"\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\n",
|
487 |
+
"\u001b[0m \u001b[0madditional_args\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m{\u001b[0m\u001b[1;34m\"grammar\"\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mgrammar\u001b[0m\u001b[1;33m}\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mgrammar\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[1;32mNone\u001b[0m \u001b[1;32melse\u001b[0m \u001b[1;33m{\u001b[0m\u001b[1;33m}\u001b[0m\u001b[1;33m\n",
|
488 |
+
"\u001b[0m \u001b[0mchat_message\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mChatMessage\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmodel\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m\n",
|
489 |
+
"\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0minput_messages\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
490 |
+
"\u001b[0m \u001b[0mstop_sequences\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m\"<end_code>\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"Observation:\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"Calling tools:\"\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
491 |
+
"\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0madditional_args\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
492 |
+
"\u001b[0m \u001b[1;33m)\u001b[0m\u001b[1;33m\n",
|
493 |
+
"\u001b[0m \u001b[0mmemory_step\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmodel_output_message\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mchat_message\u001b[0m\u001b[1;33m\n",
|
494 |
+
"\u001b[0m \u001b[0mmodel_output\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mchat_message\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcontent\u001b[0m\u001b[1;33m\n",
|
495 |
+
"\u001b[0m\u001b[1;33m\n",
|
496 |
+
"\u001b[0m \u001b[1;31m# This adds <end_code> sequence to the history.\u001b[0m\u001b[1;33m\n",
|
497 |
+
"\u001b[0m \u001b[1;31m# This will nudge ulterior LLM calls to finish with <end_code>, thus efficiently stopping generation.\u001b[0m\u001b[1;33m\n",
|
498 |
+
"\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mmodel_output\u001b[0m \u001b[1;32mand\u001b[0m \u001b[0mmodel_output\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mstrip\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mendswith\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"```\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\n",
|
499 |
+
"\u001b[0m \u001b[0mmodel_output\u001b[0m \u001b[1;33m+=\u001b[0m \u001b[1;34m\"<end_code>\"\u001b[0m\u001b[1;33m\n",
|
500 |
+
"\u001b[0m \u001b[0mmemory_step\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmodel_output_message\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcontent\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mmodel_output\u001b[0m\u001b[1;33m\n",
|
501 |
+
"\u001b[0m\u001b[1;33m\n",
|
502 |
+
"\u001b[0m \u001b[0mmemory_step\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmodel_output\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mmodel_output\u001b[0m\u001b[1;33m\n",
|
503 |
+
"\u001b[0m \u001b[1;32mexcept\u001b[0m \u001b[0mException\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\n",
|
504 |
+
"\u001b[0m \u001b[1;32mraise\u001b[0m \u001b[0mAgentGenerationError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33mf\"\u001b[0m\u001b[1;33mError in generating model output:\\n\u001b[0m\u001b[1;33m{\u001b[0m\u001b[0me\u001b[0m\u001b[1;33m}\u001b[0m\u001b[1;33m\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mlogger\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;32mfrom\u001b[0m \u001b[0me\u001b[0m\u001b[1;33m\n",
|
505 |
+
"\u001b[0m\u001b[1;33m\n",
|
506 |
+
"\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mlogger\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mlog_markdown\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m\n",
|
507 |
+
"\u001b[0m \u001b[0mcontent\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mmodel_output\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
508 |
+
"\u001b[0m \u001b[0mtitle\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m\"Output message of the LLM:\"\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
509 |
+
"\u001b[0m \u001b[0mlevel\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mLogLevel\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mDEBUG\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
510 |
+
"\u001b[0m \u001b[1;33m)\u001b[0m\u001b[1;33m\n",
|
511 |
+
"\u001b[0m\u001b[1;33m\n",
|
512 |
+
"\u001b[0m \u001b[1;31m# Parse\u001b[0m\u001b[1;33m\n",
|
513 |
+
"\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\n",
|
514 |
+
"\u001b[0m \u001b[0mcode_action\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mfix_final_answer_code\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mparse_code_blobs\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmodel_output\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\n",
|
515 |
+
"\u001b[0m \u001b[1;32mexcept\u001b[0m \u001b[0mException\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\n",
|
516 |
+
"\u001b[0m \u001b[0merror_msg\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33mf\"\u001b[0m\u001b[1;33mError in code parsing:\\n\u001b[0m\u001b[1;33m{\u001b[0m\u001b[0me\u001b[0m\u001b[1;33m}\u001b[0m\u001b[1;33m\\nMake sure to provide correct code blobs.\u001b[0m\u001b[1;33m\"\u001b[0m\u001b[1;33m\n",
|
517 |
+
"\u001b[0m \u001b[1;32mraise\u001b[0m \u001b[0mAgentParsingError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0merror_msg\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mlogger\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\n",
|
518 |
+
"\u001b[0m\u001b[1;33m\n",
|
519 |
+
"\u001b[0m \u001b[0mmemory_step\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtool_calls\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m[\u001b[0m\u001b[1;33m\n",
|
520 |
+
"\u001b[0m \u001b[0mToolCall\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m\n",
|
521 |
+
"\u001b[0m \u001b[0mname\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m\"python_interpreter\"\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
522 |
+
"\u001b[0m \u001b[0marguments\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mcode_action\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
523 |
+
"\u001b[0m \u001b[0mid\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;33mf\"\u001b[0m\u001b[1;33mcall_\u001b[0m\u001b[1;33m{\u001b[0m\u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmemory\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msteps\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m}\u001b[0m\u001b[1;33m\"\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
524 |
+
"\u001b[0m \u001b[1;33m)\u001b[0m\u001b[1;33m\n",
|
525 |
+
"\u001b[0m \u001b[1;33m]\u001b[0m\u001b[1;33m\n",
|
526 |
+
"\u001b[0m\u001b[1;33m\n",
|
527 |
+
"\u001b[0m \u001b[1;31m# Execute\u001b[0m\u001b[1;33m\n",
|
528 |
+
"\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mlogger\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mlog_code\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtitle\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m\"Executing parsed code:\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcontent\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mcode_action\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlevel\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mLogLevel\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mINFO\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\n",
|
529 |
+
"\u001b[0m \u001b[0mis_final_answer\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;32mFalse\u001b[0m\u001b[1;33m\n",
|
530 |
+
"\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\n",
|
531 |
+
"\u001b[0m \u001b[0moutput\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mexecution_logs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mis_final_answer\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpython_executor\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcode_action\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\n",
|
532 |
+
"\u001b[0m \u001b[0mexecution_outputs_console\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m[\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\n",
|
533 |
+
"\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mexecution_logs\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m>\u001b[0m \u001b[1;36m0\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\n",
|
534 |
+
"\u001b[0m \u001b[0mexecution_outputs_console\u001b[0m \u001b[1;33m+=\u001b[0m \u001b[1;33m[\u001b[0m\u001b[1;33m\n",
|
535 |
+
"\u001b[0m \u001b[0mText\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"Execution logs:\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mstyle\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m\"bold\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
536 |
+
"\u001b[0m \u001b[0mText\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mexecution_logs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
537 |
+
"\u001b[0m \u001b[1;33m]\u001b[0m\u001b[1;33m\n",
|
538 |
+
"\u001b[0m \u001b[0mobservation\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;34m\"Execution logs:\\n\"\u001b[0m \u001b[1;33m+\u001b[0m \u001b[0mexecution_logs\u001b[0m\u001b[1;33m\n",
|
539 |
+
"\u001b[0m \u001b[1;32mexcept\u001b[0m \u001b[0mException\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\n",
|
540 |
+
"\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mhasattr\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpython_executor\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;34m\"state\"\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;32mand\u001b[0m \u001b[1;34m\"_print_outputs\"\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpython_executor\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mstate\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\n",
|
541 |
+
"\u001b[0m \u001b[0mexecution_logs\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mstr\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpython_executor\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mstate\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m\"_print_outputs\"\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\n",
|
542 |
+
"\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mexecution_logs\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m>\u001b[0m \u001b[1;36m0\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\n",
|
543 |
+
"\u001b[0m \u001b[0mexecution_outputs_console\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m[\u001b[0m\u001b[1;33m\n",
|
544 |
+
"\u001b[0m \u001b[0mText\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"Execution logs:\"\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mstyle\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;34m\"bold\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
545 |
+
"\u001b[0m \u001b[0mText\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mexecution_logs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
546 |
+
"\u001b[0m \u001b[1;33m]\u001b[0m\u001b[1;33m\n",
|
547 |
+
"\u001b[0m \u001b[0mmemory_step\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mobservations\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;34m\"Execution logs:\\n\"\u001b[0m \u001b[1;33m+\u001b[0m \u001b[0mexecution_logs\u001b[0m\u001b[1;33m\n",
|
548 |
+
"\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mlogger\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mlog\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mGroup\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0mexecution_outputs_console\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlevel\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mLogLevel\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mINFO\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\n",
|
549 |
+
"\u001b[0m \u001b[0merror_msg\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mstr\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0me\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\n",
|
550 |
+
"\u001b[0m \u001b[1;32mif\u001b[0m \u001b[1;34m\"Import of \"\u001b[0m \u001b[1;32min\u001b[0m \u001b[0merror_msg\u001b[0m \u001b[1;32mand\u001b[0m \u001b[1;34m\" is not allowed\"\u001b[0m \u001b[1;32min\u001b[0m \u001b[0merror_msg\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\n",
|
551 |
+
"\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mlogger\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mlog\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m\n",
|
552 |
+
"\u001b[0m \u001b[1;34m\"[bold red]Warning to user: Code execution failed due to an unauthorized import - Consider passing said import under `additional_authorized_imports` when initializing your CodeAgent.\"\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
553 |
+
"\u001b[0m \u001b[0mlevel\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mLogLevel\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mINFO\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
554 |
+
"\u001b[0m \u001b[1;33m)\u001b[0m\u001b[1;33m\n",
|
555 |
+
"\u001b[0m \u001b[1;32mraise\u001b[0m \u001b[0mAgentExecutionError\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0merror_msg\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mlogger\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\n",
|
556 |
+
"\u001b[0m\u001b[1;33m\n",
|
557 |
+
"\u001b[0m \u001b[0mtruncated_output\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mtruncate_content\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mstr\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0moutput\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\n",
|
558 |
+
"\u001b[0m \u001b[0mobservation\u001b[0m \u001b[1;33m+=\u001b[0m \u001b[1;34m\"Last output from code snippet:\\n\"\u001b[0m \u001b[1;33m+\u001b[0m \u001b[0mtruncated_output\u001b[0m\u001b[1;33m\n",
|
559 |
+
"\u001b[0m \u001b[0mmemory_step\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mobservations\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mobservation\u001b[0m\u001b[1;33m\n",
|
560 |
+
"\u001b[0m\u001b[1;33m\n",
|
561 |
+
"\u001b[0m \u001b[0mexecution_outputs_console\u001b[0m \u001b[1;33m+=\u001b[0m \u001b[1;33m[\u001b[0m\u001b[1;33m\n",
|
562 |
+
"\u001b[0m \u001b[0mText\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m\n",
|
563 |
+
"\u001b[0m \u001b[1;33mf\"\u001b[0m\u001b[1;33m{\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'Out - Final answer'\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mis_final_answer\u001b[0m \u001b[1;32melse\u001b[0m \u001b[1;34m'Out'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m}\u001b[0m\u001b[1;33m: \u001b[0m\u001b[1;33m{\u001b[0m\u001b[0mtruncated_output\u001b[0m\u001b[1;33m}\u001b[0m\u001b[1;33m\"\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
564 |
+
"\u001b[0m \u001b[0mstyle\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33mf\"\u001b[0m\u001b[1;33mbold \u001b[0m\u001b[1;33m{\u001b[0m\u001b[0mYELLOW_HEX\u001b[0m\u001b[1;33m}\u001b[0m\u001b[1;33m\"\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mis_final_answer\u001b[0m \u001b[1;32melse\u001b[0m \u001b[1;34m\"\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
565 |
+
"\u001b[0m \u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
566 |
+
"\u001b[0m \u001b[1;33m]\u001b[0m\u001b[1;33m\n",
|
567 |
+
"\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mlogger\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mlog\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mGroup\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m*\u001b[0m\u001b[0mexecution_outputs_console\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mlevel\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mLogLevel\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mINFO\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\n",
|
568 |
+
"\u001b[0m \u001b[0mmemory_step\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0maction_output\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0moutput\u001b[0m\u001b[1;33m\n",
|
569 |
+
"\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0moutput\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mis_final_answer\u001b[0m \u001b[1;32melse\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m\n",
|
570 |
+
"\u001b[0m\u001b[1;33m\n",
|
571 |
+
"\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mto_dict\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m->\u001b[0m \u001b[0mdict\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mstr\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mAny\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\n",
|
572 |
+
"\u001b[0m \u001b[1;34m\"\"\"Convert the agent to a dictionary representation.\n",
|
573 |
+
"\n",
|
574 |
+
" Returns:\n",
|
575 |
+
" `dict`: Dictionary representation of the agent.\n",
|
576 |
+
" \"\"\"\u001b[0m\u001b[1;33m\n",
|
577 |
+
"\u001b[0m \u001b[0magent_dict\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0msuper\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mto_dict\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\n",
|
578 |
+
"\u001b[0m \u001b[0magent_dict\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m\"authorized_imports\"\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mauthorized_imports\u001b[0m\u001b[1;33m\n",
|
579 |
+
"\u001b[0m \u001b[0magent_dict\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m\"executor_type\"\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mexecutor_type\u001b[0m\u001b[1;33m\n",
|
580 |
+
"\u001b[0m \u001b[0magent_dict\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m\"executor_kwargs\"\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mexecutor_kwargs\u001b[0m\u001b[1;33m\n",
|
581 |
+
"\u001b[0m \u001b[0magent_dict\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m\"max_print_outputs_length\"\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmax_print_outputs_length\u001b[0m\u001b[1;33m\n",
|
582 |
+
"\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0magent_dict\u001b[0m\u001b[1;33m\n",
|
583 |
+
"\u001b[0m\u001b[1;33m\n",
|
584 |
+
"\u001b[0m \u001b[1;33m@\u001b[0m\u001b[0mclassmethod\u001b[0m\u001b[1;33m\n",
|
585 |
+
"\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mfrom_dict\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcls\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0magent_dict\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mdict\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mstr\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mAny\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m->\u001b[0m \u001b[1;34m\"CodeAgent\"\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\n",
|
586 |
+
"\u001b[0m \u001b[1;34m\"\"\"Create CodeAgent from a dictionary representation.\n",
|
587 |
+
"\n",
|
588 |
+
" Args:\n",
|
589 |
+
" agent_dict (`dict[str, Any]`): Dictionary representation of the agent.\n",
|
590 |
+
" **kwargs: Additional keyword arguments that will override agent_dict values.\n",
|
591 |
+
"\n",
|
592 |
+
" Returns:\n",
|
593 |
+
" `CodeAgent`: Instance of the CodeAgent class.\n",
|
594 |
+
" \"\"\"\u001b[0m\u001b[1;33m\n",
|
595 |
+
"\u001b[0m \u001b[1;31m# Add CodeAgent-specific parameters to kwargs\u001b[0m\u001b[1;33m\n",
|
596 |
+
"\u001b[0m \u001b[0mcode_agent_kwargs\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m{\u001b[0m\u001b[1;33m\n",
|
597 |
+
"\u001b[0m \u001b[1;34m\"additional_authorized_imports\"\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0magent_dict\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"authorized_imports\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
598 |
+
"\u001b[0m \u001b[1;34m\"executor_type\"\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0magent_dict\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"executor_type\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
599 |
+
"\u001b[0m \u001b[1;34m\"executor_kwargs\"\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0magent_dict\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"executor_kwargs\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
600 |
+
"\u001b[0m \u001b[1;34m\"max_print_outputs_length\"\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0magent_dict\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"max_print_outputs_length\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\n",
|
601 |
+
"\u001b[0m \u001b[1;33m}\u001b[0m\u001b[1;33m\n",
|
602 |
+
"\u001b[0m \u001b[1;31m# Filter out None values\u001b[0m\u001b[1;33m\n",
|
603 |
+
"\u001b[0m \u001b[0mcode_agent_kwargs\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m{\u001b[0m\u001b[0mk\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mv\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mk\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mv\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mcode_agent_kwargs\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mitems\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mv\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m}\u001b[0m\u001b[1;33m\n",
|
604 |
+
"\u001b[0m \u001b[1;31m# Update with any additional kwargs\u001b[0m\u001b[1;33m\n",
|
605 |
+
"\u001b[0m \u001b[0mcode_agent_kwargs\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mupdate\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\n",
|
606 |
+
"\u001b[0m \u001b[1;31m# Call the parent class's from_dict method\u001b[0m\u001b[1;33m\n",
|
607 |
+
"\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0msuper\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfrom_dict\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0magent_dict\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mcode_agent_kwargs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
|
608 |
+
"\u001b[1;31mFile:\u001b[0m c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages\\smolagents\\agents.py\n",
|
609 |
+
"\u001b[1;31mType:\u001b[0m ABCMeta\n",
|
610 |
+
"\u001b[1;31mSubclasses:\u001b[0m "
|
611 |
+
]
|
612 |
+
}
|
613 |
+
],
|
614 |
+
"source": [
|
615 |
+
"CodeAgent??"
|
616 |
+
]
|
617 |
+
},
|
618 |
{
|
619 |
"cell_type": "code",
|
620 |
"execution_count": null,
|