{ "cells": [ { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Requirement already satisfied: smolagents in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (1.14.0)\n", "Requirement already satisfied: langchain_community in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (0.3.22)\n", "Collecting youtube-transcript-api\n", " Downloading youtube_transcript_api-1.0.3-py3-none-any.whl.metadata (23 kB)\n", "Requirement already satisfied: huggingface-hub>=0.28.0 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from smolagents) (0.28.1)\n", "Requirement already satisfied: requests>=2.32.3 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from smolagents) (2.32.3)\n", "Requirement already satisfied: rich>=13.9.4 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from smolagents) (13.9.4)\n", "Requirement already satisfied: jinja2>=3.1.4 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from smolagents) (3.1.5)\n", "Requirement already satisfied: pillow>=11.0.0 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from smolagents) (11.1.0)\n", "Requirement already satisfied: markdownify>=0.14.1 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from smolagents) (1.1.0)\n", "Requirement already satisfied: duckduckgo-search>=6.3.7 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from smolagents) (8.0.1)\n", "Requirement already satisfied: python-dotenv in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from smolagents) (1.0.1)\n", "Requirement already satisfied: litellm>=1.60.2 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from smolagents[litellm]) (1.67.2)\n", "Requirement already satisfied: langchain-core<1.0.0,>=0.3.55 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from langchain_community) (0.3.56)\n", "Requirement already satisfied: langchain<1.0.0,>=0.3.24 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from langchain_community) (0.3.24)\n", "Requirement already satisfied: SQLAlchemy<3,>=1.4 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from langchain_community) (2.0.38)\n", "Requirement already satisfied: PyYAML>=5.3 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from langchain_community) (6.0.2)\n", "Requirement already satisfied: aiohttp<4.0.0,>=3.8.3 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from langchain_community) (3.11.11)\n", "Requirement already satisfied: tenacity!=8.4.0,<10,>=8.1.0 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from langchain_community) (9.0.0)\n", "Requirement already satisfied: dataclasses-json<0.7,>=0.5.7 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from langchain_community) (0.6.7)\n", "Requirement already satisfied: pydantic-settings<3.0.0,>=2.4.0 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from langchain_community) (2.9.1)\n", "Requirement already satisfied: langsmith<0.4,>=0.1.125 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from langchain_community) (0.3.37)\n", "Requirement already satisfied: httpx-sse<1.0.0,>=0.4.0 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from langchain_community) (0.4.0)\n", "Requirement already satisfied: numpy>=1.26.2 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from langchain_community) (2.2.2)\n", "Collecting defusedxml<0.8.0,>=0.7.1 (from youtube-transcript-api)\n", " Using cached defusedxml-0.7.1-py2.py3-none-any.whl.metadata (32 kB)\n", "Requirement already satisfied: aiohappyeyeballs>=2.3.0 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from aiohttp<4.0.0,>=3.8.3->langchain_community) (2.4.4)\n", "Requirement already satisfied: aiosignal>=1.1.2 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from aiohttp<4.0.0,>=3.8.3->langchain_community) (1.3.2)\n", "Requirement already satisfied: attrs>=17.3.0 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from aiohttp<4.0.0,>=3.8.3->langchain_community) (24.3.0)\n", "Requirement already satisfied: frozenlist>=1.1.1 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from aiohttp<4.0.0,>=3.8.3->langchain_community) (1.5.0)\n", "Requirement already satisfied: multidict<7.0,>=4.5 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from aiohttp<4.0.0,>=3.8.3->langchain_community) (6.1.0)\n", "Requirement already satisfied: propcache>=0.2.0 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from aiohttp<4.0.0,>=3.8.3->langchain_community) (0.2.1)\n", "Requirement already satisfied: yarl<2.0,>=1.17.0 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from aiohttp<4.0.0,>=3.8.3->langchain_community) (1.18.3)\n", "Requirement already satisfied: marshmallow<4.0.0,>=3.18.0 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from dataclasses-json<0.7,>=0.5.7->langchain_community) (3.26.1)\n", "Requirement already satisfied: typing-inspect<1,>=0.4.0 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from dataclasses-json<0.7,>=0.5.7->langchain_community) (0.9.0)\n", "Requirement already satisfied: click>=8.1.8 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from duckduckgo-search>=6.3.7->smolagents) (8.1.8)\n", "Requirement already satisfied: primp>=0.15.0 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from duckduckgo-search>=6.3.7->smolagents) (0.15.0)\n", "Requirement already satisfied: lxml>=5.3.0 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from duckduckgo-search>=6.3.7->smolagents) (5.3.1)\n", "Requirement already satisfied: filelock in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from huggingface-hub>=0.28.0->smolagents) (3.17.0)\n", "Requirement already satisfied: fsspec>=2023.5.0 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from huggingface-hub>=0.28.0->smolagents) (2024.9.0)\n", "Requirement already satisfied: packaging>=20.9 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from huggingface-hub>=0.28.0->smolagents) (24.2)\n", "Requirement already satisfied: tqdm>=4.42.1 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from huggingface-hub>=0.28.0->smolagents) (4.67.1)\n", "Requirement already satisfied: typing-extensions>=3.7.4.3 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from huggingface-hub>=0.28.0->smolagents) (4.12.2)\n", "Requirement already satisfied: MarkupSafe>=2.0 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from jinja2>=3.1.4->smolagents) (2.1.5)\n", "Requirement already satisfied: langchain-text-splitters<1.0.0,>=0.3.8 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from langchain<1.0.0,>=0.3.24->langchain_community) (0.3.8)\n", "Requirement already satisfied: pydantic<3.0.0,>=2.7.4 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from langchain<1.0.0,>=0.3.24->langchain_community) (2.10.6)\n", "Requirement already satisfied: jsonpatch<2.0,>=1.33 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from langchain-core<1.0.0,>=0.3.55->langchain_community) (1.33)\n", "Requirement already satisfied: httpx<1,>=0.23.0 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from langsmith<0.4,>=0.1.125->langchain_community) (0.28.1)\n", "Requirement already satisfied: orjson<4.0.0,>=3.9.14 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from langsmith<0.4,>=0.1.125->langchain_community) (3.10.15)\n", "Requirement already satisfied: requests-toolbelt<2.0.0,>=1.0.0 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from langsmith<0.4,>=0.1.125->langchain_community) (1.0.0)\n", "Requirement already satisfied: zstandard<0.24.0,>=0.23.0 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from langsmith<0.4,>=0.1.125->langchain_community) (0.23.0)\n", "Requirement already satisfied: importlib-metadata>=6.8.0 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from litellm>=1.60.2->smolagents[litellm]) (8.5.0)\n", "Requirement already satisfied: jsonschema<5.0.0,>=4.22.0 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from litellm>=1.60.2->smolagents[litellm]) (4.23.0)\n", "Requirement already satisfied: openai>=1.68.2 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from litellm>=1.60.2->smolagents[litellm]) (1.76.0)\n", "Requirement already satisfied: tiktoken>=0.7.0 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from litellm>=1.60.2->smolagents[litellm]) (0.8.0)\n", "Requirement already satisfied: tokenizers in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from litellm>=1.60.2->smolagents[litellm]) (0.21.0)\n", "Requirement already satisfied: beautifulsoup4<5,>=4.9 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from markdownify>=0.14.1->smolagents) (4.13.3)\n", "Requirement already satisfied: six<2,>=1.15 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from markdownify>=0.14.1->smolagents) (1.17.0)\n", "Requirement already satisfied: typing-inspection>=0.4.0 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from pydantic-settings<3.0.0,>=2.4.0->langchain_community) (0.4.0)\n", "Requirement already satisfied: charset-normalizer<4,>=2 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from requests>=2.32.3->smolagents) (3.4.1)\n", "Requirement already satisfied: idna<4,>=2.5 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from requests>=2.32.3->smolagents) (3.10)\n", "Requirement already satisfied: urllib3<3,>=1.21.1 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from requests>=2.32.3->smolagents) (2.3.0)\n", "Requirement already satisfied: certifi>=2017.4.17 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from requests>=2.32.3->smolagents) (2024.12.14)\n", "Requirement already satisfied: markdown-it-py>=2.2.0 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from rich>=13.9.4->smolagents) (3.0.0)\n", "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from rich>=13.9.4->smolagents) (2.19.1)\n", "Requirement already satisfied: greenlet!=0.4.17 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from SQLAlchemy<3,>=1.4->langchain_community) (3.1.1)\n", "Requirement already satisfied: soupsieve>1.2 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from beautifulsoup4<5,>=4.9->markdownify>=0.14.1->smolagents) (2.6)\n", "Requirement already satisfied: colorama in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from click>=8.1.8->duckduckgo-search>=6.3.7->smolagents) (0.4.6)\n", "Requirement already satisfied: anyio in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from httpx<1,>=0.23.0->langsmith<0.4,>=0.1.125->langchain_community) (4.8.0)\n", "Requirement already satisfied: httpcore==1.* in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from httpx<1,>=0.23.0->langsmith<0.4,>=0.1.125->langchain_community) (1.0.7)\n", "Requirement already satisfied: h11<0.15,>=0.13 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from httpcore==1.*->httpx<1,>=0.23.0->langsmith<0.4,>=0.1.125->langchain_community) (0.14.0)\n", "Requirement already satisfied: zipp>=3.20 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from importlib-metadata>=6.8.0->litellm>=1.60.2->smolagents[litellm]) (3.21.0)\n", "Requirement already satisfied: jsonpointer>=1.9 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from jsonpatch<2.0,>=1.33->langchain-core<1.0.0,>=0.3.55->langchain_community) (2.1)\n", "Requirement already satisfied: jsonschema-specifications>=2023.03.6 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from jsonschema<5.0.0,>=4.22.0->litellm>=1.60.2->smolagents[litellm]) (2024.10.1)\n", "Requirement already satisfied: referencing>=0.28.4 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from jsonschema<5.0.0,>=4.22.0->litellm>=1.60.2->smolagents[litellm]) (0.36.2)\n", "Requirement already satisfied: rpds-py>=0.7.1 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from jsonschema<5.0.0,>=4.22.0->litellm>=1.60.2->smolagents[litellm]) (0.22.3)\n", "Requirement already satisfied: mdurl~=0.1 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from markdown-it-py>=2.2.0->rich>=13.9.4->smolagents) (0.1.2)\n", "Requirement already satisfied: distro<2,>=1.7.0 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from openai>=1.68.2->litellm>=1.60.2->smolagents[litellm]) (1.9.0)\n", "Requirement already satisfied: jiter<1,>=0.4.0 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from openai>=1.68.2->litellm>=1.60.2->smolagents[litellm]) (0.8.2)\n", "Requirement already satisfied: sniffio in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from openai>=1.68.2->litellm>=1.60.2->smolagents[litellm]) (1.3.1)\n", "Requirement already satisfied: annotated-types>=0.6.0 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from pydantic<3.0.0,>=2.7.4->langchain<1.0.0,>=0.3.24->langchain_community) (0.7.0)\n", "Requirement already satisfied: pydantic-core==2.27.2 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from pydantic<3.0.0,>=2.7.4->langchain<1.0.0,>=0.3.24->langchain_community) (2.27.2)\n", "Requirement already satisfied: regex>=2022.1.18 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from tiktoken>=0.7.0->litellm>=1.60.2->smolagents[litellm]) (2024.11.6)\n", "Requirement already satisfied: mypy-extensions>=0.3.0 in c:\\users\\pulkitme\\appdata\\local\\miniconda3\\lib\\site-packages (from typing-inspect<1,>=0.4.0->dataclasses-json<0.7,>=0.5.7->langchain_community) (1.0.0)\n", "Downloading youtube_transcript_api-1.0.3-py3-none-any.whl (2.2 MB)\n", " ---------------------------------------- 0.0/2.2 MB ? eta -:--:--\n", " ---------------------------------------- 2.2/2.2 MB 15.3 MB/s eta 0:00:00\n", "Using cached defusedxml-0.7.1-py2.py3-none-any.whl (25 kB)\n", "Installing collected packages: defusedxml, youtube-transcript-api\n", "Successfully installed defusedxml-0.7.1 youtube-transcript-api-1.0.3\n" ] } ], "source": [ "!pip install smolagents smolagents[litellm] langchain_community youtube-transcript-api\n" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "from smolagents import Tool , CodeAgent, ToolCallingAgent, DuckDuckGoSearchTool, LiteLLMModel, PythonInterpreterTool, tool, DuckDuckGoSearchTool\n", "\n", "\n", "#client = genai.Client(api_key=os.getenv(\"API_KEY\"))\n", "model = LiteLLMModel(model_id=\"gemini/gemini-2.0-flash\",\n", " api_key=\"\")" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "from langchain_community.document_loaders import YoutubeLoader\n", "@tool\n", "def youtube_transcription_tool(url: str) -> str:\n", " \"\"\"\n", " This tool returns transcript of the youtube video.\n", "\n", " Args:\n", " url: youtube video url\n", " \"\"\"\n", " # Example list of catering services and their ratings\n", " loader = YoutubeLoader.from_youtube_url(\n", " url, add_video_info=False\n", ")\n", " \n", "\n", " return loader.load()[0].page_content" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
╭──────────────────────────────────────────────────── New run ────────────────────────────────────────────────────╮\n",
       "                                                                                                                 \n",
       " Examine the video at https://www.youtube.com/watch?v=1htKBjuUWec.                                               \n",
       "                                                                                                                 \n",
       " What does Teal'c say in response to the question \"\"Isn't that hot?                                              \n",
       "                                                                                                                 \n",
       "╰─ LiteLLMModel - gemini/gemini-2.0-flash-exp ────────────────────────────────────────────────────────────────────╯\n",
       "
