From 27d5bb3c54425dffba1e0c47ce2e3e579b72f797 Mon Sep 17 00:00:00 2001 From: anakin87 Date: Tue, 24 Sep 2024 15:56:06 +0200 Subject: [PATCH 1/5] tools notebook --- notebooks/tools_support.ipynb | 7941 +++++++++++++++++++++++++++++++++ 1 file changed, 7941 insertions(+) create mode 100644 notebooks/tools_support.ipynb diff --git a/notebooks/tools_support.ipynb b/notebooks/tools_support.ipynb new file mode 100644 index 0000000..66ce88d --- /dev/null +++ b/notebooks/tools_support.ipynb @@ -0,0 +1,7941 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "l68Urk97Wmut" + }, + "source": [ + "# 🛠️ Tools support\n", + "\n", + "\"Open\n", + "\n", + "In this notebook, we introduce the experimental features we've been developing for tool/function calling support in Haystack.\n", + "\n", + "*Experimental means that these features are accessible in `haystack_experimental`, are open to feedback, and are subject to change.*\n", + "\n", + "- We refactored the `ChatMessage` dataclass, to be more flexible and future-proof.\n", + "- We introduced some new dataclasses: `ToolCall`, `ToolCallResult`, and `Tool`.\n", + "- We added support for tools in the `OpenAIChatGenerator` (and more to come).\n", + "- We introduced the `ToolInvoker` component, to actually execute tool calls prepared by Language Models.\n", + "\n", + "We will first introduce the new features and then show three end-to-end examples:\n", + "- A basic assistant that can answer user questions by either using a weather tool or relying on its own knowledge.\n", + "- A refined version of the assistant that can process the tool's output further before presenting it to the user.\n", + "- A chat application that can use multiple tools, with Human-in-the-Loop interaction to gather additional input from the user when needed." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "OQiCGFf_Wmut" + }, + "outputs": [], + "source": [ + "! pip install haystack-ai \"sentence-transformers>=3.0.0\"" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "id": "RWhWDe39Wmuu" + }, + "outputs": [], + "source": [ + "import os\n", + "from getpass import getpass\n", + "from rich import print\n", + "\n", + "if \"OPENAI_API_KEY\" not in os.environ:\n", + " os.environ[\"OPENAI_API_KEY\"] = getpass(\"Enter OpenAI API key:\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "9kWoavAPWmuu" + }, + "source": [ + "## New experimental features\n", + "\n", + "### Refactored `ChatMessage` dataclass, `ToolCall`, and `ToolCallResult`\n", + "\n", + "The `ChatMessage` dataclass has been updated so that the `content` field is no longer just a string (`str`); it is now a list that can hold various types, including `TextContent`, `ToolCall`, and `ToolCallResult`.\n", + "\n", + "The class methods `from_user`, `from_system`, `from_assistant`, and `from_tool` (newly added) are the recommended ways to create `ChatMessage` instances.\n", + "\n", + "Additionally, we introduced:\n", + "- `ToolCall` dataclass: represents a tool call prepared by a Language Model.\n", + "- `ToolCallResult` dataclass: represents the result of a tool invocation.\n", + "\n", + "Let's see some examples." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 193 + }, + "id": "W-MYrvW2Wmuu", + "outputId": "988de318-dfae-4000-a052-3ffd0ab33d5d" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
ChatMessage(\n",
+              "    _role=<ChatRole.USER: 'user'>,\n",
+              "    _content=[TextContent(text='What is the capital of Australia?')],\n",
+              "    _meta={}\n",
+              ")\n",
+              "
\n" + ], + "text/plain": [ + "\u001b[1;35mChatMessage\u001b[0m\u001b[1m(\u001b[0m\n", + " \u001b[33m_role\u001b[0m=\u001b[1m<\u001b[0m\u001b[1;95mChatRole.USER:\u001b[0m\u001b[39m \u001b[0m\u001b[32m'user'\u001b[0m\u001b[1m>\u001b[0m,\n", + " \u001b[33m_content\u001b[0m=\u001b[1m[\u001b[0m\u001b[1;35mTextContent\u001b[0m\u001b[1m(\u001b[0m\u001b[33mtext\u001b[0m=\u001b[32m'What is the capital of Australia?'\u001b[0m\u001b[1m)\u001b[0m\u001b[1m]\u001b[0m,\n", + " \u001b[33m_meta\u001b[0m=\u001b[1m{\u001b[0m\u001b[1m}\u001b[0m\n", + "\u001b[1m)\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
What is the capital of Australia?\n",
+              "
\n" + ], + "text/plain": [ + "What is the capital of Australia?\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
['What is the capital of Australia?']\n",
+              "
\n" + ], + "text/plain": [ + "\u001b[1m[\u001b[0m\u001b[32m'What is the capital of Australia?'\u001b[0m\u001b[1m]\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
None\n",
+              "
\n" + ], + "text/plain": [ + "\u001b[3;35mNone\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
[]\n",
+              "
\n" + ], + "text/plain": [ + "\u001b[1m[\u001b[0m\u001b[1m]\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
None\n",
+              "
\n" + ], + "text/plain": [ + "\u001b[3;35mNone\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
[]\n",
+              "
\n" + ], + "text/plain": [ + "\u001b[1m[\u001b[0m\u001b[1m]\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from haystack_experimental.dataclasses import ChatMessage, ToolCall\n", + "\n", + "user_message = ChatMessage.from_user(\"What is the capital of Australia?\")\n", + "print(user_message)\n", + "\n", + "print(user_message.text)\n", + "print(user_message.texts)\n", + "\n", + "print(user_message.tool_call)\n", + "print(user_message.tool_calls)\n", + "\n", + "print(user_message.tool_call_result)\n", + "print(user_message.tool_call_results)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 193 + }, + "id": "LGGZXOCxWmuu", + "outputId": "c524043f-ff25-4743-b9cc-7adecae92dac" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
ChatMessage(\n",
+              "    _role=<ChatRole.ASSISTANT: 'assistant'>,\n",
+              "    _content=[TextContent(text='How can I assist you today?')],\n",
+              "    _meta={}\n",
+              ")\n",
+              "
\n" + ], + "text/plain": [ + "\u001b[1;35mChatMessage\u001b[0m\u001b[1m(\u001b[0m\n", + " \u001b[33m_role\u001b[0m=\u001b[1m<\u001b[0m\u001b[1;95mChatRole.ASSISTANT:\u001b[0m\u001b[39m \u001b[0m\u001b[32m'assistant'\u001b[0m\u001b[1m>\u001b[0m,\n", + " \u001b[33m_content\u001b[0m=\u001b[1m[\u001b[0m\u001b[1;35mTextContent\u001b[0m\u001b[1m(\u001b[0m\u001b[33mtext\u001b[0m=\u001b[32m'How can I assist you today?'\u001b[0m\u001b[1m)\u001b[0m\u001b[1m]\u001b[0m,\n", + " \u001b[33m_meta\u001b[0m=\u001b[1m{\u001b[0m\u001b[1m}\u001b[0m\n", + "\u001b[1m)\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
How can I assist you today?\n",
+              "
\n" + ], + "text/plain": [ + "How can I assist you today?\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
['How can I assist you today?']\n",
+              "
\n" + ], + "text/plain": [ + "\u001b[1m[\u001b[0m\u001b[32m'How can I assist you today?'\u001b[0m\u001b[1m]\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
None\n",
+              "
\n" + ], + "text/plain": [ + "\u001b[3;35mNone\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
[]\n",
+              "
\n" + ], + "text/plain": [ + "\u001b[1m[\u001b[0m\u001b[1m]\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
None\n",
+              "
\n" + ], + "text/plain": [ + "\u001b[3;35mNone\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
[]\n",
+              "
\n" + ], + "text/plain": [ + "\u001b[1m[\u001b[0m\u001b[1m]\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "assistant_message = ChatMessage.from_assistant(\"How can I assist you today?\")\n", + "print(assistant_message)\n", + "\n", + "print(assistant_message.text)\n", + "print(assistant_message.texts)\n", + "\n", + "print(assistant_message.tool_call)\n", + "print(assistant_message.tool_calls)\n", + "\n", + "print(assistant_message.tool_call_result)\n", + "print(assistant_message.tool_call_results)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 113 + }, + "id": "aPIxy2C_Wmuu", + "outputId": "453886a8-1c0a-4071-c681-350d9a09a845" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
None\n",
+              "
\n" + ], + "text/plain": [ + "\u001b[3;35mNone\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
[]\n",
+              "
\n" + ], + "text/plain": [ + "\u001b[1m[\u001b[0m\u001b[1m]\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
ToolCall(tool_name='weather_tool', arguments={'location': 'Rome'}, id=None)\n",
+              "
\n" + ], + "text/plain": [ + "\u001b[1;35mToolCall\u001b[0m\u001b[1m(\u001b[0m\u001b[33mtool_name\u001b[0m=\u001b[32m'weather_tool'\u001b[0m, \u001b[33marguments\u001b[0m=\u001b[1m{\u001b[0m\u001b[32m'location'\u001b[0m: \u001b[32m'Rome'\u001b[0m\u001b[1m}\u001b[0m, \u001b[33mid\u001b[0m=\u001b[3;35mNone\u001b[0m\u001b[1m)\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
[ToolCall(tool_name='weather_tool', arguments={'location': 'Rome'}, id=None)]\n",
+              "
\n" + ], + "text/plain": [ + "\u001b[1m[\u001b[0m\u001b[1;35mToolCall\u001b[0m\u001b[1m(\u001b[0m\u001b[33mtool_name\u001b[0m=\u001b[32m'weather_tool'\u001b[0m, \u001b[33marguments\u001b[0m=\u001b[1m{\u001b[0m\u001b[32m'location'\u001b[0m: \u001b[32m'Rome'\u001b[0m\u001b[1m}\u001b[0m, \u001b[33mid\u001b[0m=\u001b[3;35mNone\u001b[0m\u001b[1m)\u001b[0m\u001b[1m]\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
None\n",
+              "
\n" + ], + "text/plain": [ + "\u001b[3;35mNone\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
[]\n",
+              "
\n" + ], + "text/plain": [ + "\u001b[1m[\u001b[0m\u001b[1m]\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "tool_call = ToolCall(tool_name=\"weather_tool\", arguments={\"location\": \"Rome\"})\n", + "\n", + "assistant_message_w_tool_call = ChatMessage.from_assistant(tool_calls=[tool_call])\n", + "\n", + "print(assistant_message_w_tool_call.text)\n", + "print(assistant_message_w_tool_call.texts)\n", + "\n", + "print(assistant_message_w_tool_call.tool_call)\n", + "print(assistant_message_w_tool_call.tool_calls)\n", + "\n", + "print(assistant_message_w_tool_call.tool_call_result)\n", + "print(assistant_message_w_tool_call.tool_call_results)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 273 + }, + "id": "7ISZn9NwWmuu", + "outputId": "f8b9c790-26f6-4c33-c25e-5227589cabb9" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
None\n",
+              "
\n" + ], + "text/plain": [ + "\u001b[3;35mNone\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
[]\n",
+              "
\n" + ], + "text/plain": [ + "\u001b[1m[\u001b[0m\u001b[1m]\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
None\n",
+              "
\n" + ], + "text/plain": [ + "\u001b[3;35mNone\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
[]\n",
+              "
\n" + ], + "text/plain": [ + "\u001b[1m[\u001b[0m\u001b[1m]\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
ToolCallResult(\n",
+              "    result='temperature: 25°C',\n",
+              "    origin=ToolCall(tool_name='weather_tool', arguments={'location': 'Rome'}, id=None),\n",
+              "    error=False\n",
+              ")\n",
+              "
\n" + ], + "text/plain": [ + "\u001b[1;35mToolCallResult\u001b[0m\u001b[1m(\u001b[0m\n", + " \u001b[33mresult\u001b[0m=\u001b[32m'temperature: 25°C'\u001b[0m,\n", + " \u001b[33morigin\u001b[0m=\u001b[1;35mToolCall\u001b[0m\u001b[1m(\u001b[0m\u001b[33mtool_name\u001b[0m=\u001b[32m'weather_tool'\u001b[0m, \u001b[33marguments\u001b[0m=\u001b[1m{\u001b[0m\u001b[32m'location'\u001b[0m: \u001b[32m'Rome'\u001b[0m\u001b[1m}\u001b[0m, \u001b[33mid\u001b[0m=\u001b[3;35mNone\u001b[0m\u001b[1m)\u001b[0m,\n", + " \u001b[33merror\u001b[0m=\u001b[3;91mFalse\u001b[0m\n", + "\u001b[1m)\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
[\n",
+              "    ToolCallResult(\n",
+              "        result='temperature: 25°C',\n",
+              "        origin=ToolCall(tool_name='weather_tool', arguments={'location': 'Rome'}, id=None),\n",
+              "        error=False\n",
+              "    )\n",
+              "]\n",
+              "
\n" + ], + "text/plain": [ + "\u001b[1m[\u001b[0m\n", + " \u001b[1;35mToolCallResult\u001b[0m\u001b[1m(\u001b[0m\n", + " \u001b[33mresult\u001b[0m=\u001b[32m'temperature: 25°C'\u001b[0m,\n", + " \u001b[33morigin\u001b[0m=\u001b[1;35mToolCall\u001b[0m\u001b[1m(\u001b[0m\u001b[33mtool_name\u001b[0m=\u001b[32m'weather_tool'\u001b[0m, \u001b[33marguments\u001b[0m=\u001b[1m{\u001b[0m\u001b[32m'location'\u001b[0m: \u001b[32m'Rome'\u001b[0m\u001b[1m}\u001b[0m, \u001b[33mid\u001b[0m=\u001b[3;35mNone\u001b[0m\u001b[1m)\u001b[0m,\n", + " \u001b[33merror\u001b[0m=\u001b[3;91mFalse\u001b[0m\n", + " \u001b[1m)\u001b[0m\n", + "\u001b[1m]\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "tool_message = ChatMessage.from_tool(tool_result=\"temperature: 25°C\", origin=tool_call, error=False)\n", + "\n", + "print(tool_message.text)\n", + "print(tool_message.texts)\n", + "\n", + "print(tool_message.tool_call)\n", + "print(tool_message.tool_calls)\n", + "\n", + "print(tool_message.tool_call_result)\n", + "print(tool_message.tool_call_results)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "NjRJHu39Wmuv" + }, + "source": [ + "### `Tool` dataclass\n", + "\n", + "This represents a tool for which Language Models can prepare a call.\n", + "\n", + "It has the following attributes:\n", + "- `name`\n", + "- `description`\n", + "- `parameters`: a JSON schema describing the expected parameters\n", + "- `function`: a callable that is invoked when the tool is called\n", + "\n", + "Accurate definitions of the textual attributes such as `name` and `description` are important for the Language Model to correctly prepare the call.\n", + "\n", + "`Tool` exposes a `tool_spec` property, returning the tool specification to be used by Language Models.\n", + "\n", + "It also has an `invoke` method that executes the underlying function with the provided parameters.\n", + "\n", + "*Future enhancements may include automatic tool definition from function signatures.*\n", + "\n", + "Let's see an example." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 177 + }, + "id": "ohZ6cRO5Wmuv", + "outputId": "b3117203-1036-4730-ca07-bebeaed043fc" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
{\n",
+              "    'name': 'addition_tool',\n",
+              "    'description': 'This tool adds two numbers',\n",
+              "    'parameters': {\n",
+              "        'type': 'object',\n",
+              "        'properties': {'a': {'type': 'integer'}, 'b': {'type': 'integer'}},\n",
+              "        'required': ['a', 'b']\n",
+              "    }\n",
+              "}\n",
+              "
\n" + ], + "text/plain": [ + "\u001b[1m{\u001b[0m\n", + " \u001b[32m'name'\u001b[0m: \u001b[32m'addition_tool'\u001b[0m,\n", + " \u001b[32m'description'\u001b[0m: \u001b[32m'This tool adds two numbers'\u001b[0m,\n", + " \u001b[32m'parameters'\u001b[0m: \u001b[1m{\u001b[0m\n", + " \u001b[32m'type'\u001b[0m: \u001b[32m'object'\u001b[0m,\n", + " \u001b[32m'properties'\u001b[0m: \u001b[1m{\u001b[0m\u001b[32m'a'\u001b[0m: \u001b[1m{\u001b[0m\u001b[32m'type'\u001b[0m: \u001b[32m'integer'\u001b[0m\u001b[1m}\u001b[0m, \u001b[32m'b'\u001b[0m: \u001b[1m{\u001b[0m\u001b[32m'type'\u001b[0m: \u001b[32m'integer'\u001b[0m\u001b[1m}\u001b[0m\u001b[1m}\u001b[0m,\n", + " \u001b[32m'required'\u001b[0m: \u001b[1m[\u001b[0m\u001b[32m'a'\u001b[0m, \u001b[32m'b'\u001b[0m\u001b[1m]\u001b[0m\n", + " \u001b[1m}\u001b[0m\n", + "\u001b[1m}\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
25\n",
+              "
\n" + ], + "text/plain": [ + "\u001b[1;36m25\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from haystack_experimental.dataclasses import Tool\n", + "\n", + "def add(a: int, b: int) -> int:\n", + " return a + b\n", + "\n", + "\n", + "parameters = {\n", + " \"type\": \"object\",\n", + " \"properties\": {\n", + " \"a\": {\"type\": \"integer\"},\n", + " \"b\": {\"type\": \"integer\"}\n", + " },\n", + " \"required\": [\"a\", \"b\"]\n", + "}\n", + "\n", + "add_tool = Tool(name=\"addition_tool\",\n", + " description=\"This tool adds two numbers\",\n", + " parameters=parameters,\n", + " function=add)\n", + "\n", + "print(add_tool.tool_spec)\n", + "\n", + "print(add_tool.invoke(a=15, b=10))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "NY64Gv3wWmuv" + }, + "source": [ + "### Support for tools in `OpenAIChatGenerator`\n", + "\n", + "The OpenAIChatGenerator now supports tools. You can pass tools during initialization or via the run method, and it will use them to prepare tool calls when appropriate.\n", + "\n", + "*As we expand support for tools in other chat generators, you can already experiment with the OpenAIChatGenerator and OpenAI-compatible libraries like Ollama or llama.cpp.*\n", + "\n", + "Here are some examples." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 689 + }, + "id": "KqRr92gkWmuv", + "outputId": "2b84258c-b35c-436f-b4a2-f9b2a76c7ffb" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
{\n",
+              "    'replies': [\n",
+              "        ChatMessage(\n",
+              "            _role=<ChatRole.ASSISTANT: 'assistant'>,\n",
+              "            _content=[\n",
+              "                ToolCall(\n",
+              "                    tool_name='addition_tool',\n",
+              "                    arguments={'a': 10, 'b': 238},\n",
+              "                    id='call_rbYtbCdW0UbWMfy2x0sgF1Ap'\n",
+              "                )\n",
+              "            ],\n",
+              "            _meta={\n",
+              "                'model': 'gpt-4o-mini-2024-07-18',\n",
+              "                'index': 0,\n",
+              "                'finish_reason': 'tool_calls',\n",
+              "                'usage': {'completion_tokens': 19, 'prompt_tokens': 51, 'total_tokens': 70}\n",
+              "            }\n",
+              "        )\n",
+              "    ]\n",
+              "}\n",
+              "
\n" + ], + "text/plain": [ + "\u001b[1m{\u001b[0m\n", + " \u001b[32m'replies'\u001b[0m: \u001b[1m[\u001b[0m\n", + " \u001b[1;35mChatMessage\u001b[0m\u001b[1m(\u001b[0m\n", + " \u001b[33m_role\u001b[0m=\u001b[1m<\u001b[0m\u001b[1;95mChatRole.ASSISTANT:\u001b[0m\u001b[39m \u001b[0m\u001b[32m'assistant'\u001b[0m\u001b[1m>\u001b[0m,\n", + " \u001b[33m_content\u001b[0m=\u001b[1m[\u001b[0m\n", + " \u001b[1;35mToolCall\u001b[0m\u001b[1m(\u001b[0m\n", + " \u001b[33mtool_name\u001b[0m=\u001b[32m'addition_tool'\u001b[0m,\n", + " \u001b[33marguments\u001b[0m=\u001b[1m{\u001b[0m\u001b[32m'a'\u001b[0m: \u001b[1;36m10\u001b[0m, \u001b[32m'b'\u001b[0m: \u001b[1;36m238\u001b[0m\u001b[1m}\u001b[0m,\n", + " \u001b[33mid\u001b[0m=\u001b[32m'call_rbYtbCdW0UbWMfy2x0sgF1Ap'\u001b[0m\n", + " \u001b[1m)\u001b[0m\n", + " \u001b[1m]\u001b[0m,\n", + " \u001b[33m_meta\u001b[0m=\u001b[1m{\u001b[0m\n", + " \u001b[32m'model'\u001b[0m: \u001b[32m'gpt-4o-mini-2024-07-18'\u001b[0m,\n", + " \u001b[32m'index'\u001b[0m: \u001b[1;36m0\u001b[0m,\n", + " \u001b[32m'finish_reason'\u001b[0m: \u001b[32m'tool_calls'\u001b[0m,\n", + " \u001b[32m'usage'\u001b[0m: \u001b[1m{\u001b[0m\u001b[32m'completion_tokens'\u001b[0m: \u001b[1;36m19\u001b[0m, \u001b[32m'prompt_tokens'\u001b[0m: \u001b[1;36m51\u001b[0m, \u001b[32m'total_tokens'\u001b[0m: \u001b[1;36m70\u001b[0m\u001b[1m}\u001b[0m\n", + " \u001b[1m}\u001b[0m\n", + " \u001b[1m)\u001b[0m\n", + " \u001b[1m]\u001b[0m\n", + "\u001b[1m}\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
{\n",
+              "    'replies': [\n",
+              "        ChatMessage(\n",
+              "            _role=<ChatRole.ASSISTANT: 'assistant'>,\n",
+              "            _content=[\n",
+              "                TextContent(\n",
+              "                    text='Lions primarily inhabit grasslands, savannas, and open woodlands. They are generally \n",
+              "found in sub-Saharan Africa, where they prefer areas that provide ample prey and suitable shelter. Historically, \n",
+              "lions were also present in parts of Europe and Asia, but their range has significantly diminished, and they are now\n",
+              "largely confined to Africa. The presence of water sources and accessible prey are critical factors in their habitat\n",
+              "selection.'\n",
+              "                )\n",
+              "            ],\n",
+              "            _meta={\n",
+              "                'model': 'gpt-4o-mini-2024-07-18',\n",
+              "                'index': 0,\n",
+              "                'finish_reason': 'stop',\n",
+              "                'usage': {'completion_tokens': 84, 'prompt_tokens': 55, 'total_tokens': 139}\n",
+              "            }\n",
+              "        )\n",
+              "    ]\n",
+              "}\n",
+              "
\n" + ], + "text/plain": [ + "\u001b[1m{\u001b[0m\n", + " \u001b[32m'replies'\u001b[0m: \u001b[1m[\u001b[0m\n", + " \u001b[1;35mChatMessage\u001b[0m\u001b[1m(\u001b[0m\n", + " \u001b[33m_role\u001b[0m=\u001b[1m<\u001b[0m\u001b[1;95mChatRole.ASSISTANT:\u001b[0m\u001b[39m \u001b[0m\u001b[32m'assistant'\u001b[0m\u001b[1m>\u001b[0m,\n", + " \u001b[33m_content\u001b[0m=\u001b[1m[\u001b[0m\n", + " \u001b[1;35mTextContent\u001b[0m\u001b[1m(\u001b[0m\n", + " \u001b[33mtext\u001b[0m=\u001b[32m'Lions primarily inhabit grasslands, savannas, and open woodlands. They are generally \u001b[0m\n", + "\u001b[32mfound in sub-Saharan Africa, where they prefer areas that provide ample prey and suitable shelter. Historically, \u001b[0m\n", + "\u001b[32mlions were also present in parts of Europe and Asia, but their range has significantly diminished, and they are now\u001b[0m\n", + "\u001b[32mlargely confined to Africa. The presence of water sources and accessible prey are critical factors in their habitat\u001b[0m\n", + "\u001b[32mselection.'\u001b[0m\n", + " \u001b[1m)\u001b[0m\n", + " \u001b[1m]\u001b[0m,\n", + " \u001b[33m_meta\u001b[0m=\u001b[1m{\u001b[0m\n", + " \u001b[32m'model'\u001b[0m: \u001b[32m'gpt-4o-mini-2024-07-18'\u001b[0m,\n", + " \u001b[32m'index'\u001b[0m: \u001b[1;36m0\u001b[0m,\n", + " \u001b[32m'finish_reason'\u001b[0m: \u001b[32m'stop'\u001b[0m,\n", + " \u001b[32m'usage'\u001b[0m: \u001b[1m{\u001b[0m\u001b[32m'completion_tokens'\u001b[0m: \u001b[1;36m84\u001b[0m, \u001b[32m'prompt_tokens'\u001b[0m: \u001b[1;36m55\u001b[0m, \u001b[32m'total_tokens'\u001b[0m: \u001b[1;36m139\u001b[0m\u001b[1m}\u001b[0m\n", + " \u001b[1m}\u001b[0m\n", + " \u001b[1m)\u001b[0m\n", + " \u001b[1m]\u001b[0m\n", + "\u001b[1m}\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from haystack_experimental.components.generators.chat import OpenAIChatGenerator\n", + "\n", + "# Initialize the Chat Generator with the addition tool\n", + "chat_generator = OpenAIChatGenerator(model=\"gpt-4o-mini\", tools=[add_tool])\n", + "\n", + "res=chat_generator.run([ChatMessage.from_user(\"10 + 238\")])\n", + "print(res)\n", + "\n", + "res=chat_generator.run([ChatMessage.from_user(\"What is the habitat of a lion?\")])\n", + "print(res)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 561 + }, + "id": "XxMRtlP8Wmuv", + "outputId": "355f3e50-f52e-443b-eba1-8902e270fc38" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
{\n",
+              "    'replies': [\n",
+              "        ChatMessage(\n",
+              "            _role=<ChatRole.ASSISTANT: 'assistant'>,\n",
+              "            _content=[TextContent(text='10 + 238 = 248.')],\n",
+              "            _meta={\n",
+              "                'model': 'gpt-4o-mini-2024-07-18',\n",
+              "                'index': 0,\n",
+              "                'finish_reason': 'stop',\n",
+              "                'usage': {'completion_tokens': 8, 'prompt_tokens': 11, 'total_tokens': 19}\n",
+              "            }\n",
+              "        )\n",
+              "    ]\n",
+              "}\n",
+              "
\n" + ], + "text/plain": [ + "\u001b[1m{\u001b[0m\n", + " \u001b[32m'replies'\u001b[0m: \u001b[1m[\u001b[0m\n", + " \u001b[1;35mChatMessage\u001b[0m\u001b[1m(\u001b[0m\n", + " \u001b[33m_role\u001b[0m=\u001b[1m<\u001b[0m\u001b[1;95mChatRole.ASSISTANT:\u001b[0m\u001b[39m \u001b[0m\u001b[32m'assistant'\u001b[0m\u001b[1m>\u001b[0m,\n", + " \u001b[33m_content\u001b[0m=\u001b[1m[\u001b[0m\u001b[1;35mTextContent\u001b[0m\u001b[1m(\u001b[0m\u001b[33mtext\u001b[0m=\u001b[32m'10 + 238 = 248.'\u001b[0m\u001b[1m)\u001b[0m\u001b[1m]\u001b[0m,\n", + " \u001b[33m_meta\u001b[0m=\u001b[1m{\u001b[0m\n", + " \u001b[32m'model'\u001b[0m: \u001b[32m'gpt-4o-mini-2024-07-18'\u001b[0m,\n", + " \u001b[32m'index'\u001b[0m: \u001b[1;36m0\u001b[0m,\n", + " \u001b[32m'finish_reason'\u001b[0m: \u001b[32m'stop'\u001b[0m,\n", + " \u001b[32m'usage'\u001b[0m: \u001b[1m{\u001b[0m\u001b[32m'completion_tokens'\u001b[0m: \u001b[1;36m8\u001b[0m, \u001b[32m'prompt_tokens'\u001b[0m: \u001b[1;36m11\u001b[0m, \u001b[32m'total_tokens'\u001b[0m: \u001b[1;36m19\u001b[0m\u001b[1m}\u001b[0m\n", + " \u001b[1m}\u001b[0m\n", + " \u001b[1m)\u001b[0m\n", + " \u001b[1m]\u001b[0m\n", + "\u001b[1m}\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
{\n",
+              "    'replies': [\n",
+              "        ChatMessage(\n",
+              "            _role=<ChatRole.ASSISTANT: 'assistant'>,\n",
+              "            _content=[\n",
+              "                ToolCall(\n",
+              "                    tool_name='addition_tool',\n",
+              "                    arguments={'a': 10, 'b': 238},\n",
+              "                    id='call_GaVZnGszepASznKpYVe23mHf'\n",
+              "                )\n",
+              "            ],\n",
+              "            _meta={\n",
+              "                'model': 'gpt-4o-mini-2024-07-18',\n",
+              "                'index': 0,\n",
+              "                'finish_reason': 'tool_calls',\n",
+              "                'usage': {'completion_tokens': 19, 'prompt_tokens': 51, 'total_tokens': 70}\n",
+              "            }\n",
+              "        )\n",
+              "    ]\n",
+              "}\n",
+              "
\n" + ], + "text/plain": [ + "\u001b[1m{\u001b[0m\n", + " \u001b[32m'replies'\u001b[0m: \u001b[1m[\u001b[0m\n", + " \u001b[1;35mChatMessage\u001b[0m\u001b[1m(\u001b[0m\n", + " \u001b[33m_role\u001b[0m=\u001b[1m<\u001b[0m\u001b[1;95mChatRole.ASSISTANT:\u001b[0m\u001b[39m \u001b[0m\u001b[32m'assistant'\u001b[0m\u001b[1m>\u001b[0m,\n", + " \u001b[33m_content\u001b[0m=\u001b[1m[\u001b[0m\n", + " \u001b[1;35mToolCall\u001b[0m\u001b[1m(\u001b[0m\n", + " \u001b[33mtool_name\u001b[0m=\u001b[32m'addition_tool'\u001b[0m,\n", + " \u001b[33marguments\u001b[0m=\u001b[1m{\u001b[0m\u001b[32m'a'\u001b[0m: \u001b[1;36m10\u001b[0m, \u001b[32m'b'\u001b[0m: \u001b[1;36m238\u001b[0m\u001b[1m}\u001b[0m,\n", + " \u001b[33mid\u001b[0m=\u001b[32m'call_GaVZnGszepASznKpYVe23mHf'\u001b[0m\n", + " \u001b[1m)\u001b[0m\n", + " \u001b[1m]\u001b[0m,\n", + " \u001b[33m_meta\u001b[0m=\u001b[1m{\u001b[0m\n", + " \u001b[32m'model'\u001b[0m: \u001b[32m'gpt-4o-mini-2024-07-18'\u001b[0m,\n", + " \u001b[32m'index'\u001b[0m: \u001b[1;36m0\u001b[0m,\n", + " \u001b[32m'finish_reason'\u001b[0m: \u001b[32m'tool_calls'\u001b[0m,\n", + " \u001b[32m'usage'\u001b[0m: \u001b[1m{\u001b[0m\u001b[32m'completion_tokens'\u001b[0m: \u001b[1;36m19\u001b[0m, \u001b[32m'prompt_tokens'\u001b[0m: \u001b[1;36m51\u001b[0m, \u001b[32m'total_tokens'\u001b[0m: \u001b[1;36m70\u001b[0m\u001b[1m}\u001b[0m\n", + " \u001b[1m}\u001b[0m\n", + " \u001b[1m)\u001b[0m\n", + " \u001b[1m]\u001b[0m\n", + "\u001b[1m}\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Initialize the Chat Generator without tools\n", + "chat_generator = OpenAIChatGenerator(model=\"gpt-4o-mini\")\n", + "\n", + "res=chat_generator.run([ChatMessage.from_user(\"10 + 238\")])\n", + "print(res)\n", + "\n", + "# pass tools in the run method: in this case, the model will prepare a tool call\n", + "res_w_tool_call=chat_generator.run([ChatMessage.from_user(\"10 + 238\")], tools=[add_tool])\n", + "print(res_w_tool_call)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "tzIYHBt9Wmuv" + }, + "source": [ + "### `ToolInvoker` component\n", + "\n", + "This component is responsible for executing tool calls prepared by Language Models.\n", + "It expects a list of messages (which may include tool calls) and returns a list of tool messages, containing the results of the tool invocations." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 321 + }, + "id": "3HtViBRgWmuv", + "outputId": "0adc4b67-9cd0-44e7-b7e8-7dd8c68677cd" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
{\n",
+              "    'tool_messages': [\n",
+              "        ChatMessage(\n",
+              "            _role=<ChatRole.TOOL: 'tool'>,\n",
+              "            _content=[\n",
+              "                ToolCallResult(\n",
+              "                    result='248',\n",
+              "                    origin=ToolCall(\n",
+              "                        tool_name='addition_tool',\n",
+              "                        arguments={'a': 10, 'b': 238},\n",
+              "                        id='call_GaVZnGszepASznKpYVe23mHf'\n",
+              "                    ),\n",
+              "                    error=False\n",
+              "                )\n",
+              "            ],\n",
+              "            _meta={}\n",
+              "        )\n",
+              "    ]\n",
+              "}\n",
+              "
\n" + ], + "text/plain": [ + "\u001b[1m{\u001b[0m\n", + " \u001b[32m'tool_messages'\u001b[0m: \u001b[1m[\u001b[0m\n", + " \u001b[1;35mChatMessage\u001b[0m\u001b[1m(\u001b[0m\n", + " \u001b[33m_role\u001b[0m=\u001b[1m<\u001b[0m\u001b[1;95mChatRole.TOOL:\u001b[0m\u001b[39m \u001b[0m\u001b[32m'tool'\u001b[0m\u001b[1m>\u001b[0m,\n", + " \u001b[33m_content\u001b[0m=\u001b[1m[\u001b[0m\n", + " \u001b[1;35mToolCallResult\u001b[0m\u001b[1m(\u001b[0m\n", + " \u001b[33mresult\u001b[0m=\u001b[32m'248'\u001b[0m,\n", + " \u001b[33morigin\u001b[0m=\u001b[1;35mToolCall\u001b[0m\u001b[1m(\u001b[0m\n", + " \u001b[33mtool_name\u001b[0m=\u001b[32m'addition_tool'\u001b[0m,\n", + " \u001b[33marguments\u001b[0m=\u001b[1m{\u001b[0m\u001b[32m'a'\u001b[0m: \u001b[1;36m10\u001b[0m, \u001b[32m'b'\u001b[0m: \u001b[1;36m238\u001b[0m\u001b[1m}\u001b[0m,\n", + " \u001b[33mid\u001b[0m=\u001b[32m'call_GaVZnGszepASznKpYVe23mHf'\u001b[0m\n", + " \u001b[1m)\u001b[0m,\n", + " \u001b[33merror\u001b[0m=\u001b[3;91mFalse\u001b[0m\n", + " \u001b[1m)\u001b[0m\n", + " \u001b[1m]\u001b[0m,\n", + " \u001b[33m_meta\u001b[0m=\u001b[1m{\u001b[0m\u001b[1m}\u001b[0m\n", + " \u001b[1m)\u001b[0m\n", + " \u001b[1m]\u001b[0m\n", + "\u001b[1m}\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from haystack_experimental.components.tools import ToolInvoker\n", + "\n", + "# Initialize the Tool Invoker with the weather tool\n", + "tool_invoker = ToolInvoker(tools=[add_tool])\n", + "\n", + "# let's pass the messages from the previous example\n", + "print(tool_invoker.run(res_w_tool_call[\"replies\"]))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "adPU68g_Wmuv" + }, + "source": [ + "`ToolInvoker` has 2 additional init parameters:\n", + "- `raise_on_failure`: if True, the component raises an exception in case of errors (tool not found, tool invocation errors, tool result conversion errors). Otherwise, it returns a `ChatMessage` object with `error=True` and a description of the error in `result`.\n", + "- `convert_result_to_json_string`: if True, the tool invocation result will be converted to a string using `json.dumps`. If False, converts the result using `str` (default).\n", + "\n", + "Let's see how `raise_on_failure` works." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 297 + }, + "id": "P_P8qi9vWmuv", + "outputId": "7d211d68-f0b8-4ac9-eae0-82609a2960ec" + }, + "outputs": [ + { + "ename": "ToolNotFoundException", + "evalue": "Tool division_tool not found in the list of tools. Available tools are: dict_keys(['addition_tool']).", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mToolNotFoundException\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mtool_invoker\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mToolInvoker\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtools\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0madd_tool\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mraise_on_failure\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0mtool_invoker\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mChatMessage\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfrom_assistant\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtool_calls\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mtool_call\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/haystack_experimental/components/tools/tool_invoker.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m(self, messages)\u001b[0m\n\u001b[1;32m 194\u001b[0m \u001b[0mmsg\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_TOOL_NOT_FOUND\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtool_name\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtool_name\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mavailable_tools\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_tools_with_names\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkeys\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 195\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mraise_on_failure\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 196\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mToolNotFoundException\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmsg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 197\u001b[0m \u001b[0mtool_messages\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mChatMessage\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfrom_tool\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtool_result\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mmsg\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0morigin\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtool_call\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merror\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 198\u001b[0m \u001b[0;32mcontinue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mToolNotFoundException\u001b[0m: Tool division_tool not found in the list of tools. Available tools are: dict_keys(['addition_tool'])." + ] + } + ], + "source": [ + "tool_call = ToolCall(tool_name=\"division_tool\", arguments={\"c\": 1, \"d\": 2})\n", + "\n", + "tool_invoker = ToolInvoker(tools=[add_tool], raise_on_failure=True)\n", + "\n", + "tool_invoker.run([ChatMessage.from_assistant(tool_calls=[tool_call])])" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 273 + }, + "id": "r8aMvCy8Wmuv", + "outputId": "7ee295cb-b216-4838-9cce-149b8bfa33af" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
{\n",
+              "    'tool_messages': [\n",
+              "        ChatMessage(\n",
+              "            _role=<ChatRole.TOOL: 'tool'>,\n",
+              "            _content=[\n",
+              "                ToolCallResult(\n",
+              "                    result=\"Tool division_tool not found in the list of tools. Available tools are: \n",
+              "dict_keys(['addition_tool']).\",\n",
+              "                    origin=ToolCall(tool_name='division_tool', arguments={'c': 1, 'd': 2}, id=None),\n",
+              "                    error=True\n",
+              "                )\n",
+              "            ],\n",
+              "            _meta={}\n",
+              "        )\n",
+              "    ]\n",
+              "}\n",
+              "
\n" + ], + "text/plain": [ + "\u001b[1m{\u001b[0m\n", + " \u001b[32m'tool_messages'\u001b[0m: \u001b[1m[\u001b[0m\n", + " \u001b[1;35mChatMessage\u001b[0m\u001b[1m(\u001b[0m\n", + " \u001b[33m_role\u001b[0m=\u001b[1m<\u001b[0m\u001b[1;95mChatRole.TOOL:\u001b[0m\u001b[39m \u001b[0m\u001b[32m'tool'\u001b[0m\u001b[1m>\u001b[0m,\n", + " \u001b[33m_content\u001b[0m=\u001b[1m[\u001b[0m\n", + " \u001b[1;35mToolCallResult\u001b[0m\u001b[1m(\u001b[0m\n", + " \u001b[33mresult\u001b[0m=\u001b[32m\"Tool\u001b[0m\u001b[32m division_tool not found in the list of tools. Available tools are: \u001b[0m\n", + "\u001b[32mdict_keys\u001b[0m\u001b[32m(\u001b[0m\u001b[32m[\u001b[0m\u001b[32m'addition_tool'\u001b[0m\u001b[32m]\u001b[0m\u001b[32m)\u001b[0m\u001b[32m.\"\u001b[0m,\n", + " \u001b[33morigin\u001b[0m=\u001b[1;35mToolCall\u001b[0m\u001b[1m(\u001b[0m\u001b[33mtool_name\u001b[0m=\u001b[32m'division_tool'\u001b[0m, \u001b[33marguments\u001b[0m=\u001b[1m{\u001b[0m\u001b[32m'c'\u001b[0m: \u001b[1;36m1\u001b[0m, \u001b[32m'd'\u001b[0m: \u001b[1;36m2\u001b[0m\u001b[1m}\u001b[0m, \u001b[33mid\u001b[0m=\u001b[3;35mNone\u001b[0m\u001b[1m)\u001b[0m,\n", + " \u001b[33merror\u001b[0m=\u001b[3;92mTrue\u001b[0m\n", + " \u001b[1m)\u001b[0m\n", + " \u001b[1m]\u001b[0m,\n", + " \u001b[33m_meta\u001b[0m=\u001b[1m{\u001b[0m\u001b[1m}\u001b[0m\n", + " \u001b[1m)\u001b[0m\n", + " \u001b[1m]\u001b[0m\n", + "\u001b[1m}\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "tool_invoker = ToolInvoker(tools=[add_tool], raise_on_failure=False)\n", + "\n", + "print(tool_invoker.run([ChatMessage.from_assistant(tool_calls=[tool_call])]))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "NU6LxSvqWmuv" + }, + "source": [ + "## End-to-end examples\n", + "\n", + "In this section, we’ll put together everything we've covered so far into some practical, end-to-end examples.\n", + "\n", + "### A simple use case\n", + "\n", + "We'll start by creating a basic assistant that can answer user questions by either using a weather tool or relying on its own knowledge." + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "id": "DlB7Di6WWmuw" + }, + "outputs": [], + "source": [ + "# Define a dummy weather tool\n", + "\n", + "import random\n", + "\n", + "def dummy_weather(location: str):\n", + " return {\"temp\": f\"{random.randint(-10, 40)} °C\",\n", + " \"humidity\": f\"{random.randint(0, 100)}%\"}\n", + "\n", + "\n", + "weather_tool = Tool(\n", + " name=\"weather\",\n", + " description=\"A tool to get the weather\",\n", + " function=dummy_weather,\n", + " parameters={\n", + " \"type\": \"object\",\n", + " \"properties\": {\"location\": {\"type\": \"string\"}},\n", + " \"required\": [\"location\"],\n", + " },\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": { + "id": "aJJXXwWgWmuw" + }, + "outputs": [], + "source": [ + "from haystack_experimental.components.generators.chat import OpenAIChatGenerator\n", + "from haystack_experimental.components.tools import ToolInvoker\n", + "\n", + "# Initialize the Chat Generator with the weather tool\n", + "chat_generator = OpenAIChatGenerator(model=\"gpt-4o-mini\", tools=[weather_tool])\n", + "\n", + "# Initialize the Tool Invoker with the weather tool\n", + "tool_invoker = ToolInvoker(tools=[weather_tool])" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 129 + }, + "id": "eoSPOGxDWmuw", + "outputId": "89af262b-caf6-4392-879a-a3cd27af6934" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
assistant messages: [ChatMessage(_role=<ChatRole.ASSISTANT: 'assistant'>, _content=[ToolCall(tool_name='weather', \n",
+              "arguments={'location': 'Berlin'}, id='call_YEvCEAmlvc42JGXV84NU8wtV')], _meta={'model': 'gpt-4o-mini-2024-07-18', \n",
+              "'index': 0, 'finish_reason': 'tool_calls', 'usage': {'completion_tokens': 13, 'prompt_tokens': 50, 'total_tokens': \n",
+              "63}})]\n",
+              "
\n" + ], + "text/plain": [ + "assistant messages: \u001b[1m[\u001b[0m\u001b[1;35mChatMessage\u001b[0m\u001b[1m(\u001b[0m\u001b[33m_role\u001b[0m=\u001b[1m<\u001b[0m\u001b[1;95mChatRole.ASSISTANT:\u001b[0m\u001b[39m \u001b[0m\u001b[32m'assistant'\u001b[0m\u001b[1m>\u001b[0m, \u001b[33m_content\u001b[0m=\u001b[1m[\u001b[0m\u001b[1;35mToolCall\u001b[0m\u001b[1m(\u001b[0m\u001b[33mtool_name\u001b[0m=\u001b[32m'weather'\u001b[0m, \n", + "\u001b[33marguments\u001b[0m=\u001b[1m{\u001b[0m\u001b[32m'location'\u001b[0m: \u001b[32m'Berlin'\u001b[0m\u001b[1m}\u001b[0m, \u001b[33mid\u001b[0m=\u001b[32m'call_YEvCEAmlvc42JGXV84NU8wtV'\u001b[0m\u001b[1m)\u001b[0m\u001b[1m]\u001b[0m, \u001b[33m_meta\u001b[0m=\u001b[1m{\u001b[0m\u001b[32m'model'\u001b[0m: \u001b[32m'gpt-4o-mini-2024-07-18'\u001b[0m, \n", + "\u001b[32m'index'\u001b[0m: \u001b[1;36m0\u001b[0m, \u001b[32m'finish_reason'\u001b[0m: \u001b[32m'tool_calls'\u001b[0m, \u001b[32m'usage'\u001b[0m: \u001b[1m{\u001b[0m\u001b[32m'completion_tokens'\u001b[0m: \u001b[1;36m13\u001b[0m, \u001b[32m'prompt_tokens'\u001b[0m: \u001b[1;36m50\u001b[0m, \u001b[32m'total_tokens'\u001b[0m: \n", + "\u001b[1;36m63\u001b[0m\u001b[1m}\u001b[0m\u001b[1m}\u001b[0m\u001b[1m)\u001b[0m\u001b[1m]\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
tool messages: [ChatMessage(_role=<ChatRole.TOOL: 'tool'>, _content=[ToolCallResult(result=\"{'temp': '22 °C', \n",
+              "'humidity': '35%'}\", origin=ToolCall(tool_name='weather', arguments={'location': 'Berlin'}, \n",
+              "id='call_YEvCEAmlvc42JGXV84NU8wtV'), error=False)], _meta={})]\n",
+              "
\n" + ], + "text/plain": [ + "tool messages: \u001b[1m[\u001b[0m\u001b[1;35mChatMessage\u001b[0m\u001b[1m(\u001b[0m\u001b[33m_role\u001b[0m=\u001b[1m<\u001b[0m\u001b[1;95mChatRole.TOOL:\u001b[0m\u001b[39m \u001b[0m\u001b[32m'tool'\u001b[0m\u001b[1m>\u001b[0m, \u001b[33m_content\u001b[0m=\u001b[1m[\u001b[0m\u001b[1;35mToolCallResult\u001b[0m\u001b[1m(\u001b[0m\u001b[33mresult\u001b[0m=\u001b[32m\"\u001b[0m\u001b[32m{\u001b[0m\u001b[32m'temp': '22 °C', \u001b[0m\n", + "\u001b[32m'humidity': '35%'\u001b[0m\u001b[32m}\u001b[0m\u001b[32m\"\u001b[0m, \u001b[33morigin\u001b[0m=\u001b[1;35mToolCall\u001b[0m\u001b[1m(\u001b[0m\u001b[33mtool_name\u001b[0m=\u001b[32m'weather'\u001b[0m, \u001b[33marguments\u001b[0m=\u001b[1m{\u001b[0m\u001b[32m'location'\u001b[0m: \u001b[32m'Berlin'\u001b[0m\u001b[1m}\u001b[0m, \n", + "\u001b[33mid\u001b[0m=\u001b[32m'call_YEvCEAmlvc42JGXV84NU8wtV'\u001b[0m\u001b[1m)\u001b[0m, \u001b[33merror\u001b[0m=\u001b[3;91mFalse\u001b[0m\u001b[1m)\u001b[0m\u001b[1m]\u001b[0m, \u001b[33m_meta\u001b[0m=\u001b[1m{\u001b[0m\u001b[1m}\u001b[0m\u001b[1m)\u001b[0m\u001b[1m]\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "user_message = ChatMessage.from_user(\"What is the weather in Berlin?\")\n", + "\n", + "replies = chat_generator.run(messages=[user_message])[\"replies\"]\n", + "print(f\"assistant messages: {replies}\")\n", + "\n", + "# If the assistant message contains a tool call, run the tool invoker\n", + "if replies[0].tool_calls:\n", + " tool_messages = tool_invoker.run(messages=replies)[\"tool_messages\"]\n", + " print(f\"tool messages: {tool_messages}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "a7fBhi4fWmuw" + }, + "source": [ + "The assistant correctly identifies when a tool is needed to answer a question and calls the appropriate tool." + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 65 + }, + "id": "maAw8L9GWmuw", + "outputId": "e0cdce37-1aa1-49da-ddfc-9bd2247cbdd1" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
assistant messages: [ChatMessage(_role=<ChatRole.ASSISTANT: 'assistant'>, _content=[TextContent(text='The capital \n",
+              "of Australia is Canberra.')], _meta={'model': 'gpt-4o-mini-2024-07-18', 'index': 0, 'finish_reason': 'stop', \n",
+              "'usage': {'completion_tokens': 8, 'prompt_tokens': 50, 'total_tokens': 58}})]\n",
+              "
\n" + ], + "text/plain": [ + "assistant messages: \u001b[1m[\u001b[0m\u001b[1;35mChatMessage\u001b[0m\u001b[1m(\u001b[0m\u001b[33m_role\u001b[0m=\u001b[1m<\u001b[0m\u001b[1;95mChatRole.ASSISTANT:\u001b[0m\u001b[39m \u001b[0m\u001b[32m'assistant'\u001b[0m\u001b[1m>\u001b[0m, \u001b[33m_content\u001b[0m=\u001b[1m[\u001b[0m\u001b[1;35mTextContent\u001b[0m\u001b[1m(\u001b[0m\u001b[33mtext\u001b[0m=\u001b[32m'The capital \u001b[0m\n", + "\u001b[32mof Australia is Canberra.'\u001b[0m\u001b[1m)\u001b[0m\u001b[1m]\u001b[0m, \u001b[33m_meta\u001b[0m=\u001b[1m{\u001b[0m\u001b[32m'model'\u001b[0m: \u001b[32m'gpt-4o-mini-2024-07-18'\u001b[0m, \u001b[32m'index'\u001b[0m: \u001b[1;36m0\u001b[0m, \u001b[32m'finish_reason'\u001b[0m: \u001b[32m'stop'\u001b[0m, \n", + "\u001b[32m'usage'\u001b[0m: \u001b[1m{\u001b[0m\u001b[32m'completion_tokens'\u001b[0m: \u001b[1;36m8\u001b[0m, \u001b[32m'prompt_tokens'\u001b[0m: \u001b[1;36m50\u001b[0m, \u001b[32m'total_tokens'\u001b[0m: \u001b[1;36m58\u001b[0m\u001b[1m}\u001b[0m\u001b[1m}\u001b[0m\u001b[1m)\u001b[0m\u001b[1m]\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "user_message = ChatMessage.from_user(\"What is the capital of Australia?\")\n", + "\n", + "replies = chat_generator.run(messages=[user_message])[\"replies\"]\n", + "print(f\"assistant messages: {replies}\")\n", + "\n", + "# If the assistant message contains a tool call, run the tool invoker\n", + "if replies[0].tool_calls:\n", + " tool_messages = tool_invoker.run(messages=replies)[\"tool_messages\"]\n", + " print(f\"tool messages: {tool_messages}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "2HtiWzKLWmuw" + }, + "source": [ + "This time, the assistant uses its internal knowledge to answer the question." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "FOvhsD2NWmuw" + }, + "source": [ + "#### Using a Pipeline\n", + "\n", + "To achieve similar functionality using a Pipeline, we'll introduce a [Conditional Router](https://docs.haystack.deepset.ai/docs/conditionalrouter) that directs the flow based on whether the reply contain a tool call or not." + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 837 + }, + "id": "cWBA1-2HWmuw", + "outputId": "91bfc0dc-59fd-4fce-e1ae-8dfc74ab1109" + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/usr/local/lib/python3.10/dist-packages/haystack/components/routers/conditional_router.py:141: UserWarning: Unsafe mode is enabled. This allows execution of arbitrary code in the Jinja template. Use this only if you trust the source of the template.\n", + " warn(msg)\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from haystack import Pipeline\n", + "from haystack.components.routers import ConditionalRouter\n", + "from typing import List\n", + "\n", + "routes = [\n", + " {\n", + " \"condition\": \"{{replies[0].tool_calls | length > 0}}\",\n", + " \"output\": \"{{replies}}\",\n", + " \"output_name\": \"there_are_tool_calls\",\n", + " \"output_type\": List[ChatMessage],\n", + " },\n", + " {\n", + " \"condition\": \"{{replies[0].tool_calls | length == 0}}\",\n", + " \"output\": \"{{replies}}\",\n", + " \"output_name\": \"final_replies\",\n", + " \"output_type\": List[ChatMessage],\n", + " },\n", + "]\n", + "\n", + "tools_pipe = Pipeline()\n", + "tools_pipe.add_component(\"generator\", OpenAIChatGenerator(model=\"gpt-4o-mini\", tools=[weather_tool]))\n", + "tools_pipe.add_component(\"router\", ConditionalRouter(routes, unsafe=True))\n", + "tools_pipe.add_component(\"tool_invoker\", ToolInvoker(tools=[weather_tool]))\n", + "\n", + "\n", + "tools_pipe.connect(\"generator.replies\", \"router\")\n", + "tools_pipe.connect(\"router.there_are_tool_calls\", \"tool_invoker\")\n", + "\n", + "tools_pipe.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 625 + }, + "id": "VS39Tv_pWmuw", + "outputId": "a65e74a5-d455-458e-c335-caa08b3ccd41" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
{\n",
+              "    'router': {\n",
+              "        'final_replies': [\n",
+              "            ChatMessage(\n",
+              "                _role=<ChatRole.ASSISTANT: 'assistant'>,\n",
+              "                _content=[TextContent(text='The capital of Australia is Canberra.')],\n",
+              "                _meta={\n",
+              "                    'model': 'gpt-4o-mini-2024-07-18',\n",
+              "                    'index': 0,\n",
+              "                    'finish_reason': 'stop',\n",
+              "                    'usage': {'completion_tokens': 8, 'prompt_tokens': 50, 'total_tokens': 58}\n",
+              "                }\n",
+              "            )\n",
+              "        ]\n",
+              "    }\n",
+              "}\n",
+              "
\n" + ], + "text/plain": [ + "\u001b[1m{\u001b[0m\n", + " \u001b[32m'router'\u001b[0m: \u001b[1m{\u001b[0m\n", + " \u001b[32m'final_replies'\u001b[0m: \u001b[1m[\u001b[0m\n", + " \u001b[1;35mChatMessage\u001b[0m\u001b[1m(\u001b[0m\n", + " \u001b[33m_role\u001b[0m=\u001b[1m<\u001b[0m\u001b[1;95mChatRole.ASSISTANT:\u001b[0m\u001b[39m \u001b[0m\u001b[32m'assistant'\u001b[0m\u001b[1m>\u001b[0m,\n", + " \u001b[33m_content\u001b[0m=\u001b[1m[\u001b[0m\u001b[1;35mTextContent\u001b[0m\u001b[1m(\u001b[0m\u001b[33mtext\u001b[0m=\u001b[32m'The capital of Australia is Canberra.'\u001b[0m\u001b[1m)\u001b[0m\u001b[1m]\u001b[0m,\n", + " \u001b[33m_meta\u001b[0m=\u001b[1m{\u001b[0m\n", + " \u001b[32m'model'\u001b[0m: \u001b[32m'gpt-4o-mini-2024-07-18'\u001b[0m,\n", + " \u001b[32m'index'\u001b[0m: \u001b[1;36m0\u001b[0m,\n", + " \u001b[32m'finish_reason'\u001b[0m: \u001b[32m'stop'\u001b[0m,\n", + " \u001b[32m'usage'\u001b[0m: \u001b[1m{\u001b[0m\u001b[32m'completion_tokens'\u001b[0m: \u001b[1;36m8\u001b[0m, \u001b[32m'prompt_tokens'\u001b[0m: \u001b[1;36m50\u001b[0m, \u001b[32m'total_tokens'\u001b[0m: \u001b[1;36m58\u001b[0m\u001b[1m}\u001b[0m\n", + " \u001b[1m}\u001b[0m\n", + " \u001b[1m)\u001b[0m\n", + " \u001b[1m]\u001b[0m\n", + " \u001b[1m}\u001b[0m\n", + "\u001b[1m}\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
--------------------------------------------------\n",
+              "
\n" + ], + "text/plain": [ + "--------------------------------------------------\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
{\n",
+              "    'tool_invoker': {\n",
+              "        'tool_messages': [\n",
+              "            ChatMessage(\n",
+              "                _role=<ChatRole.TOOL: 'tool'>,\n",
+              "                _content=[\n",
+              "                    ToolCallResult(\n",
+              "                        result=\"{'temp': '7 °C', 'humidity': '46%'}\",\n",
+              "                        origin=ToolCall(\n",
+              "                            tool_name='weather',\n",
+              "                            arguments={'location': 'Berlin'},\n",
+              "                            id='call_q3KA4O62IBLfOljuUKVPzdxy'\n",
+              "                        ),\n",
+              "                        error=False\n",
+              "                    )\n",
+              "                ],\n",
+              "                _meta={}\n",
+              "            )\n",
+              "        ]\n",
+              "    }\n",
+              "}\n",
+              "
\n" + ], + "text/plain": [ + "\u001b[1m{\u001b[0m\n", + " \u001b[32m'tool_invoker'\u001b[0m: \u001b[1m{\u001b[0m\n", + " \u001b[32m'tool_messages'\u001b[0m: \u001b[1m[\u001b[0m\n", + " \u001b[1;35mChatMessage\u001b[0m\u001b[1m(\u001b[0m\n", + " \u001b[33m_role\u001b[0m=\u001b[1m<\u001b[0m\u001b[1;95mChatRole.TOOL:\u001b[0m\u001b[39m \u001b[0m\u001b[32m'tool'\u001b[0m\u001b[1m>\u001b[0m,\n", + " \u001b[33m_content\u001b[0m=\u001b[1m[\u001b[0m\n", + " \u001b[1;35mToolCallResult\u001b[0m\u001b[1m(\u001b[0m\n", + " \u001b[33mresult\u001b[0m=\u001b[32m\"\u001b[0m\u001b[32m{\u001b[0m\u001b[32m'temp': '7 °C', 'humidity': '46%'\u001b[0m\u001b[32m}\u001b[0m\u001b[32m\"\u001b[0m,\n", + " \u001b[33morigin\u001b[0m=\u001b[1;35mToolCall\u001b[0m\u001b[1m(\u001b[0m\n", + " \u001b[33mtool_name\u001b[0m=\u001b[32m'weather'\u001b[0m,\n", + " \u001b[33marguments\u001b[0m=\u001b[1m{\u001b[0m\u001b[32m'location'\u001b[0m: \u001b[32m'Berlin'\u001b[0m\u001b[1m}\u001b[0m,\n", + " \u001b[33mid\u001b[0m=\u001b[32m'call_q3KA4O62IBLfOljuUKVPzdxy'\u001b[0m\n", + " \u001b[1m)\u001b[0m,\n", + " \u001b[33merror\u001b[0m=\u001b[3;91mFalse\u001b[0m\n", + " \u001b[1m)\u001b[0m\n", + " \u001b[1m]\u001b[0m,\n", + " \u001b[33m_meta\u001b[0m=\u001b[1m{\u001b[0m\u001b[1m}\u001b[0m\n", + " \u001b[1m)\u001b[0m\n", + " \u001b[1m]\u001b[0m\n", + " \u001b[1m}\u001b[0m\n", + "\u001b[1m}\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "res=tools_pipe.run({\"messages\":[ChatMessage.from_user(\"What is the capital of Australia?\")]})\n", + "print(res)\n", + "\n", + "print(\"-\"*50)\n", + "\n", + "res=tools_pipe.run({\"messages\":[ChatMessage.from_user(\"What is the weather in Berlin?\")]})\n", + "print(res)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "1Y7Ny1D1Wmuw" + }, + "source": [ + "In this example, in case of tool calls, we end up with the raw tool invocation result, wrapped in a `ChatMessage` from tool role.\n", + "In the next example, we will see how to process this result further." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "OLjPIB--Wmuw" + }, + "source": [ + "### Processing tool results with the Chat Generator\n", + "\n", + "Depending on our use case and the tools involved, we might want to further process the tool's output before presenting it to the user. This can make the response more user-friendly.\n", + "\n", + "In the next example, we'll pass the tool's response back to the Chat Generatpr for final processing." + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 193 + }, + "id": "wXr0dUi8Wmuw", + "outputId": "550e4ddf-e044-40c7-c634-33f3df11a33b" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
assistant messages: [ChatMessage(_role=<ChatRole.ASSISTANT: 'assistant'>, _content=[ToolCall(tool_name='weather', \n",
+              "arguments={'location': 'Berlin'}, id='call_jHX0RCDHRKX7h8V9RrNs6apy')], _meta={'model': 'gpt-4o-mini-2024-07-18', \n",
+              "'index': 0, 'finish_reason': 'tool_calls', 'usage': {'completion_tokens': 13, 'prompt_tokens': 50, 'total_tokens': \n",
+              "63}})]\n",
+              "
\n" + ], + "text/plain": [ + "assistant messages: \u001b[1m[\u001b[0m\u001b[1;35mChatMessage\u001b[0m\u001b[1m(\u001b[0m\u001b[33m_role\u001b[0m=\u001b[1m<\u001b[0m\u001b[1;95mChatRole.ASSISTANT:\u001b[0m\u001b[39m \u001b[0m\u001b[32m'assistant'\u001b[0m\u001b[1m>\u001b[0m, \u001b[33m_content\u001b[0m=\u001b[1m[\u001b[0m\u001b[1;35mToolCall\u001b[0m\u001b[1m(\u001b[0m\u001b[33mtool_name\u001b[0m=\u001b[32m'weather'\u001b[0m, \n", + "\u001b[33marguments\u001b[0m=\u001b[1m{\u001b[0m\u001b[32m'location'\u001b[0m: \u001b[32m'Berlin'\u001b[0m\u001b[1m}\u001b[0m, \u001b[33mid\u001b[0m=\u001b[32m'call_jHX0RCDHRKX7h8V9RrNs6apy'\u001b[0m\u001b[1m)\u001b[0m\u001b[1m]\u001b[0m, \u001b[33m_meta\u001b[0m=\u001b[1m{\u001b[0m\u001b[32m'model'\u001b[0m: \u001b[32m'gpt-4o-mini-2024-07-18'\u001b[0m, \n", + "\u001b[32m'index'\u001b[0m: \u001b[1;36m0\u001b[0m, \u001b[32m'finish_reason'\u001b[0m: \u001b[32m'tool_calls'\u001b[0m, \u001b[32m'usage'\u001b[0m: \u001b[1m{\u001b[0m\u001b[32m'completion_tokens'\u001b[0m: \u001b[1;36m13\u001b[0m, \u001b[32m'prompt_tokens'\u001b[0m: \u001b[1;36m50\u001b[0m, \u001b[32m'total_tokens'\u001b[0m: \n", + "\u001b[1;36m63\u001b[0m\u001b[1m}\u001b[0m\u001b[1m}\u001b[0m\u001b[1m)\u001b[0m\u001b[1m]\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
tool messages: [ChatMessage(_role=<ChatRole.TOOL: 'tool'>, _content=[ToolCallResult(result=\"{'temp': '2 °C', \n",
+              "'humidity': '15%'}\", origin=ToolCall(tool_name='weather', arguments={'location': 'Berlin'}, \n",
+              "id='call_jHX0RCDHRKX7h8V9RrNs6apy'), error=False)], _meta={})]\n",
+              "
\n" + ], + "text/plain": [ + "tool messages: \u001b[1m[\u001b[0m\u001b[1;35mChatMessage\u001b[0m\u001b[1m(\u001b[0m\u001b[33m_role\u001b[0m=\u001b[1m<\u001b[0m\u001b[1;95mChatRole.TOOL:\u001b[0m\u001b[39m \u001b[0m\u001b[32m'tool'\u001b[0m\u001b[1m>\u001b[0m, \u001b[33m_content\u001b[0m=\u001b[1m[\u001b[0m\u001b[1;35mToolCallResult\u001b[0m\u001b[1m(\u001b[0m\u001b[33mresult\u001b[0m=\u001b[32m\"\u001b[0m\u001b[32m{\u001b[0m\u001b[32m'temp': '2 °C', \u001b[0m\n", + "\u001b[32m'humidity': '15%'\u001b[0m\u001b[32m}\u001b[0m\u001b[32m\"\u001b[0m, \u001b[33morigin\u001b[0m=\u001b[1;35mToolCall\u001b[0m\u001b[1m(\u001b[0m\u001b[33mtool_name\u001b[0m=\u001b[32m'weather'\u001b[0m, \u001b[33marguments\u001b[0m=\u001b[1m{\u001b[0m\u001b[32m'location'\u001b[0m: \u001b[32m'Berlin'\u001b[0m\u001b[1m}\u001b[0m, \n", + "\u001b[33mid\u001b[0m=\u001b[32m'call_jHX0RCDHRKX7h8V9RrNs6apy'\u001b[0m\u001b[1m)\u001b[0m, \u001b[33merror\u001b[0m=\u001b[3;91mFalse\u001b[0m\u001b[1m)\u001b[0m\u001b[1m]\u001b[0m, \u001b[33m_meta\u001b[0m=\u001b[1m{\u001b[0m\u001b[1m}\u001b[0m\u001b[1m)\u001b[0m\u001b[1m]\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
final assistant messages: [ChatMessage(_role=<ChatRole.ASSISTANT: 'assistant'>, _content=[TextContent(text='The \n",
+              "current weather in Berlin is 2 °C with a humidity level of 15%.')], _meta={'model': 'gpt-4o-mini-2024-07-18', \n",
+              "'index': 0, 'finish_reason': 'stop', 'usage': {'completion_tokens': 19, 'prompt_tokens': 85, 'total_tokens': \n",
+              "104}})]\n",
+              "
\n" + ], + "text/plain": [ + "final assistant messages: \u001b[1m[\u001b[0m\u001b[1;35mChatMessage\u001b[0m\u001b[1m(\u001b[0m\u001b[33m_role\u001b[0m=\u001b[1m<\u001b[0m\u001b[1;95mChatRole.ASSISTANT:\u001b[0m\u001b[39m \u001b[0m\u001b[32m'assistant'\u001b[0m\u001b[1m>\u001b[0m, \u001b[33m_content\u001b[0m=\u001b[1m[\u001b[0m\u001b[1;35mTextContent\u001b[0m\u001b[1m(\u001b[0m\u001b[33mtext\u001b[0m=\u001b[32m'The \u001b[0m\n", + "\u001b[32mcurrent weather in Berlin is 2 °C with a humidity level of 15%.'\u001b[0m\u001b[1m)\u001b[0m\u001b[1m]\u001b[0m, \u001b[33m_meta\u001b[0m=\u001b[1m{\u001b[0m\u001b[32m'model'\u001b[0m: \u001b[32m'gpt-4o-mini-2024-07-18'\u001b[0m, \n", + "\u001b[32m'index'\u001b[0m: \u001b[1;36m0\u001b[0m, \u001b[32m'finish_reason'\u001b[0m: \u001b[32m'stop'\u001b[0m, \u001b[32m'usage'\u001b[0m: \u001b[1m{\u001b[0m\u001b[32m'completion_tokens'\u001b[0m: \u001b[1;36m19\u001b[0m, \u001b[32m'prompt_tokens'\u001b[0m: \u001b[1;36m85\u001b[0m, \u001b[32m'total_tokens'\u001b[0m: \n", + "\u001b[1;36m104\u001b[0m\u001b[1m}\u001b[0m\u001b[1m}\u001b[0m\u001b[1m)\u001b[0m\u001b[1m]\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "chat_generator = OpenAIChatGenerator(model=\"gpt-4o-mini\", tools=[weather_tool])\n", + "tool_invoker = ToolInvoker(tools=[weather_tool])\n", + "\n", + "user_message = ChatMessage.from_user(\"What is the weather in Berlin?\")\n", + "\n", + "replies = chat_generator.run(messages=[user_message])[\"replies\"]\n", + "print(f\"assistant messages: {replies}\")\n", + "\n", + "if replies[0].tool_calls:\n", + "\n", + " tool_messages = tool_invoker.run(messages=replies)[\"tool_messages\"]\n", + " print(f\"tool messages: {tool_messages}\")\n", + "\n", + " # we pass all the messages to the Chat Generator\n", + " messages = [user_message] + replies + tool_messages\n", + " final_replies = chat_generator.run(messages=messages)[\"replies\"]\n", + " print(f\"final assistant messages: {final_replies}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "IbChxI_-Wmuw" + }, + "source": [ + "The assistant refines the tool's output to create a more human-readable response." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "_AiaaU-sWmuw" + }, + "source": [ + "#### Using a Pipeline\n", + "\n", + "The Pipeline is similar to the previous one.\n", + "\n", + "We introduce a custom component, `MessageCollector`, to temporarily store the messages." + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "id": "MptQ6KFSWmux" + }, + "outputs": [], + "source": [ + "from typing import Any, Dict, List\n", + "from haystack import component\n", + "from haystack.core.component.types import Variadic\n", + "\n", + "@component()\n", + "class MessageCollector:\n", + " def __init__(self):\n", + " self._messages = []\n", + "\n", + " @component.output_types(messages=List[ChatMessage])\n", + " def run(self, messages: Variadic[List[ChatMessage]]) -> Dict[str, Any]:\n", + "\n", + " self._messages.extend([msg for inner in messages for msg in inner])\n", + " return {\"messages\": self._messages}\n", + "\n", + " def clear(self):\n", + " self._messages = []\n", + "\n", + "message_collector = MessageCollector()" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "id": "OqHeSzOfWmux" + }, + "outputs": [], + "source": [ + "routes = [\n", + " {\n", + " \"condition\": \"{{replies[0].tool_calls | length > 0}}\",\n", + " \"output\": \"{{replies}}\",\n", + " \"output_name\": \"there_are_tool_calls\",\n", + " \"output_type\": List[ChatMessage],\n", + " },\n", + " {\n", + " \"condition\": \"{{replies[0].tool_calls | length == 0}}\",\n", + " \"output\": \"{{replies}}\",\n", + " \"output_name\": \"final_replies\",\n", + " \"output_type\": List[ChatMessage],\n", + " },\n", + "]" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 720 + }, + "id": "jx_OStv1Wmux", + "outputId": "804e9f30-4bf1-44d4-cac2-f13851e77f68" + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAtkAAAK/CAYAAAC84NHZAAAAAXNSR0IArs4c6QAAIABJREFUeJzs3Xd4FNX/9vH3bEIoCR2khBBCDxBKIBQpUhSpKgIKgnxDIAuogAXhZ0NEEUUpAlKS0JsKKooCShEbChI6aRCqFGmB0FL3PH+42YcoKGhwKffrunLBTv3MDOzee3LmDIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiMg1sNxdgLjPtGnT+gOl3F2HiFzV0f79+09zdxEiInL9PN1dgLiPl5fXMD8/v3J58+Z1dyki8geXLl3i119/3QcoZIuI3IIUsu9wFSpUoFChQu4uQ0T+4MyZM/z666/uLkNERP4hm7sLEBERERG53Shki4iIiIjkMIVsEREREZEcppAtIiIiIpLDFLJFRERERHKYQraIiIiISA5TyBYRERERyWEK2SLylzZt2sSLL77IDz/84Jq2dOlSnnzySZKSktxam4iIyM1KIVtE/tLcuXOZNm0ax48fd017/fXXWbRoEWlpaTm6r7S0ND777DNSUlJydLsiIiL/NT3xUURuGvfccw/x8fHs27ePPHnyuLscERGRf0wt2SI3gW3btpGenu7uMtzu3Llz7i5BREQkRyhkyy2tXLlydO/enX79+lG+fHkqV65Mjx49WLRoEe3atcPf35/atWszbdq0bOtlZGTwzjvvULt2bUqWLElwcDDvvPMOGRkZAKSmpvJ///d/BAYG4ufnR4sWLVixYsXfzsPZlaJGjRqUKFGCqlWr8tRTT3H69GnX/MOHDxMeHk7lypUpW7YsXbp04YEHHqBv376uZbZv306XLl3w8/PD39+frl27sn379us+P5mZmUyePJm7776b0qVLU6NGDQYNGsTJkycBMMYwefJk6tWrR8mSJQkKCmLEiBGkpqZe975OnDjBoEGDqFSpEqVKlaJFixYsXbr0muupW7cuR44cASAgIIAiRYrw0UcfudZdtWoV9957L6VKlaJChQr07duXw4cPu+b37NmTIkWKMGzYMBo1akTJkiXp3LnzdR+HiIhITlDIllveV199xXfffUfHjh3x8vJixYoVPPnkk5w7d44HHniA06dP8+KLL/LVV1+BM1iGhYUxevRoLl26RL169UhOTmb06NE88cQTAIwdO5aIiAi8vLxo0aIFp0+fdvUT/qt5AKdPn6Zo0aI0aNAAh8PBwoULeeqppwC4ePEiDz/8MB9//DEFCxakatWqrF27lnPnztG+fXsAfvnlF9q2bcvatWupUqUK5cuXZ82aNbRr146dO3de83kxxtC7d2+GDx/OwYMHqVmzJl5eXnz22WdYlgXAyy+/zPDhwzl58iSNGzcmPT2diRMnZgv81yIpKYk2bdowf/58ChYsSJ06dYiLiyMsLIy5c+deUz33338/efPmBaBjx4506tSJsmXLAvDFF1/QvXt3tm/fTv369SlWrBiffPIJ7du3Jzk5OVstkZGRlC5dmrZt2xIaGnpdxyEiIpJT1CdbbgvLly8nICCATZs20bp1a4oVK8bKlSvx9vamTp06DBkyhBUrVnD//fezYsUKvvjiC2rWrMny5cvJly8f586do1WrVixZsoSBAwcSExMDwAsvvEC3bt1IT0/HGAPwl/MAxo0b5wqxFy5coEGDBnz99decO3eO6Ohodu/eTXBwMF9//TU2m40XXniB6dOnk5iYCMCQIUO4dOkSUVFRPPzwwwDMmTOHZ555hrfeeov58+df8zn54osvKF26NCtXrqRMmTIAxMfHU7RoUQ4cOMD06dPJly8f69ato1y5cpw+fZrGjRvz5ZdfsmnTJurVq3dN+3r33XfZt28fvXv35t1338WyLGJjY2nevDkjR46kR48erFy58i/refPNN/n888+5dOkSEydOpGDBgq7tv/LKKzgcDiIjI+nUqROZmZl069aNNWvWMGvWLAYPHuxatlOnTsyYMeOa6hYREblRFLLltuDn55ftz/z58+Pt7Q1ApUqVAPjtt98AXF07fHx8GD16tGsbWa2omzdv5v7772f58uW89NJLHD9+nNDQUAoUKADwl/MAtm7dyvjx49myZQunT58mMzMTh8PBr7/+isPhcC1ns/3+i6RcuXKBsxvKr7/+yo4dO8iVKxdbtmxhy5YtAK6W8s2bN1/zOVm5ciUA4eHhrkALUKVKFQC+++47HA4H9913H+XKlQOgSJEitG3bltmzZ/PTTz9dc8hevnw5AOfPn2f48OGu6fnz5+f06dPs27fvb+u5mr1793LgwAGKFSvGQw89BICHhwfdu3dnzZo1rF+//k8hW0RExN0UsuW2l9WqnNXafOzYMQDWr1/P+vXr/7R8njx5ePTRR0lJSWH0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qR88eDBDhw7lyJEjANjtdtasWcPHH38MwPPPP09QUBAPPPAAISEhrFq1ynV+evfuTbdu3ejfvz/169d3jbbi6elJeHg4EydOpFGjRiQmJgIwadIkDhw4QMWKFXn88ccJDw9n6NChAMTGxrr6uIuIiNzqLHcXIO4zc+bMfc2bNy9XqFAhd5ciVzB48GCSk5OZNWuWu0sRNzhz5gzffvvtvt69e5d3dy0iInL91JItcpMYN24cK1eu5PDhw6xZs4Y1a9bQvn17d5clIiIi/4BufBS5CRhjOH/+PEOGDOHMmTNUrVqVUaNG8eCDD7q7NBEREfkHFLJFbgKWZTF8+HCGDx/u7lJEREQkB6i7iIiIiIhIDlPIFhERERHJYQrZIiIiIiI5TCFbRERERCSHKWSLiIiIiOQwhWwRERERkRymkC0iIiIiksMUskVEREREcphCtoiIiIhIDlPIFhERERHJYQrZIiIiIiI5TCFbRERERCSHKWSLiIiIiOQwhWwRERERkRymkC0iIiIiksMUskVEREREcphCtoiIiIhIDlPIFhERERHJYQrZIiIiIiI5TCFbRERERCSHKWSLiIiIiOQwhWwRERERkRymkC0iIiIiksMUskVEREREcphCtshtJCkpiSJFihAdHe3uUkRERO5oCtkif5CWlsa4ceMICQmhVKlSBAcH8/bbb5Oenn7N2xg6dCjLli3LNu2BBx7gxRdfvAEV/3/btm3D09OT6tWrX3H+yZMnqVGjBp9++ukNrQPg559/pnfv3jd8PyIiIjcjT3cXIHIzyczMpGfPnuzcuZMRI0ZQtWpVNm/ezEsvvQTAsGHD/nYbR44cISoqCrvdnm16y5YtKVu27A2rHWD79u1UrVqVPHnyXHF+/vz5uf/++6lQocINrQNg0aJFeHrqLUZERO5MaskWucz06dP57rvv+PTTT3nkkUeoWbMmoaGhdO/enc8//xyA559/nrCwMB599FH8/f0JCQnhyy+/BODw4cPUrVsXm81GixYtaNGiBQB169Zl5MiReHt7A+BwOBg3bhw1a9akTJkytGvXjoSEBABWrVrFPffcw+TJk6levTp+fn7ZWsAPHDhAz549KVu2LP7+/tx3332udbdu3Urt2rWveGxHjhyhVKlSzJo1i3LlygEwevRoBgwYwMCBA/H396dSpUosWbIEgA8//JBWrVrx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1zm7Ug0ff/wxfn5+NGrUCJvNRtWqVenQoQP169cHcLVku/u61qtXj+joaL7++mscDgfr1q3706gnsbGxVK5c2RW8jTH8/PPP2b5gXk1GRkYRu91+Mjw8fKrdbm8CWH+7koiI3BQUssXtWrZsSa9evShcuPB1rRcTE4Onp6er3/Affy0fFxeHw+Fwhe7333+fU6dO0aBBA+6//372798Pzm4N8+fPp27dugwbNozJkydTsWJFli5dSsuWLenYsSOdOnXCbrdTp04dnnzySdq3b0/Tpk3Jly8fxYsXz9bC261bN0qXLs3DDz9Mjx49AChevDhTpkxh8eLFVK9enbCwMFdL7HfffUfPnj0JCQkhT548jB079orHW6pUKTw8PMidOzc4+6OfPn2at99+m4YNG7p+IiMjSUlJYe/eva6QvXXrVkaOHEmtWrVYu3YtixYtwtPTk5CQEBo0aED37t3p2LEjOMPp3r17/zSc3qhRo+jatStvvfUW7du357333qNBgwauc12uXLlsI5mcPXuW6tWrY7PZGD9+PGPGjCEkJITVq1fToEED1zm7Ug2LFi2iZ8+ern0HBwfz6quvul57eXm5+jO787q2bduWJ598kmeffZYaNWowevRo1/XJ8seRRTZs2EBqair/+9///vLfN79/scoLFLUsqz/wvd1u3x8eHv5WeHh49b9dWURE3EqtInewmTNn7mvevHm5QoUKubuU21JWS+/lD1L5N9LS0qhUqRLbtm3jRl6znTt30qxZM7799tvr7r5zJ7je6xoYGMgTTzzBwIEDAejduzdNmzbNNrTjlZw5c4Zvv/123/r16wdYltUdeAhw/RrDGLMdWJiRkbFw1qxZh/7tcYmISM7ydHcBIreLpUuXkpyczD333ENSUhJz586lffv2Obb9rBv5fvrpJ9q2bZtj2/2jrJFFChYsSHJyMgUKFLhh+7oV/NPreurUKZKSkvjtt99cLdnLly/Hx8fnbwP25SIjI78Cvho4cGDulJSUds7A3cGyrJpATU9Pz9F2u/17YKGHh8dHU6dOvf6xMEVEJMcpZIvkkMzMTKZOncr//d//4evry2OPPcZTTz2Vo/t4/vnniY6OztFt/lFcXBzGGGrXrs2AAQNcY13fqf7JdTXGEBwczLlz5+CyLkxnz57lvffe+0d1TJo0KRX4FPj0iSee8ElPT3/Q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", + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "tool_agent = Pipeline()\n", + "tool_agent.add_component(\"message_collector\", message_collector)\n", + "tool_agent.add_component(\"generator\", OpenAIChatGenerator(model=\"gpt-4o-mini\", tools=[weather_tool]))\n", + "tool_agent.add_component(\"router\", ConditionalRouter(routes, unsafe=True))\n", + "tool_agent.add_component(\"tool_invoker\", ToolInvoker(tools=[weather_tool]))\n", + "\n", + "\n", + "tool_agent.connect(\"message_collector\", \"generator.messages\")\n", + "tool_agent.connect(\"generator.replies\", \"router\")\n", + "tool_agent.connect(\"router.there_are_tool_calls\", \"tool_invoker\")\n", + "tool_agent.connect(\"router.there_are_tool_calls\", \"message_collector\")\n", + "tool_agent.connect(\"tool_invoker.tool_messages\", \"message_collector\")\n", + "\n", + "tool_agent.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 897 + }, + "id": "6idz8XVEWmux", + "outputId": "97445c9b-5e5c-41ee-95a2-fb55ba9fe289" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
{\n",
+              "    'router': {\n",
+              "        'final_replies': [\n",
+              "            ChatMessage(\n",
+              "                _role=<ChatRole.ASSISTANT: 'assistant'>,\n",
+              "                _content=[TextContent(text='The capital of Australia is Canberra.')],\n",
+              "                _meta={\n",
+              "                    'model': 'gpt-4o-mini-2024-07-18',\n",
+              "                    'index': 0,\n",
+              "                    'finish_reason': 'stop',\n",
+              "                    'usage': {'completion_tokens': 8, 'prompt_tokens': 50, 'total_tokens': 58}\n",
+              "                }\n",
+              "            )\n",
+              "        ]\n",
+              "    }\n",
+              "}\n",
+              "
\n" + ], + "text/plain": [ + "\u001b[1m{\u001b[0m\n", + " \u001b[32m'router'\u001b[0m: \u001b[1m{\u001b[0m\n", + " \u001b[32m'final_replies'\u001b[0m: \u001b[1m[\u001b[0m\n", + " \u001b[1;35mChatMessage\u001b[0m\u001b[1m(\u001b[0m\n", + " \u001b[33m_role\u001b[0m=\u001b[1m<\u001b[0m\u001b[1;95mChatRole.ASSISTANT:\u001b[0m\u001b[39m \u001b[0m\u001b[32m'assistant'\u001b[0m\u001b[1m>\u001b[0m,\n", + " \u001b[33m_content\u001b[0m=\u001b[1m[\u001b[0m\u001b[1;35mTextContent\u001b[0m\u001b[1m(\u001b[0m\u001b[33mtext\u001b[0m=\u001b[32m'The capital of Australia is Canberra.'\u001b[0m\u001b[1m)\u001b[0m\u001b[1m]\u001b[0m,\n", + " \u001b[33m_meta\u001b[0m=\u001b[1m{\u001b[0m\n", + " \u001b[32m'model'\u001b[0m: \u001b[32m'gpt-4o-mini-2024-07-18'\u001b[0m,\n", + " \u001b[32m'index'\u001b[0m: \u001b[1;36m0\u001b[0m,\n", + " \u001b[32m'finish_reason'\u001b[0m: \u001b[32m'stop'\u001b[0m,\n", + " \u001b[32m'usage'\u001b[0m: \u001b[1m{\u001b[0m\u001b[32m'completion_tokens'\u001b[0m: \u001b[1;36m8\u001b[0m, \u001b[32m'prompt_tokens'\u001b[0m: \u001b[1;36m50\u001b[0m, \u001b[32m'total_tokens'\u001b[0m: \u001b[1;36m58\u001b[0m\u001b[1m}\u001b[0m\n", + " \u001b[1m}\u001b[0m\n", + " \u001b[1m)\u001b[0m\n", + " \u001b[1m]\u001b[0m\n", + " \u001b[1m}\u001b[0m\n", + "\u001b[1m}\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
--------------------------------------------------\n",
+              "
\n" + ], + "text/plain": [ + "--------------------------------------------------\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
{\n",
+              "    'router': {\n",
+              "        'final_replies': [\n",
+              "            ChatMessage(\n",
+              "                _role=<ChatRole.ASSISTANT: 'assistant'>,\n",
+              "                _content=[TextContent(text='The current weather in Berlin is 9 °C with a humidity of 40%.')],\n",
+              "                _meta={\n",
+              "                    'model': 'gpt-4o-mini-2024-07-18',\n",
+              "                    'index': 0,\n",
+              "                    'finish_reason': 'stop',\n",
+              "                    'usage': {'completion_tokens': 18, 'prompt_tokens': 85, 'total_tokens': 103}\n",
+              "                }\n",
+              "            )\n",
+              "        ]\n",
+              "    }\n",
+              "}\n",
+              "
\n" + ], + "text/plain": [ + "\u001b[1m{\u001b[0m\n", + " \u001b[32m'router'\u001b[0m: \u001b[1m{\u001b[0m\n", + " \u001b[32m'final_replies'\u001b[0m: \u001b[1m[\u001b[0m\n", + " \u001b[1;35mChatMessage\u001b[0m\u001b[1m(\u001b[0m\n", + " \u001b[33m_role\u001b[0m=\u001b[1m<\u001b[0m\u001b[1;95mChatRole.ASSISTANT:\u001b[0m\u001b[39m \u001b[0m\u001b[32m'assistant'\u001b[0m\u001b[1m>\u001b[0m,\n", + " \u001b[33m_content\u001b[0m=\u001b[1m[\u001b[0m\u001b[1;35mTextContent\u001b[0m\u001b[1m(\u001b[0m\u001b[33mtext\u001b[0m=\u001b[32m'The current weather in Berlin is 9 °C with a humidity of 40%.'\u001b[0m\u001b[1m)\u001b[0m\u001b[1m]\u001b[0m,\n", + " \u001b[33m_meta\u001b[0m=\u001b[1m{\u001b[0m\n", + " \u001b[32m'model'\u001b[0m: \u001b[32m'gpt-4o-mini-2024-07-18'\u001b[0m,\n", + " \u001b[32m'index'\u001b[0m: \u001b[1;36m0\u001b[0m,\n", + " \u001b[32m'finish_reason'\u001b[0m: \u001b[32m'stop'\u001b[0m,\n", + " \u001b[32m'usage'\u001b[0m: \u001b[1m{\u001b[0m\u001b[32m'completion_tokens'\u001b[0m: \u001b[1;36m18\u001b[0m, \u001b[32m'prompt_tokens'\u001b[0m: \u001b[1;36m85\u001b[0m, \u001b[32m'total_tokens'\u001b[0m: \u001b[1;36m103\u001b[0m\u001b[1m}\u001b[0m\n", + " \u001b[1m}\u001b[0m\n", + " \u001b[1m)\u001b[0m\n", + " \u001b[1m]\u001b[0m\n", + " \u001b[1m}\u001b[0m\n", + "\u001b[1m}\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
--------------------------------------------------\n",
+              "
\n" + ], + "text/plain": [ + "--------------------------------------------------\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
{\n",
+              "    'router': {\n",
+              "        'final_replies': [\n",
+              "            ChatMessage(\n",
+              "                _role=<ChatRole.ASSISTANT: 'assistant'>,\n",
+              "                _content=[\n",
+              "                    TextContent(\n",
+              "                        text='The current weather is as follows:\\n\\n- **Rome**: Temperature is 31 °C with 80% \n",
+              "humidity.\\n- **Bangkok**: Temperature is 20 °C with 23% humidity.'\n",
+              "                    )\n",
+              "                ],\n",
+              "                _meta={\n",
+              "                    'model': 'gpt-4o-mini-2024-07-18',\n",
+              "                    'index': 0,\n",
+              "                    'finish_reason': 'stop',\n",
+              "                    'usage': {'completion_tokens': 43, 'prompt_tokens': 147, 'total_tokens': 190}\n",
+              "                }\n",
+              "            )\n",
+              "        ]\n",
+              "    }\n",
+              "}\n",
+              "
\n" + ], + "text/plain": [ + "\u001b[1m{\u001b[0m\n", + " \u001b[32m'router'\u001b[0m: \u001b[1m{\u001b[0m\n", + " \u001b[32m'final_replies'\u001b[0m: \u001b[1m[\u001b[0m\n", + " \u001b[1;35mChatMessage\u001b[0m\u001b[1m(\u001b[0m\n", + " \u001b[33m_role\u001b[0m=\u001b[1m<\u001b[0m\u001b[1;95mChatRole.ASSISTANT:\u001b[0m\u001b[39m \u001b[0m\u001b[32m'assistant'\u001b[0m\u001b[1m>\u001b[0m,\n", + " \u001b[33m_content\u001b[0m=\u001b[1m[\u001b[0m\n", + " \u001b[1;35mTextContent\u001b[0m\u001b[1m(\u001b[0m\n", + " \u001b[33mtext\u001b[0m=\u001b[32m'The current weather is as follows:\\n\\n- **Rome**: Temperature is 31 °C with 80% \u001b[0m\n", + "\u001b[32mhumidity.\\n- **Bangkok**: Temperature is 20 °C with 23% humidity.'\u001b[0m\n", + " \u001b[1m)\u001b[0m\n", + " \u001b[1m]\u001b[0m,\n", + " \u001b[33m_meta\u001b[0m=\u001b[1m{\u001b[0m\n", + " \u001b[32m'model'\u001b[0m: \u001b[32m'gpt-4o-mini-2024-07-18'\u001b[0m,\n", + " \u001b[32m'index'\u001b[0m: \u001b[1;36m0\u001b[0m,\n", + " \u001b[32m'finish_reason'\u001b[0m: \u001b[32m'stop'\u001b[0m,\n", + " \u001b[32m'usage'\u001b[0m: \u001b[1m{\u001b[0m\u001b[32m'completion_tokens'\u001b[0m: \u001b[1;36m43\u001b[0m, \u001b[32m'prompt_tokens'\u001b[0m: \u001b[1;36m147\u001b[0m, \u001b[32m'total_tokens'\u001b[0m: \u001b[1;36m190\u001b[0m\u001b[1m}\u001b[0m\n", + " \u001b[1m}\u001b[0m\n", + " \u001b[1m)\u001b[0m\n", + " \u001b[1m]\u001b[0m\n", + " \u001b[1m}\u001b[0m\n", + "\u001b[1m}\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "message_collector.clear()\n", + "res=tool_agent.run({\"messages\":[ChatMessage.from_user(\"What is the capital of Australia?\")]})\n", + "print(res)\n", + "\n", + "print(\"-\"*50)\n", + "\n", + "message_collector.clear()\n", + "res=tool_agent.run({\"messages\":[ChatMessage.from_user(\"What is the weather in Berlin?\")]})\n", + "print(res)\n", + "\n", + "print(\"-\"*50)\n", + "\n", + "message_collector.clear()\n", + "res=tool_agent.run({\"messages\":[ChatMessage.from_user(\"What is the weather in Rome and Bangkok?\")]})\n", + "print(res)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "_iTAVQYiWmux" + }, + "source": [ + "### Complex Use Case: multi-tool chat application\n", + "\n", + "Next, we'll revisit the [function calling tutorial](https://haystack.deepset.ai/tutorials/40_building_chat_application_with_function_calling) using the new experimental features.\n", + "\n", + "For a detailed explanation, refer to the tutorial. Here, we'll demonstrate how to implement the same behavior with the new features.\n", + "\n", + "Details:\n", + "- Two tools\n", + "- One tool wraps a Haystack RAG Pipeline\n", + "- Human-in-the-loop interaction to gather details for tool calls if necessary" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "SgfTIY-6Wmux" + }, + "source": [ + "#### Index Documents with a Pipeline" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 505, + "referenced_widgets": [ + "dfd866562c32499e8a0405313c705e1b", + "0268897a545e40d8ba02b5f65dea2a1b", + "b203ecca9a58438e85f19268e084221b", + "63932a7011bf488ca7831b328ae44500", + "b704012273274ffcb3678dfa8f395704", + "34a183026d92462eb797fcc5e1de00e4", + "9b3a01b95c414289ac2a3026f14c9e19", + "8a501b6c3fae41358627158dde645a73", + "48ba543441e642a5a33ba695133511c2", + "2e7ed6a1e40543b09df34a6dd2a0a2ec", + "cda42bd9b184480a82e6a9d26b09e2b3", + "e6491f78cdfd4239a8f4ef47a768957b", + "62d11140e2ed4953a8dc1bea2627d216", + "cd1fb99333dc4bc6be498d854d6bfb98", + "b35ef5289cf047f7a90bd3ac1056d627", + "b86a12905b1547c6ab7b09f3d0ca4241", + "57443a2fd94d44d1b841b3509e70fa91", + "5c64b1d8871b489eb266e413aac80cfd", + "1623a486e0374abebc5a866bdd3845f9", + "855f44aec9cb4147b5eca528bf65e0c4", + "8fd939c30c2245c8a99a5577d303d982", + "0e6dfc51b0ed4a9e91a1ca4699c62545", + "f721957ee9f84930822431cc0fe98a45", + "138cb20ef5a643e0a74cfd08488336db", + "545fed2e03fa472281786fe5c2ab5e10", + "1fe399bb0bd44e7b8ec02a86489e988c", + "2e53a06caa2644209f8d5f0997c4a37a", + "eae5e88b049a43778787efef346a5ef2", + "80c5b36f836f43e2af88b139fe869f51", + "465f6083b7a6441a92b8c094c016fb08", + "ade7632f4a304c3b9f32ce97e25cca4e", + "3d70fa2a37a948dfafbfb734f6fc8172", + "b3a24f4b5e454960b28c65b2061d4ca2", + "1c20421380634e79a4f0aa6283b5b692", + "f0ee0b9df96e4caa8930457f37c17520", + "4d5b9ef7d55044adb83375081ba2feeb", + "2d99c69f5ad64dbda0ff2697685704ab", + "a1e25093392f4f6eabd997ca546a0ab7", + "56b265c3caa54b90b0fefd2bf3d26b44", + "0f50272692984567b0c2a4841d64b4b2", + "eb75b51a06234996ab2d5851df44e0f7", + "4acf2ea5f63f43a38e7d13ce42af0094", + "79d5e38cfb57469a8e1816dd517d7417", + "32edff66fa974a3496e79c27707aedaa", + "c8aeb8a974e44e33a04941cce47f28d0", + "a1d8a1e83ecd4fcb9df177c81886cf0c", + "f111994de4a945fa82b2f7fdebdd5c73", + "4507b51ffcdb4d86a8daa1ec72fcccea", + "c95e143a5a5e4d73aa8c38b094fe2d94", + "7ed63ddcddb3428da97ae24ee00ddbdf", + "5fc790ca3e8c401a81d19f25d0c95815", + "36784e0cdb1e452683008b601719ba79", + "797edaf966e342b08755fefa6fc48080", + "a53a19d08c5f4ebbb5b494453af99a8a", + "a97a94b8d9034eef82df9e89bca58e1d", + "2365e6359aa74150ac78b1d902caf843", + "8b370b5e05514bd9aeb1c47632f4d7e9", + "2a3e9c47d8714692aee14bc98f4020a9", + "663d2d6b602647aca4d6c46f04b07e6f", + "1dc2207e01724663bedf0d8468d89a55", + "f149e04973c04d69acf4f8e042678ba0", + "a1105a24173a476690a26d25b1d81d0b", + "6f7ee228dcae4b5097a1c3249edb3df8", + "41548a8489ec4e5ebfe62f5b41de4e48", + "d7c72c66a1b44757a52edfff2a862706", + "8bdf08b60e834c28acef1a9822e38ef2", + "7b0ce4811d40455b96ae032b9268cb63", + "c3c20c03a31a430e915bca1321c8509f", + "c7504763623b4f76a1a743a3b6cf9004", + "bc178b4e74a341daa1de88a3f8d194de", + "f6b9f5c1e584485db673ce8623fef17c", + "d8d82b08d1f44025af14f74c654a1578", + "ebfc6c3b74ae457b96aba485c5329eb3", + "5ff7649f9ad14663b9125fb3c74bba5a", + "725178670a0b4fd5920858a4132efd84", + "c6728f2118914499a75643d1db035b28", + "411f8307e60c471fbdf3a7e09345823f", + "7eb2b84e03124a0ba4a8113af7ce6ee7", + "1ddecb161ce04fa59f715d0d09ed2682", + "2164ce7455494d0fbcdd0c91f79b0c1c", + "97d43311e8bb41b29e6bb488baf81b94", + "d2276e997b694d16822d055d0e0af6ad", + "1ec495fefc5f48c19c1f3fc593bb2c94", + "16e82f27ac4d473ba43837bdb82182f8", + "5c37b575a2c14f35a657bad890d6f1fc", + "323d0f134dbf463e8ac3f64c535f899e", + "cab3afe120904cb08bb30c2b60761851", + "f402c11b42c14e85b85f0606180bc0b4", + "5e74217858ca449d9fd3c2094103e31b", + "e821a64ae1324fe9b1b8d38d021d69da", + "b413934cb7af445bba05eda11c6a1669", + "78931e6cbcee4f8697e8d709ebb27cf1", + "d9b852893a0143a6811b78a37437d1d2", + "1057db4aa5664b11a8fa2cc8c3f05b73", + "ffb5ca25f1ec492e8186ed4f434c91de", + "679dd69d899b45b49df2a73175f4d53f", + "6b477761baa6480196d2801fb6280875", + "3b8d274a602e4736a30ee86b14ddc18f", + "35ce0f9707074af8ae5bbf308450e0c3", + "791d77e2a8e84e99804137a9da25317b", + "4a61a4eb83dc405abb9e45022c7d78a9", + "d626c9f1e06e4ba189257100f76333de", + "10095736255f4575b92b46d3c7f15508", + "f535d3008cfc487fbb29a55946744f35", + "78aa818cf78e487a9706865a6e349b9c", + "e0a2de9cfe914270ae63ac2fa726369d", + "418569bdc9a648fc83f5041757ea6094", + "43f423d1b59a4126bce49c014da67962", + "aecfb6decec9416f9155aa3a892a1b2b", + "488e7d38018343478a5af82fb69e9bb9", + "ebca6ac8b47f4e41b5280da9054d57c7", + "6585ec48ab06403f9e60f0f84b45b51d", + "d2c8fc93bc9d41579ac73d6786d51bca", + "ebad1217df1f4b1fad8129ee4ce549a9", + "b6383420c0394e2a8df95e3239c27c89", + "83816e529ba04346bae1b52bfac38fab", + "610455c0c61b4265ab80c0ee342976a7", + "2a0ea3daa7674ee1a34396f066ce2ba6", + "b8930d05a3944993bf264caab830d3ab", + "923afc4044ac43df8564c9d6ce04f38b", + "0887ca0fb0b743db9dd875034114530e", + "0b475782c0384cbc96c848b7d4cc37f4", + "16a23251c7924d5e983f372d40270c07", + "fd15252d08504d66a10e87b695e498c7", + "d4d49b01ef97422381ce230801b8b830", + "7404d9cbf51346ddae05464aa00baf36", + "013dbb59ca0b4df99b28352719082c71", + "44a8e0cae7c04311a0d39d5778f33aeb", + "17e3641aba3542e2a40ef368ece2db4f", + "047b7ca1843e4ab0bc621667b09d3ce2", + "f06268f3a2474d7fb620d99b57f04519", + "a4e65b3c6d5542268e08c833dc01d72f" + ] + }, + "id": "8l4nuETNWmu0", + "outputId": "b812b263-3d1f-4165-f9e0-4f6bd4d52b7d" + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/usr/local/lib/python3.10/dist-packages/huggingface_hub/utils/_token.py:81: UserWarning: \n", + "Access to the secret `HF_TOKEN` has not been granted on this notebook.\n", + "You will not be requested again.\n", + "Please restart the session if you want to be prompted again.\n", + " warnings.warn(\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "dfd866562c32499e8a0405313c705e1b", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "modules.json: 0%| | 0.00/349 [00:00\n", + "🚅 Components\n", + " - embedder: SentenceTransformersTextEmbedder\n", + " - retriever: InMemoryEmbeddingRetriever\n", + " - prompt_builder: PromptBuilder\n", + " - llm: OpenAIGenerator\n", + "🛤️ Connections\n", + " - embedder.embedding -> retriever.query_embedding (List[float])\n", + " - retriever.documents -> prompt_builder.documents (List[Document])\n", + " - prompt_builder.prompt -> llm.prompt (str)" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from haystack.components.embedders import SentenceTransformersTextEmbedder\n", + "from haystack.components.retrievers.in_memory import InMemoryEmbeddingRetriever\n", + "from haystack.components.builders import PromptBuilder\n", + "from haystack.components.generators import OpenAIGenerator\n", + "\n", + "template = \"\"\"\n", + "Answer the questions based on the given context.\n", + "\n", + "Context:\n", + "{% for document in documents %}\n", + " {{ document.content }}\n", + "{% endfor %}\n", + "Question: {{ question }}\n", + "Answer:\n", + "\"\"\"\n", + "rag_pipe = Pipeline()\n", + "rag_pipe.add_component(\"embedder\", SentenceTransformersTextEmbedder(model=\"sentence-transformers/all-MiniLM-L6-v2\"))\n", + "rag_pipe.add_component(\"retriever\", InMemoryEmbeddingRetriever(document_store=document_store))\n", + "rag_pipe.add_component(\"prompt_builder\", PromptBuilder(template=template))\n", + "rag_pipe.add_component(\"llm\", OpenAIGenerator(model=\"gpt-4o-mini\"))\n", + "\n", + "rag_pipe.connect(\"embedder.embedding\", \"retriever.query_embedding\")\n", + "rag_pipe.connect(\"retriever\", \"prompt_builder.documents\")\n", + "rag_pipe.connect(\"prompt_builder\", \"llm\")" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 171, + "referenced_widgets": [ + "a7f0c620af4748ba8d897cba88c77d48", + "f2ab85ee189b41c5a4f426c3f8ae8ced", + "cf07bfcdf17a4bd792abb7fe49022cc5", + "343d3704c29240f4b63c3840894a5107", + "0d040bbe4b8b41ec8f58423455593d41", + "4a8e4a99d02b4639936ad35c530988d5", + "cbaf8d3d56d94d039da0af5d057e9e5c", + "ff5d5a3b884c48b9a4b2d014ee45d2d5", + "8b660ca9880d4a7c80efb37fba23be5a", + "7299616dd9164339b52b31b2effb7f31", + "efa59d0216cd44a1b20de54362ffc6ca" + ] + }, + "id": "beg7P2PUWmu0", + "outputId": "10a1ed6f-7e1f-4499-8785-495dbf39e009" + }, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "a7f0c620af4748ba8d897cba88c77d48", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Batches: 0%| | 0/1 [00:00AI: Hello! How can I assist you today?\n", + "\n" + ], + "text/plain": [ + "AI: Hello! How can I assist you today?\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(type 'exit' or 'quit' to stop)\n", + "I want some info on the weather\n" + ] + }, + { + "data": { + "text/html": [ + "
AI: Sure! Could you please specify the location for which you want to know the weather?\n",
+              "
\n" + ], + "text/plain": [ + "AI: Sure! Could you please specify the location for which you want to know the weather?\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(type 'exit' or 'quit' to stop)\n", + "Madrid\n" + ] + }, + { + "data": { + "text/html": [ + "
AI: The weather in Madrid is currently sunny with a temperature of 10°C. Is there anything else you would like to \n",
+              "know?\n",
+              "
\n" + ], + "text/plain": [ + "AI: The weather in Madrid is currently sunny with a temperature of \u001b[1;36m10\u001b[0m°C. Is there anything else you would like to \n", + "know?\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(type 'exit' or 'quit' to stop)\n", + "Ah, nice. Who lives there?\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "0a7c86f9def3454cb203decd13917f06", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Batches: 0%| | 0/1 [00:00AI: Marta lives in Madrid. If you have any more questions or need further information, feel free to ask!\n", + "\n" + ], + "text/plain": [ + "AI: Marta lives in Madrid. If you have any more questions or need further information, feel free to ask!\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(type 'exit' or 'quit' to stop)\n", + "I want to know the weather and who lives in Rome\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "80f8773d662f4f048dd151aa937764ad", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Batches: 0%| | 0/1 [00:00AI: In Rome, the weather is currently sunny with a temperature of 14°C. Additionally, Giorgio lives there. If you \n", + "have more questions or need further information, just let me know!\n", + "\n" + ], + "text/plain": [ + "AI: In Rome, the weather is currently sunny with a temperature of \u001b[1;36m14\u001b[0m°C. Additionally, Giorgio lives there. If you \n", + "have more questions or need further information, just let me know!\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(type 'exit' or 'quit' to stop)\n", + "12+3\n" + ] + }, + { + "data": { + "text/html": [ + "
AI: The answer to 12 + 3 is 15. If you have more questions or need assistance with something else, feel free to \n",
+              "ask!\n",
+              "
\n" + ], + "text/plain": [ + "AI: The answer to \u001b[1;36m12\u001b[0m + \u001b[1;36m3\u001b[0m is \u001b[1;36m15\u001b[0m. If you have more questions or need assistance with something else, feel free to \n", + "ask!\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(type 'exit' or 'quit' to stop)\n", + "quit\n" + ] + } + ], + "source": [ + "from haystack_experimental.components.tools import ToolInvoker\n", + "from haystack_experimental.components.generators.chat.openai import OpenAIChatGenerator\n", + "from haystack_experimental.dataclasses import ChatMessage\n", + "\n", + "tool_invoker = ToolInvoker(tools=[weather_tool, rag_tool])\n", + "chat_generator = OpenAIChatGenerator(model=\"gpt-4o-mini\")\n", + "\n", + "\n", + "messages = [\n", + " ChatMessage.from_system(\n", + " \"\"\"If needed, break down the user's question to simpler questions and follow-up questions that you can use with your tools.\n", + " Don't make assumptions about what values to plug into functions. Ask for clarification if a user request is ambiguous.\"\"\"\n", + " )\n", + " ]\n", + "\n", + "while True:\n", + " user_input = input(\"(type 'exit' or 'quit' to stop)\\n\")\n", + " if user_input.lower() == \"exit\" or user_input.lower() == \"quit\":\n", + " break\n", + " messages.append(ChatMessage.from_user(user_input))\n", + " replies = chat_generator.run(messages=messages, tools=[weather_tool, rag_tool])[\"replies\"]\n", + " messages.extend(replies)\n", + "\n", + " if replies[0].tool_calls:\n", + " tool_messages = tool_invoker.run(messages=replies)[\"tool_messages\"]\n", + " messages.extend(tool_messages)\n", + " # call to a chat generator to elaborate on the tool messages\n", + " replies = chat_generator.run(messages=messages, tools=[weather_tool, rag_tool])[\"replies\"]\n", + " messages.extend(replies)\n", + " print(\"AI: \" + messages[-1].text)" + ] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "display_name": "venv", + "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.8.18" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "013dbb59ca0b4df99b28352719082c71": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "0268897a545e40d8ba02b5f65dea2a1b": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_34a183026d92462eb797fcc5e1de00e4", + "placeholder": "​", + "style": "IPY_MODEL_9b3a01b95c414289ac2a3026f14c9e19", + "value": "modules.json: 100%" + } + }, + "03baf250fb634a65bfac8a309dbba9ef": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "047b7ca1843e4ab0bc621667b09d3ce2": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "0887ca0fb0b743db9dd875034114530e": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "0a7c86f9def3454cb203decd13917f06": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_dd52cf30a05443069ad2aceb51e1382c", + "IPY_MODEL_6b5b78ca63d24b548755d2b861cde9a1", + "IPY_MODEL_35bcc5ce1b414d2d96e8e8dcfb80731a" + ], + "layout": "IPY_MODEL_af60f65d016f43f8bd1d99096db3f5d4" + } + }, + "0b475782c0384cbc96c848b7d4cc37f4": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_16a23251c7924d5e983f372d40270c07", + "IPY_MODEL_fd15252d08504d66a10e87b695e498c7", + "IPY_MODEL_d4d49b01ef97422381ce230801b8b830" + ], + "layout": "IPY_MODEL_7404d9cbf51346ddae05464aa00baf36" + } + }, + "0d040bbe4b8b41ec8f58423455593d41": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "0d1f2f6ed5734fafbcd5653e7c506fba": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "0e6dfc51b0ed4a9e91a1ca4699c62545": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "0f50272692984567b0c2a4841d64b4b2": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "10095736255f4575b92b46d3c7f15508": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_aecfb6decec9416f9155aa3a892a1b2b", + "placeholder": "​", + "style": "IPY_MODEL_488e7d38018343478a5af82fb69e9bb9", + "value": " 112/112 [00:00<00:00, 5.54kB/s]" + } + }, + "1057db4aa5664b11a8fa2cc8c3f05b73": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "11f3162994514b9ab309108b1b9517ca": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "138cb20ef5a643e0a74cfd08488336db": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_eae5e88b049a43778787efef346a5ef2", + "placeholder": "​", + "style": "IPY_MODEL_80c5b36f836f43e2af88b139fe869f51", + "value": "README.md: 100%" + } + }, + "1623a486e0374abebc5a866bdd3845f9": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "16a23251c7924d5e983f372d40270c07": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_013dbb59ca0b4df99b28352719082c71", + "placeholder": "​", + "style": "IPY_MODEL_44a8e0cae7c04311a0d39d5778f33aeb", + "value": "Batches: 100%" + } + }, + "16e82f27ac4d473ba43837bdb82182f8": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "17e3641aba3542e2a40ef368ece2db4f": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "1c20421380634e79a4f0aa6283b5b692": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_f0ee0b9df96e4caa8930457f37c17520", + "IPY_MODEL_4d5b9ef7d55044adb83375081ba2feeb", + "IPY_MODEL_2d99c69f5ad64dbda0ff2697685704ab" + ], + "layout": "IPY_MODEL_a1e25093392f4f6eabd997ca546a0ab7" + } + }, + "1dc2207e01724663bedf0d8468d89a55": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "1ddecb161ce04fa59f715d0d09ed2682": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_1ec495fefc5f48c19c1f3fc593bb2c94", + "placeholder": "​", + "style": "IPY_MODEL_16e82f27ac4d473ba43837bdb82182f8", + "value": "vocab.txt: 100%" + } + }, + "1ec495fefc5f48c19c1f3fc593bb2c94": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "1f8f987dbce7446ab986101b9b2bcaef": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "1fe399bb0bd44e7b8ec02a86489e988c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_3d70fa2a37a948dfafbfb734f6fc8172", + "placeholder": "​", + "style": "IPY_MODEL_b3a24f4b5e454960b28c65b2061d4ca2", + "value": " 10.7k/10.7k [00:00<00:00, 328kB/s]" + } + }, + "2164ce7455494d0fbcdd0c91f79b0c1c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_5c37b575a2c14f35a657bad890d6f1fc", + "max": 231508, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_323d0f134dbf463e8ac3f64c535f899e", + "value": 231508 + } + }, + "2365e6359aa74150ac78b1d902caf843": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_8b370b5e05514bd9aeb1c47632f4d7e9", + "IPY_MODEL_2a3e9c47d8714692aee14bc98f4020a9", + "IPY_MODEL_663d2d6b602647aca4d6c46f04b07e6f" + ], + "layout": "IPY_MODEL_1dc2207e01724663bedf0d8468d89a55" + } + }, + "2a0ea3daa7674ee1a34396f066ce2ba6": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "2a3e9c47d8714692aee14bc98f4020a9": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_6f7ee228dcae4b5097a1c3249edb3df8", + "max": 90868376, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_41548a8489ec4e5ebfe62f5b41de4e48", + "value": 90868376 + } + }, + "2d99c69f5ad64dbda0ff2697685704ab": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_79d5e38cfb57469a8e1816dd517d7417", + "placeholder": "​", + "style": "IPY_MODEL_32edff66fa974a3496e79c27707aedaa", + "value": " 53.0/53.0 [00:00<00:00, 1.46kB/s]" + } + }, + "2e53a06caa2644209f8d5f0997c4a37a": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "2e7ed6a1e40543b09df34a6dd2a0a2ec": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "323d0f134dbf463e8ac3f64c535f899e": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "32edff66fa974a3496e79c27707aedaa": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "343d3704c29240f4b63c3840894a5107": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_7299616dd9164339b52b31b2effb7f31", + "placeholder": "​", + "style": "IPY_MODEL_efa59d0216cd44a1b20de54362ffc6ca", + "value": " 1/1 [00:00<00:00, 12.47it/s]" + } + }, + "34a183026d92462eb797fcc5e1de00e4": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "35bcc5ce1b414d2d96e8e8dcfb80731a": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_11f3162994514b9ab309108b1b9517ca", + "placeholder": "​", + "style": "IPY_MODEL_e080eb9012ba4f62bd9c11ee005d885d", + "value": " 1/1 [00:00<00:00, 19.41it/s]" + } + }, + "35ce0f9707074af8ae5bbf308450e0c3": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "36784e0cdb1e452683008b601719ba79": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "3b038ed201c74079abe52aecd0a63b5e": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "3b8d274a602e4736a30ee86b14ddc18f": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "3d70fa2a37a948dfafbfb734f6fc8172": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "411f8307e60c471fbdf3a7e09345823f": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "41548a8489ec4e5ebfe62f5b41de4e48": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "418569bdc9a648fc83f5041757ea6094": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "43f423d1b59a4126bce49c014da67962": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "44a8e0cae7c04311a0d39d5778f33aeb": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "4507b51ffcdb4d86a8daa1ec72fcccea": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_a53a19d08c5f4ebbb5b494453af99a8a", + "placeholder": "​", + "style": "IPY_MODEL_a97a94b8d9034eef82df9e89bca58e1d", + "value": " 612/612 [00:00<00:00, 16.4kB/s]" + } + }, + "465f6083b7a6441a92b8c094c016fb08": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "488e7d38018343478a5af82fb69e9bb9": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "48ba543441e642a5a33ba695133511c2": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "4a61a4eb83dc405abb9e45022c7d78a9": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_78aa818cf78e487a9706865a6e349b9c", + "placeholder": "​", + "style": "IPY_MODEL_e0a2de9cfe914270ae63ac2fa726369d", + "value": "special_tokens_map.json: 100%" + } + }, + "4a8e4a99d02b4639936ad35c530988d5": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "4acf2ea5f63f43a38e7d13ce42af0094": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "4d5b9ef7d55044adb83375081ba2feeb": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_eb75b51a06234996ab2d5851df44e0f7", + "max": 53, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_4acf2ea5f63f43a38e7d13ce42af0094", + "value": 53 + } + }, + "545fed2e03fa472281786fe5c2ab5e10": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_465f6083b7a6441a92b8c094c016fb08", + "max": 10659, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_ade7632f4a304c3b9f32ce97e25cca4e", + "value": 10659 + } + }, + "56b265c3caa54b90b0fefd2bf3d26b44": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "57443a2fd94d44d1b841b3509e70fa91": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "5c37b575a2c14f35a657bad890d6f1fc": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "5c64b1d8871b489eb266e413aac80cfd": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "5e3d7e87806f46f6a2a7e8563b450155": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "5e74217858ca449d9fd3c2094103e31b": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_e821a64ae1324fe9b1b8d38d021d69da", + "IPY_MODEL_b413934cb7af445bba05eda11c6a1669", + "IPY_MODEL_78931e6cbcee4f8697e8d709ebb27cf1" + ], + "layout": "IPY_MODEL_d9b852893a0143a6811b78a37437d1d2" + } + }, + "5fc790ca3e8c401a81d19f25d0c95815": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "5ff7649f9ad14663b9125fb3c74bba5a": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "610455c0c61b4265ab80c0ee342976a7": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "62d11140e2ed4953a8dc1bea2627d216": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_57443a2fd94d44d1b841b3509e70fa91", + "placeholder": "​", + "style": "IPY_MODEL_5c64b1d8871b489eb266e413aac80cfd", + "value": "config_sentence_transformers.json: 100%" + } + }, + "63932a7011bf488ca7831b328ae44500": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_2e7ed6a1e40543b09df34a6dd2a0a2ec", + "placeholder": "​", + "style": "IPY_MODEL_cda42bd9b184480a82e6a9d26b09e2b3", + "value": " 349/349 [00:00<00:00, 10.4kB/s]" + } + }, + "6585ec48ab06403f9e60f0f84b45b51d": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_83816e529ba04346bae1b52bfac38fab", + "placeholder": "​", + "style": "IPY_MODEL_610455c0c61b4265ab80c0ee342976a7", + "value": "1_Pooling/config.json: 100%" + } + }, + "663d2d6b602647aca4d6c46f04b07e6f": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_d7c72c66a1b44757a52edfff2a862706", + "placeholder": "​", + "style": "IPY_MODEL_8bdf08b60e834c28acef1a9822e38ef2", + "value": " 90.9M/90.9M [00:01<00:00, 103MB/s]" + } + }, + "679dd69d899b45b49df2a73175f4d53f": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "6b477761baa6480196d2801fb6280875": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "6b5b78ca63d24b548755d2b861cde9a1": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_3b038ed201c74079abe52aecd0a63b5e", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_b586c95d4180496da46a310fb63f5fe9", + "value": 1 + } + }, + "6ea2ffda396d4598b3e36b017f140b0b": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "6f7ee228dcae4b5097a1c3249edb3df8": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "725178670a0b4fd5920858a4132efd84": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "7299616dd9164339b52b31b2effb7f31": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "73f374130a8f4b5f8c340f75f451ed65": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "7404d9cbf51346ddae05464aa00baf36": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "78931e6cbcee4f8697e8d709ebb27cf1": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_3b8d274a602e4736a30ee86b14ddc18f", + "placeholder": "​", + "style": "IPY_MODEL_35ce0f9707074af8ae5bbf308450e0c3", + "value": " 466k/466k [00:00<00:00, 5.36MB/s]" + } + }, + "78aa818cf78e487a9706865a6e349b9c": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "791d77e2a8e84e99804137a9da25317b": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_4a61a4eb83dc405abb9e45022c7d78a9", + "IPY_MODEL_d626c9f1e06e4ba189257100f76333de", + "IPY_MODEL_10095736255f4575b92b46d3c7f15508" + ], + "layout": "IPY_MODEL_f535d3008cfc487fbb29a55946744f35" + } + }, + "797edaf966e342b08755fefa6fc48080": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "79d5e38cfb57469a8e1816dd517d7417": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "7b0ce4811d40455b96ae032b9268cb63": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_c3c20c03a31a430e915bca1321c8509f", + "IPY_MODEL_c7504763623b4f76a1a743a3b6cf9004", + "IPY_MODEL_bc178b4e74a341daa1de88a3f8d194de" + ], + "layout": "IPY_MODEL_f6b9f5c1e584485db673ce8623fef17c" + } + }, + "7cc4194b1646461aa89af2380fdf52b9": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_6ea2ffda396d4598b3e36b017f140b0b", + "placeholder": "​", + "style": "IPY_MODEL_5e3d7e87806f46f6a2a7e8563b450155", + "value": "Batches: 100%" + } + }, + "7eb2b84e03124a0ba4a8113af7ce6ee7": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_1ddecb161ce04fa59f715d0d09ed2682", + "IPY_MODEL_2164ce7455494d0fbcdd0c91f79b0c1c", + "IPY_MODEL_97d43311e8bb41b29e6bb488baf81b94" + ], + "layout": "IPY_MODEL_d2276e997b694d16822d055d0e0af6ad" + } + }, + "7ed63ddcddb3428da97ae24ee00ddbdf": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "80c5b36f836f43e2af88b139fe869f51": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "80f8773d662f4f048dd151aa937764ad": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_7cc4194b1646461aa89af2380fdf52b9", + "IPY_MODEL_cb6e20a973a64b46803e9600b1cdaa6d", + "IPY_MODEL_e172d46c0ad3428198d78759ac3a73e7" + ], + "layout": "IPY_MODEL_73f374130a8f4b5f8c340f75f451ed65" + } + }, + "83816e529ba04346bae1b52bfac38fab": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "855f44aec9cb4147b5eca528bf65e0c4": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "8a501b6c3fae41358627158dde645a73": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "8b370b5e05514bd9aeb1c47632f4d7e9": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_f149e04973c04d69acf4f8e042678ba0", + "placeholder": "​", + "style": "IPY_MODEL_a1105a24173a476690a26d25b1d81d0b", + "value": "model.safetensors: 100%" + } + }, + "8b660ca9880d4a7c80efb37fba23be5a": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "8bdf08b60e834c28acef1a9822e38ef2": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "8fd939c30c2245c8a99a5577d303d982": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "910d15a7ee33408e96ea510f8ed20d3e": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "923afc4044ac43df8564c9d6ce04f38b": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "97d43311e8bb41b29e6bb488baf81b94": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_cab3afe120904cb08bb30c2b60761851", + "placeholder": "​", + "style": "IPY_MODEL_f402c11b42c14e85b85f0606180bc0b4", + "value": " 232k/232k [00:00<00:00, 2.47MB/s]" + } + }, + "9b3a01b95c414289ac2a3026f14c9e19": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "a1105a24173a476690a26d25b1d81d0b": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "a1d8a1e83ecd4fcb9df177c81886cf0c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_7ed63ddcddb3428da97ae24ee00ddbdf", + "placeholder": "​", + "style": "IPY_MODEL_5fc790ca3e8c401a81d19f25d0c95815", + "value": "config.json: 100%" + } + }, + "a1e25093392f4f6eabd997ca546a0ab7": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "a4e65b3c6d5542268e08c833dc01d72f": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "a53a19d08c5f4ebbb5b494453af99a8a": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "a7f0c620af4748ba8d897cba88c77d48": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_f2ab85ee189b41c5a4f426c3f8ae8ced", + "IPY_MODEL_cf07bfcdf17a4bd792abb7fe49022cc5", + "IPY_MODEL_343d3704c29240f4b63c3840894a5107" + ], + "layout": "IPY_MODEL_0d040bbe4b8b41ec8f58423455593d41" + } + }, + "a97a94b8d9034eef82df9e89bca58e1d": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "ade7632f4a304c3b9f32ce97e25cca4e": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "aecfb6decec9416f9155aa3a892a1b2b": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "af60f65d016f43f8bd1d99096db3f5d4": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "b203ecca9a58438e85f19268e084221b": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_8a501b6c3fae41358627158dde645a73", + "max": 349, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_48ba543441e642a5a33ba695133511c2", + "value": 349 + } + }, + "b35ef5289cf047f7a90bd3ac1056d627": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_8fd939c30c2245c8a99a5577d303d982", + "placeholder": "​", + "style": "IPY_MODEL_0e6dfc51b0ed4a9e91a1ca4699c62545", + "value": " 116/116 [00:00<00:00, 2.39kB/s]" + } + }, + "b3a24f4b5e454960b28c65b2061d4ca2": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "b413934cb7af445bba05eda11c6a1669": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_679dd69d899b45b49df2a73175f4d53f", + "max": 466247, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_6b477761baa6480196d2801fb6280875", + "value": 466247 + } + }, + "b586c95d4180496da46a310fb63f5fe9": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "b6383420c0394e2a8df95e3239c27c89": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "b704012273274ffcb3678dfa8f395704": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "b86a12905b1547c6ab7b09f3d0ca4241": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "b8930d05a3944993bf264caab830d3ab": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "ProgressStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "bc178b4e74a341daa1de88a3f8d194de": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_c6728f2118914499a75643d1db035b28", + "placeholder": "​", + "style": "IPY_MODEL_411f8307e60c471fbdf3a7e09345823f", + "value": " 350/350 [00:00<00:00, 13.7kB/s]" + } + }, + "c290357ffc5441ada34b29aa6e0ff2b0": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "c3c20c03a31a430e915bca1321c8509f": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_d8d82b08d1f44025af14f74c654a1578", + "placeholder": "​", + "style": "IPY_MODEL_ebfc6c3b74ae457b96aba485c5329eb3", + "value": "tokenizer_config.json: 100%" + } + }, + "c6728f2118914499a75643d1db035b28": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "c7504763623b4f76a1a743a3b6cf9004": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_5ff7649f9ad14663b9125fb3c74bba5a", + "max": 350, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_725178670a0b4fd5920858a4132efd84", + "value": 350 + } + }, + "c8aeb8a974e44e33a04941cce47f28d0": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_a1d8a1e83ecd4fcb9df177c81886cf0c", + "IPY_MODEL_f111994de4a945fa82b2f7fdebdd5c73", + "IPY_MODEL_4507b51ffcdb4d86a8daa1ec72fcccea" + ], + "layout": "IPY_MODEL_c95e143a5a5e4d73aa8c38b094fe2d94" + } + }, + "c95e143a5a5e4d73aa8c38b094fe2d94": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "cab3afe120904cb08bb30c2b60761851": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "cb6e20a973a64b46803e9600b1cdaa6d": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_03baf250fb634a65bfac8a309dbba9ef", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_1f8f987dbce7446ab986101b9b2bcaef", + "value": 1 + } + }, + "cbaf8d3d56d94d039da0af5d057e9e5c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "cd1fb99333dc4bc6be498d854d6bfb98": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_1623a486e0374abebc5a866bdd3845f9", + "max": 116, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_855f44aec9cb4147b5eca528bf65e0c4", + "value": 116 + } + }, + "cda42bd9b184480a82e6a9d26b09e2b3": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "cf07bfcdf17a4bd792abb7fe49022cc5": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_ff5d5a3b884c48b9a4b2d014ee45d2d5", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_8b660ca9880d4a7c80efb37fba23be5a", + "value": 1 + } + }, + "d2276e997b694d16822d055d0e0af6ad": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "d2c8fc93bc9d41579ac73d6786d51bca": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_2a0ea3daa7674ee1a34396f066ce2ba6", + "max": 190, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_b8930d05a3944993bf264caab830d3ab", + "value": 190 + } + }, + "d4d49b01ef97422381ce230801b8b830": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_f06268f3a2474d7fb620d99b57f04519", + "placeholder": "​", + "style": "IPY_MODEL_a4e65b3c6d5542268e08c833dc01d72f", + "value": " 1/1 [00:00<00:00,  3.52it/s]" + } + }, + "d626c9f1e06e4ba189257100f76333de": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_418569bdc9a648fc83f5041757ea6094", + "max": 112, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_43f423d1b59a4126bce49c014da67962", + "value": 112 + } + }, + "d7c72c66a1b44757a52edfff2a862706": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "d8d82b08d1f44025af14f74c654a1578": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "d9b852893a0143a6811b78a37437d1d2": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "dd52cf30a05443069ad2aceb51e1382c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_0d1f2f6ed5734fafbcd5653e7c506fba", + "placeholder": "​", + "style": "IPY_MODEL_fd389c73cd86486197a5d650e423304c", + "value": "Batches: 100%" + } + }, + "dfd866562c32499e8a0405313c705e1b": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_0268897a545e40d8ba02b5f65dea2a1b", + "IPY_MODEL_b203ecca9a58438e85f19268e084221b", + "IPY_MODEL_63932a7011bf488ca7831b328ae44500" + ], + "layout": "IPY_MODEL_b704012273274ffcb3678dfa8f395704" + } + }, + "e080eb9012ba4f62bd9c11ee005d885d": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "e0a2de9cfe914270ae63ac2fa726369d": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "e172d46c0ad3428198d78759ac3a73e7": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_910d15a7ee33408e96ea510f8ed20d3e", + "placeholder": "​", + "style": "IPY_MODEL_c290357ffc5441ada34b29aa6e0ff2b0", + "value": " 1/1 [00:00<00:00, 12.35it/s]" + } + }, + "e6491f78cdfd4239a8f4ef47a768957b": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_62d11140e2ed4953a8dc1bea2627d216", + "IPY_MODEL_cd1fb99333dc4bc6be498d854d6bfb98", + "IPY_MODEL_b35ef5289cf047f7a90bd3ac1056d627" + ], + "layout": "IPY_MODEL_b86a12905b1547c6ab7b09f3d0ca4241" + } + }, + "e821a64ae1324fe9b1b8d38d021d69da": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_1057db4aa5664b11a8fa2cc8c3f05b73", + "placeholder": "​", + "style": "IPY_MODEL_ffb5ca25f1ec492e8186ed4f434c91de", + "value": "tokenizer.json: 100%" + } + }, + "eae5e88b049a43778787efef346a5ef2": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "eb75b51a06234996ab2d5851df44e0f7": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "ebad1217df1f4b1fad8129ee4ce549a9": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_923afc4044ac43df8564c9d6ce04f38b", + "placeholder": "​", + "style": "IPY_MODEL_0887ca0fb0b743db9dd875034114530e", + "value": " 190/190 [00:00<00:00, 9.76kB/s]" + } + }, + "ebca6ac8b47f4e41b5280da9054d57c7": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_6585ec48ab06403f9e60f0f84b45b51d", + "IPY_MODEL_d2c8fc93bc9d41579ac73d6786d51bca", + "IPY_MODEL_ebad1217df1f4b1fad8129ee4ce549a9" + ], + "layout": "IPY_MODEL_b6383420c0394e2a8df95e3239c27c89" + } + }, + "ebfc6c3b74ae457b96aba485c5329eb3": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "efa59d0216cd44a1b20de54362ffc6ca": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "f06268f3a2474d7fb620d99b57f04519": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "f0ee0b9df96e4caa8930457f37c17520": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_56b265c3caa54b90b0fefd2bf3d26b44", + "placeholder": "​", + "style": "IPY_MODEL_0f50272692984567b0c2a4841d64b4b2", + "value": "sentence_bert_config.json: 100%" + } + }, + "f111994de4a945fa82b2f7fdebdd5c73": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_36784e0cdb1e452683008b601719ba79", + "max": 612, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_797edaf966e342b08755fefa6fc48080", + "value": 612 + } + }, + "f149e04973c04d69acf4f8e042678ba0": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "f2ab85ee189b41c5a4f426c3f8ae8ced": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HTMLModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_4a8e4a99d02b4639936ad35c530988d5", + "placeholder": "​", + "style": "IPY_MODEL_cbaf8d3d56d94d039da0af5d057e9e5c", + "value": "Batches: 100%" + } + }, + "f402c11b42c14e85b85f0606180bc0b4": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "f535d3008cfc487fbb29a55946744f35": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "f6b9f5c1e584485db673ce8623fef17c": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "f721957ee9f84930822431cc0fe98a45": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "HBoxModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_138cb20ef5a643e0a74cfd08488336db", + "IPY_MODEL_545fed2e03fa472281786fe5c2ab5e10", + "IPY_MODEL_1fe399bb0bd44e7b8ec02a86489e988c" + ], + "layout": "IPY_MODEL_2e53a06caa2644209f8d5f0997c4a37a" + } + }, + "fd15252d08504d66a10e87b695e498c7": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "FloatProgressModel", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "success", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_17e3641aba3542e2a40ef368ece2db4f", + "max": 1, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_047b7ca1843e4ab0bc621667b09d3ce2", + "value": 1 + } + }, + "fd389c73cd86486197a5d650e423304c": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "ff5d5a3b884c48b9a4b2d014ee45d2d5": { + "model_module": "@jupyter-widgets/base", + "model_module_version": "1.2.0", + "model_name": "LayoutModel", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "ffb5ca25f1ec492e8186ed4f434c91de": { + "model_module": "@jupyter-widgets/controls", + "model_module_version": "1.5.0", + "model_name": "DescriptionStyleModel", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + } + } + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} From c510be0bfebe3744292f2c4af8da9ab9f00337ca Mon Sep 17 00:00:00 2001 From: anakin87 Date: Tue, 24 Sep 2024 16:01:16 +0200 Subject: [PATCH 2/5] add notebook in index and readme --- README.md | 1 + index.toml | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e50ce31..a79da9e 100644 --- a/README.md +++ b/README.md @@ -63,6 +63,7 @@ For more examples, you may also find our [Blog](https://haystack.deepset.ai/blog | Analyze Your Instagram Comments’ Vibe with Apify and Haystack | Open In Colab| | Conversational RAG using Memory | Open In Colab| | Evaluating RAG Pipelines with EvaluationHarness | Open In Colab| +| Tools support | Open In Colab| | Cohere for Multilingual QA (Haystack 1.x)| Open In Colab| | GPT-4 and Weaviate for Custom Documentation QA (Haystack 1.x)| Open In Colab| | Whisper Transcriber and Weaviate for YouTube video QA (Haystack 1.x)| Open In Colab| diff --git a/index.toml b/index.toml index eae5030..5115a64 100644 --- a/index.toml +++ b/index.toml @@ -147,7 +147,7 @@ notebook = "prometheus2_evaluation.ipynb" topics = ["Evaluation"] [[cookbook]] -title = "Advance Prompt Customization for Anthropic" +title = "Advanced Prompt Customization for Anthropic" notebook = "prompt_customization_for_Anthropic.ipynb" topics = ["Customization", "Prompting"] @@ -238,3 +238,10 @@ topics = ["Advanced Retrieval", "RAG", "Agents"] title = "Analyze Your Instagram Comments’ Vibe with Apify and Haystack" notebook = "apify_haystack_instagram_comments_analysis.ipynb" topics = ["Prompting", "Data Scraping"] + +[[cookbook]] +title = "Tools support" +notebook = "tools_support.ipynb" +topics = ["Function Calling", "Chat", "Agents"] +experimental = true +discuss = "https://github.com/deepset-ai/haystack-experimental/discussions/98" From 32a43ac2971baa18941bbf6be7c2ab09a7c34ce0 Mon Sep 17 00:00:00 2001 From: Stefano Fiorucci Date: Tue, 24 Sep 2024 16:50:50 +0200 Subject: [PATCH 3/5] Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Tuana Çelik --- README.md | 2 +- index.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a79da9e..4042902 100644 --- a/README.md +++ b/README.md @@ -63,7 +63,7 @@ For more examples, you may also find our [Blog](https://haystack.deepset.ai/blog | Analyze Your Instagram Comments’ Vibe with Apify and Haystack | Open In Colab| | Conversational RAG using Memory | Open In Colab| | Evaluating RAG Pipelines with EvaluationHarness | Open In Colab| -| Tools support | Open In Colab| +| Define & Run Tools | Open In Colab| | Cohere for Multilingual QA (Haystack 1.x)| Open In Colab| | GPT-4 and Weaviate for Custom Documentation QA (Haystack 1.x)| Open In Colab| | Whisper Transcriber and Weaviate for YouTube video QA (Haystack 1.x)| Open In Colab| diff --git a/index.toml b/index.toml index 5115a64..b014f50 100644 --- a/index.toml +++ b/index.toml @@ -240,7 +240,7 @@ notebook = "apify_haystack_instagram_comments_analysis.ipynb" topics = ["Prompting", "Data Scraping"] [[cookbook]] -title = "Tools support" +title = "Define & Run Tools " notebook = "tools_support.ipynb" topics = ["Function Calling", "Chat", "Agents"] experimental = true From 7c03afa3d33c46bfc723315038b9ce5d9d5f3b29 Mon Sep 17 00:00:00 2001 From: Stefano Fiorucci Date: Tue, 24 Sep 2024 16:51:37 +0200 Subject: [PATCH 4/5] Update notebooks/tools_support.ipynb MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Tuana Çelik --- notebooks/tools_support.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/notebooks/tools_support.ipynb b/notebooks/tools_support.ipynb index 66ce88d..90272cb 100644 --- a/notebooks/tools_support.ipynb +++ b/notebooks/tools_support.ipynb @@ -6,7 +6,7 @@ "id": "l68Urk97Wmut" }, "source": [ - "# 🛠️ Tools support\n", + "# 🛠️ Define & Run Tools", "\n", "\"Open\n", "\n", From b544437d790b8ccdd5ae5f932bba55f345cbfb48 Mon Sep 17 00:00:00 2001 From: Stefano Fiorucci Date: Tue, 24 Sep 2024 16:51:45 +0200 Subject: [PATCH 5/5] Update notebooks/tools_support.ipynb MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Tuana Çelik --- notebooks/tools_support.ipynb | 1 - 1 file changed, 1 deletion(-) diff --git a/notebooks/tools_support.ipynb b/notebooks/tools_support.ipynb index 90272cb..396f7ae 100644 --- a/notebooks/tools_support.ipynb +++ b/notebooks/tools_support.ipynb @@ -8,7 +8,6 @@ "source": [ "# 🛠️ Define & Run Tools", "\n", - "\"Open\n", "\n", "In this notebook, we introduce the experimental features we've been developing for tool/function calling support in Haystack.\n", "\n",