\n" ], "text/plain": [ "\u001b[38;2;212;183;2m╭─\u001b[0m\u001b[38;2;212;183;2m───────────────────────────────────────────────────\u001b[0m\u001b[38;2;212;183;2m \u001b[0m\u001b[1;38;2;212;183;2mNew run\u001b[0m\u001b[38;2;212;183;2m \u001b[0m\u001b[38;2;212;183;2m───────────────────────────────────────────────────\u001b[0m\u001b[38;2;212;183;2m─╮\u001b[0m\n", "\u001b[38;2;212;183;2m│\u001b[0m \u001b[38;2;212;183;2m│\u001b[0m\n", "\u001b[38;2;212;183;2m│\u001b[0m \u001b[1mExamine the video at https://www.youtube.com/watch?v=1htKBjuUWec.\u001b[0m \u001b[38;2;212;183;2m│\u001b[0m\n", "\u001b[38;2;212;183;2m│\u001b[0m \u001b[38;2;212;183;2m│\u001b[0m\n", "\u001b[38;2;212;183;2m│\u001b[0m \u001b[1mWhat does Teal'c say in response to the question \"\"Isn't that hot?\u001b[0m \u001b[38;2;212;183;2m│\u001b[0m\n", "\u001b[38;2;212;183;2m│\u001b[0m \u001b[38;2;212;183;2m│\u001b[0m\n", "\u001b[38;2;212;183;2m╰─\u001b[0m\u001b[38;2;212;183;2m LiteLLMModel - gemini/gemini-2.0-flash-exp \u001b[0m\u001b[38;2;212;183;2m───────────────────────────────────────────────────────────────────\u001b[0m\u001b[38;2;212;183;2m─╯\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Step 1 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n",
       "
\n" ], "text/plain": [ "\u001b[38;2;212;183;2m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ \u001b[0m\u001b[1mStep \u001b[0m\u001b[1;36m1\u001b[0m\u001b[38;2;212;183;2m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
Output message of the LLM: ────────────────────────────────────────────────────────────────────────────────────────\n",
       "Thought: I need to get the transcript of the youtube video and then search for the phrase \"Isn't that hot?\". I will\n",
       "use the tools `youtube_transcription_tool` and then search for the answer in the transcript.                       \n",
       "Code:                                                                                                              \n",
       "```py                                                                                                              \n",
       "transcript = youtube_transcription_tool(url=\"https://www.youtube.com/watch?v=1htKBjuUWec\")                         \n",
       "print(transcript)                                                                                                  \n",
       "```<end_code>                                                                                                      \n",
       "
\n" ], "text/plain": [ "\u001b[1;3mOutput message of the LLM:\u001b[0m \u001b[38;2;212;183;2m────────────────────────────────────────────────────────────────────────────────────────\u001b[0m\n", "\u001b[38;2;230;237;243;48;2;13;17;23mThought:\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mI\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mneed\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mto\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mget\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mthe\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mtranscript\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mof\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mthe\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23myoutube\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mvideo\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mand\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mthen\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23msearch\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mfor\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mthe\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mphrase\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m\"Isn't\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mthat\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mhot?\".\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mI\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mwill\u001b[0m\n", "\u001b[38;2;230;237;243;48;2;13;17;23muse\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mthe\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mtools\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;165;214;255;48;2;13;17;23m`youtube_transcription_tool`\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mand\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mthen\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23msearch\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mfor\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mthe\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23manswer\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23min\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mthe\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mtranscript.\u001b[0m\u001b[48;2;13;17;23m \u001b[0m\n", "\u001b[38;2;230;237;243;48;2;13;17;23mCode:\u001b[0m\u001b[48;2;13;17;23m \u001b[0m\n", "\u001b[38;2;230;237;243;48;2;13;17;23m```py\u001b[0m\u001b[48;2;13;17;23m \u001b[0m\n", "\u001b[38;2;230;237;243;48;2;13;17;23mtranscript\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m=\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23myoutube_transcription_tool(url=\"https://www.youtube.com/watch?v=1htKBjuUWec\")\u001b[0m\u001b[48;2;13;17;23m \u001b[0m\n", "\u001b[38;2;230;237;243;48;2;13;17;23mprint(transcript)\u001b[0m\u001b[48;2;13;17;23m \u001b[0m\n", "\u001b[38;2;230;237;243;48;2;13;17;23m```\u001b[0m\u001b[48;2;13;17;23m \u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
Executing parsed code: ──────────────────────────────────────────────────────────────────────────────────────── \n",
       "  transcript = youtube_transcription_tool(url=\"https://www.youtube.com/watch?v=1htKBjuUWec\")                       \n",
       "  print(transcript)                                                                                                \n",
       " ───────────────────────────────────────────────────────────────────────────────────────────────────────────────── \n",
       "
\n" ], "text/plain": [ " ─ \u001b[1mExecuting parsed code:\u001b[0m ──────────────────────────────────────────────────────────────────────────────────────── \n", " \u001b[38;2;248;248;242;48;2;39;40;34mtranscript\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;255;70;137;48;2;39;40;34m=\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m \u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34myoutube_transcription_tool\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34murl\u001b[0m\u001b[38;2;255;70;137;48;2;39;40;34m=\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m\"\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mhttps://www.youtube.com/watch?v=1htKBjuUWec\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m\"\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m \n", " \u001b[38;2;248;248;242;48;2;39;40;34mprint\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34mtranscript\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m \n", " ───────────────────────────────────────────────────────────────────────────────────────────────────────────────── \n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
Execution logs:\n",
       "Wow this coffee's great I was just thinking that yeah is that cinnamon chicory tea oak [Music] isn't that hot \n",
       "extremely\n",
       "\n",
       "Out: None\n",
       "
\n" ], "text/plain": [ "\u001b[1mExecution logs:\u001b[0m\n", "Wow this coffee's great I was just thinking that yeah is that cinnamon chicory tea oak [Music] isn't that hot \n", "extremely\n", "\n", "Out: None\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
[Step 1: Duration 4.54 seconds| Input tokens: 2,290 | Output tokens: 90]\n",
       "
\n" ], "text/plain": [ "\u001b[2m[Step 1: Duration 4.54 seconds| Input tokens: 2,290 | Output tokens: 90]\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Step 2 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n",
       "
\n" ], "text/plain": [ "\u001b[38;2;212;183;2m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ \u001b[0m\u001b[1mStep \u001b[0m\u001b[1;36m2\u001b[0m\u001b[38;2;212;183;2m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
Output message of the LLM: ────────────────────────────────────────────────────────────────────────────────────────\n",
       "Thought: I have the transcript. Now I need to find Teal'c's response to \"Isn't that hot?\". Based on the transcript,\n",
       "Teal'c says \"extremely\" in response to the question \"Isn't that hot?\".                                             \n",
       "Code:                                                                                                              \n",
       "```py                                                                                                              \n",
       "final_answer(\"extremely\")                                                                                          \n",
       "```<end_code>                                                                                                      \n",
       "
\n" ], "text/plain": [ "\u001b[1;3mOutput message of the LLM:\u001b[0m \u001b[38;2;212;183;2m────────────────────────────────────────────────────────────────────────────────────────\u001b[0m\n", "\u001b[38;2;230;237;243;48;2;13;17;23mThought:\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mI\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mhave\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mthe\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mtranscript.\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mNow\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mI\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mneed\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mto\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mfind\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mTeal'c's\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mresponse\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mto\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m\"Isn't\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mthat\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mhot?\".\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mBased\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mon\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mthe\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mtranscript,\u001b[0m\n", "\u001b[38;2;230;237;243;48;2;13;17;23mTeal'c\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23msays\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m\"extremely\"\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23min\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mresponse\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mto\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mthe\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mquestion\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m\"Isn't\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mthat\u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23m \u001b[0m\u001b[38;2;230;237;243;48;2;13;17;23mhot?\".\u001b[0m\u001b[48;2;13;17;23m \u001b[0m\n", "\u001b[38;2;230;237;243;48;2;13;17;23mCode:\u001b[0m\u001b[48;2;13;17;23m \u001b[0m\n", "\u001b[38;2;230;237;243;48;2;13;17;23m```py\u001b[0m\u001b[48;2;13;17;23m \u001b[0m\n", "\u001b[38;2;230;237;243;48;2;13;17;23mfinal_answer(\"extremely\")\u001b[0m\u001b[48;2;13;17;23m \u001b[0m\n", "\u001b[38;2;230;237;243;48;2;13;17;23m```\u001b[0m\u001b[48;2;13;17;23m \u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
Executing parsed code: ──────────────────────────────────────────────────────────────────────────────────────── \n",
       "  final_answer(\"extremely\")                                                                                        \n",
       " ───────────────────────────────────────────────────────────────────────────────────────────────────────────────── \n",
       "
\n" ], "text/plain": [ " ─ \u001b[1mExecuting parsed code:\u001b[0m ──────────────────────────────────────────────────────────────────────────────────────── \n", " \u001b[38;2;248;248;242;48;2;39;40;34mfinal_answer\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m(\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m\"\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34mextremely\u001b[0m\u001b[38;2;230;219;116;48;2;39;40;34m\"\u001b[0m\u001b[38;2;248;248;242;48;2;39;40;34m)\u001b[0m\u001b[48;2;39;40;34m \u001b[0m \n", " ───────────────────────────────────────────────────────────────────────────────────────────────────────────────── \n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
Out - Final answer: extremely\n",
       "
\n" ], "text/plain": [ "\u001b[1;38;2;212;183;2mOut - Final answer: extremely\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
[Step 2: Duration 3.48 seconds| Input tokens: 4,791 | Output tokens: 155]\n",
       "
\n" ], "text/plain": [ "\u001b[2m[Step 2: Duration 3.48 seconds| Input tokens: 4,791 | Output tokens: 155]\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "agent = CodeAgent(\n", " tools=[DuckDuckGoSearchTool(), youtube_transcription_tool],\n", " model=model,\n", " #additional_authorized_imports=[\"helium\"],\n", " #step_callbacks=[save_screenshot],\n", " max_steps=20,\n", " verbosity_level=2,\n", " )\n", "answer = agent.run(\"\"\"Examine the video at https://www.youtube.com/watch?v=1htKBjuUWec.\n", "\n", "What does Teal'c say in response to the question \"\"Isn't that hot?\"\"\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "base", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.8" } }, "nbformat": 4, "nbformat_minor": 2 }