diff --git a/docs/docs/integrations/chat/ollama.ipynb b/docs/docs/integrations/chat/ollama.ipynb index d8e3b6ca4aa..5a0b3850ebf 100644 --- a/docs/docs/integrations/chat/ollama.ipynb +++ b/docs/docs/integrations/chat/ollama.ipynb @@ -2,6 +2,7 @@ "cells": [ { "cell_type": "raw", + "id": "afaf8039", "metadata": {}, "source": [ "---\n", @@ -11,6 +12,7 @@ }, { "cell_type": "markdown", + "id": "e49f1e0d", "metadata": {}, "source": [ "# ChatOllama\n", @@ -23,6 +25,18 @@ "\n", "For a complete list of supported models and model variants, see the [Ollama model library](https://github.com/jmorganca/ollama#model-library).\n", "\n", + "## Overview\n", + "### Integration details\n", + "\n", + "| Class | Package | Local | Serializable | [JS support](https://js.langchain.com/v0.2/docs/integrations/chat/ollama) | Package downloads | Package latest |\n", + "| :--- | :--- | :---: | :---: | :---: | :---: | :---: |\n", + "| [ChatOllama](https://api.python.langchain.com/en/latest/chat_models/langchain_ollama.chat_models.ChatOllama.html) | [langchain-ollama](https://api.python.langchain.com/en/latest/ollama_api_reference.html) | ✅ | ❌ | ✅ | ![PyPI - Downloads](https://img.shields.io/pypi/dm/langchain-ollama?style=flat-square&label=%20) | ![PyPI - Version](https://img.shields.io/pypi/v/langchain-ollama?style=flat-square&label=%20) |\n", + "\n", + "### Model features\n", + "| [Tool calling](/docs/how_to/tool_calling/) | [Structured output](/docs/how_to/structured_output/) | JSON mode | [Image input](/docs/how_to/multimodal_inputs/) | Audio input | Video input | [Token-level streaming](/docs/how_to/chat_streaming/) | Native async | [Token usage](/docs/how_to/chat_token_usage_tracking/) | [Logprobs](/docs/how_to/logprobs/) |\n", + "| :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: |\n", + "| ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ | \n", + "\n", "## Setup\n", "\n", "First, follow [these instructions](https://github.com/jmorganca/ollama) to set up and run a local Ollama instance:\n", @@ -40,307 +54,202 @@ "* Specify the exact version of the model of interest as such `ollama pull vicuna:13b-v1.5-16k-q4_0` (View the [various tags for the `Vicuna`](https://ollama.ai/library/vicuna/tags) model in this instance)\n", "* To view all pulled models, use `ollama list`\n", "* To chat directly with a model from the command line, use `ollama run `\n", - "* View the [Ollama documentation](https://github.com/jmorganca/ollama) for more commands. Run `ollama help` in the terminal to see available commands too.\n", - "\n", - "## Usage\n", - "\n", - "You can see a full list of supported parameters on the [API reference page](https://api.python.langchain.com/en/latest/llms/langchain.llms.ollama.Ollama.html).\n", - "\n", - "If you are using a LLaMA `chat` model (e.g., `ollama pull llama3`) then you can use the `ChatOllama` interface.\n", - "\n", - "This includes [special tokens](https://huggingface.co/blog/llama2#how-to-prompt-llama-2) for system message and user input.\n", - "\n", - "## Interacting with Models \n", - "\n", - "Here are a few ways to interact with pulled local models\n", - "\n", - "#### In the terminal:\n", - "\n", - "* All of your local models are automatically served on `localhost:11434`\n", - "* Run `ollama run ` to start interacting via the command line directly\n", - "\n", - "#### Via an API\n", - "\n", - "Send an `application/json` request to the API endpoint of Ollama to interact.\n", - "\n", - "```bash\n", - "curl http://localhost:11434/api/generate -d '{\n", - " \"model\": \"llama3\",\n", - " \"prompt\":\"Why is the sky blue?\"\n", - "}'\n", - "```\n", - "\n", - "See the Ollama [API documentation](https://github.com/jmorganca/ollama/blob/main/docs/api.md) for all endpoints.\n", - "\n", - "#### Via LangChain\n", - "\n", - "See a typical basic example of using Ollama via the `ChatOllama` chat model in your LangChain application. \n", - "\n", - "View the [API Reference for ChatOllama](https://api.python.langchain.com/en/latest/chat_models/langchain_community.chat_models.ollama.ChatOllama.html#langchain_community.chat_models.ollama.ChatOllama) for more." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Why did the astronaut break up with his girlfriend?\n", - "\n", - "Because he needed space!\n" - ] - } - ], - "source": [ - "# LangChain supports many other chat models. Here, we're using Ollama\n", - "from langchain_community.chat_models import ChatOllama\n", - "from langchain_core.output_parsers import StrOutputParser\n", - "from langchain_core.prompts import ChatPromptTemplate\n", - "\n", - "# supports many more optional parameters. Hover on your `ChatOllama(...)`\n", - "# class to view the latest available supported parameters\n", - "llm = ChatOllama(model=\"llama3\")\n", - "prompt = ChatPromptTemplate.from_template(\"Tell me a short joke about {topic}\")\n", - "\n", - "# using LangChain Expressive Language chain syntax\n", - "# learn more about the LCEL on\n", - "# /docs/concepts/#langchain-expression-language-lcel\n", - "chain = prompt | llm | StrOutputParser()\n", - "\n", - "# for brevity, response is printed in terminal\n", - "# You can use LangServe to deploy your application for\n", - "# production\n", - "print(chain.invoke({\"topic\": \"Space travel\"}))" + "* View the [Ollama documentation](https://github.com/jmorganca/ollama) for more commands. Run `ollama help` in the terminal to see available commands too.\n" ] }, { "cell_type": "markdown", + "id": "72ee0c4b-9764-423a-9dbf-95129e185210", "metadata": {}, "source": [ - "LCEL chains, out of the box, provide extra functionalities, such as streaming of responses, and async support" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Why\n", - " did\n", - " the\n", - " astronaut\n", - " break\n", - " up\n", - " with\n", - " his\n", - " girlfriend\n", - " before\n", - " going\n", - " to\n", - " Mars\n", - "?\n", - "\n", - "\n", - "Because\n", - " he\n", - " needed\n", - " space\n", - "!\n", - "\n" - ] - } - ], - "source": [ - "topic = {\"topic\": \"Space travel\"}\n", - "\n", - "for chunks in chain.stream(topic):\n", - " print(chunks)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For streaming async support, here's an example - all possible via the single chain created above." + "If you want to get automated tracing of your model calls you can also set your [LangSmith](https://docs.smith.langchain.com/) API key by uncommenting below:" ] }, { "cell_type": "code", "execution_count": null, + "id": "a15d341e-3e26-4ca3-830b-5aab30ed66de", "metadata": {}, "outputs": [], "source": [ - "topic = {\"topic\": \"Space travel\"}\n", - "\n", - "async for chunks in chain.astream(topic):\n", - " print(chunks)" + "# os.environ[\"LANGSMITH_API_KEY\"] = getpass.getpass(\"Enter your LangSmith API key: \")\n", + "# os.environ[\"LANGSMITH_TRACING\"] = \"true\"" ] }, { "cell_type": "markdown", + "id": "0730d6a1-c893-4840-9817-5e5251676d5d", "metadata": {}, "source": [ - "Take a look at the [LangChain Expressive Language (LCEL) Interface](/docs/concepts#interface) for the other available interfaces for use when a chain is created.\n", + "### Installation\n", "\n", - "## Building from source\n", - "\n", - "For up to date instructions on building from source, check the Ollama documentation on [Building from Source](https://github.com/ollama/ollama?tab=readme-ov-file#building)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Extraction\n", - " \n", - "Use the latest version of Ollama and supply the [`format`](https://github.com/jmorganca/ollama/blob/main/docs/api.md#json-mode) flag. The `format` flag will force the model to produce the response in JSON.\n", - "\n", - "> **Note:** You can also try out the experimental [OllamaFunctions](/docs/integrations/chat/ollama_functions) wrapper for convenience." + "The LangChain Ollama integration lives in the `langchain-ollama` package:" ] }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, + "id": "652d6238-1f87-422a-b135-f5abbb8652fc", "metadata": {}, "outputs": [], "source": [ - "from langchain_community.chat_models import ChatOllama\n", + "%pip install -qU langchain-ollama" + ] + }, + { + "cell_type": "markdown", + "id": "a38cde65-254d-4219-a441-068766c0d4b5", + "metadata": {}, + "source": [ + "## Instantiation\n", "\n", - "llm = ChatOllama(model=\"llama3\", format=\"json\", temperature=0)" + "Now we can instantiate our model object and generate chat completions:\n", + "\n", + "- TODO: Update model instantiation with relevant params." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "cb09c344-1836-4e0c-acf8-11d13ac1dbae", + "metadata": {}, + "outputs": [], + "source": [ + "from langchain_ollama import ChatOllama\n", + "\n", + "llm = ChatOllama(\n", + " model=\"llama3\",\n", + " temperature=0,\n", + " # other params...\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "2b4f3e15", + "metadata": {}, + "source": [ + "## Invocation" ] }, { "cell_type": "code", "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "content='{ \"morning\": \"blue\", \"noon\": \"clear blue\", \"afternoon\": \"hazy yellow\", \"evening\": \"orange-red\" }\\n\\n \\n\\n\\n\\n\\n\\n \\n\\n\\n\\n\\n\\n \\n\\n\\n\\n\\n\\n \\n\\n\\n\\n\\n\\n \\n\\n\\n\\n\\n\\n \\n\\n\\n\\n\\n\\n \\n\\n\\n\\n\\n\\n \\n\\n\\n\\n\\n\\n \\n\\n\\n\\n\\n\\n \\n\\n\\n\\n\\n\\n ' id='run-e893700f-e2d0-4df8-ad86-17525dcee318-0'\n" - ] - } - ], - "source": [ - "from langchain_core.messages import HumanMessage\n", - "\n", - "messages = [\n", - " HumanMessage(\n", - " content=\"What color is the sky at different times of the day? Respond using JSON\"\n", - " )\n", - "]\n", - "\n", - "chat_model_response = llm.invoke(messages)\n", - "print(chat_model_response)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "Name: John\n", - "Age: 35\n", - "Likes: Pizza\n" - ] - } - ], - "source": [ - "import json\n", - "\n", - "from langchain_community.chat_models import ChatOllama\n", - "from langchain_core.messages import HumanMessage\n", - "from langchain_core.output_parsers import StrOutputParser\n", - "from langchain_core.prompts import ChatPromptTemplate\n", - "\n", - "json_schema = {\n", - " \"title\": \"Person\",\n", - " \"description\": \"Identifying information about a person.\",\n", - " \"type\": \"object\",\n", - " \"properties\": {\n", - " \"name\": {\"title\": \"Name\", \"description\": \"The person's name\", \"type\": \"string\"},\n", - " \"age\": {\"title\": \"Age\", \"description\": \"The person's age\", \"type\": \"integer\"},\n", - " \"fav_food\": {\n", - " \"title\": \"Fav Food\",\n", - " \"description\": \"The person's favorite food\",\n", - " \"type\": \"string\",\n", - " },\n", - " },\n", - " \"required\": [\"name\", \"age\"],\n", - "}\n", - "\n", - "llm = ChatOllama(model=\"llama2\")\n", - "\n", - "messages = [\n", - " HumanMessage(\n", - " content=\"Please tell me about a person using the following JSON schema:\"\n", - " ),\n", - " HumanMessage(content=\"{dumps}\"),\n", - " HumanMessage(\n", - " content=\"Now, considering the schema, tell me about a person named John who is 35 years old and loves pizza.\"\n", - " ),\n", - "]\n", - "\n", - "prompt = ChatPromptTemplate.from_messages(messages)\n", - "dumps = json.dumps(json_schema, indent=2)\n", - "\n", - "chain = prompt | llm | StrOutputParser()\n", - "\n", - "print(chain.invoke({\"dumps\": dumps}))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Multi-modal\n", - "\n", - "Ollama has support for multi-modal LLMs, such as [bakllava](https://ollama.ai/library/bakllava) and [llava](https://ollama.ai/library/llava).\n", - "\n", - "Browse the full set of versions for models with `tags`, such as [Llava](https://ollama.ai/library/llava/tags).\n", - "\n", - "Download the desired LLM via `ollama pull bakllava`\n", - "\n", - "Be sure to update Ollama so that you have the most recent version to support multi-modal.\n", - "\n", - "Check out the typical example of how to use ChatOllama multi-modal support below:" - ] - }, - { - "cell_type": "code", - "execution_count": 18, + "id": "62e0dbc3", "metadata": { - "scrolled": true + "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Note: you may need to restart the kernel to use updated packages.\n" + "AIMessage(content='Je adore le programmation.\\n\\n(Note: \"programmation\" is the feminine form of the noun in French, but if you want to use the masculine form, it would be \"le programme\" instead.)' response_metadata={'model': 'llama3', 'created_at': '2024-07-04T04:20:28.138164Z', 'message': {'role': 'assistant', 'content': ''}, 'done_reason': 'stop', 'done': True, 'total_duration': 1943337750, 'load_duration': 1128875, 'prompt_eval_count': 33, 'prompt_eval_duration': 322813000, 'eval_count': 43, 'eval_duration': 1618213000} id='run-ed8c17ab-7fc2-4c90-a88a-f6273b49bc78-0')\n" ] } ], "source": [ - "!pip install --upgrade --quiet pillow" + "from langchain_core.messages import AIMessage\n", + "\n", + "messages = [\n", + " (\n", + " \"system\",\n", + " \"You are a helpful assistant that translates English to French. Translate the user sentence.\",\n", + " ),\n", + " (\"human\", \"I love programming.\"),\n", + "]\n", + "ai_msg = llm.invoke(messages)\n", + "ai_msg" ] }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 8, + "id": "d86145b3-bfef-46e8-b227-4dda5c9c2705", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Je adore le programmation.\n", + "\n", + "(Note: \"programmation\" is the feminine form of the noun in French, but if you want to use the masculine form, it would be \"le programme\" instead.)\n" + ] + } + ], + "source": [ + "print(ai_msg.content)" + ] + }, + { + "cell_type": "markdown", + "id": "18e2bfc0-7e78-4528-a73f-499ac150dca8", + "metadata": {}, + "source": [ + "## Chaining\n", + "\n", + "We can [chain](/docs/how_to/sequence/) our model with a prompt template like so:" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "e197d1d7-a070-4c96-9f8a-a0e86d046e0b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "AIMessage(content='Ich liebe Programmieren!\\n\\n(Note: \"Ich liebe\" means \"I love\", \"Programmieren\" is the verb for \"programming\")', response_metadata={'model': 'llama3', 'created_at': '2024-07-04T04:22:33.864132Z', 'message': {'role': 'assistant', 'content': ''}, 'done_reason': 'stop', 'done': True, 'total_duration': 1310800083, 'load_duration': 1782000, 'prompt_eval_count': 16, 'prompt_eval_duration': 250199000, 'eval_count': 29, 'eval_duration': 1057192000}, id='run-cbadbe59-2de2-4ec0-a18a-b3220226c3d2-0')" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from langchain_core.prompts import ChatPromptTemplate\n", + "\n", + "prompt = ChatPromptTemplate.from_messages(\n", + " [\n", + " (\n", + " \"system\",\n", + " \"You are a helpful assistant that translates {input_language} to {output_language}.\",\n", + " ),\n", + " (\"human\", \"{input}\"),\n", + " ]\n", + ")\n", + "\n", + "chain = prompt | llm\n", + "chain.invoke(\n", + " {\n", + " \"input_language\": \"English\",\n", + " \"output_language\": \"German\",\n", + " \"input\": \"I love programming.\",\n", + " }\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "4c5e0197", + "metadata": {}, + "source": [ + "## Multi-modal\n", + "\n", + "Ollama has support for multi-modal LLMs, such as [bakllava](https://ollama.com/library/bakllava) and [llava](https://ollama.com/library/llava).\n", + "\n", + " ollama pull bakllava\n", + "\n", + "Be sure to update Ollama so that you have the most recent version to support multi-modal." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "36c9b1c2", "metadata": {}, "outputs": [ { @@ -399,7 +308,8 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 12, + "id": "32b3ba7b", "metadata": {}, "outputs": [ { @@ -411,8 +321,8 @@ } ], "source": [ - "from langchain_community.chat_models import ChatOllama\n", "from langchain_core.messages import HumanMessage\n", + "from langchain_ollama import ChatOllama\n", "\n", "llm = ChatOllama(model=\"bakllava\", temperature=0)\n", "\n", @@ -449,20 +359,12 @@ }, { "cell_type": "markdown", + "id": "3a5bb5ca-c3ae-4a58-be67-2cd18574b9a3", "metadata": {}, "source": [ - "## Concurrency Features\n", + "## API reference\n", "\n", - "Ollama supports concurrency inference for a single model, and or loading multiple models simulatenously (at least [version 0.1.33](https://github.com/ollama/ollama/releases)).\n", - "\n", - "Start the Ollama server with:\n", - "\n", - "* `OLLAMA_NUM_PARALLEL`: Handle multiple requests simultaneously for a single model\n", - "* `OLLAMA_MAX_LOADED_MODELS`: Load multiple models simultaneously\n", - "\n", - "Example: `OLLAMA_NUM_PARALLEL=4 OLLAMA_MAX_LOADED_MODELS=4 ollama serve`\n", - "\n", - "Learn more about configuring Ollama server in [the official guide](https://github.com/ollama/ollama/blob/main/docs/faq.md#how-do-i-configure-ollama-server)." + "For detailed documentation of all ChatOllama features and configurations head to the API reference: https://api.python.langchain.com/en/latest/chat_models/langchain_ollama.chat_models.ChatOllama.html" ] } ], @@ -482,9 +384,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.8" + "version": "3.12.3" } }, "nbformat": 4, - "nbformat_minor": 4 + "nbformat_minor": 5 } diff --git a/docs/docs/integrations/llms/ollama.ipynb b/docs/docs/integrations/llms/ollama.ipynb index 68a0845376b..1ab33f6c018 100644 --- a/docs/docs/integrations/llms/ollama.ipynb +++ b/docs/docs/integrations/llms/ollama.ipynb @@ -1,10 +1,21 @@ { "cells": [ { - "cell_type": "markdown", + "cell_type": "raw", + "id": "67db2992", "metadata": {}, "source": [ - "# Ollama\n", + "---\n", + "sidebar_label: Ollama\n", + "---" + ] + }, + { + "cell_type": "markdown", + "id": "9597802c", + "metadata": {}, + "source": [ + "# OllamaLLM\n", "\n", ":::caution\n", "You are currently on a page documenting the use of Ollama models as [text completion models](/docs/concepts/#llms). Many popular Ollama models are [chat completion models](/docs/concepts/#chat-models).\n", @@ -12,21 +23,35 @@ "You may be looking for [this page instead](/docs/integrations/chat/ollama/).\n", ":::\n", "\n", - "[Ollama](https://ollama.ai/) allows you to run open-source large language models, such as Llama 2, locally.\n", - "\n", - "Ollama bundles model weights, configuration, and data into a single package, defined by a Modelfile. \n", - "\n", - "It optimizes setup and configuration details, including GPU usage.\n", - "\n", - "For a complete list of supported models and model variants, see the [Ollama model library](https://github.com/ollama/ollama#model-library).\n", + "This page goes over how to use LangChain to interact with `Ollama` models.\n", "\n", + "## Installation" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "59c710c4", + "metadata": {}, + "outputs": [], + "source": [ + "# install package\n", + "%pip install -U langchain-ollama" + ] + }, + { + "cell_type": "markdown", + "id": "0ee90032", + "metadata": {}, + "source": [ "## Setup\n", "\n", - "First, follow [these instructions](https://github.com/ollama/ollama) to set up and run a local Ollama instance:\n", + "First, follow [these instructions](https://github.com/jmorganca/ollama) to set up and run a local Ollama instance:\n", "\n", "* [Download](https://ollama.ai/download) and install Ollama onto the available supported platforms (including Windows Subsystem for Linux)\n", "* Fetch available LLM model via `ollama pull `\n", - " * View a list of available models via the [model library](https://ollama.ai/library) and pull to use locally with the command `ollama pull llama3`\n", + " * View a list of available models via the [model library](https://ollama.ai/library)\n", + " * e.g., `ollama pull llama3`\n", "* This will download the default tagged version of the model. Typically, the default points to the latest, smallest sized-parameter model.\n", "\n", "> On Mac, the models will be download to `~/.ollama/models`\n", @@ -34,194 +59,67 @@ "> On Linux (or WSL), the models will be stored at `/usr/share/ollama/.ollama/models`\n", "\n", "* Specify the exact version of the model of interest as such `ollama pull vicuna:13b-v1.5-16k-q4_0` (View the [various tags for the `Vicuna`](https://ollama.ai/library/vicuna/tags) model in this instance)\n", - "* To view all pulled models on your local instance, use `ollama list`\n", + "* To view all pulled models, use `ollama list`\n", "* To chat directly with a model from the command line, use `ollama run `\n", - "* View the [Ollama documentation](https://github.com/ollama/ollama) for more commands. \n", - "* Run `ollama help` in the terminal to see available commands too.\n", + "* View the [Ollama documentation](https://github.com/jmorganca/ollama) for more commands. Run `ollama help` in the terminal to see available commands too.\n", "\n", - "## Usage\n", - "\n", - "You can see a full list of supported parameters on the [API reference page](https://api.python.langchain.com/en/latest/llms/langchain_community.llms.ollama.Ollama.html).\n", - "\n", - "If you are using a LLaMA `chat` model (e.g., `ollama pull llama3`) then you can use the `ChatOllama` [interface](https://python.langchain.com/v0.2/docs/integrations/chat/ollama/).\n", - "\n", - "This includes [special tokens](https://ollama.com/library/llama3) for system message and user input.\n", - "\n", - "## Interacting with Models \n", - "\n", - "Here are a few ways to interact with pulled local models\n", - "\n", - "#### In the terminal:\n", - "\n", - "* All of your local models are automatically served on `localhost:11434`\n", - "* Run `ollama run ` to start interacting via the command line directly\n", - "\n", - "#### Via the API\n", - "\n", - "Send an `application/json` request to the API endpoint of Ollama to interact.\n", - "\n", - "```bash\n", - "curl http://localhost:11434/api/generate -d '{\n", - " \"model\": \"llama3\",\n", - " \"prompt\":\"Why is the sky blue?\"\n", - "}'\n", - "```\n", - "\n", - "See the Ollama [API documentation](https://github.com/ollama/ollama/blob/main/docs/api.md) for all endpoints.\n", - "\n", - "#### via LangChain\n", - "\n", - "See a typical basic example of using [Ollama chat model](https://python.langchain.com/v0.2/docs/integrations/chat/ollama/) in your LangChain application." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "!pip install langchain-community" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "\"Here's one:\\n\\nWhy don't scientists trust atoms?\\n\\nBecause they make up everything!\\n\\nHope that made you smile! Do you want to hear another one?\"" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from langchain_community.llms import Ollama\n", - "\n", - "llm = Ollama(\n", - " model=\"llama3\"\n", - ") # assuming you have Ollama installed and have llama3 model pulled with `ollama pull llama3 `\n", - "\n", - "llm.invoke(\"Tell me a joke\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "To stream tokens, use the `.stream(...)` method:" + "## Usage" ] }, { "cell_type": "code", "execution_count": 4, - "metadata": {}, + "id": "035dea0f", + "metadata": { + "tags": [] + }, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "\n", - "S\n", - "ure\n", - ",\n", - " here\n", - "'\n", - "s\n", - " one\n", - ":\n", - "\n", - "\n", - "\n", - "\n", - "Why\n", - " don\n", - "'\n", - "t\n", - " scient\n", - "ists\n", - " trust\n", - " atoms\n", - "?\n", - "\n", - "\n", - "B\n", - "ecause\n", - " they\n", - " make\n", - " up\n", - " everything\n", - "!\n", - "\n", - "\n", - "\n", - "\n", - "I\n", - " hope\n", - " you\n", - " found\n", - " that\n", - " am\n", - "using\n", - "!\n", - " Do\n", - " you\n", - " want\n", - " to\n", - " hear\n", - " another\n", - " one\n", - "?\n", - "\n" - ] + "data": { + "text/plain": [ + "'A great start!\\n\\nLangChain is a type of AI model that uses language processing techniques to generate human-like text based on input prompts or chains of reasoning. In other words, it can have a conversation with humans, understanding the context and responding accordingly.\\n\\nHere\\'s a possible breakdown:\\n\\n* \"Lang\" likely refers to its focus on natural language processing (NLP) and linguistic analysis.\\n* \"Chain\" suggests that LangChain is designed to generate text in response to a series of connected ideas or prompts, rather than simply generating random text.\\n\\nSo, what do you think LangChain\\'s capabilities might be?'" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ - "query = \"Tell me a joke\"\n", + "from langchain_core.prompts import ChatPromptTemplate\n", + "from langchain_ollama.llms import OllamaLLM\n", "\n", - "for chunks in llm.stream(query):\n", - " print(chunks)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "To learn more about the LangChain Expressive Language and the available methods on an LLM, see the [LCEL Interface](/docs/concepts#interface)" + "template = \"\"\"Question: {question}\n", + "\n", + "Answer: Let's think step by step.\"\"\"\n", + "\n", + "prompt = ChatPromptTemplate.from_template(template)\n", + "\n", + "model = OllamaLLM(model=\"llama3\")\n", + "\n", + "chain = prompt | model\n", + "\n", + "chain.invoke({\"question\": \"What is LangChain?\"})" ] }, { "cell_type": "markdown", + "id": "e2d85456", "metadata": {}, "source": [ "## Multi-modal\n", "\n", - "Ollama has support for multi-modal LLMs, such as [bakllava](https://ollama.ai/library/bakllava) and [llava](https://ollama.ai/library/llava).\n", + "Ollama has support for multi-modal LLMs, such as [bakllava](https://ollama.com/library/bakllava) and [llava](https://ollama.com/library/llava).\n", "\n", - "`ollama pull bakllava`\n", + " ollama pull bakllava\n", "\n", "Be sure to update Ollama so that you have the most recent version to support multi-modal." ] }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "from langchain_community.llms import Ollama\n", - "\n", - "bakllava = Ollama(model=\"bakllava\")" - ] - }, { "cell_type": "code", "execution_count": 2, + "id": "4043e202", "metadata": {}, "outputs": [ { @@ -279,7 +177,8 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 4, + "id": "79aaf863", "metadata": {}, "outputs": [ { @@ -288,38 +187,24 @@ "'90%'" ] }, - "execution_count": 8, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "llm_with_image_context = bakllava.bind(images=[image_b64])\n", + "from langchain_ollama import OllamaLLM\n", + "\n", + "llm = OllamaLLM(model=\"bakllava\")\n", + "\n", + "llm_with_image_context = llm.bind(images=[image_b64])\n", "llm_with_image_context.invoke(\"What is the dollar based gross retention rate:\")" ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Concurrency Features\n", - "\n", - "Ollama supports concurrency inference for a single model, and or loading multiple models simulatenously (at least [version 0.1.33](https://github.com/ollama/ollama/releases)).\n", - "\n", - "Start the Ollama server with:\n", - "\n", - "* `OLLAMA_NUM_PARALLEL`: Handle multiple requests simultaneously for a single model\n", - "* `OLLAMA_MAX_LOADED_MODELS`: Load multiple models simultaneously\n", - "\n", - "Example: `OLLAMA_NUM_PARALLEL=4 OLLAMA_MAX_LOADED_MODELS=4 ollama serve`\n", - "\n", - "Learn more about configuring Ollama server in [the official guide](https://github.com/ollama/ollama/blob/main/docs/faq.md#how-do-i-configure-ollama-server)." - ] } ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "Python 3.11.1 64-bit", "language": "python", "name": "python3" }, @@ -333,9 +218,14 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.8" + "version": "3.12.3" + }, + "vscode": { + "interpreter": { + "hash": "e971737741ff4ec9aff7dc6155a1060a59a8a6d52c757dbbe66bf8ee389494b1" + } } }, "nbformat": 4, - "nbformat_minor": 4 + "nbformat_minor": 5 } diff --git a/docs/docs/integrations/text_embedding/ollama.ipynb b/docs/docs/integrations/text_embedding/ollama.ipynb index c7af848287d..8937902c6f7 100644 --- a/docs/docs/integrations/text_embedding/ollama.ipynb +++ b/docs/docs/integrations/text_embedding/ollama.ipynb @@ -1,99 +1,3114 @@ { "cells": [ { - "cell_type": "markdown", - "id": "278b6c63", + "cell_type": "raw", + "id": "afaf8039", "metadata": {}, "source": [ - "# Ollama\n", - "\n", - "\"Ollama supports embedding models, making it possible to build retrieval augmented generation (RAG) applications that combine text prompts with existing documents or other data.\" Learn more about the introduction to [Ollama Embeddings](https://ollama.com/blog/embedding-models) in the blog post.\n", - "\n", - "To use Ollama Embeddings, first, install [LangChain Community](https://pypi.org/project/langchain-community/) package:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "854d6a2e", - "metadata": {}, - "outputs": [], - "source": [ - "!pip install langchain-community" + "---\n", + "sidebar_label: Ollama\n", + "---" ] }, { "cell_type": "markdown", - "id": "54fbb4cd", + "id": "e49f1e0d", "metadata": {}, "source": [ - "Load the Ollama Embeddings class:" + "# OllamaEmbeddings\n", + "\n", + "This notebook covers how to get started with Ollama embedding models.\n", + "\n", + "## Installation" ] }, { - "cell_type": "code", - "execution_count": 1, - "id": "0be1af71", - "metadata": {}, - "outputs": [], + "cell_type": "raw", + "id": "57f50aa5", + "metadata": { + "vscode": { + "languageId": "raw" + } + }, "source": [ - "from langchain_community.embeddings import OllamaEmbeddings\n", - "\n", - "embeddings = (\n", - " OllamaEmbeddings()\n", - ") # by default, uses llama2. Run `ollama pull llama2` to pull down the model\n", - "\n", - "text = \"This is a test document.\"" + "# install package\n", + "%pip install langchain_ollama" ] }, { "cell_type": "markdown", - "id": "a42e4035", + "id": "2b4f3e15", "metadata": {}, "source": [ - "To generate embeddings, you can either query an invidivual text, or you can query a list of texts." + "## Setup\n", + "\n", + "First, follow [these instructions](https://github.com/jmorganca/ollama) to set up and run a local Ollama instance:\n", + "\n", + "* [Download](https://ollama.ai/download) and install Ollama onto the available supported platforms (including Windows Subsystem for Linux)\n", + "* Fetch available LLM model via `ollama pull `\n", + " * View a list of available models via the [model library](https://ollama.ai/library)\n", + " * e.g., `ollama pull llama3`\n", + "* This will download the default tagged version of the model. Typically, the default points to the latest, smallest sized-parameter model.\n", + "\n", + "> On Mac, the models will be download to `~/.ollama/models`\n", + "> \n", + "> On Linux (or WSL), the models will be stored at `/usr/share/ollama/.ollama/models`\n", + "\n", + "* Specify the exact version of the model of interest as such `ollama pull vicuna:13b-v1.5-16k-q4_0` (View the [various tags for the `Vicuna`](https://ollama.ai/library/vicuna/tags) model in this instance)\n", + "* To view all pulled models, use `ollama list`\n", + "* To chat directly with a model from the command line, use `ollama run `\n", + "* View the [Ollama documentation](https://github.com/jmorganca/ollama) for more commands. Run `ollama help` in the terminal to see available commands too.\n", + "\n", + "\n", + "## Usage" ] }, { "cell_type": "code", "execution_count": 4, - "id": "91bc875d-829b-4c3d-8e6f-fc2dda30a3bd", + "id": "62e0dbc3", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "from langchain_ollama import OllamaEmbeddings\n", + "\n", + "embeddings = OllamaEmbeddings(model=\"llama3\")" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "12fcfb4b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[-0.09996652603149414,\n", - " 0.015568195842206478,\n", - " 0.17670190334320068,\n", - " 0.16521021723747253,\n", - " 0.21193109452724457]" + "[1.1588108539581299,\n", + " -3.3943021297454834,\n", + " 0.8108075261116028,\n", + " 0.48006290197372437,\n", + " -1.8064439296722412,\n", + " -0.5782400965690613,\n", + " 1.8570188283920288,\n", + " 2.2842330932617188,\n", + " -2.836144208908081,\n", + " -0.6422690153121948,\n", + " 3.273954391479492,\n", + " 4.197624206542969,\n", + " 1.5792632102966309,\n", + " -0.7088574767112732,\n", + " -4.41064453125,\n", + " 3.8046557903289795,\n", + " -1.0552408695220947,\n", + " 2.5829873085021973,\n", + " -0.251083105802536,\n", + " -0.7187575101852417,\n", + " 1.5951714515686035,\n", + " 1.2261885404586792,\n", + " 3.8631832599639893,\n", + " 0.8608534336090088,\n", + " -3.532944440841675,\n", + " 1.136743426322937,\n", + " -0.3754008114337921,\n", + " -1.5837438106536865,\n", + " -0.8591232299804688,\n", + " -1.9293577671051025,\n", + " 2.4372336864471436,\n", + " 0.09715379774570465,\n", + " -0.03162198141217232,\n", + " 1.7708642482757568,\n", + " 4.750239849090576,\n", + " 1.2387702465057373,\n", + " 3.7156949043273926,\n", + " 1.5510010719299316,\n", + " 1.3379523754119873,\n", + " -0.841890275478363,\n", + " 2.3726487159729004,\n", + " -1.2338300943374634,\n", + " 1.1810152530670166,\n", + " -0.9494953155517578,\n", + " 1.1218419075012207,\n", + " -1.6031185388565063,\n", + " -3.294806718826294,\n", + " -0.5389865040779114,\n", + " 1.0341904163360596,\n", + " -0.5253395438194275,\n", + " 1.734361171722412,\n", + " -3.1851885318756104,\n", + " 0.1542605608701706,\n", + " 0.35263291001319885,\n", + " 0.015420048497617245,\n", + " 0.5193774700164795,\n", + " 2.3625452518463135,\n", + " 1.9975805282592773,\n", + " -1.9758665561676025,\n", + " -0.050141070038080215,\n", + " 1.4507611989974976,\n", + " 1.1301021575927734,\n", + " 4.876162528991699,\n", + " -0.8849706053733826,\n", + " 0.41741955280303955,\n", + " 1.8841806650161743,\n", + " 0.7837628722190857,\n", + " -1.0020332336425781,\n", + " 1.8965165615081787,\n", + " 2.107957363128662,\n", + " -0.5471721887588501,\n", + " 0.5157415270805359,\n", + " 0.12206833064556122,\n", + " 2.839080810546875,\n", + " -1.4622355699539185,\n", + " -0.4768144488334656,\n", + " 0.6135925054550171,\n", + " -1.0522381067276,\n", + " -1.8777196407318115,\n", + " -0.32860419154167175,\n", + " 0.35022690892219543,\n", + " 2.203225612640381,\n", + " -0.38155192136764526,\n", + " -1.6958814859390259,\n", + " 2.3018438816070557,\n", + " -0.20140409469604492,\n", + " -2.3490500450134277,\n", + " 1.472577691078186,\n", + " -1.0838013887405396,\n", + " 2.041187047958374,\n", + " 0.20357169210910797,\n", + " -5.494638442993164,\n", + " 2.4712302684783936,\n", + " -1.3592402935028076,\n", + " -2.9500672817230225,\n", + " -2.696129322052002,\n", + " -3.6364619731903076,\n", + " 2.8685965538024902,\n", + " 1.482085943222046,\n", + " 1.1528726816177368,\n", + " 2.1248507499694824,\n", + " -0.8130776286125183,\n", + " 0.5030447244644165,\n", + " -3.1585915088653564,\n", + " -1.1061086654663086,\n", + " -3.3865482807159424,\n", + " 1.1274324655532837,\n", + " 0.7367305755615234,\n", + " -2.0779378414154053,\n", + " 2.6166021823883057,\n", + " -0.3340587317943573,\n", + " -1.295107364654541,\n", + " 1.206892967224121,\n", + " 3.3618593215942383,\n", + " -0.7384762763977051,\n", + " -2.689724922180176,\n", + " -2.246962308883667,\n", + " 0.2889839708805084,\n", + " 0.055849093943834305,\n", + " 1.2398909330368042,\n", + " 3.178607702255249,\n", + " -0.33557358384132385,\n", + " 2.853860378265381,\n", + " -1.5514289140701294,\n", + " 1.3975822925567627,\n", + " -0.3734644651412964,\n", + " 1.4595016241073608,\n", + " -0.6050246357917786,\n", + " -5.082399368286133,\n", + " -2.2399344444274902,\n", + " -2.038201093673706,\n", + " -1.1506695747375488,\n", + " -1.0732736587524414,\n", + " -5.881229877471924,\n", + " -0.8740050792694092,\n", + " -0.647497832775116,\n", + " 0.2860146760940552,\n", + " 2.4114344120025635,\n", + " 3.0942447185516357,\n", + " 0.3607892692089081,\n", + " -1.7367973327636719,\n", + " -2.8473262786865234,\n", + " 1.3145824670791626,\n", + " 2.43322491645813,\n", + " 1.48888099193573,\n", + " -1.4429435729980469,\n", + " -1.821229338645935,\n", + " 0.643457293510437,\n", + " 0.17439056932926178,\n", + " 2.176281690597534,\n", + " 0.027703439816832542,\n", + " 0.2498602271080017,\n", + " 1.1997318267822266,\n", + " 1.4345020055770874,\n", + " 0.46781685948371887,\n", + " 1.2306678295135498,\n", + " -0.6163588762283325,\n", + " -1.2178168296813965,\n", + " -4.266748428344727,\n", + " 0.28436020016670227,\n", + " 0.9003216028213501,\n", + " -1.654914379119873,\n", + " -0.5554200410842896,\n", + " 0.1496565192937851,\n", + " 1.5034950971603394,\n", + " -1.3246999979019165,\n", + " 0.10929492861032486,\n", + " -2.7049319744110107,\n", + " 0.9414666295051575,\n", + " -0.27462971210479736,\n", + " -2.128129243850708,\n", + " -0.4637344181537628,\n", + " 1.0333945751190186,\n", + " -2.184784173965454,\n", + " 1.5900598764419556,\n", + " 2.9566292762756348,\n", + " 2.280306577682495,\n", + " 1.4741032123565674,\n", + " 0.49892717599868774,\n", + " -2.1254706382751465,\n", + " 0.6352860331535339,\n", + " 1.6173533201217651,\n", + " -0.25190767645835876,\n", + " -1.8517420291900635,\n", + " 12.598737716674805,\n", + " 4.262639045715332,\n", + " 0.43113183975219727,\n", + " -1.1830300092697144,\n", + " 0.035109564661979675,\n", + " 0.24452516436576843,\n", + " 0.7221726775169373,\n", + " -0.0035807047970592976,\n", + " 1.681563138961792,\n", + " -1.215894341468811,\n", + " -1.555798053741455,\n", + " -0.5959586501121521,\n", + " -0.5245604515075684,\n", + " -2.1588215827941895,\n", + " -1.1396427154541016,\n", + " 1.0657974481582642,\n", + " 0.8924249410629272,\n", + " 0.9819761514663696,\n", + " -1.1334974765777588,\n", + " 3.2819013595581055,\n", + " 1.511919379234314,\n", + " -2.2465317249298096,\n", + " -2.583705186843872,\n", + " 0.4657593071460724,\n", + " 0.2209637612104416,\n", + " 2.746770143508911,\n", + " 4.560251235961914,\n", + " 1.986694097518921,\n", + " -0.4748530089855194,\n", + " -2.517805576324463,\n", + " -2.157360315322876,\n", + " -1.7753424644470215,\n", + " -0.02851729467511177,\n", + " -2.1114273071289062,\n", + " -0.07016204297542572,\n", + " -1.6848444938659668,\n", + " -2.725170850753784,\n", + " 1.0326589345932007,\n", + " -0.8966331481933594,\n", + " 1.5369850397109985,\n", + " -0.025898657739162445,\n", + " 0.4354790151119232,\n", + " 1.2697052955627441,\n", + " -0.1471754014492035,\n", + " 0.5059998631477356,\n", + " -1.3200763463974,\n", + " 2.2437644004821777,\n", + " -0.5243448615074158,\n", + " -0.9111588001251221,\n", + " 1.8827953338623047,\n", + " -0.30101990699768066,\n", + " 0.9442852735519409,\n", + " 0.1717413067817688,\n", + " 4.658431053161621,\n", + " -0.009960738942027092,\n", + " -0.2815183997154236,\n", + " 2.2827413082122803,\n", + " 0.44293636083602905,\n", + " -0.6525455117225647,\n", + " -1.3660684823989868,\n", + " -0.21125054359436035,\n", + " -0.5272241234779358,\n", + " 2.001535415649414,\n", + " 0.4968120753765106,\n", + " 0.41021376848220825,\n", + " 0.514000654220581,\n", + " -0.9426586627960205,\n", + " -1.0643374919891357,\n", + " 0.5905271768569946,\n", + " 1.6043733358383179,\n", + " -0.18217313289642334,\n", + " -2.347510576248169,\n", + " -0.29926538467407227,\n", + " 0.5902263522148132,\n", + " 1.441290020942688,\n", + " 0.544480562210083,\n", + " 0.18010686337947845,\n", + " 1.2514686584472656,\n", + " 2.621767520904541,\n", + " -0.2841752767562866,\n", + " -1.1722776889801025,\n", + " -0.15847790241241455,\n", + " 3.022190809249878,\n", + " -3.0455780029296875,\n", + " -0.37991198897361755,\n", + " -3.8938205242156982,\n", + " 3.496748924255371,\n", + " -4.296337127685547,\n", + " 1.6838269233703613,\n", + " -1.3237261772155762,\n", + " 2.119468927383423,\n", + " 0.5516493916511536,\n", + " 2.0679879188537598,\n", + " -0.3881581127643585,\n", + " 1.266517162322998,\n", + " -0.5005441308021545,\n", + " 0.46510857343673706,\n", + " -4.3948187828063965,\n", + " 2.1680824756622314,\n", + " -0.5885717868804932,\n", + " 0.854987621307373,\n", + " -0.39449062943458557,\n", + " 3.4793968200683594,\n", + " -1.074455976486206,\n", + " 1.3052178621292114,\n", + " -2.235884189605713,\n", + " -9.78164005279541,\n", + " 0.8423577547073364,\n", + " -0.9710142016410828,\n", + " 0.3046700060367584,\n", + " -1.8575193881988525,\n", + " -2.0895538330078125,\n", + " -0.5859282612800598,\n", + " -1.1711078882217407,\n", + " -0.17297153174877167,\n", + " -0.21491439640522003,\n", + " 1.639647126197815,\n", + " -0.10026901960372925,\n", + " 0.2984236478805542,\n", + " 0.7950730323791504,\n", + " -0.9993802905082703,\n", + " 2.1243302822113037,\n", + " -0.22378306090831757,\n", + " -1.4608495235443115,\n", + " 0.5124260187149048,\n", + " 1.072134017944336,\n", + " 0.6338499784469604,\n", + " -0.8448237180709839,\n", + " -3.8042726516723633,\n", + " 3.6057517528533936,\n", + " 0.24423162639141083,\n", + " -0.34035125374794006,\n", + " 1.3989207744598389,\n", + " 3.6974809169769287,\n", + " -1.7089307308197021,\n", + " 0.6439464092254639,\n", + " -1.2935267686843872,\n", + " 1.0550024509429932,\n", + " 1.5982847213745117,\n", + " -0.22397112846374512,\n", + " 0.8632503151893616,\n", + " -0.01465329434722662,\n", + " 1.907869577407837,\n", + " -0.22132569551467896,\n", + " -3.26887845993042,\n", + " 0.6158673763275146,\n", + " -3.357703924179077,\n", + " -2.715955972671509,\n", + " -1.26827073097229,\n", + " 0.9949036240577698,\n", + " 0.8530600666999817,\n", + " 0.18009737133979797,\n", + " -0.799755334854126,\n", + " -0.7762683033943176,\n", + " -2.0214147567749023,\n", + " -2.5477139949798584,\n", + " 0.3354305028915405,\n", + " 1.0146169662475586,\n", + " 0.8811922073364258,\n", + " -0.5477988123893738,\n", + " 1.3442738056182861,\n", + " 0.9427187442779541,\n", + " 0.0354413203895092,\n", + " 0.07164601236581802,\n", + " -1.3297611474990845,\n", + " 3.2583234310150146,\n", + " 1.3563737869262695,\n", + " 2.030906915664673,\n", + " -0.35838907957077026,\n", + " 1.1487957239151,\n", + " 2.177360773086548,\n", + " 0.11709480732679367,\n", + " -1.4572463035583496,\n", + " 2.712385416030884,\n", + " 1.695722222328186,\n", + " 0.9284390807151794,\n", + " 1.706230640411377,\n", + " 2.561094284057617,\n", + " 0.25148239731788635,\n", + " -0.7602075338363647,\n", + " -3.322800397872925,\n", + " -2.6651406288146973,\n", + " 0.5532605051994324,\n", + " -3.15582013130188,\n", + " 0.7390287518501282,\n", + " 1.9745639562606812,\n", + " 1.7976669073104858,\n", + " 0.5752639770507812,\n", + " 0.0009753882768563926,\n", + " 1.676922082901001,\n", + " 0.9746778607368469,\n", + " -0.9822664260864258,\n", + " 2.1947877407073975,\n", + " -0.11680249869823456,\n", + " -2.6098923683166504,\n", + " 0.41914910078048706,\n", + " -2.984086513519287,\n", + " -0.10993815213441849,\n", + " 2.602848529815674,\n", + " -0.481839120388031,\n", + " 3.7257251739501953,\n", + " -2.9751365184783936,\n", + " 2.1868069171905518,\n", + " 1.131687045097351,\n", + " -0.7709477543830872,\n", + " -1.787227749824524,\n", + " -1.3638288974761963,\n", + " 1.9597299098968506,\n", + " -3.910771131515503,\n", + " -2.3694069385528564,\n", + " 0.3377711772918701,\n", + " -1.1272759437561035,\n", + " 0.2438763678073883,\n", + " 1.57038152217865,\n", + " 1.4304869174957275,\n", + " 1.3004883527755737,\n", + " 0.2153862565755844,\n", + " 2.579542636871338,\n", + " -2.9127044677734375,\n", + " 2.370340585708618,\n", + " 0.1265379935503006,\n", + " -0.01695254072546959,\n", + " 7.434963226318359,\n", + " -0.09861380606889725,\n", + " 1.8987317085266113,\n", + " -0.7872756123542786,\n", + " 2.0855014324188232,\n", + " 2.1785011291503906,\n", + " -0.5971071124076843,\n", + " -2.7534055709838867,\n", + " 0.571414589881897,\n", + " 1.078928828239441,\n", + " -0.7235836386680603,\n", + " 0.5169491767883301,\n", + " 0.6812458634376526,\n", + " 1.1709541082382202,\n", + " 2.1434314250946045,\n", + " 2.106433629989624,\n", + " -1.822475552558899,\n", + " -1.0620055198669434,\n", + " 0.7150517106056213,\n", + " -0.4648316204547882,\n", + " 1.4963843822479248,\n", + " -1.0216617584228516,\n", + " -3.5024707317352295,\n", + " -1.0360679626464844,\n", + " 0.9179321527481079,\n", + " -2.7637529373168945,\n", + " -2.696685552597046,\n", + " 1.3476885557174683,\n", + " 2.223078727722168,\n", + " -1.6134458780288696,\n", + " 2.741485595703125,\n", + " -1.9102617502212524,\n", + " -0.6911030411720276,\n", + " 2.177055597305298,\n", + " 1.522071123123169,\n", + " 1.9023282527923584,\n", + " 1.3319522142410278,\n", + " 0.7881055474281311,\n", + " 1.3135285377502441,\n", + " 0.8814008235931396,\n", + " 0.6867395639419556,\n", + " -3.421967029571533,\n", + " 1.3001874685287476,\n", + " 0.23622742295265198,\n", + " 0.21538116037845612,\n", + " 2.436312198638916,\n", + " 1.0754977464675903,\n", + " -0.720741331577301,\n", + " 1.8048689365386963,\n", + " -0.31697219610214233,\n", + " 0.5729283094406128,\n", + " -3.8396501541137695,\n", + " 3.943213939666748,\n", + " -0.9160201549530029,\n", + " 1.084115743637085,\n", + " -0.5279198884963989,\n", + " 0.24704307317733765,\n", + " -1.9594742059707642,\n", + " 1.9499269723892212,\n", + " 4.578750133514404,\n", + " 3.9516568183898926,\n", + " -2.2084782123565674,\n", + " 0.22468039393424988,\n", + " -2.071413516998291,\n", + " -0.6087515354156494,\n", + " -0.5289045572280884,\n", + " 0.3930460214614868,\n", + " 2.5027647018432617,\n", + " 1.0188313722610474,\n", + " 0.46151202917099,\n", + " 0.8137346506118774,\n", + " 1.8875846862792969,\n", + " -1.2656121253967285,\n", + " 2.2458560466766357,\n", + " -4.610947132110596,\n", + " 1.6539306640625,\n", + " 2.0069520473480225,\n", + " -0.5200765132904053,\n", + " -0.48416611552238464,\n", + " 0.010277727618813515,\n", + " -2.663154363632202,\n", + " 1.4872249364852905,\n", + " -0.27043524384498596,\n", + " -0.8963356018066406,\n", + " -0.9656075239181519,\n", + " 3.7918643951416016,\n", + " 1.0870325565338135,\n", + " 3.284804582595825,\n", + " 0.5523933172225952,\n", + " -0.843651533126831,\n", + " -1.3254671096801758,\n", + " 1.2062429189682007,\n", + " 1.3807260990142822,\n", + " -2.4852302074432373,\n", + " -0.011835230514407158,\n", + " -2.3426311016082764,\n", + " -2.514195203781128,\n", + " -2.4651260375976562,\n", + " 1.9724572896957397,\n", + " -1.3628110885620117,\n", + " 0.974860668182373,\n", + " -1.3046749830245972,\n", + " -2.688742160797119,\n", + " 3.87972092628479,\n", + " -0.08418241888284683,\n", + " -1.3823158740997314,\n", + " 0.043848514556884766,\n", + " 1.3563494682312012,\n", + " 0.8300111889839172,\n", + " -0.0773104727268219,\n", + " -0.013485577888786793,\n", + " -0.14061765372753143,\n", + " 1.5060334205627441,\n", + " 3.7588629722595215,\n", + " 0.36124759912490845,\n", + " -1.8623719215393066,\n", + " -1.0909128189086914,\n", + " -0.7260362505912781,\n", + " -1.0169140100479126,\n", + " -3.084951400756836,\n", + " -1.581991195678711,\n", + " -0.4885261058807373,\n", + " -0.25824055075645447,\n", + " 2.531879425048828,\n", + " 1.8733612298965454,\n", + " 0.42290711402893066,\n", + " 2.345167875289917,\n", + " -4.2657365798950195,\n", + " 0.5448596477508545,\n", + " -1.8787968158721924,\n", + " 0.7574936747550964,\n", + " 0.17548349499702454,\n", + " 0.8636710047721863,\n", + " -0.3177189230918884,\n", + " -0.7759950160980225,\n", + " -3.4196338653564453,\n", + " -1.1388274431228638,\n", + " -1.0716949701309204,\n", + " 0.15776164829730988,\n", + " -0.04669021815061569,\n", + " 1.0421327352523804,\n", + " -4.3172502517700195,\n", + " 0.6522413492202759,\n", + " 2.077144145965576,\n", + " 1.3253499269485474,\n", + " -1.2956703901290894,\n", + " -1.3757482767105103,\n", + " -0.5370983481407166,\n", + " -0.9990721940994263,\n", + " 2.60697340965271,\n", + " -2.8766322135925293,\n", + " 1.0074764490127563,\n", + " -0.27660223841667175,\n", + " 3.543734550476074,\n", + " -0.8072172403335571,\n", + " -0.3190854787826538,\n", + " 2.7306253910064697,\n", + " 2.8548409938812256,\n", + " -2.7886455059051514,\n", + " -1.293799638748169,\n", + " -1.980125069618225,\n", + " -0.7323219180107117,\n", + " 0.3844391107559204,\n", + " 1.001309871673584,\n", + " -0.3912363052368164,\n", + " 0.9946101903915405,\n", + " 0.37498345971107483,\n", + " 3.964639186859131,\n", + " 2.54567289352417,\n", + " -1.1357941627502441,\n", + " 2.094589948654175,\n", + " -0.3275034427642822,\n", + " 2.605330228805542,\n", + " -2.544571876525879,\n", + " 0.5611221194267273,\n", + " 1.5413520336151123,\n", + " 1.8624566793441772,\n", + " 0.7819016575813293,\n", + " -1.559873342514038,\n", + " 1.3655420541763306,\n", + " 1.356046199798584,\n", + " -1.9579086303710938,\n", + " 0.21900592744350433,\n", + " 3.7027933597564697,\n", + " -0.9461540579795837,\n", + " -2.0620453357696533,\n", + " -1.229551911354065,\n", + " -0.6082488298416138,\n", + " 0.685775876045227,\n", + " 2.495358467102051,\n", + " -0.22589509189128876,\n", + " -0.2592708170413971,\n", + " 1.8681409358978271,\n", + " -0.3670724928379059,\n", + " -0.9792632460594177,\n", + " 0.5046470761299133,\n", + " 3.818112373352051,\n", + " 2.6105446815490723,\n", + " 0.8268351554870605,\n", + " -0.019148798659443855,\n", + " 2.8472683429718018,\n", + " 0.40988874435424805,\n", + " 0.5756285786628723,\n", + " 0.9104381799697876,\n", + " -2.1239876747131348,\n", + " -4.648840427398682,\n", + " -0.05516885593533516,\n", + " 2.3690664768218994,\n", + " 1.064305305480957,\n", + " -1.9812570810317993,\n", + " 1.005708932876587,\n", + " -1.7377501726150513,\n", + " -1.026093602180481,\n", + " -1.6409721374511719,\n", + " 2.0178022384643555,\n", + " -0.45235276222229004,\n", + " 1.9877971410751343,\n", + " -1.283392071723938,\n", + " 2.142554998397827,\n", + " 1.976653814315796,\n", + " -0.47365236282348633,\n", + " -1.2822537422180176,\n", + " 1.5454622507095337,\n", + " -0.8365111351013184,\n", + " 0.15264113247394562,\n", + " 1.3387380838394165,\n", + " -1.0197112560272217,\n", + " 2.251563310623169,\n", + " -0.9795697331428528,\n", + " 0.5308533310890198,\n", + " -1.8896129131317139,\n", + " -1.0466077327728271,\n", + " 0.5089973211288452,\n", + " -2.1048316955566406,\n", + " 0.3490481972694397,\n", + " 9.35216236114502,\n", + " 0.43754082918167114,\n", + " 1.1641842126846313,\n", + " -4.336385250091553,\n", + " 0.6278030872344971,\n", + " 1.916900634765625,\n", + " 1.56166410446167,\n", + " 0.1308954656124115,\n", + " 1.0432405471801758,\n", + " 0.5460679531097412,\n", + " -1.5108636617660522,\n", + " -1.8219951391220093,\n", + " 1.9482169151306152,\n", + " 2.0398929119110107,\n", + " 3.7486701011657715,\n", + " 3.16365385055542,\n", + " 0.19272767007350922,\n", + " 1.3110774755477905,\n", + " 1.6621415615081787,\n", + " -0.9340311884880066,\n", + " 0.03183625638484955,\n", + " -0.8009647130966187,\n", + " -0.2390662282705307,\n", + " -1.6430314779281616,\n", + " -0.03437905013561249,\n", + " -1.765162467956543,\n", + " -1.0872410535812378,\n", + " 0.5968102812767029,\n", + " 0.46622952818870544,\n", + " 2.171534776687622,\n", + " 2.579864263534546,\n", + " -1.5134321451187134,\n", + " -2.625868797302246,\n", + " 0.8939980864524841,\n", + " -3.919886827468872,\n", + " 4.200295925140381,\n", + " 0.8827810883522034,\n", + " -0.9720629453659058,\n", + " 1.740238904953003,\n", + " 0.6450857520103455,\n", + " 3.244929790496826,\n", + " 2.642728805541992,\n", + " 0.6809942126274109,\n", + " -0.6814837455749512,\n", + " 0.8378584384918213,\n", + " 2.6553032398223877,\n", + " 2.382251024246216,\n", + " -0.12150904536247253,\n", + " 3.251645803451538,\n", + " 0.1545192003250122,\n", + " -0.46551811695098877,\n", + " -1.3731157779693604,\n", + " 1.6065778732299805,\n", + " -0.9107775092124939,\n", + " -2.122365713119507,\n", + " -0.755946695804596,\n", + " 0.9596620202064514,\n", + " 0.1962565928697586,\n", + " -3.1892590522766113,\n", + " -1.7191227674484253,\n", + " -1.6934884786605835,\n", + " 0.096808061003685,\n", + " 1.5860071182250977,\n", + " -4.3447465896606445,\n", + " -0.24807417392730713,\n", + " 2.1554596424102783,\n", + " 0.17446450889110565,\n", + " 1.3595103025436401,\n", + " -5.076416492462158,\n", + " -0.7115034461021423,\n", + " 0.2745206654071808,\n", + " -0.9583694338798523,\n", + " 3.592369318008423,\n", + " 0.43940743803977966,\n", + " 3.3064498901367188,\n", + " 0.677763044834137,\n", + " -1.2322185039520264,\n", + " -0.039470456540584564,\n", + " 1.6289703845977783,\n", + " -0.16217689216136932,\n", + " 0.8334534168243408,\n", + " 0.9731929898262024,\n", + " -0.18078526854515076,\n", + " -2.773348093032837,\n", + " -0.34269994497299194,\n", + " 0.3155413568019867,\n", + " -0.29196080565452576,\n", + " 0.44387105107307434,\n", + " 1.3408170938491821,\n", + " -0.24933172762393951,\n", + " -3.319072723388672,\n", + " 0.2526112496852875,\n", + " -1.373990535736084,\n", + " 1.0457499027252197,\n", + " 0.29531243443489075,\n", + " -3.377215623855591,\n", + " 0.6322634816169739,\n", + " -0.8348919749259949,\n", + " -0.20105580985546112,\n", + " 0.44015613198280334,\n", + " 0.3198135197162628,\n", + " 1.991890788078308,\n", + " -1.0501000881195068,\n", + " 2.5067262649536133,\n", + " 0.6204811930656433,\n", + " 1.200798749923706,\n", + " -0.958784282207489,\n", + " -0.6037139296531677,\n", + " -0.23031175136566162,\n", + " 0.014697781763970852,\n", + " 2.256824493408203,\n", + " -1.5271515846252441,\n", + " -1.4927211999893188,\n", + " 1.156502604484558,\n", + " 1.9095149040222168,\n", + " -2.5780537128448486,\n", + " -0.041785046458244324,\n", + " 0.10553450137376785,\n", + " 0.8720028400421143,\n", + " -0.42433732748031616,\n", + " 1.6687054634094238,\n", + " -1.3486768007278442,\n", + " -2.107517719268799,\n", + " -0.485392689704895,\n", + " 0.3952060639858246,\n", + " 3.792418956756592,\n", + " 1.732338786125183,\n", + " 1.3522870540618896,\n", + " -0.3873569965362549,\n", + " -0.6929060220718384,\n", + " -0.7253779172897339,\n", + " 1.5772020816802979,\n", + " 0.22397683560848236,\n", + " -1.1815251111984253,\n", + " -1.0099704265594482,\n", + " -0.3928086459636688,\n", + " 1.3654193878173828,\n", + " -1.7745933532714844,\n", + " -0.1698371022939682,\n", + " -1.0136816501617432,\n", + " -1.6536282300949097,\n", + " 17.464502334594727,\n", + " 1.2401288747787476,\n", + " 2.520428419113159,\n", + " 2.292722702026367,\n", + " 1.0273125171661377,\n", + " -4.112117767333984,\n", + " -1.6380878686904907,\n", + " 3.0316011905670166,\n", + " 0.38991621136665344,\n", + " 0.33908334374427795,\n", + " 2.220815658569336,\n", + " -3.1552817821502686,\n", + " -0.13972707092761993,\n", + " 1.6309388875961304,\n", + " 2.612539052963257,\n", + " -0.351901650428772,\n", + " -1.4507770538330078,\n", + " 2.0656392574310303,\n", + " 0.5164774656295776,\n", + " -0.9778643250465393,\n", + " -1.8892741203308105,\n", + " -0.05694100260734558,\n", + " -1.7861603498458862,\n", + " 1.6007559299468994,\n", + " 0.03911133483052254,\n", + " 0.3491671085357666,\n", + " -0.9019615650177002,\n", + " 3.2962300777435303,\n", + " -0.46370401978492737,\n", + " 0.6244081854820251,\n", + " 1.1753209829330444,\n", + " 1.4824209213256836,\n", + " -3.2222516536712646,\n", + " -2.5530848503112793,\n", + " -2.7513976097106934,\n", + " 1.965706706047058,\n", + " -0.026076380163431168,\n", + " -1.4362506866455078,\n", + " 0.24754875898361206,\n", + " -0.8510985374450684,\n", + " 3.8931972980499268,\n", + " -0.226673886179924,\n", + " 3.031508445739746,\n", + " -1.92091965675354,\n", + " -0.3329271972179413,\n", + " 0.428586483001709,\n", + " 2.308405637741089,\n", + " 0.7408685684204102,\n", + " 1.2548139095306396,\n", + " -3.084012985229492,\n", + " 1.035301923751831,\n", + " -0.4989493787288666,\n", + " -1.0492119789123535,\n", + " 2.8431127071380615,\n", + " 0.8772914409637451,\n", + " 0.8934967517852783,\n", + " -0.8118966221809387,\n", + " -1.8737051486968994,\n", + " 0.9479296207427979,\n", + " 0.3467805087566376,\n", + " 0.47936564683914185,\n", + " 1.8903456926345825,\n", + " 2.7371950149536133,\n", + " 2.6023075580596924,\n", + " -0.1968643218278885,\n", + " -2.2785439491271973,\n", + " -2.133267879486084,\n", + " 1.6693224906921387,\n", + " 3.5615296363830566,\n", + " 1.805562138557434,\n", + " 1.2125883102416992,\n", + " -1.5161792039871216,\n", + " -0.003823505947366357,\n", + " -1.5516108274459839,\n", + " -2.6158628463745117,\n", + " -2.4251768589019775,\n", + " 0.1096232458949089,\n", + " 1.6200560331344604,\n", + " 0.4285288453102112,\n", + " -0.07647668570280075,\n", + " 1.2602490186691284,\n", + " 1.6813089847564697,\n", + " -2.357346534729004,\n", + " -1.6943997144699097,\n", + " -0.7216321229934692,\n", + " 3.297959327697754,\n", + " 4.504902362823486,\n", + " -1.9581016302108765,\n", + " 0.9111392498016357,\n", + " 1.4141093492507935,\n", + " -2.6196036338806152,\n", + " -0.3526265621185303,\n", + " -0.6059153079986572,\n", + " 2.66208553314209,\n", + " -0.4549764096736908,\n", + " 1.8869773149490356,\n", + " -1.8283882141113281,\n", + " -1.5936133861541748,\n", + " 2.6077792644500732,\n", + " 0.8153656721115112,\n", + " 1.6834837198257446,\n", + " 3.2758750915527344,\n", + " -0.12068500369787216,\n", + " 1.3063170909881592,\n", + " 0.12942495942115784,\n", + " 4.303485870361328,\n", + " 0.5197142958641052,\n", + " -3.3046348094940186,\n", + " -0.02519918605685234,\n", + " -0.9808037281036377,\n", + " -1.910658359527588,\n", + " 14.404706954956055,\n", + " 1.7279610633850098,\n", + " 0.14731642603874207,\n", + " -2.073530912399292,\n", + " 1.4640326499938965,\n", + " 1.8923238515853882,\n", + " 0.6788854002952576,\n", + " 2.3570919036865234,\n", + " -3.270526170730591,\n", + " -1.2846544981002808,\n", + " 0.30470094084739685,\n", + " 1.2324204444885254,\n", + " 0.8520573973655701,\n", + " 0.9951837658882141,\n", + " 1.359863042831421,\n", + " -1.6030728816986084,\n", + " 1.837383508682251,\n", + " -14.05699348449707,\n", + " -1.123944878578186,\n", + " 3.0739409923553467,\n", + " 2.7407829761505127,\n", + " 3.5482187271118164,\n", + " -0.5915259718894958,\n", + " -0.33399057388305664,\n", + " 2.0230162143707275,\n", + " 3.2141873836517334,\n", + " 0.4275171160697937,\n", + " -0.46753397583961487,\n", + " 2.0718019008636475,\n", + " -1.9218755960464478,\n", + " -0.5812616348266602,\n", + " -1.212603211402893,\n", + " -2.0727429389953613,\n", + " -0.3677098751068115,\n", + " -2.5267574787139893,\n", + " -3.025620460510254,\n", + " -1.269808292388916,\n", + " 0.577834963798523,\n", + " -2.541167974472046,\n", + " 1.4844390153884888,\n", + " -1.7041091918945312,\n", + " -0.2832220792770386,\n", + " -0.6581478118896484,\n", + " -0.2037837654352188,\n", + " 3.1556999683380127,\n", + " -0.029621712863445282,\n", + " -4.308955192565918,\n", + " -14.953690528869629,\n", + " 0.06354455649852753,\n", + " -0.4776405394077301,\n", + " -0.09464313089847565,\n", + " -4.692539691925049,\n", + " -2.3149311542510986,\n", + " -0.7913568615913391,\n", + " 0.29521042108535767,\n", + " 0.0913262739777565,\n", + " 1.2030049562454224,\n", + " -1.3831913471221924,\n", + " 4.050319194793701,\n", + " -1.2508262395858765,\n", + " -1.1040664911270142,\n", + " 1.600762963294983,\n", + " -2.0887181758880615,\n", + " -1.5644268989562988,\n", + " 0.31997552514076233,\n", + " 0.721390962600708,\n", + " 1.2438726425170898,\n", + " -1.7440379858016968,\n", + " 1.2353302240371704,\n", + " -0.15850384533405304,\n", + " 0.6119896173477173,\n", + " 0.9907702207565308,\n", + " 1.2731077671051025,\n", + " 1.2138645648956299,\n", + " 6.721953868865967,\n", + " -0.2504028081893921,\n", + " -1.382326364517212,\n", + " 0.04728212207555771,\n", + " 0.5801144242286682,\n", + " -0.4697207510471344,\n", + " 0.6041349172592163,\n", + " 1.2571274042129517,\n", + " -0.4074985086917877,\n", + " -1.6010504961013794,\n", + " 3.875206708908081,\n", + " -1.9802753925323486,\n", + " -0.922169029712677,\n", + " -1.3483080863952637,\n", + " 2.2528719902038574,\n", + " 1.7215412855148315,\n", + " 1.004778265953064,\n", + " -0.9481913447380066,\n", + " -1.1743320226669312,\n", + " -1.6903272867202759,\n", + " 1.4239429235458374,\n", + " 1.0980380773544312,\n", + " 5.632511615753174,\n", + " -1.5414550304412842,\n", + " 1.132023811340332,\n", + " -0.28032270073890686,\n", + " 0.020960716530680656,\n", + " -2.2207391262054443,\n", + " -0.07656984776258469,\n", + " 1.0084593296051025,\n", + " -0.4201846420764923,\n", + " -0.013524290174245834,\n", + " 0.378415584564209,\n", + " ...]" ] }, - "execution_count": 4, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "query_result = embeddings.embed_query(text)\n", - "query_result[:5]" + "embeddings.embed_query(\"My query to look up\")" ] }, { "cell_type": "code", "execution_count": 6, - "id": "a4b0d49e-0c73-44b6-aed5-5b426564e085", + "id": "1f2e6104", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[-0.04242777079343796,\n", - " 0.016536075621843338,\n", - " 0.10052520781755447,\n", - " 0.18272875249385834,\n", - " 0.2079043835401535]" + "[[0.026717308908700943,\n", + " -3.073253870010376,\n", + " -0.983579158782959,\n", + " -1.3976373672485352,\n", + " 0.3153868317604065,\n", + " -0.9198529124259949,\n", + " -0.5000395178794861,\n", + " -2.8302183151245117,\n", + " 0.48412731289863586,\n", + " -1.3201743364334106,\n", + " 2.1840200424194336,\n", + " 1.8516451120376587,\n", + " -0.3010086119174957,\n", + " -2.0235533714294434,\n", + " -1.5968759059906006,\n", + " -1.8724948167800903,\n", + " -0.5951926112174988,\n", + " 0.39937323331832886,\n", + " -1.422173023223877,\n", + " -0.4554414749145508,\n", + " -1.3107271194458008,\n", + " 0.4371069371700287,\n", + " -0.35458794236183167,\n", + " 2.2485244274139404,\n", + " -0.6444820761680603,\n", + " -1.1975884437561035,\n", + " 0.7529797554016113,\n", + " -0.8240599632263184,\n", + " 2.270399332046509,\n", + " 1.7715342044830322,\n", + " -0.7533677220344543,\n", + " 1.3202179670333862,\n", + " 1.1890583038330078,\n", + " 2.583138942718506,\n", + " 0.2897748351097107,\n", + " 2.0970191955566406,\n", + " 0.8640325665473938,\n", + " -1.4255969524383545,\n", + " 0.6775333881378174,\n", + " 1.0958609580993652,\n", + " -0.06745656579732895,\n", + " -1.026739478111267,\n", + " 4.353838920593262,\n", + " -1.307796597480774,\n", + " 2.018310308456421,\n", + " 0.025882123038172722,\n", + " -0.2596699595451355,\n", + " -2.8316152095794678,\n", + " 0.2786482572555542,\n", + " -2.4338526725769043,\n", + " 1.7176285982131958,\n", + " -2.3856818675994873,\n", + " -0.8177772164344788,\n", + " 1.8894743919372559,\n", + " -3.1035237312316895,\n", + " -1.1637845039367676,\n", + " 2.084111452102661,\n", + " 0.4729601740837097,\n", + " -0.6619122624397278,\n", + " 2.1771023273468018,\n", + " -0.0016843565972521901,\n", + " 0.7641392946243286,\n", + " 3.1067798137664795,\n", + " 1.5978010892868042,\n", + " 4.099151611328125,\n", + " -0.354404479265213,\n", + " -0.5072272419929504,\n", + " -0.4278642535209656,\n", + " 2.687389850616455,\n", + " 0.7284980416297913,\n", + " 0.6419050693511963,\n", + " -1.5070881843566895,\n", + " 1.5855128765106201,\n", + " 3.5309643745422363,\n", + " -1.012750267982483,\n", + " 0.33412203192710876,\n", + " 1.4072771072387695,\n", + " -1.5712347030639648,\n", + " -2.8175408840179443,\n", + " 1.732979416847229,\n", + " -2.1090025901794434,\n", + " -0.5641390085220337,\n", + " -0.7873497009277344,\n", + " 3.764495372772217,\n", + " -2.0843584537506104,\n", + " -0.23248206079006195,\n", + " 0.041751474142074585,\n", + " 0.4747326076030731,\n", + " 1.7116739749908447,\n", + " -0.03898052126169205,\n", + " 3.084993362426758,\n", + " -1.743934988975525,\n", + " -0.4811558127403259,\n", + " 2.288424253463745,\n", + " -1.8777436017990112,\n", + " -1.89717435836792,\n", + " -2.3290278911590576,\n", + " 1.4090726375579834,\n", + " -0.13189227879047394,\n", + " -1.6202075481414795,\n", + " -0.49017438292503357,\n", + " -2.774104595184326,\n", + " -2.2781519889831543,\n", + " -1.733016848564148,\n", + " -1.0853590965270996,\n", + " 1.0377845764160156,\n", + " 0.11097811907529831,\n", + " -0.6899252533912659,\n", + " -4.025875568389893,\n", + " 0.3574219346046448,\n", + " 2.48128080368042,\n", + " 0.716792106628418,\n", + " 0.5063115954399109,\n", + " 0.9703182578086853,\n", + " -0.2161022573709488,\n", + " 2.9063303470611572,\n", + " 0.6950815916061401,\n", + " 1.6585043668746948,\n", + " 1.7222602367401123,\n", + " 1.7062965631484985,\n", + " -0.6428905725479126,\n", + " -1.70795476436615,\n", + " 0.35549041628837585,\n", + " -0.018765531480312347,\n", + " -1.1625276803970337,\n", + " -2.402967929840088,\n", + " 0.43371760845184326,\n", + " -0.5024239420890808,\n", + " -6.130197525024414,\n", + " 0.058472033590078354,\n", + " 2.7138113975524902,\n", + " -0.23731113970279694,\n", + " -2.0155885219573975,\n", + " 6.265206336975098,\n", + " 0.06020008772611618,\n", + " -0.812073290348053,\n", + " 0.4731346368789673,\n", + " -0.6897581219673157,\n", + " 3.230292797088623,\n", + " 0.5337257385253906,\n", + " -1.0041537284851074,\n", + " -0.04507758840918541,\n", + " -1.5368560552597046,\n", + " 2.405879259109497,\n", + " -0.8992667198181152,\n", + " -0.44732460379600525,\n", + " 1.6525166034698486,\n", + " -1.3517338037490845,\n", + " 1.1007601022720337,\n", + " -0.041462428867816925,\n", + " 0.4985283315181732,\n", + " 1.0086987018585205,\n", + " 1.016295075416565,\n", + " -3.7423529624938965,\n", + " -2.706648826599121,\n", + " 1.9058319330215454,\n", + " -1.2032614946365356,\n", + " -1.3974393606185913,\n", + " -0.7731496691703796,\n", + " -1.0925463438034058,\n", + " 2.346466064453125,\n", + " 3.625058889389038,\n", + " -1.5892901420593262,\n", + " 0.01959707960486412,\n", + " -0.5415254831314087,\n", + " 0.335084468126297,\n", + " 2.2965500354766846,\n", + " -0.7749836444854736,\n", + " -1.3894739151000977,\n", + " -1.0824460983276367,\n", + " -3.297056198120117,\n", + " 1.7825411558151245,\n", + " 1.1096142530441284,\n", + " -0.03977459296584129,\n", + " 0.9160926342010498,\n", + " -0.8065985441207886,\n", + " -1.7276893854141235,\n", + " -1.0204452276229858,\n", + " 1.178256630897522,\n", + " -0.7816577553749084,\n", + " -1.5120762586593628,\n", + " 0.8400945663452148,\n", + " 0.7989885807037354,\n", + " -0.7149533033370972,\n", + " 8.335212707519531,\n", + " 0.050751943141222,\n", + " -1.0497180223464966,\n", + " -0.7823722958564758,\n", + " -0.10929509252309799,\n", + " 0.9082885384559631,\n", + " -0.33650222420692444,\n", + " -0.5199440717697144,\n", + " -2.1859261989593506,\n", + " 3.0295941829681396,\n", + " -0.11376741528511047,\n", + " 2.9171061515808105,\n", + " -3.479733467102051,\n", + " -2.3066799640655518,\n", + " -4.466789722442627,\n", + " 2.733057737350464,\n", + " -1.03090238571167,\n", + " 2.3107597827911377,\n", + " -2.7823054790496826,\n", + " -2.2845728397369385,\n", + " -0.8511890172958374,\n", + " 0.20347073674201965,\n", + " -1.2296565771102905,\n", + " -3.0533154010772705,\n", + " 2.7986693382263184,\n", + " 2.5631518363952637,\n", + " 0.952899694442749,\n", + " -0.39777690172195435,\n", + " 2.2006852626800537,\n", + " -0.8717543482780457,\n", + " -8.033182144165039,\n", + " 2.1896238327026367,\n", + " 2.478433132171631,\n", + " 2.2562718391418457,\n", + " 0.013974095694720745,\n", + " -1.976767897605896,\n", + " 1.4605448246002197,\n", + " 2.2424638271331787,\n", + " 0.12891075015068054,\n", + " 0.3790381848812103,\n", + " 0.7923580408096313,\n", + " 2.870664119720459,\n", + " 1.7757912874221802,\n", + " 0.5546240210533142,\n", + " 2.2496278285980225,\n", + " -1.0769950151443481,\n", + " 1.5696698427200317,\n", + " -0.6919817924499512,\n", + " -0.028310546651482582,\n", + " 2.688535451889038,\n", + " -0.757993221282959,\n", + " 0.2328571379184723,\n", + " 0.5360584855079651,\n", + " 3.6621901988983154,\n", + " 0.6530188322067261,\n", + " 0.0859115868806839,\n", + " 2.0972437858581543,\n", + " 0.46973463892936707,\n", + " 2.730447769165039,\n", + " 0.2412702888250351,\n", + " -1.044063687324524,\n", + " 1.6172006130218506,\n", + " -0.22516946494579315,\n", + " -0.5335642695426941,\n", + " 0.8275823593139648,\n", + " 2.8645689487457275,\n", + " -4.237293720245361,\n", + " -2.766214370727539,\n", + " 2.4629828929901123,\n", + " -2.6421544551849365,\n", + " 1.7491819858551025,\n", + " 0.6698367595672607,\n", + " -1.2033149003982544,\n", + " 0.9181250333786011,\n", + " 1.0507344007492065,\n", + " 1.4599311351776123,\n", + " -1.4361722469329834,\n", + " -2.5916759967803955,\n", + " -1.3246519565582275,\n", + " 0.1079646497964859,\n", + " -2.2403411865234375,\n", + " -3.072622537612915,\n", + " 0.31669750809669495,\n", + " -1.1096093654632568,\n", + " -1.6666183471679688,\n", + " -1.483022928237915,\n", + " 0.5176268815994263,\n", + " 0.8780972957611084,\n", + " -1.0288445949554443,\n", + " -2.6958236694335938,\n", + " 0.5275738835334778,\n", + " -1.0595060586929321,\n", + " 0.7626713514328003,\n", + " -2.756638526916504,\n", + " 0.928656280040741,\n", + " 0.933577299118042,\n", + " -0.08630683273077011,\n", + " -9.227815628051758,\n", + " -1.9162994623184204,\n", + " 0.11540680378675461,\n", + " 1.9167009592056274,\n", + " -1.1091969013214111,\n", + " 1.672775149345398,\n", + " -4.4126200675964355,\n", + " 2.7103805541992188,\n", + " -10.411971092224121,\n", + " -9.22303295135498,\n", + " -1.25534188747406,\n", + " 12.056777000427246,\n", + " -1.735790491104126,\n", + " -1.6243411302566528,\n", + " -3.071399211883545,\n", + " -1.0125621557235718,\n", + " -1.0339174270629883,\n", + " 3.816934585571289,\n", + " -0.440189003944397,\n", + " -0.4743768870830536,\n", + " 3.262524366378784,\n", + " -0.4572724401950836,\n", + " -0.46764689683914185,\n", + " -0.029862485826015472,\n", + " 1.1229056119918823,\n", + " 1.6376248598098755,\n", + " -2.460693120956421,\n", + " -0.2973520755767822,\n", + " 1.520696759223938,\n", + " -0.0986490398645401,\n", + " 0.24537293612957,\n", + " -3.9179461002349854,\n", + " 0.2888944149017334,\n", + " 0.9517350196838379,\n", + " 1.4186291694641113,\n", + " -1.4627443552017212,\n", + " 2.134878396987915,\n", + " 0.48006200790405273,\n", + " -0.6264674067497253,\n", + " -7.271275997161865,\n", + " 1.2673039436340332,\n", + " 3.2998273372650146,\n", + " 3.1871774196624756,\n", + " 0.48085397481918335,\n", + " -0.206886425614357,\n", + " -0.03116680681705475,\n", + " 2.389113426208496,\n", + " -1.8123655319213867,\n", + " -0.5753913521766663,\n", + " 2.298330068588257,\n", + " -1.9461785554885864,\n", + " 0.01917611062526703,\n", + " 1.473065733909607,\n", + " 0.26479971408843994,\n", + " 0.13233143091201782,\n", + " -0.9118562340736389,\n", + " -1.3524703979492188,\n", + " -0.9908326864242554,\n", + " 0.1621469110250473,\n", + " 0.25943493843078613,\n", + " -0.23961058259010315,\n", + " 0.47202739119529724,\n", + " -1.2138139009475708,\n", + " 1.346591591835022,\n", + " -2.157972574234009,\n", + " -2.4823291301727295,\n", + " -2.9505441188812256,\n", + " 1.4433603286743164,\n", + " -1.7098407745361328,\n", + " -0.1840589940547943,\n", + " -3.4049768447875977,\n", + " 0.8356589674949646,\n", + " -1.840678095817566,\n", + " -2.239001989364624,\n", + " -3.3707456588745117,\n", + " -0.08583131432533264,\n", + " 0.6905569434165955,\n", + " -0.7588489055633545,\n", + " 0.8704045414924622,\n", + " -0.21636343002319336,\n", + " 1.5839855670928955,\n", + " 1.0033503770828247,\n", + " -3.4025657176971436,\n", + " -1.1387205123901367,\n", + " -0.7117018103599548,\n", + " -1.8022944927215576,\n", + " 0.201739102602005,\n", + " -2.1537623405456543,\n", + " 0.08270526677370071,\n", + " 0.5075051188468933,\n", + " 3.0067293643951416,\n", + " 0.07482617348432541,\n", + " -1.32440185546875,\n", + " 1.5424766540527344,\n", + " 1.594306468963623,\n", + " -0.990329384803772,\n", + " 1.4455547332763672,\n", + " 2.2173986434936523,\n", + " 2.9684293270111084,\n", + " -0.7076241374015808,\n", + " -0.5783892273902893,\n", + " -3.6097705364227295,\n", + " 0.8552119731903076,\n", + " 1.210046410560608,\n", + " -0.8996566534042358,\n", + " 1.0503664016723633,\n", + " -2.188053607940674,\n", + " 1.4872989654541016,\n", + " 2.07106614112854,\n", + " -3.8259897232055664,\n", + " 2.826853036880493,\n", + " -3.621142625808716,\n", + " 0.7980952858924866,\n", + " -0.9585616588592529,\n", + " 2.001718759536743,\n", + " -2.0664732456207275,\n", + " 2.5997657775878906,\n", + " -1.6276531219482422,\n", + " 1.6918525695800781,\n", + " 1.4889588356018066,\n", + " -2.2652482986450195,\n", + " -5.347990036010742,\n", + " 2.061901330947876,\n", + " 2.883211851119995,\n", + " 0.6274645328521729,\n", + " 5.4982380867004395,\n", + " -0.6936045289039612,\n", + " -0.08191787451505661,\n", + " -1.2311333417892456,\n", + " 1.8159682750701904,\n", + " 1.8154428005218506,\n", + " -0.3232429027557373,\n", + " 0.8520640134811401,\n", + " 0.9876762628555298,\n", + " 1.7222920656204224,\n", + " -1.86406409740448,\n", + " -2.1149168014526367,\n", + " -2.2021360397338867,\n", + " 1.876705288887024,\n", + " 0.026317736133933067,\n", + " 3.7954442501068115,\n", + " -0.6879523396492004,\n", + " 4.027620315551758,\n", + " -2.9056761264801025,\n", + " 0.3859586715698242,\n", + " 1.2217315435409546,\n", + " 0.5589178204536438,\n", + " -0.10501305758953094,\n", + " -2.35835599899292,\n", + " 0.05528240278363228,\n", + " 0.4029955565929413,\n", + " 2.4429123401641846,\n", + " 2.8426527976989746,\n", + " 1.19734525680542,\n", + " -1.7425122261047363,\n", + " 2.6791045665740967,\n", + " -3.691251516342163,\n", + " -2.370537281036377,\n", + " 2.1656038761138916,\n", + " 1.558953881263733,\n", + " 1.9788095951080322,\n", + " -1.5613638162612915,\n", + " 3.459259271621704,\n", + " -2.3323798179626465,\n", + " -1.2499924898147583,\n", + " -1.823384404182434,\n", + " -1.754738688468933,\n", + " -2.0725417137145996,\n", + " -0.8252647519111633,\n", + " -2.0487749576568604,\n", + " -0.522021472454071,\n", + " 2.557943820953369,\n", + " 0.22756552696228027,\n", + " 0.7813788056373596,\n", + " -0.6041549444198608,\n", + " 0.4604742228984833,\n", + " -0.7861675024032593,\n", + " 2.129812479019165,\n", + " 0.08868035674095154,\n", + " 1.228132724761963,\n", + " 0.48421069979667664,\n", + " -0.5727242827415466,\n", + " -2.8403635025024414,\n", + " 2.0975775718688965,\n", + " 0.3020351231098175,\n", + " 4.890812873840332,\n", + " -2.3530821800231934,\n", + " 1.1093765497207642,\n", + " 0.08936131000518799,\n", + " -1.786980152130127,\n", + " -1.127266764640808,\n", + " -0.42669662833213806,\n", + " 2.4850215911865234,\n", + " 0.01809186115860939,\n", + " 2.1962730884552,\n", + " 1.8123252391815186,\n", + " 3.185354471206665,\n", + " 2.3117177486419678,\n", + " -1.5728116035461426,\n", + " -3.0310428142547607,\n", + " 1.5499656200408936,\n", + " 1.2953983545303345,\n", + " -0.26389065384864807,\n", + " 1.1181063652038574,\n", + " 0.6439679265022278,\n", + " 2.018975257873535,\n", + " 0.5102697014808655,\n", + " -1.5742875337600708,\n", + " -2.5278515815734863,\n", + " -0.2849779427051544,\n", + " 1.565861701965332,\n", + " 0.4623192250728607,\n", + " 1.5533277988433838,\n", + " 0.5009170770645142,\n", + " -3.2570340633392334,\n", + " -0.4590409994125366,\n", + " -0.782965898513794,\n", + " 0.2103162258863449,\n", + " 0.7612560987472534,\n", + " 1.2766461372375488,\n", + " -2.06323504447937,\n", + " 0.608253538608551,\n", + " 0.25170132517814636,\n", + " -1.6967055797576904,\n", + " -0.045272503048181534,\n", + " 4.324664115905762,\n", + " -1.7692341804504395,\n", + " -2.644824504852295,\n", + " 1.1797205209732056,\n", + " 1.8078806400299072,\n", + " -1.8870664834976196,\n", + " -1.6100736856460571,\n", + " -2.379772901535034,\n", + " -2.7693698406219482,\n", + " -0.21224282681941986,\n", + " -2.425485134124756,\n", + " 0.2079107165336609,\n", + " 8.104188919067383,\n", + " -0.9445183873176575,\n", + " -2.537433385848999,\n", + " -3.6967689990997314,\n", + " -0.8071864247322083,\n", + " -0.18707095086574554,\n", + " -0.44063517451286316,\n", + " 0.9460508823394775,\n", + " -0.6368346214294434,\n", + " 1.637871503829956,\n", + " -2.102997064590454,\n", + " 0.5615842342376709,\n", + " -1.1097103357315063,\n", + " -0.4091738164424896,\n", + " 1.3178879022598267,\n", + " -2.143094778060913,\n", + " -0.1916944682598114,\n", + " -0.5005049109458923,\n", + " 2.743046522140503,\n", + " -0.9219987988471985,\n", + " -4.339287757873535,\n", + " -1.6714619398117065,\n", + " 0.6674743294715881,\n", + " 0.519782304763794,\n", + " -0.4845026433467865,\n", + " 1.3532599210739136,\n", + " -0.8829174041748047,\n", + " 0.484173983335495,\n", + " 2.7435708045959473,\n", + " 0.72844398021698,\n", + " -2.146169424057007,\n", + " 0.8045269250869751,\n", + " 0.5028496980667114,\n", + " -0.8951881527900696,\n", + " 1.06409752368927,\n", + " -3.4454379081726074,\n", + " -2.16044282913208,\n", + " 3.8086798191070557,\n", + " -1.0974539518356323,\n", + " 0.4666401147842407,\n", + " -0.8954592347145081,\n", + " 2.7918334007263184,\n", + " 0.778723955154419,\n", + " -1.9324796199798584,\n", + " -0.18118909001350403,\n", + " 1.000211238861084,\n", + " 3.0955049991607666,\n", + " 2.036156415939331,\n", + " -4.338984489440918,\n", + " -0.3649972379207611,\n", + " 0.7340630888938904,\n", + " 0.8605188727378845,\n", + " 0.39720672369003296,\n", + " 0.6574087738990784,\n", + " 0.8407801389694214,\n", + " 3.4705159664154053,\n", + " 1.1116807460784912,\n", + " 0.34176161885261536,\n", + " 2.0417861938476562,\n", + " 1.6423430442810059,\n", + " 0.6665520071983337,\n", + " -0.992579996585846,\n", + " -2.36446475982666,\n", + " -1.295265555381775,\n", + " 0.6320671439170837,\n", + " 0.03856160119175911,\n", + " -0.5974507927894592,\n", + " 2.8359744548797607,\n", + " 0.31748247146606445,\n", + " -3.1549973487854004,\n", + " 0.8790888786315918,\n", + " -0.9462788701057434,\n", + " 1.7385379076004028,\n", + " 2.3604812622070312,\n", + " 1.144897699356079,\n", + " -5.097238063812256,\n", + " 1.517143726348877,\n", + " 1.5873501300811768,\n", + " -2.1139659881591797,\n", + " -0.37079235911369324,\n", + " 0.5414790511131287,\n", + " -3.8092081546783447,\n", + " 1.3270295858383179,\n", + " 1.9105969667434692,\n", + " 1.4886144399642944,\n", + " 0.3116031587123871,\n", + " 3.9410548210144043,\n", + " 0.1770516037940979,\n", + " -0.27600952982902527,\n", + " -1.8802461624145508,\n", + " -1.2370104789733887,\n", + " 3.26505446434021,\n", + " -0.48703476786613464,\n", + " 1.3420827388763428,\n", + " 2.3240084648132324,\n", + " -1.701611042022705,\n", + " -0.023306578397750854,\n", + " 0.14150844514369965,\n", + " 4.042800426483154,\n", + " 2.465778350830078,\n", + " 1.150189995765686,\n", + " -1.8300646543502808,\n", + " -0.6335951089859009,\n", + " 0.8886809945106506,\n", + " 2.305349111557007,\n", + " -0.19333235919475555,\n", + " 2.5646467208862305,\n", + " -2.0341851711273193,\n", + " 0.9828628301620483,\n", + " 0.07663260400295258,\n", + " -0.27510419487953186,\n", + " -0.7647022008895874,\n", + " -1.5746089220046997,\n", + " -0.3872641324996948,\n", + " 0.9675670266151428,\n", + " 2.4169344902038574,\n", + " -1.4376085996627808,\n", + " 0.05478806421160698,\n", + " -1.2385368347167969,\n", + " -0.736283540725708,\n", + " 2.687896490097046,\n", + " 1.9015583992004395,\n", + " -2.4600675106048584,\n", + " 14.24061393737793,\n", + " 3.268317222595215,\n", + " -0.5889497399330139,\n", + " -1.7897940874099731,\n", + " 0.5092192888259888,\n", + " -0.37065255641937256,\n", + " -2.0178065299987793,\n", + " 2.1634418964385986,\n", + " 1.3275322914123535,\n", + " -0.38493669033050537,\n", + " 1.2281993627548218,\n", + " -2.172119140625,\n", + " 0.5391632914543152,\n", + " 1.4219807386398315,\n", + " 2.5114645957946777,\n", + " 0.3881058692932129,\n", + " 0.674972653388977,\n", + " 2.1711418628692627,\n", + " 1.1366493701934814,\n", + " 1.1679856777191162,\n", + " 1.0501271486282349,\n", + " 1.1892261505126953,\n", + " 1.0744839906692505,\n", + " -0.8069765567779541,\n", + " 2.600438117980957,\n", + " -1.7306872606277466,\n", + " -3.152841567993164,\n", + " 0.20925702154636383,\n", + " -0.9573125839233398,\n", + " 0.3618144989013672,\n", + " -1.9628139734268188,\n", + " 1.782770037651062,\n", + " -0.4886611998081207,\n", + " 1.144348382949829,\n", + " -1.477710485458374,\n", + " 0.42595258355140686,\n", + " 3.5167789459228516,\n", + " 0.02681596390902996,\n", + " 2.1810247898101807,\n", + " -2.312587261199951,\n", + " 4.526058197021484,\n", + " 2.512063980102539,\n", + " -3.188737630844116,\n", + " 1.633571982383728,\n", + " 1.515235424041748,\n", + " -0.11963092535734177,\n", + " 0.7297665476799011,\n", + " -1.9374632835388184,\n", + " 0.7154972553253174,\n", + " 2.1501646041870117,\n", + " -1.0030709505081177,\n", + " -2.9639689922332764,\n", + " 2.222465991973877,\n", + " 0.7344105243682861,\n", + " -0.7484860420227051,\n", + " 1.463850736618042,\n", + " 2.4788801670074463,\n", + " -1.4563840627670288,\n", + " -2.0105385780334473,\n", + " 0.770861804485321,\n", + " -2.5791640281677246,\n", + " -1.7584089040756226,\n", + " -1.0280697345733643,\n", + " -4.545958995819092,\n", + " 0.6905809640884399,\n", + " 2.59002423286438,\n", + " -1.178574800491333,\n", + " 0.3862844705581665,\n", + " 3.0636682510375977,\n", + " -2.763105869293213,\n", + " -0.5455369353294373,\n", + " -1.5181553363800049,\n", + " 0.7556935548782349,\n", + " -2.7470240592956543,\n", + " 2.6362216472625732,\n", + " 1.6483041048049927,\n", + " 1.3280600309371948,\n", + " 0.4630092680454254,\n", + " -0.15466490387916565,\n", + " -0.9717910885810852,\n", + " -0.3978442847728729,\n", + " 2.1155595779418945,\n", + " -2.8930368423461914,\n", + " 0.035269226878881454,\n", + " -1.8880590200424194,\n", + " 2.763767719268799,\n", + " 1.6371660232543945,\n", + " 1.0387924909591675,\n", + " 1.229513168334961,\n", + " 1.5292593240737915,\n", + " 1.415895700454712,\n", + " -2.56246280670166,\n", + " -2.1125943660736084,\n", + " -0.9503294229507446,\n", + " -3.657386541366577,\n", + " 1.9061741828918457,\n", + " -1.1124987602233887,\n", + " -1.1921380758285522,\n", + " -0.45438557863235474,\n", + " -0.7548614144325256,\n", + " -0.6804344058036804,\n", + " 0.34497344493865967,\n", + " -1.7915760278701782,\n", + " 2.0725820064544678,\n", + " 1.3850363492965698,\n", + " 0.09702670574188232,\n", + " -0.11054238677024841,\n", + " 6.202457427978516,\n", + " -1.5213345289230347,\n", + " 2.9122281074523926,\n", + " -0.671360194683075,\n", + " -1.026809811592102,\n", + " -1.4349303245544434,\n", + " -0.17202964425086975,\n", + " -0.5952938199043274,\n", + " 0.5905974507331848,\n", + " -0.7233237028121948,\n", + " 1.0256723165512085,\n", + " -0.5644855499267578,\n", + " -1.8284316062927246,\n", + " -0.1065862700343132,\n", + " 1.059626579284668,\n", + " -0.40559861063957214,\n", + " 0.06844177097082138,\n", + " -1.377408742904663,\n", + " -0.6658124327659607,\n", + " 3.2132840156555176,\n", + " 4.284290313720703,\n", + " 0.38916999101638794,\n", + " -1.048604965209961,\n", + " -0.18579992651939392,\n", + " 0.0991368293762207,\n", + " 1.6914924383163452,\n", + " 3.683741807937622,\n", + " 1.2918672561645508,\n", + " -0.5980482697486877,\n", + " 2.829113245010376,\n", + " -2.829972743988037,\n", + " -0.6595404744148254,\n", + " -0.6697270274162292,\n", + " 0.7314231991767883,\n", + " 15.16686725616455,\n", + " 1.2773864269256592,\n", + " -0.4687189757823944,\n", + " 0.5312354564666748,\n", + " -0.2667217552661896,\n", + " -0.9243032932281494,\n", + " -0.9422645568847656,\n", + " 0.04961542785167694,\n", + " 0.37646111845970154,\n", + " -2.596221685409546,\n", + " 2.7239294052124023,\n", + " -1.080231785774231,\n", + " 1.4714635610580444,\n", + " -0.07025141268968582,\n", + " -1.7993584871292114,\n", + " 1.3575772047042847,\n", + " 4.481748580932617,\n", + " -0.9073246121406555,\n", + " -1.9371683597564697,\n", + " 1.0611876249313354,\n", + " 1.542786717414856,\n", + " 2.424128532409668,\n", + " -1.7128057479858398,\n", + " 2.2499518394470215,\n", + " -0.24361266195774078,\n", + " 0.05417673662304878,\n", + " -0.5013822317123413,\n", + " 1.0689815282821655,\n", + " 0.02156682126224041,\n", + " 1.1983665227890015,\n", + " -0.3331460654735565,\n", + " -2.6417322158813477,\n", + " -0.506986141204834,\n", + " -1.153713345527649,\n", + " -1.1596237421035767,\n", + " 0.712287425994873,\n", + " 0.8147823214530945,\n", + " 1.8822524547576904,\n", + " -2.8474678993225098,\n", + " -0.040338870137929916,\n", + " 1.7062550783157349,\n", + " -2.523608684539795,\n", + " 4.0190019607543945,\n", + " -2.046696662902832,\n", + " -0.5332344174385071,\n", + " 0.46133723855018616,\n", + " 1.547816276550293,\n", + " -2.603698968887329,\n", + " -2.036357879638672,\n", + " 0.794645369052887,\n", + " -0.9367685914039612,\n", + " 0.2125317007303238,\n", + " 0.37586337327957153,\n", + " 2.8974201679229736,\n", + " -2.0632970333099365,\n", + " -1.758088231086731,\n", + " -2.064100980758667,\n", + " 2.0932257175445557,\n", + " 2.811422109603882,\n", + " 1.0836060047149658,\n", + " -0.5917598009109497,\n", + " 1.3121929168701172,\n", + " -1.4244052171707153,\n", + " -0.43519413471221924,\n", + " 2.5276036262512207,\n", + " 0.3998633325099945,\n", + " -2.6107234954833984,\n", + " -0.5880607962608337,\n", + " 0.3022153079509735,\n", + " 0.5112606287002563,\n", + " -0.7791751027107239,\n", + " 1.6701602935791016,\n", + " -1.8032042980194092,\n", + " -3.8151543140411377,\n", + " -0.2984772026538849,\n", + " 2.58489727973938,\n", + " 2.3892900943756104,\n", + " -2.319155216217041,\n", + " 0.6655018329620361,\n", + " -1.3546305894851685,\n", + " -0.23690995573997498,\n", + " 0.4343591034412384,\n", + " -4.77136754989624,\n", + " 1.3126916885375977,\n", + " 0.9698073863983154,\n", + " -0.5062421560287476,\n", + " 0.3419676125049591,\n", + " -2.0727243423461914,\n", + " 3.135908603668213,\n", + " -1.02927565574646,\n", + " -1.5094317197799683,\n", + " 1.7750214338302612,\n", + " 1.205409288406372,\n", + " 0.5660333633422852,\n", + " -0.33989208936691284,\n", + " -0.12868711352348328,\n", + " 2.0807735919952393,\n", + " -0.29705390334129333,\n", + " -0.07748128473758698,\n", + " -0.6942689418792725,\n", + " -1.0866572856903076,\n", + " 1.122031331062317,\n", + " -0.5617876052856445,\n", + " 1.0840904712677002,\n", + " 1.9021860361099243,\n", + " 1.6595134735107422,\n", + " -0.5799726247787476,\n", + " -2.5359926223754883,\n", + " -0.8809743523597717,\n", + " -0.45047926902770996,\n", + " -1.7058762311935425,\n", + " 21.573143005371094,\n", + " -0.5211783051490784,\n", + " -1.4806725978851318,\n", + " -0.6267976760864258,\n", + " 2.639122486114502,\n", + " 0.20821425318717957,\n", + " 0.447999507188797,\n", + " -3.452333450317383,\n", + " -0.8575541377067566,\n", + " -0.684929370880127,\n", + " -1.2338565587997437,\n", + " -2.256376266479492,\n", + " 0.9412142634391785,\n", + " -1.4187431335449219,\n", + " 2.6078779697418213,\n", + " -1.0858112573623657,\n", + " -3.3062405586242676,\n", + " -23.112136840820312,\n", + " -2.320906162261963,\n", + " -1.7153809070587158,\n", + " 2.0616440773010254,\n", + " 0.5635734796524048,\n", + " 0.3261658251285553,\n", + " -2.6611506938934326,\n", + " -1.4870636463165283,\n", + " 1.9610953330993652,\n", + " -2.003458023071289,\n", + " -2.2675042152404785,\n", + " 0.8220226764678955,\n", + " -1.7531087398529053,\n", + " 0.839792788028717,\n", + " -2.586395263671875,\n", + " -1.9877121448516846,\n", + " -2.2157182693481445,\n", + " 1.652684211730957,\n", + " 0.5088396072387695,\n", + " -1.0833625793457031,\n", + " 1.6719884872436523,\n", + " -0.2749879062175751,\n", + " 2.264012336730957,\n", + " 3.1194260120391846,\n", + " -0.43775299191474915,\n", + " -1.4778852462768555,\n", + " -1.2708078622817993,\n", + " 2.158430337905884,\n", + " 3.8900246620178223,\n", + " -0.03763490170240402,\n", + " -6.650566577911377,\n", + " -0.2756822407245636,\n", + " 0.846537172794342,\n", + " -2.8391239643096924,\n", + " 0.976464569568634,\n", + " -2.137193202972412,\n", + " -0.4086329936981201,\n", + " 7.995760440826416,\n", + " 1.806972861289978,\n", + " -0.5274609327316284,\n", + " 0.44659295678138733,\n", + " -1.4418755769729614,\n", + " -1.5329405069351196,\n", + " -1.0242698192596436,\n", + " -0.60414057970047,\n", + " -0.9061265587806702,\n", + " 1.8773664236068726,\n", + " 0.5921235084533691,\n", + " 2.727875232696533,\n", + " -0.02484242618083954,\n", + " -0.9262365698814392,\n", + " 1.8290631771087646,\n", + " 0.5181377530097961,\n", + " -2.0564019680023193,\n", + " 2.2676148414611816,\n", + " 0.4792182743549347,\n", + " -2.297076940536499,\n", + " 0.15173502266407013,\n", + " -0.6994649767875671,\n", + " -0.06450791656970978,\n", + " -3.1257598400115967,\n", + " 1.995498538017273,\n", + " 0.13659416139125824,\n", + " 1.9107611179351807,\n", + " 2.7589988708496094,\n", + " -3.0753071308135986,\n", + " -1.2863909006118774,\n", + " 4.879091262817383,\n", + " 0.28704097867012024,\n", + " 0.13916786015033722,\n", + " -2.504258394241333,\n", + " -2.013745069503784,\n", + " 1.3163681030273438,\n", + " 1.8200992345809937,\n", + " 1.5073593854904175,\n", + " -0.12198928743600845,\n", + " -4.334866046905518,\n", + " -0.4231010377407074,\n", + " 5.175387382507324,\n", + " 2.6860170364379883,\n", + " 1.7732445001602173,\n", + " -4.942932605743408,\n", + " 4.577020645141602,\n", + " 1.6197823286056519,\n", + " 1.0200133323669434,\n", + " 0.04334559664130211,\n", + " -1.9528486728668213,\n", + " 2.483665704727173,\n", + " -1.5390368700027466,\n", + " -1.0416266918182373,\n", + " ...],\n", + " [-3.8816797733306885,\n", + " -1.447176218032837,\n", + " -1.9102357625961304,\n", + " -0.8988841772079468,\n", + " -0.09709599614143372,\n", + " -1.9380629062652588,\n", + " -2.022951364517212,\n", + " 0.7661373019218445,\n", + " 1.8066705465316772,\n", + " 4.437873840332031,\n", + " 2.445958375930786,\n", + " -0.13426220417022705,\n", + " 0.0988345593214035,\n", + " 0.47813716530799866,\n", + " -2.1457550525665283,\n", + " -3.6079492568969727,\n", + " -1.2987637519836426,\n", + " -0.2951391339302063,\n", + " -0.1702861487865448,\n", + " -0.6301457285881042,\n", + " -0.05460710823535919,\n", + " 1.589271903038025,\n", + " -0.3614136874675751,\n", + " 2.613068103790283,\n", + " 0.23085521161556244,\n", + " 1.232046365737915,\n", + " 0.1178579181432724,\n", + " -0.4429476261138916,\n", + " 0.787911057472229,\n", + " -0.021177150309085846,\n", + " -2.968456745147705,\n", + " -0.10679227858781815,\n", + " 3.6390721797943115,\n", + " 4.074835300445557,\n", + " -1.1943150758743286,\n", + " -4.874373912811279,\n", + " -0.251912385225296,\n", + " -0.6252238750457764,\n", + " -0.030459199100732803,\n", + " -0.21246477961540222,\n", + " -1.0228310823440552,\n", + " 0.3375636041164398,\n", + " 3.881335973739624,\n", + " -1.5607224702835083,\n", + " 3.003056287765503,\n", + " -3.1571710109710693,\n", + " -2.9329288005828857,\n", + " -4.2484025955200195,\n", + " 0.5152091383934021,\n", + " 1.5245022773742676,\n", + " -2.506498098373413,\n", + " -3.0109269618988037,\n", + " -4.3324103355407715,\n", + " 3.3239758014678955,\n", + " 1.2333815097808838,\n", + " -1.7500648498535156,\n", + " 1.1499723196029663,\n", + " 0.21140572428703308,\n", + " -2.507949113845825,\n", + " 0.7278156876564026,\n", + " -0.7984867095947266,\n", + " 0.7366600036621094,\n", + " -0.22803130745887756,\n", + " -1.8109548091888428,\n", + " 2.7226104736328125,\n", + " -2.9260077476501465,\n", + " -2.872901201248169,\n", + " -2.737553358078003,\n", + " -1.4742523431777954,\n", + " -0.5145723223686218,\n", + " 2.849119186401367,\n", + " -0.7900468707084656,\n", + " 2.0334372520446777,\n", + " 1.4459054470062256,\n", + " -1.9013005495071411,\n", + " 1.1252529621124268,\n", + " 1.7437458038330078,\n", + " -1.8205087184906006,\n", + " -2.2317752838134766,\n", + " 1.075022578239441,\n", + " -4.232845306396484,\n", + " 1.0894452333450317,\n", + " -3.8484997749328613,\n", + " 4.266648769378662,\n", + " -4.31502628326416,\n", + " 0.440782368183136,\n", + " 1.0563533306121826,\n", + " -0.6203970909118652,\n", + " -0.39848795533180237,\n", + " 0.32591697573661804,\n", + " 1.001083254814148,\n", + " -2.347222089767456,\n", + " -0.19946283102035522,\n", + " 3.4642820358276367,\n", + " 1.5340077877044678,\n", + " -0.5120069980621338,\n", + " -2.024677276611328,\n", + " 0.7290834188461304,\n", + " -0.2104824185371399,\n", + " -4.0774245262146,\n", + " -2.1286139488220215,\n", + " -2.8324594497680664,\n", + " -1.8085262775421143,\n", + " -0.7486924529075623,\n", + " -3.1006975173950195,\n", + " 0.36876797676086426,\n", + " 1.774880051612854,\n", + " 1.3104523420333862,\n", + " -1.6482869386672974,\n", + " 2.887101173400879,\n", + " 0.5781636238098145,\n", + " 0.33517804741859436,\n", + " -2.7057409286499023,\n", + " -1.4250922203063965,\n", + " 0.4694637954235077,\n", + " 2.678828477859497,\n", + " 3.088592290878296,\n", + " 2.87996506690979,\n", + " -0.5735533833503723,\n", + " 1.902958631515503,\n", + " -0.2636910378932953,\n", + " -1.9614709615707397,\n", + " -0.4674627184867859,\n", + " 0.8687885403633118,\n", + " 0.4725387394428253,\n", + " -2.135042905807495,\n", + " 2.205646514892578,\n", + " -1.016764760017395,\n", + " -7.640507698059082,\n", + " -0.12831588089466095,\n", + " 2.9137701988220215,\n", + " 0.8019832968711853,\n", + " -0.22126926481723785,\n", + " 8.93970775604248,\n", + " -0.7345666289329529,\n", + " 3.629134178161621,\n", + " -0.6376039385795593,\n", + " 0.9024605751037598,\n", + " 0.4314664900302887,\n", + " 0.35859155654907227,\n", + " 2.7955992221832275,\n", + " 3.4752228260040283,\n", + " -5.034854888916016,\n", + " -1.1288392543792725,\n", + " -0.10112037509679794,\n", + " -1.5500589609146118,\n", + " -0.6251096129417419,\n", + " -1.4889836311340332,\n", + " 0.6721649765968323,\n", + " 2.2565975189208984,\n", + " 2.2474193572998047,\n", + " 1.092359185218811,\n", + " 0.3021765947341919,\n", + " -0.41914480924606323,\n", + " -2.1840245723724365,\n", + " -0.4879227876663208,\n", + " 1.7223384380340576,\n", + " 0.6767154335975647,\n", + " -0.3680137097835541,\n", + " 0.7096230983734131,\n", + " -0.9239556789398193,\n", + " 3.646073341369629,\n", + " 2.1176252365112305,\n", + " -3.7912166118621826,\n", + " -1.8807270526885986,\n", + " 0.9111031293869019,\n", + " -0.7411085367202759,\n", + " -1.2743639945983887,\n", + " -1.5719870328903198,\n", + " 1.441236972808838,\n", + " -0.7341034412384033,\n", + " 2.8222832679748535,\n", + " 0.6202909350395203,\n", + " -1.4037672281265259,\n", + " 2.0017576217651367,\n", + " 1.069449782371521,\n", + " 0.3349338173866272,\n", + " -1.8266205787658691,\n", + " 2.587061882019043,\n", + " 0.8151261210441589,\n", + " 0.3578042984008789,\n", + " 0.010996738448739052,\n", + " 2.5780091285705566,\n", + " 1.433400273323059,\n", + " 10.436251640319824,\n", + " -0.21294045448303223,\n", + " -1.662264347076416,\n", + " -1.7538344860076904,\n", + " 1.1532472372055054,\n", + " 0.5691545605659485,\n", + " 1.416627049446106,\n", + " -1.8548182249069214,\n", + " -1.894418716430664,\n", + " 1.5214126110076904,\n", + " -1.1449618339538574,\n", + " 1.8780837059020996,\n", + " -3.098949432373047,\n", + " -1.1753703355789185,\n", + " -2.442674160003662,\n", + " 2.660795211791992,\n", + " -1.8535804748535156,\n", + " 2.8515806198120117,\n", + " -1.4816968441009521,\n", + " -3.445911169052124,\n", + " 0.8264482617378235,\n", + " -1.6242533922195435,\n", + " -1.9312942028045654,\n", + " -1.1970953941345215,\n", + " 0.6263165473937988,\n", + " -0.12555089592933655,\n", + " 0.25199657678604126,\n", + " -1.0001208782196045,\n", + " 3.2424206733703613,\n", + " -1.3730639219284058,\n", + " 2.6455540657043457,\n", + " 1.9954884052276611,\n", + " 3.488955020904541,\n", + " -1.3941504955291748,\n", + " -2.4651336669921875,\n", + " -0.14270156621932983,\n", + " 2.0889387130737305,\n", + " 2.3129360675811768,\n", + " 0.03292836621403694,\n", + " -2.477942705154419,\n", + " 4.310580730438232,\n", + " 3.1661057472229004,\n", + " 0.6012360453605652,\n", + " 3.061018943786621,\n", + " -0.47689276933670044,\n", + " 0.5982692837715149,\n", + " 0.8192957043647766,\n", + " 1.864122986793518,\n", + " 4.297408580780029,\n", + " 2.3404524326324463,\n", + " -0.7469441890716553,\n", + " -0.6871550679206848,\n", + " -0.804821252822876,\n", + " 1.8948009014129639,\n", + " 1.3318531513214111,\n", + " -0.43510493636131287,\n", + " -1.3492395877838135,\n", + " 2.018049478530884,\n", + " -0.8666848540306091,\n", + " 0.3885653614997864,\n", + " 1.0478256940841675,\n", + " 3.2340545654296875,\n", + " -2.273437738418579,\n", + " -4.190129280090332,\n", + " 0.6492358446121216,\n", + " 0.6681175827980042,\n", + " -2.5977025032043457,\n", + " -2.452658176422119,\n", + " 1.633664608001709,\n", + " -3.1147055625915527,\n", + " 1.8476824760437012,\n", + " 2.4756627082824707,\n", + " 0.1524430811405182,\n", + " -0.9955349564552307,\n", + " -0.785118579864502,\n", + " 0.09535930305719376,\n", + " -1.8279333114624023,\n", + " -1.3857954740524292,\n", + " -2.075129270553589,\n", + " -1.9075851440429688,\n", + " 0.26677578687667847,\n", + " -3.4947454929351807,\n", + " 0.9620150327682495,\n", + " -4.577984809875488,\n", + " -2.4944114685058594,\n", + " -2.549290180206299,\n", + " -0.7315886616706848,\n", + " -2.8721423149108887,\n", + " -4.115537643432617,\n", + " 0.868995726108551,\n", + " -1.6530613899230957,\n", + " -1.2541897296905518,\n", + " 1.102706789970398,\n", + " -5.952432155609131,\n", + " -2.1025965213775635,\n", + " -0.6458753347396851,\n", + " 0.7745829224586487,\n", + " -3.5125911235809326,\n", + " 0.11359093338251114,\n", + " -0.24972708523273468,\n", + " 2.257991075515747,\n", + " -0.24376241862773895,\n", + " 1.5403962135314941,\n", + " -3.7926855087280273,\n", + " 1.917070984840393,\n", + " -9.26376724243164,\n", + " -5.482766628265381,\n", + " 0.7928407192230225,\n", + " 7.906066417694092,\n", + " 2.0906975269317627,\n", + " -3.8339345455169678,\n", + " 0.03092207945883274,\n", + " -2.9991321563720703,\n", + " 2.4202489852905273,\n", + " 5.947826385498047,\n", + " 4.185272216796875,\n", + " -0.10200139135122299,\n", + " 4.688581466674805,\n", + " 0.8249329924583435,\n", + " -2.5633041858673096,\n", + " -1.46888267993927,\n", + " 0.9956538677215576,\n", + " 2.413656234741211,\n", + " -3.6799185276031494,\n", + " 2.5906431674957275,\n", + " 2.1038763523101807,\n", + " -0.8835083246231079,\n", + " -1.8384885787963867,\n", + " -0.6787655353546143,\n", + " -0.6429534554481506,\n", + " 0.1507904827594757,\n", + " -0.012526275590062141,\n", + " 0.35030966997146606,\n", + " 2.6888797283172607,\n", + " -2.814384937286377,\n", + " -1.428504467010498,\n", + " -7.312694549560547,\n", + " 0.14763425290584564,\n", + " 2.7720351219177246,\n", + " 5.421904563903809,\n", + " 0.9799038767814636,\n", + " -1.9051073789596558,\n", + " -0.7308603525161743,\n", + " 1.9272819757461548,\n", + " -2.5293312072753906,\n", + " 0.26691529154777527,\n", + " -0.15687108039855957,\n", + " -1.708122968673706,\n", + " -1.1936396360397339,\n", + " 0.060814257711172104,\n", + " -0.6689651608467102,\n", + " -1.140608549118042,\n", + " -2.36881947517395,\n", + " -1.4012644290924072,\n", + " -0.20334547758102417,\n", + " 0.5981454253196716,\n", + " -3.215273380279541,\n", + " 1.5469393730163574,\n", + " 0.13370372354984283,\n", + " 0.4592379033565521,\n", + " 1.7046856880187988,\n", + " -4.921545505523682,\n", + " -0.431110680103302,\n", + " -2.014374256134033,\n", + " 1.09357488155365,\n", + " 5.574455261230469,\n", + " 1.273197054862976,\n", + " -2.7891879081726074,\n", + " 0.26504406332969666,\n", + " -2.3403985500335693,\n", + " -2.9432637691497803,\n", + " -1.6242749691009521,\n", + " -0.9695174098014832,\n", + " 1.6617469787597656,\n", + " -2.1990268230438232,\n", + " 2.135615348815918,\n", + " 2.3875882625579834,\n", + " 2.622556447982788,\n", + " -2.2946348190307617,\n", + " -2.990304946899414,\n", + " -1.6225816011428833,\n", + " -2.0447590351104736,\n", + " -2.5879158973693848,\n", + " 1.5159296989440918,\n", + " -1.6617423295974731,\n", + " 1.3700659275054932,\n", + " -2.5438032150268555,\n", + " 2.2506723403930664,\n", + " 1.9274924993515015,\n", + " -3.1044161319732666,\n", + " 0.5216255784034729,\n", + " -0.19187408685684204,\n", + " -1.866398572921753,\n", + " 1.0274090766906738,\n", + " -0.10953636467456818,\n", + " 2.473564863204956,\n", + " -2.0253689289093018,\n", + " -0.3667924404144287,\n", + " -3.0461626052856445,\n", + " 3.986839771270752,\n", + " 2.043687343597412,\n", + " -1.8955844640731812,\n", + " 0.6737838983535767,\n", + " -0.31056538224220276,\n", + " 0.23865938186645508,\n", + " 5.528167724609375,\n", + " -3.2416698932647705,\n", + " 4.295351505279541,\n", + " 0.15166401863098145,\n", + " 1.2277815341949463,\n", + " 0.28395751118659973,\n", + " 3.30012583732605,\n", + " -0.9456813335418701,\n", + " -2.629518508911133,\n", + " -3.6751317977905273,\n", + " 2.3286044597625732,\n", + " -0.33106470108032227,\n", + " -3.043043613433838,\n", + " 0.3938867747783661,\n", + " 4.194258213043213,\n", + " 0.792519748210907,\n", + " 0.4785829484462738,\n", + " 2.5523619651794434,\n", + " 0.7499622702598572,\n", + " -1.3125587701797485,\n", + " -4.914602756500244,\n", + " -0.6112402081489563,\n", + " 0.310628205537796,\n", + " 0.426767498254776,\n", + " 0.5314018130302429,\n", + " -2.545466661453247,\n", + " 2.1799395084381104,\n", + " -2.123727560043335,\n", + " 0.2009015530347824,\n", + " -1.6098428964614868,\n", + " 2.300116539001465,\n", + " 1.5784406661987305,\n", + " 0.1429145485162735,\n", + " 2.8834128379821777,\n", + " 4.030981540679932,\n", + " -1.9334334135055542,\n", + " -0.7291154265403748,\n", + " -0.24457567930221558,\n", + " -0.3202131390571594,\n", + " 0.22356203198432922,\n", + " -0.17479224503040314,\n", + " 0.9218044877052307,\n", + " 2.18530535697937,\n", + " 3.9705352783203125,\n", + " 0.5044087171554565,\n", + " 1.735719919204712,\n", + " -1.3751099109649658,\n", + " 2.479010581970215,\n", + " -2.566220760345459,\n", + " 1.3614745140075684,\n", + " -0.0033637566957622766,\n", + " 4.0970635414123535,\n", + " 0.9395595192909241,\n", + " -2.382606029510498,\n", + " 2.2945656776428223,\n", + " -0.7869022488594055,\n", + " -2.5368964672088623,\n", + " -3.7103068828582764,\n", + " -0.5028799176216125,\n", + " -2.3123891353607178,\n", + " -1.6076501607894897,\n", + " -0.9586088061332703,\n", + " -4.142017841339111,\n", + " 1.0469846725463867,\n", + " 0.42526867985725403,\n", + " 0.9800991415977478,\n", + " -0.8325374722480774,\n", + " -0.16207939386367798,\n", + " -1.5968691110610962,\n", + " 10.778789520263672,\n", + " 0.5351438522338867,\n", + " 0.7857174873352051,\n", + " 2.314697504043579,\n", + " 0.8842220902442932,\n", + " -3.0593113899230957,\n", + " -1.910050868988037,\n", + " -1.4804836511611938,\n", + " 1.8713462352752686,\n", + " -0.0025129972491413355,\n", + " -0.678056538105011,\n", + " -0.42586129903793335,\n", + " 1.9681624174118042,\n", + " -1.8661227226257324,\n", + " -2.4191718101501465,\n", + " 1.9751805067062378,\n", + " -1.5538579225540161,\n", + " 0.15747469663619995,\n", + " -2.552933931350708,\n", + " 1.9819620847702026,\n", + " 0.29047656059265137,\n", + " -2.604759931564331,\n", + " -3.726311445236206,\n", + " 2.111194610595703,\n", + " 1.7966347932815552,\n", + " 0.5284622311592102,\n", + " 3.356606960296631,\n", + " 0.24157491326332092,\n", + " -0.058753468096256256,\n", + " 1.4317262172698975,\n", + " -0.4679686427116394,\n", + " -5.2194366455078125,\n", + " -1.9108306169509888,\n", + " 1.2149436473846436,\n", + " 0.24689604341983795,\n", + " 0.7739450931549072,\n", + " -1.4911245107650757,\n", + " -2.1845808029174805,\n", + " -1.6522196531295776,\n", + " -1.8682409524917603,\n", + " 1.785595417022705,\n", + " 0.6828886866569519,\n", + " -0.6421892642974854,\n", + " -3.1234121322631836,\n", + " 3.2046895027160645,\n", + " -0.6937681436538696,\n", + " -3.890895366668701,\n", + " -1.3175357580184937,\n", + " 3.340691566467285,\n", + " 0.9861456751823425,\n", + " -2.4512672424316406,\n", + " 1.929763674736023,\n", + " 1.4535064697265625,\n", + " 0.7870248556137085,\n", + " -0.4018072187900543,\n", + " -4.618013381958008,\n", + " -0.6317737698554993,\n", + " 2.6401238441467285,\n", + " 0.7678934931755066,\n", + " 1.742942452430725,\n", + " 11.424970626831055,\n", + " -3.845896005630493,\n", + " -3.2668967247009277,\n", + " -1.3397881984710693,\n", + " -0.7081610560417175,\n", + " -0.12017089873552322,\n", + " -1.3421963453292847,\n", + " 0.7197027802467346,\n", + " -0.706287145614624,\n", + " 3.008577346801758,\n", + " 2.142421245574951,\n", + " -1.7568621635437012,\n", + " -1.3834558725357056,\n", + " 1.8775113821029663,\n", + " -0.06831107288599014,\n", + " -3.9091107845306396,\n", + " -3.0237913131713867,\n", + " -0.08975642174482346,\n", + " 0.5605543851852417,\n", + " 3.1716415882110596,\n", + " 2.0892131328582764,\n", + " 0.3382408022880554,\n", + " 2.4478442668914795,\n", + " 1.9368280172348022,\n", + " -3.5305404663085938,\n", + " 3.8562276363372803,\n", + " -2.22890305519104,\n", + " -0.6399180293083191,\n", + " 3.297292709350586,\n", + " 0.9037948250770569,\n", + " -1.8101223707199097,\n", + " 0.8045119047164917,\n", + " -0.5296229124069214,\n", + " -1.3250744342803955,\n", + " 0.1983412504196167,\n", + " -3.676255464553833,\n", + " 0.31949716806411743,\n", + " 4.211909770965576,\n", + " 2.4153671264648438,\n", + " 0.40959614515304565,\n", + " -0.42917564511299133,\n", + " 4.746598243713379,\n", + " 0.9752652645111084,\n", + " -0.6237136125564575,\n", + " -1.7860472202301025,\n", + " -0.21701925992965698,\n", + " -1.2336204051971436,\n", + " 1.9731824398040771,\n", + " -3.568244457244873,\n", + " 1.118125557899475,\n", + " 0.9097978472709656,\n", + " 2.5092673301696777,\n", + " -1.565161108970642,\n", + " -0.920995831489563,\n", + " -1.0606961250305176,\n", + " -2.137868881225586,\n", + " 1.9401278495788574,\n", + " 3.669708013534546,\n", + " 2.3399949073791504,\n", + " 0.13820895552635193,\n", + " -2.07993483543396,\n", + " -1.5678884983062744,\n", + " 1.2031221389770508,\n", + " -3.2159314155578613,\n", + " 2.6128528118133545,\n", + " 1.4618548154830933,\n", + " -1.2560421228408813,\n", + " 4.867201805114746,\n", + " -0.2731351852416992,\n", + " -0.8537291288375854,\n", + " -0.3982611894607544,\n", + " -2.433908224105835,\n", + " -0.3688610792160034,\n", + " 1.7981752157211304,\n", + " 2.5015439987182617,\n", + " -17.172409057617188,\n", + " 2.9532229900360107,\n", + " -2.244809627532959,\n", + " -0.8366732597351074,\n", + " 0.8506537079811096,\n", + " 1.7279510498046875,\n", + " -4.427548885345459,\n", + " 0.6317188143730164,\n", + " 1.7454392910003662,\n", + " 0.18244779109954834,\n", + " -0.8424748182296753,\n", + " 2.0541210174560547,\n", + " 2.2222931385040283,\n", + " -0.8150769472122192,\n", + " -4.396881103515625,\n", + " 0.6054971218109131,\n", + " 2.0359959602355957,\n", + " 2.376392364501953,\n", + " 0.41949430108070374,\n", + " 3.9469404220581055,\n", + " 0.6174566149711609,\n", + " 0.05115560069680214,\n", + " -2.051602602005005,\n", + " 7.870035648345947,\n", + " 0.9198711514472961,\n", + " -0.5555006265640259,\n", + " 0.8737522959709167,\n", + " -2.2257819175720215,\n", + " -1.1962131261825562,\n", + " 0.5985279083251953,\n", + " 1.321067452430725,\n", + " 6.056581974029541,\n", + " -0.28270605206489563,\n", + " 1.7308640480041504,\n", + " 3.122567892074585,\n", + " -1.679848074913025,\n", + " 1.2718193531036377,\n", + " 0.17060716450214386,\n", + " 1.269361972808838,\n", + " 2.5335516929626465,\n", + " 2.6741082668304443,\n", + " -1.62208092212677,\n", + " -2.9962751865386963,\n", + " -1.1706316471099854,\n", + " 1.1096113920211792,\n", + " 2.7003817558288574,\n", + " 1.5158874988555908,\n", + " -1.05333411693573,\n", + " 13.709431648254395,\n", + " 0.753689169883728,\n", + " -1.2147440910339355,\n", + " -1.0730971097946167,\n", + " 2.1503965854644775,\n", + " -1.3923307657241821,\n", + " -0.7943398952484131,\n", + " 1.5712182521820068,\n", + " -0.844743013381958,\n", + " -0.6349348425865173,\n", + " -1.4941654205322266,\n", + " -2.2284975051879883,\n", + " 0.343301922082901,\n", + " -1.2071216106414795,\n", + " 2.1885015964508057,\n", + " 1.302516222000122,\n", + " 1.0702766180038452,\n", + " -0.5276296138763428,\n", + " 1.5254217386245728,\n", + " 2.0156924724578857,\n", + " -2.069061517715454,\n", + " 0.663082480430603,\n", + " 4.371224880218506,\n", + " 1.4976167678833008,\n", + " 0.34234100580215454,\n", + " -0.4704199433326721,\n", + " -2.4234867095947266,\n", + " 0.31516528129577637,\n", + " -1.3777424097061157,\n", + " -1.0750154256820679,\n", + " -3.581940174102783,\n", + " -2.3514411449432373,\n", + " 0.4236695170402527,\n", + " -1.6118556261062622,\n", + " -1.6452305316925049,\n", + " 2.1222918033599854,\n", + " 2.4127817153930664,\n", + " 0.3439115583896637,\n", + " -1.440924882888794,\n", + " -1.5620825290679932,\n", + " 1.3253965377807617,\n", + " 2.693525552749634,\n", + " -0.4951741099357605,\n", + " -8.125655174255371,\n", + " 0.4264536201953888,\n", + " -3.289186954498291,\n", + " 0.011011071503162384,\n", + " 0.7512866854667664,\n", + " 0.7880078554153442,\n", + " -0.8080321550369263,\n", + " 1.7000516653060913,\n", + " -1.779439091682434,\n", + " 0.4583180844783783,\n", + " 3.048825979232788,\n", + " 3.3860838413238525,\n", + " 2.2389116287231445,\n", + " 2.8537440299987793,\n", + " 1.459533452987671,\n", + " 0.15542131662368774,\n", + " 1.800506353378296,\n", + " -3.289271593093872,\n", + " 1.0154770612716675,\n", + " -2.1671528816223145,\n", + " -5.452414512634277,\n", + " 1.3169593811035156,\n", + " 3.522233724594116,\n", + " -1.3844144344329834,\n", + " -2.816166400909424,\n", + " 0.5287947058677673,\n", + " -0.4341337978839874,\n", + " -0.7044467329978943,\n", + " -0.6589184403419495,\n", + " 0.6472010612487793,\n", + " 0.567675769329071,\n", + " 3.6363844871520996,\n", + " 3.605060338973999,\n", + " 1.521091103553772,\n", + " 1.6354999542236328,\n", + " -1.5642375946044922,\n", + " -2.559781312942505,\n", + " 0.02004855126142502,\n", + " 2.9901411533355713,\n", + " -0.542164146900177,\n", + " 0.2802582085132599,\n", + " -4.246005058288574,\n", + " 0.2605953514575958,\n", + " -2.6922993659973145,\n", + " 1.6629635095596313,\n", + " 2.088543653488159,\n", + " 0.4196684658527374,\n", + " -0.695177435874939,\n", + " -2.0204944610595703,\n", + " -3.093552350997925,\n", + " -3.6224629878997803,\n", + " -1.2724854946136475,\n", + " -0.3221820294857025,\n", + " 2.5930678844451904,\n", + " 0.4549116790294647,\n", + " 0.37298354506492615,\n", + " -0.5239182114601135,\n", + " 2.7268495559692383,\n", + " 0.08675707876682281,\n", + " -0.6603065729141235,\n", + " 1.8180832862854004,\n", + " 2.705871105194092,\n", + " 2.9835684299468994,\n", + " 0.847063422203064,\n", + " 4.269921779632568,\n", + " -0.7382970452308655,\n", + " 4.143216609954834,\n", + " -3.4339449405670166,\n", + " -0.23857153952121735,\n", + " -1.357593297958374,\n", + " 1.889617919921875,\n", + " -0.6655383110046387,\n", + " -0.28966355323791504,\n", + " 0.8688241839408875,\n", + " 1.9595723152160645,\n", + " -2.0157418251037598,\n", + " 1.3808566331863403,\n", + " -0.5582972168922424,\n", + " 2.95975661277771,\n", + " 0.010108568705618382,\n", + " 0.4278804063796997,\n", + " -0.13725998997688293,\n", + " 0.6479336619377136,\n", + " -0.10564786195755005,\n", + " 2.9164791107177734,\n", + " 0.27981382608413696,\n", + " -3.434560775756836,\n", + " -1.2718145847320557,\n", + " -0.27389955520629883,\n", + " 2.2078545093536377,\n", + " 2.2862606048583984,\n", + " -0.8161864280700684,\n", + " -1.167996883392334,\n", + " 4.050617218017578,\n", + " -0.16730143129825592,\n", + " 1.7290441989898682,\n", + " 0.8043820858001709,\n", + " 3.811464548110962,\n", + " -5.546247482299805,\n", + " 2.561819553375244,\n", + " -1.0095903873443604,\n", + " 0.540019690990448,\n", + " -0.5900160074234009,\n", + " -0.37200069427490234,\n", + " -1.0705102682113647,\n", + " 0.7527463436126709,\n", + " -1.0367463827133179,\n", + " -2.9444351196289062,\n", + " 2.013843536376953,\n", + " 0.4592212736606598,\n", + " -3.555436849594116,\n", + " -2.9486937522888184,\n", + " -0.46775537729263306,\n", + " 1.109654188156128,\n", + " 3.4264543056488037,\n", + " -0.6727878451347351,\n", + " -0.9122493267059326,\n", + " -0.5320616960525513,\n", + " 1.898447871208191,\n", + " -0.43063634634017944,\n", + " -2.5253212451934814,\n", + " 2.0057106018066406,\n", + " 1.5170979499816895,\n", + " -1.612911581993103,\n", + " 0.2634989321231842,\n", + " 0.45518726110458374,\n", + " -0.49200910329818726,\n", + " -2.713655710220337,\n", + " 0.9716266393661499,\n", + " 0.33054935932159424,\n", + " -0.3342835009098053,\n", + " -0.6386486291885376,\n", + " 1.8689916133880615,\n", + " 1.3185193538665771,\n", + " -0.7859625220298767,\n", + " -0.685684084892273,\n", + " -4.519786357879639,\n", + " 3.2605013847351074,\n", + " -0.9050686359405518,\n", + " -2.1221654415130615,\n", + " 3.1782584190368652,\n", + " -0.7860816121101379,\n", + " -2.1633098125457764,\n", + " -1.2788394689559937,\n", + " 1.8520097732543945,\n", + " 1.1278436183929443,\n", + " 0.63631671667099,\n", + " 2.4696147441864014,\n", + " 0.7206150889396667,\n", + " 3.1719532012939453,\n", + " 0.8070290088653564,\n", + " 0.9802379608154297,\n", + " -0.7980870604515076,\n", + " -1.1095521450042725,\n", + " -0.032403625547885895,\n", + " 0.2603766918182373,\n", + " 5.1491546630859375,\n", + " -0.05290107801556587,\n", + " 1.111739158630371,\n", + " 1.1674721240997314,\n", + " -2.5872855186462402,\n", + " -0.1287286877632141,\n", + " 0.9960156083106995,\n", + " -0.9919991493225098,\n", + " -5.302570819854736,\n", + " -1.5821691751480103,\n", + " -0.9387773275375366,\n", + " 0.4740335941314697,\n", + " 1.5573517084121704,\n", + " -0.13127921521663666,\n", + " 0.6574786305427551,\n", + " -3.2385902404785156,\n", + " -0.6724160313606262,\n", + " 2.541769504547119,\n", + " -2.046502113342285,\n", + " -0.43637022376060486,\n", + " -0.35392946004867554,\n", + " 1.3203871250152588,\n", + " 4.351476669311523,\n", + " -1.1860628128051758,\n", + " -4.32291841506958,\n", + " 1.706323504447937,\n", + " 1.1185646057128906,\n", + " -2.301795482635498,\n", + " -1.1211491823196411,\n", + " -2.458738088607788,\n", + " 2.090550184249878,\n", + " 0.3335612118244171,\n", + " -2.293703079223633,\n", + " 3.03767466545105,\n", + " 2.775224447250366,\n", + " -0.3276342749595642,\n", + " -1.7362749576568604,\n", + " -0.651249349117279,\n", + " 0.26522523164749146,\n", + " -1.9206342697143555,\n", + " -1.0287178754806519,\n", + " -3.431009531021118,\n", + " -0.7926996946334839,\n", + " 3.4176559448242188,\n", + " 1.9183744192123413,\n", + " 1.9320831298828125,\n", + " -0.6303430199623108,\n", + " 1.4581233263015747,\n", + " -0.6945940852165222,\n", + " -3.9149084091186523,\n", + " -0.1439647078514099,\n", + " 1.9966615438461304,\n", + " 1.0089069604873657,\n", + " 1.604979157447815,\n", + " -0.06675189733505249,\n", + " -0.7863495349884033,\n", + " 0.517461359500885,\n", + " 0.3963678479194641,\n", + " -0.029786787927150726,\n", + " -0.4660739600658417,\n", + " -2.200404405593872,\n", + " 0.05245295912027359,\n", + " 1.4053086042404175,\n", + " 2.745178699493408,\n", + " -1.7572541236877441,\n", + " -0.9642260074615479,\n", + " -2.556072950363159,\n", + " 0.11483374238014221,\n", + " -1.3819165229797363,\n", + " -4.124022960662842,\n", + " -8.875129699707031,\n", + " -0.887072741985321,\n", + " -2.702098846435547,\n", + " 1.2441999912261963,\n", + " -0.060320161283016205,\n", + " 3.2127902507781982,\n", + " -4.787941932678223,\n", + " -1.7735847234725952,\n", + " 2.3401880264282227,\n", + " 0.5994641780853271,\n", + " -3.2655715942382812,\n", + " 0.7493075728416443,\n", + " 0.20031413435935974,\n", + " 0.269188791513443,\n", + " -0.6489375233650208,\n", + " -1.1827962398529053,\n", + " 0.6488084197044373,\n", + " 3.799541473388672,\n", + " 0.08789312839508057,\n", + " 0.4126721918582916,\n", + " 2.273970365524292,\n", + " -1.4167795181274414,\n", + " 3.361281156539917,\n", + " 5.478500843048096,\n", + " 1.255025029182434,\n", + " 0.6729123592376709,\n", + " -2.490095615386963,\n", + " 0.7573592066764832,\n", + " 1.5050171613693237,\n", + " 1.3889999389648438,\n", + " 6.226860046386719,\n", + " 2.4419143199920654,\n", + " 1.325605869293213,\n", + " -2.8164639472961426,\n", + " 0.0338548943400383,\n", + " -1.7200915813446045,\n", + " 0.08039979636669159,\n", + " 4.257935047149658,\n", + " 0.769836962223053,\n", + " -0.56553715467453,\n", + " 0.8128640055656433,\n", + " 0.5728873014450073,\n", + " 3.774625301361084,\n", + " -0.36815983057022095,\n", + " 0.5384926199913025,\n", + " -1.7822424173355103,\n", + " 2.6060216426849365,\n", + " 4.28328275680542,\n", + " 0.27838122844696045,\n", + " 0.5124579668045044,\n", + " -3.385490894317627,\n", + " 2.756040334701538,\n", + " 0.21497005224227905,\n", + " -1.1206204891204834,\n", + " -0.687329113483429,\n", + " 0.37097248435020447,\n", + " 1.7511025667190552,\n", + " -3.067614793777466,\n", + " -0.7502833008766174,\n", + " -0.30752646923065186,\n", + " 0.6274518370628357,\n", + " -1.3394132852554321,\n", + " 0.38683128356933594,\n", + " 2.7706401348114014,\n", + " 2.2502565383911133,\n", + " -2.318115711212158,\n", + " -0.014325552619993687,\n", + " -2.630859136581421,\n", + " 1.4868338108062744,\n", + " 2.3034861087799072,\n", + " -1.639756202697754,\n", + " 0.5782852172851562,\n", + " 1.0485166311264038,\n", + " 0.23609744012355804,\n", + " -0.7751088738441467,\n", + " 1.0902869701385498,\n", + " -4.068610191345215,\n", + " -0.9249467849731445,\n", + " 1.5832273960113525,\n", + " 1.1743921041488647,\n", + " -0.2737315595149994,\n", + " -5.202696323394775,\n", + " 2.8652448654174805,\n", + " 0.3447275161743164,\n", + " 3.166260004043579,\n", + " 1.63128662109375,\n", + " -2.5201687812805176,\n", + " 0.5847077965736389,\n", + " -1.5145337581634521,\n", + " -0.3376529812812805,\n", + " ...]]" ] }, "execution_count": 6, @@ -102,94 +3117,3056 @@ } ], "source": [ - "doc_result = embeddings.embed_documents([text])\n", - "doc_result[0][:5]" - ] - }, - { - "cell_type": "markdown", - "id": "bb61bbeb", - "metadata": {}, - "source": [ - "### Embedding Models\n", - "\n", - "Ollama has embedding models, that are lightweight enough for use in embeddings, with the smallest about the size of 25Mb. See some of the available [embedding models from Ollama](https://ollama.com/blog/embedding-models).\n", - "\n", - "Let's load the Ollama Embeddings class with smaller model (e.g. `mxbai-embed-large`). \n", - "\n", - "> Note: See other supported models [https://ollama.ai/library](https://ollama.ai/library)" + "embeddings.embed_documents(\n", + " [\"This is a content of the document\", \"This is another document\"]\n", + ")" ] }, { "cell_type": "code", - "execution_count": 13, - "id": "a56b70f5", - "metadata": {}, - "outputs": [], - "source": [ - "embeddings = OllamaEmbeddings(model=\"mxbai-embed-large\")\n", - "text = \"This is a test document.\"\n", - "query_result = embeddings.embed_query(text)" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "id": "2ee7ce9f-d506-4810-8897-e44334412714", + "execution_count": 7, + "id": "46739f68", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[-0.09996627271175385,\n", - " 0.015567859634757042,\n", - " 0.17670205235481262,\n", - " 0.16521376371383667,\n", - " 0.21193283796310425]" + "[1.1588108539581299,\n", + " -3.3943021297454834,\n", + " 0.8108075261116028,\n", + " 0.48006290197372437,\n", + " -1.8064439296722412,\n", + " -0.5782400965690613,\n", + " 1.8570188283920288,\n", + " 2.2842330932617188,\n", + " -2.836144208908081,\n", + " -0.6422690153121948,\n", + " 3.273954391479492,\n", + " 4.197624206542969,\n", + " 1.5792632102966309,\n", + " -0.7088574767112732,\n", + " -4.41064453125,\n", + " 3.8046557903289795,\n", + " -1.0552408695220947,\n", + " 2.5829873085021973,\n", + " -0.251083105802536,\n", + " -0.7187575101852417,\n", + " 1.5951714515686035,\n", + " 1.2261885404586792,\n", + " 3.8631832599639893,\n", + " 0.8608534336090088,\n", + " -3.532944440841675,\n", + " 1.136743426322937,\n", + " -0.3754008114337921,\n", + " -1.5837438106536865,\n", + " -0.8591232299804688,\n", + " -1.9293577671051025,\n", + " 2.4372336864471436,\n", + " 0.09715379774570465,\n", + " -0.03162198141217232,\n", + " 1.7708642482757568,\n", + " 4.750239849090576,\n", + " 1.2387702465057373,\n", + " 3.7156949043273926,\n", + " 1.5510010719299316,\n", + " 1.3379523754119873,\n", + " -0.841890275478363,\n", + " 2.3726487159729004,\n", + " -1.2338300943374634,\n", + " 1.1810152530670166,\n", + " -0.9494953155517578,\n", + " 1.1218419075012207,\n", + " -1.6031185388565063,\n", + " -3.294806718826294,\n", + " -0.5389865040779114,\n", + " 1.0341904163360596,\n", + " -0.5253395438194275,\n", + " 1.734361171722412,\n", + " -3.1851885318756104,\n", + " 0.1542605608701706,\n", + " 0.35263291001319885,\n", + " 0.015420048497617245,\n", + " 0.5193774700164795,\n", + " 2.3625452518463135,\n", + " 1.9975805282592773,\n", + " -1.9758665561676025,\n", + " -0.050141070038080215,\n", + " 1.4507611989974976,\n", + " 1.1301021575927734,\n", + " 4.876162528991699,\n", + " -0.8849706053733826,\n", + " 0.41741955280303955,\n", + " 1.8841806650161743,\n", + " 0.7837628722190857,\n", + " -1.0020332336425781,\n", + " 1.8965165615081787,\n", + " 2.107957363128662,\n", + " -0.5471721887588501,\n", + " 0.5157415270805359,\n", + " 0.12206833064556122,\n", + " 2.839080810546875,\n", + " -1.4622355699539185,\n", + " -0.4768144488334656,\n", + " 0.6135925054550171,\n", + " -1.0522381067276,\n", + " -1.8777196407318115,\n", + " -0.32860419154167175,\n", + " 0.35022690892219543,\n", + " 2.203225612640381,\n", + " -0.38155192136764526,\n", + " -1.6958814859390259,\n", + " 2.3018438816070557,\n", + " -0.20140409469604492,\n", + " -2.3490500450134277,\n", + " 1.472577691078186,\n", + " -1.0838013887405396,\n", + " 2.041187047958374,\n", + " 0.20357169210910797,\n", + " -5.494638442993164,\n", + " 2.4712302684783936,\n", + " -1.3592402935028076,\n", + " -2.9500672817230225,\n", + " -2.696129322052002,\n", + " -3.6364619731903076,\n", + " 2.8685965538024902,\n", + " 1.482085943222046,\n", + " 1.1528726816177368,\n", + " 2.1248507499694824,\n", + " -0.8130776286125183,\n", + " 0.5030447244644165,\n", + " -3.1585915088653564,\n", + " -1.1061086654663086,\n", + " -3.3865482807159424,\n", + " 1.1274324655532837,\n", + " 0.7367305755615234,\n", + " -2.0779378414154053,\n", + " 2.6166021823883057,\n", + " -0.3340587317943573,\n", + " -1.295107364654541,\n", + " 1.206892967224121,\n", + " 3.3618593215942383,\n", + " -0.7384762763977051,\n", + " -2.689724922180176,\n", + " -2.246962308883667,\n", + " 0.2889839708805084,\n", + " 0.055849093943834305,\n", + " 1.2398909330368042,\n", + " 3.178607702255249,\n", + " -0.33557358384132385,\n", + " 2.853860378265381,\n", + " -1.5514289140701294,\n", + " 1.3975822925567627,\n", + " -0.3734644651412964,\n", + " 1.4595016241073608,\n", + " -0.6050246357917786,\n", + " -5.082399368286133,\n", + " -2.2399344444274902,\n", + " -2.038201093673706,\n", + " -1.1506695747375488,\n", + " -1.0732736587524414,\n", + " -5.881229877471924,\n", + " -0.8740050792694092,\n", + " -0.647497832775116,\n", + " 0.2860146760940552,\n", + " 2.4114344120025635,\n", + " 3.0942447185516357,\n", + " 0.3607892692089081,\n", + " -1.7367973327636719,\n", + " -2.8473262786865234,\n", + " 1.3145824670791626,\n", + " 2.43322491645813,\n", + " 1.48888099193573,\n", + " -1.4429435729980469,\n", + " -1.821229338645935,\n", + " 0.643457293510437,\n", + " 0.17439056932926178,\n", + " 2.176281690597534,\n", + " 0.027703439816832542,\n", + " 0.2498602271080017,\n", + " 1.1997318267822266,\n", + " 1.4345020055770874,\n", + " 0.46781685948371887,\n", + " 1.2306678295135498,\n", + " -0.6163588762283325,\n", + " -1.2178168296813965,\n", + " -4.266748428344727,\n", + " 0.28436020016670227,\n", + " 0.9003216028213501,\n", + " -1.654914379119873,\n", + " -0.5554200410842896,\n", + " 0.1496565192937851,\n", + " 1.5034950971603394,\n", + " -1.3246999979019165,\n", + " 0.10929492861032486,\n", + " -2.7049319744110107,\n", + " 0.9414666295051575,\n", + " -0.27462971210479736,\n", + " -2.128129243850708,\n", + " -0.4637344181537628,\n", + " 1.0333945751190186,\n", + " -2.184784173965454,\n", + " 1.5900598764419556,\n", + " 2.9566292762756348,\n", + " 2.280306577682495,\n", + " 1.4741032123565674,\n", + " 0.49892717599868774,\n", + " -2.1254706382751465,\n", + " 0.6352860331535339,\n", + " 1.6173533201217651,\n", + " -0.25190767645835876,\n", + " -1.8517420291900635,\n", + " 12.598737716674805,\n", + " 4.262639045715332,\n", + " 0.43113183975219727,\n", + " -1.1830300092697144,\n", + " 0.035109564661979675,\n", + " 0.24452516436576843,\n", + " 0.7221726775169373,\n", + " -0.0035807047970592976,\n", + " 1.681563138961792,\n", + " -1.215894341468811,\n", + " -1.555798053741455,\n", + " -0.5959586501121521,\n", + " -0.5245604515075684,\n", + " -2.1588215827941895,\n", + " -1.1396427154541016,\n", + " 1.0657974481582642,\n", + " 0.8924249410629272,\n", + " 0.9819761514663696,\n", + " -1.1334974765777588,\n", + " 3.2819013595581055,\n", + " 1.511919379234314,\n", + " -2.2465317249298096,\n", + " -2.583705186843872,\n", + " 0.4657593071460724,\n", + " 0.2209637612104416,\n", + " 2.746770143508911,\n", + " 4.560251235961914,\n", + " 1.986694097518921,\n", + " -0.4748530089855194,\n", + " -2.517805576324463,\n", + " -2.157360315322876,\n", + " -1.7753424644470215,\n", + " -0.02851729467511177,\n", + " -2.1114273071289062,\n", + " -0.07016204297542572,\n", + " -1.6848444938659668,\n", + " -2.725170850753784,\n", + " 1.0326589345932007,\n", + " -0.8966331481933594,\n", + " 1.5369850397109985,\n", + " -0.025898657739162445,\n", + " 0.4354790151119232,\n", + " 1.2697052955627441,\n", + " -0.1471754014492035,\n", + " 0.5059998631477356,\n", + " -1.3200763463974,\n", + " 2.2437644004821777,\n", + " -0.5243448615074158,\n", + " -0.9111588001251221,\n", + " 1.8827953338623047,\n", + " -0.30101990699768066,\n", + " 0.9442852735519409,\n", + " 0.1717413067817688,\n", + " 4.658431053161621,\n", + " -0.009960738942027092,\n", + " -0.2815183997154236,\n", + " 2.2827413082122803,\n", + " 0.44293636083602905,\n", + " -0.6525455117225647,\n", + " -1.3660684823989868,\n", + " -0.21125054359436035,\n", + " -0.5272241234779358,\n", + " 2.001535415649414,\n", + " 0.4968120753765106,\n", + " 0.41021376848220825,\n", + " 0.514000654220581,\n", + " -0.9426586627960205,\n", + " -1.0643374919891357,\n", + " 0.5905271768569946,\n", + " 1.6043733358383179,\n", + " -0.18217313289642334,\n", + " -2.347510576248169,\n", + " -0.29926538467407227,\n", + " 0.5902263522148132,\n", + " 1.441290020942688,\n", + " 0.544480562210083,\n", + " 0.18010686337947845,\n", + " 1.2514686584472656,\n", + " 2.621767520904541,\n", + " -0.2841752767562866,\n", + " -1.1722776889801025,\n", + " -0.15847790241241455,\n", + " 3.022190809249878,\n", + " -3.0455780029296875,\n", + " -0.37991198897361755,\n", + " -3.8938205242156982,\n", + " 3.496748924255371,\n", + " -4.296337127685547,\n", + " 1.6838269233703613,\n", + " -1.3237261772155762,\n", + " 2.119468927383423,\n", + " 0.5516493916511536,\n", + " 2.0679879188537598,\n", + " -0.3881581127643585,\n", + " 1.266517162322998,\n", + " -0.5005441308021545,\n", + " 0.46510857343673706,\n", + " -4.3948187828063965,\n", + " 2.1680824756622314,\n", + " -0.5885717868804932,\n", + " 0.854987621307373,\n", + " -0.39449062943458557,\n", + " 3.4793968200683594,\n", + " -1.074455976486206,\n", + " 1.3052178621292114,\n", + " -2.235884189605713,\n", + " -9.78164005279541,\n", + " 0.8423577547073364,\n", + " -0.9710142016410828,\n", + " 0.3046700060367584,\n", + " -1.8575193881988525,\n", + " -2.0895538330078125,\n", + " -0.5859282612800598,\n", + " -1.1711078882217407,\n", + " -0.17297153174877167,\n", + " -0.21491439640522003,\n", + " 1.639647126197815,\n", + " -0.10026901960372925,\n", + " 0.2984236478805542,\n", + " 0.7950730323791504,\n", + " -0.9993802905082703,\n", + " 2.1243302822113037,\n", + " -0.22378306090831757,\n", + " -1.4608495235443115,\n", + " 0.5124260187149048,\n", + " 1.072134017944336,\n", + " 0.6338499784469604,\n", + " -0.8448237180709839,\n", + " -3.8042726516723633,\n", + " 3.6057517528533936,\n", + " 0.24423162639141083,\n", + " -0.34035125374794006,\n", + " 1.3989207744598389,\n", + " 3.6974809169769287,\n", + " -1.7089307308197021,\n", + " 0.6439464092254639,\n", + " -1.2935267686843872,\n", + " 1.0550024509429932,\n", + " 1.5982847213745117,\n", + " -0.22397112846374512,\n", + " 0.8632503151893616,\n", + " -0.01465329434722662,\n", + " 1.907869577407837,\n", + " -0.22132569551467896,\n", + " -3.26887845993042,\n", + " 0.6158673763275146,\n", + " -3.357703924179077,\n", + " -2.715955972671509,\n", + " -1.26827073097229,\n", + " 0.9949036240577698,\n", + " 0.8530600666999817,\n", + " 0.18009737133979797,\n", + " -0.799755334854126,\n", + " -0.7762683033943176,\n", + " -2.0214147567749023,\n", + " -2.5477139949798584,\n", + " 0.3354305028915405,\n", + " 1.0146169662475586,\n", + " 0.8811922073364258,\n", + " -0.5477988123893738,\n", + " 1.3442738056182861,\n", + " 0.9427187442779541,\n", + " 0.0354413203895092,\n", + " 0.07164601236581802,\n", + " -1.3297611474990845,\n", + " 3.2583234310150146,\n", + " 1.3563737869262695,\n", + " 2.030906915664673,\n", + " -0.35838907957077026,\n", + " 1.1487957239151,\n", + " 2.177360773086548,\n", + " 0.11709480732679367,\n", + " -1.4572463035583496,\n", + " 2.712385416030884,\n", + " 1.695722222328186,\n", + " 0.9284390807151794,\n", + " 1.706230640411377,\n", + " 2.561094284057617,\n", + " 0.25148239731788635,\n", + " -0.7602075338363647,\n", + " -3.322800397872925,\n", + " -2.6651406288146973,\n", + " 0.5532605051994324,\n", + " -3.15582013130188,\n", + " 0.7390287518501282,\n", + " 1.9745639562606812,\n", + " 1.7976669073104858,\n", + " 0.5752639770507812,\n", + " 0.0009753882768563926,\n", + " 1.676922082901001,\n", + " 0.9746778607368469,\n", + " -0.9822664260864258,\n", + " 2.1947877407073975,\n", + " -0.11680249869823456,\n", + " -2.6098923683166504,\n", + " 0.41914910078048706,\n", + " -2.984086513519287,\n", + " -0.10993815213441849,\n", + " 2.602848529815674,\n", + " -0.481839120388031,\n", + " 3.7257251739501953,\n", + " -2.9751365184783936,\n", + " 2.1868069171905518,\n", + " 1.131687045097351,\n", + " -0.7709477543830872,\n", + " -1.787227749824524,\n", + " -1.3638288974761963,\n", + " 1.9597299098968506,\n", + " -3.910771131515503,\n", + " -2.3694069385528564,\n", + " 0.3377711772918701,\n", + " -1.1272759437561035,\n", + " 0.2438763678073883,\n", + " 1.57038152217865,\n", + " 1.4304869174957275,\n", + " 1.3004883527755737,\n", + " 0.2153862565755844,\n", + " 2.579542636871338,\n", + " -2.9127044677734375,\n", + " 2.370340585708618,\n", + " 0.1265379935503006,\n", + " -0.01695254072546959,\n", + " 7.434963226318359,\n", + " -0.09861380606889725,\n", + " 1.8987317085266113,\n", + " -0.7872756123542786,\n", + " 2.0855014324188232,\n", + " 2.1785011291503906,\n", + " -0.5971071124076843,\n", + " -2.7534055709838867,\n", + " 0.571414589881897,\n", + " 1.078928828239441,\n", + " -0.7235836386680603,\n", + " 0.5169491767883301,\n", + " 0.6812458634376526,\n", + " 1.1709541082382202,\n", + " 2.1434314250946045,\n", + " 2.106433629989624,\n", + " -1.822475552558899,\n", + " -1.0620055198669434,\n", + " 0.7150517106056213,\n", + " -0.4648316204547882,\n", + " 1.4963843822479248,\n", + " -1.0216617584228516,\n", + " -3.5024707317352295,\n", + " -1.0360679626464844,\n", + " 0.9179321527481079,\n", + " -2.7637529373168945,\n", + " -2.696685552597046,\n", + " 1.3476885557174683,\n", + " 2.223078727722168,\n", + " -1.6134458780288696,\n", + " 2.741485595703125,\n", + " -1.9102617502212524,\n", + " -0.6911030411720276,\n", + " 2.177055597305298,\n", + " 1.522071123123169,\n", + " 1.9023282527923584,\n", + " 1.3319522142410278,\n", + " 0.7881055474281311,\n", + " 1.3135285377502441,\n", + " 0.8814008235931396,\n", + " 0.6867395639419556,\n", + " -3.421967029571533,\n", + " 1.3001874685287476,\n", + " 0.23622742295265198,\n", + " 0.21538116037845612,\n", + " 2.436312198638916,\n", + " 1.0754977464675903,\n", + " -0.720741331577301,\n", + " 1.8048689365386963,\n", + " -0.31697219610214233,\n", + " 0.5729283094406128,\n", + " -3.8396501541137695,\n", + " 3.943213939666748,\n", + " -0.9160201549530029,\n", + " 1.084115743637085,\n", + " -0.5279198884963989,\n", + " 0.24704307317733765,\n", + " -1.9594742059707642,\n", + " 1.9499269723892212,\n", + " 4.578750133514404,\n", + " 3.9516568183898926,\n", + " -2.2084782123565674,\n", + " 0.22468039393424988,\n", + " -2.071413516998291,\n", + " -0.6087515354156494,\n", + " -0.5289045572280884,\n", + " 0.3930460214614868,\n", + " 2.5027647018432617,\n", + " 1.0188313722610474,\n", + " 0.46151202917099,\n", + " 0.8137346506118774,\n", + " 1.8875846862792969,\n", + " -1.2656121253967285,\n", + " 2.2458560466766357,\n", + " -4.610947132110596,\n", + " 1.6539306640625,\n", + " 2.0069520473480225,\n", + " -0.5200765132904053,\n", + " -0.48416611552238464,\n", + " 0.010277727618813515,\n", + " -2.663154363632202,\n", + " 1.4872249364852905,\n", + " -0.27043524384498596,\n", + " -0.8963356018066406,\n", + " -0.9656075239181519,\n", + " 3.7918643951416016,\n", + " 1.0870325565338135,\n", + " 3.284804582595825,\n", + " 0.5523933172225952,\n", + " -0.843651533126831,\n", + " -1.3254671096801758,\n", + " 1.2062429189682007,\n", + " 1.3807260990142822,\n", + " -2.4852302074432373,\n", + " -0.011835230514407158,\n", + " -2.3426311016082764,\n", + " -2.514195203781128,\n", + " -2.4651260375976562,\n", + " 1.9724572896957397,\n", + " -1.3628110885620117,\n", + " 0.974860668182373,\n", + " -1.3046749830245972,\n", + " -2.688742160797119,\n", + " 3.87972092628479,\n", + " -0.08418241888284683,\n", + " -1.3823158740997314,\n", + " 0.043848514556884766,\n", + " 1.3563494682312012,\n", + " 0.8300111889839172,\n", + " -0.0773104727268219,\n", + " -0.013485577888786793,\n", + " -0.14061765372753143,\n", + " 1.5060334205627441,\n", + " 3.7588629722595215,\n", + " 0.36124759912490845,\n", + " -1.8623719215393066,\n", + " -1.0909128189086914,\n", + " -0.7260362505912781,\n", + " -1.0169140100479126,\n", + " -3.084951400756836,\n", + " -1.581991195678711,\n", + " -0.4885261058807373,\n", + " -0.25824055075645447,\n", + " 2.531879425048828,\n", + " 1.8733612298965454,\n", + " 0.42290711402893066,\n", + " 2.345167875289917,\n", + " -4.2657365798950195,\n", + " 0.5448596477508545,\n", + " -1.8787968158721924,\n", + " 0.7574936747550964,\n", + " 0.17548349499702454,\n", + " 0.8636710047721863,\n", + " -0.3177189230918884,\n", + " -0.7759950160980225,\n", + " -3.4196338653564453,\n", + " -1.1388274431228638,\n", + " -1.0716949701309204,\n", + " 0.15776164829730988,\n", + " -0.04669021815061569,\n", + " 1.0421327352523804,\n", + " -4.3172502517700195,\n", + " 0.6522413492202759,\n", + " 2.077144145965576,\n", + " 1.3253499269485474,\n", + " -1.2956703901290894,\n", + " -1.3757482767105103,\n", + " -0.5370983481407166,\n", + " -0.9990721940994263,\n", + " 2.60697340965271,\n", + " -2.8766322135925293,\n", + " 1.0074764490127563,\n", + " -0.27660223841667175,\n", + " 3.543734550476074,\n", + " -0.8072172403335571,\n", + " -0.3190854787826538,\n", + " 2.7306253910064697,\n", + " 2.8548409938812256,\n", + " -2.7886455059051514,\n", + " -1.293799638748169,\n", + " -1.980125069618225,\n", + " -0.7323219180107117,\n", + " 0.3844391107559204,\n", + " 1.001309871673584,\n", + " -0.3912363052368164,\n", + " 0.9946101903915405,\n", + " 0.37498345971107483,\n", + " 3.964639186859131,\n", + " 2.54567289352417,\n", + " -1.1357941627502441,\n", + " 2.094589948654175,\n", + " -0.3275034427642822,\n", + " 2.605330228805542,\n", + " -2.544571876525879,\n", + " 0.5611221194267273,\n", + " 1.5413520336151123,\n", + " 1.8624566793441772,\n", + " 0.7819016575813293,\n", + " -1.559873342514038,\n", + " 1.3655420541763306,\n", + " 1.356046199798584,\n", + " -1.9579086303710938,\n", + " 0.21900592744350433,\n", + " 3.7027933597564697,\n", + " -0.9461540579795837,\n", + " -2.0620453357696533,\n", + " -1.229551911354065,\n", + " -0.6082488298416138,\n", + " 0.685775876045227,\n", + " 2.495358467102051,\n", + " -0.22589509189128876,\n", + " -0.2592708170413971,\n", + " 1.8681409358978271,\n", + " -0.3670724928379059,\n", + " -0.9792632460594177,\n", + " 0.5046470761299133,\n", + " 3.818112373352051,\n", + " 2.6105446815490723,\n", + " 0.8268351554870605,\n", + " -0.019148798659443855,\n", + " 2.8472683429718018,\n", + " 0.40988874435424805,\n", + " 0.5756285786628723,\n", + " 0.9104381799697876,\n", + " -2.1239876747131348,\n", + " -4.648840427398682,\n", + " -0.05516885593533516,\n", + " 2.3690664768218994,\n", + " 1.064305305480957,\n", + " -1.9812570810317993,\n", + " 1.005708932876587,\n", + " -1.7377501726150513,\n", + " -1.026093602180481,\n", + " -1.6409721374511719,\n", + " 2.0178022384643555,\n", + " -0.45235276222229004,\n", + " 1.9877971410751343,\n", + " -1.283392071723938,\n", + " 2.142554998397827,\n", + " 1.976653814315796,\n", + " -0.47365236282348633,\n", + " -1.2822537422180176,\n", + " 1.5454622507095337,\n", + " -0.8365111351013184,\n", + " 0.15264113247394562,\n", + " 1.3387380838394165,\n", + " -1.0197112560272217,\n", + " 2.251563310623169,\n", + " -0.9795697331428528,\n", + " 0.5308533310890198,\n", + " -1.8896129131317139,\n", + " -1.0466077327728271,\n", + " 0.5089973211288452,\n", + " -2.1048316955566406,\n", + " 0.3490481972694397,\n", + " 9.35216236114502,\n", + " 0.43754082918167114,\n", + " 1.1641842126846313,\n", + " -4.336385250091553,\n", + " 0.6278030872344971,\n", + " 1.916900634765625,\n", + " 1.56166410446167,\n", + " 0.1308954656124115,\n", + " 1.0432405471801758,\n", + " 0.5460679531097412,\n", + " -1.5108636617660522,\n", + " -1.8219951391220093,\n", + " 1.9482169151306152,\n", + " 2.0398929119110107,\n", + " 3.7486701011657715,\n", + " 3.16365385055542,\n", + " 0.19272767007350922,\n", + " 1.3110774755477905,\n", + " 1.6621415615081787,\n", + " -0.9340311884880066,\n", + " 0.03183625638484955,\n", + " -0.8009647130966187,\n", + " -0.2390662282705307,\n", + " -1.6430314779281616,\n", + " -0.03437905013561249,\n", + " -1.765162467956543,\n", + " -1.0872410535812378,\n", + " 0.5968102812767029,\n", + " 0.46622952818870544,\n", + " 2.171534776687622,\n", + " 2.579864263534546,\n", + " -1.5134321451187134,\n", + " -2.625868797302246,\n", + " 0.8939980864524841,\n", + " -3.919886827468872,\n", + " 4.200295925140381,\n", + " 0.8827810883522034,\n", + " -0.9720629453659058,\n", + " 1.740238904953003,\n", + " 0.6450857520103455,\n", + " 3.244929790496826,\n", + " 2.642728805541992,\n", + " 0.6809942126274109,\n", + " -0.6814837455749512,\n", + " 0.8378584384918213,\n", + " 2.6553032398223877,\n", + " 2.382251024246216,\n", + " -0.12150904536247253,\n", + " 3.251645803451538,\n", + " 0.1545192003250122,\n", + " -0.46551811695098877,\n", + " -1.3731157779693604,\n", + " 1.6065778732299805,\n", + " -0.9107775092124939,\n", + " -2.122365713119507,\n", + " -0.755946695804596,\n", + " 0.9596620202064514,\n", + " 0.1962565928697586,\n", + " -3.1892590522766113,\n", + " -1.7191227674484253,\n", + " -1.6934884786605835,\n", + " 0.096808061003685,\n", + " 1.5860071182250977,\n", + " -4.3447465896606445,\n", + " -0.24807417392730713,\n", + " 2.1554596424102783,\n", + " 0.17446450889110565,\n", + " 1.3595103025436401,\n", + " -5.076416492462158,\n", + " -0.7115034461021423,\n", + " 0.2745206654071808,\n", + " -0.9583694338798523,\n", + " 3.592369318008423,\n", + " 0.43940743803977966,\n", + " 3.3064498901367188,\n", + " 0.677763044834137,\n", + " -1.2322185039520264,\n", + " -0.039470456540584564,\n", + " 1.6289703845977783,\n", + " -0.16217689216136932,\n", + " 0.8334534168243408,\n", + " 0.9731929898262024,\n", + " -0.18078526854515076,\n", + " -2.773348093032837,\n", + " -0.34269994497299194,\n", + " 0.3155413568019867,\n", + " -0.29196080565452576,\n", + " 0.44387105107307434,\n", + " 1.3408170938491821,\n", + " -0.24933172762393951,\n", + " -3.319072723388672,\n", + " 0.2526112496852875,\n", + " -1.373990535736084,\n", + " 1.0457499027252197,\n", + " 0.29531243443489075,\n", + " -3.377215623855591,\n", + " 0.6322634816169739,\n", + " -0.8348919749259949,\n", + " -0.20105580985546112,\n", + " 0.44015613198280334,\n", + " 0.3198135197162628,\n", + " 1.991890788078308,\n", + " -1.0501000881195068,\n", + " 2.5067262649536133,\n", + " 0.6204811930656433,\n", + " 1.200798749923706,\n", + " -0.958784282207489,\n", + " -0.6037139296531677,\n", + " -0.23031175136566162,\n", + " 0.014697781763970852,\n", + " 2.256824493408203,\n", + " -1.5271515846252441,\n", + " -1.4927211999893188,\n", + " 1.156502604484558,\n", + " 1.9095149040222168,\n", + " -2.5780537128448486,\n", + " -0.041785046458244324,\n", + " 0.10553450137376785,\n", + " 0.8720028400421143,\n", + " -0.42433732748031616,\n", + " 1.6687054634094238,\n", + " -1.3486768007278442,\n", + " -2.107517719268799,\n", + " -0.485392689704895,\n", + " 0.3952060639858246,\n", + " 3.792418956756592,\n", + " 1.732338786125183,\n", + " 1.3522870540618896,\n", + " -0.3873569965362549,\n", + " -0.6929060220718384,\n", + " -0.7253779172897339,\n", + " 1.5772020816802979,\n", + " 0.22397683560848236,\n", + " -1.1815251111984253,\n", + " -1.0099704265594482,\n", + " -0.3928086459636688,\n", + " 1.3654193878173828,\n", + " -1.7745933532714844,\n", + " -0.1698371022939682,\n", + " -1.0136816501617432,\n", + " -1.6536282300949097,\n", + " 17.464502334594727,\n", + " 1.2401288747787476,\n", + " 2.520428419113159,\n", + " 2.292722702026367,\n", + " 1.0273125171661377,\n", + " -4.112117767333984,\n", + " -1.6380878686904907,\n", + " 3.0316011905670166,\n", + " 0.38991621136665344,\n", + " 0.33908334374427795,\n", + " 2.220815658569336,\n", + " -3.1552817821502686,\n", + " -0.13972707092761993,\n", + " 1.6309388875961304,\n", + " 2.612539052963257,\n", + " -0.351901650428772,\n", + " -1.4507770538330078,\n", + " 2.0656392574310303,\n", + " 0.5164774656295776,\n", + " -0.9778643250465393,\n", + " -1.8892741203308105,\n", + " -0.05694100260734558,\n", + " -1.7861603498458862,\n", + " 1.6007559299468994,\n", + " 0.03911133483052254,\n", + " 0.3491671085357666,\n", + " -0.9019615650177002,\n", + " 3.2962300777435303,\n", + " -0.46370401978492737,\n", + " 0.6244081854820251,\n", + " 1.1753209829330444,\n", + " 1.4824209213256836,\n", + " -3.2222516536712646,\n", + " -2.5530848503112793,\n", + " -2.7513976097106934,\n", + " 1.965706706047058,\n", + " -0.026076380163431168,\n", + " -1.4362506866455078,\n", + " 0.24754875898361206,\n", + " -0.8510985374450684,\n", + " 3.8931972980499268,\n", + " -0.226673886179924,\n", + " 3.031508445739746,\n", + " -1.92091965675354,\n", + " -0.3329271972179413,\n", + " 0.428586483001709,\n", + " 2.308405637741089,\n", + " 0.7408685684204102,\n", + " 1.2548139095306396,\n", + " -3.084012985229492,\n", + " 1.035301923751831,\n", + " -0.4989493787288666,\n", + " -1.0492119789123535,\n", + " 2.8431127071380615,\n", + " 0.8772914409637451,\n", + " 0.8934967517852783,\n", + " -0.8118966221809387,\n", + " -1.8737051486968994,\n", + " 0.9479296207427979,\n", + " 0.3467805087566376,\n", + " 0.47936564683914185,\n", + " 1.8903456926345825,\n", + " 2.7371950149536133,\n", + " 2.6023075580596924,\n", + " -0.1968643218278885,\n", + " -2.2785439491271973,\n", + " -2.133267879486084,\n", + " 1.6693224906921387,\n", + " 3.5615296363830566,\n", + " 1.805562138557434,\n", + " 1.2125883102416992,\n", + " -1.5161792039871216,\n", + " -0.003823505947366357,\n", + " -1.5516108274459839,\n", + " -2.6158628463745117,\n", + " -2.4251768589019775,\n", + " 0.1096232458949089,\n", + " 1.6200560331344604,\n", + " 0.4285288453102112,\n", + " -0.07647668570280075,\n", + " 1.2602490186691284,\n", + " 1.6813089847564697,\n", + " -2.357346534729004,\n", + " -1.6943997144699097,\n", + " -0.7216321229934692,\n", + " 3.297959327697754,\n", + " 4.504902362823486,\n", + " -1.9581016302108765,\n", + " 0.9111392498016357,\n", + " 1.4141093492507935,\n", + " -2.6196036338806152,\n", + " -0.3526265621185303,\n", + " -0.6059153079986572,\n", + " 2.66208553314209,\n", + " -0.4549764096736908,\n", + " 1.8869773149490356,\n", + " -1.8283882141113281,\n", + " -1.5936133861541748,\n", + " 2.6077792644500732,\n", + " 0.8153656721115112,\n", + " 1.6834837198257446,\n", + " 3.2758750915527344,\n", + " -0.12068500369787216,\n", + " 1.3063170909881592,\n", + " 0.12942495942115784,\n", + " 4.303485870361328,\n", + " 0.5197142958641052,\n", + " -3.3046348094940186,\n", + " -0.02519918605685234,\n", + " -0.9808037281036377,\n", + " -1.910658359527588,\n", + " 14.404706954956055,\n", + " 1.7279610633850098,\n", + " 0.14731642603874207,\n", + " -2.073530912399292,\n", + " 1.4640326499938965,\n", + " 1.8923238515853882,\n", + " 0.6788854002952576,\n", + " 2.3570919036865234,\n", + " -3.270526170730591,\n", + " -1.2846544981002808,\n", + " 0.30470094084739685,\n", + " 1.2324204444885254,\n", + " 0.8520573973655701,\n", + " 0.9951837658882141,\n", + " 1.359863042831421,\n", + " -1.6030728816986084,\n", + " 1.837383508682251,\n", + " -14.05699348449707,\n", + " -1.123944878578186,\n", + " 3.0739409923553467,\n", + " 2.7407829761505127,\n", + " 3.5482187271118164,\n", + " -0.5915259718894958,\n", + " -0.33399057388305664,\n", + " 2.0230162143707275,\n", + " 3.2141873836517334,\n", + " 0.4275171160697937,\n", + " -0.46753397583961487,\n", + " 2.0718019008636475,\n", + " -1.9218755960464478,\n", + " -0.5812616348266602,\n", + " -1.212603211402893,\n", + " -2.0727429389953613,\n", + " -0.3677098751068115,\n", + " -2.5267574787139893,\n", + " -3.025620460510254,\n", + " -1.269808292388916,\n", + " 0.577834963798523,\n", + " -2.541167974472046,\n", + " 1.4844390153884888,\n", + " -1.7041091918945312,\n", + " -0.2832220792770386,\n", + " -0.6581478118896484,\n", + " -0.2037837654352188,\n", + " 3.1556999683380127,\n", + " -0.029621712863445282,\n", + " -4.308955192565918,\n", + " -14.953690528869629,\n", + " 0.06354455649852753,\n", + " -0.4776405394077301,\n", + " -0.09464313089847565,\n", + " -4.692539691925049,\n", + " -2.3149311542510986,\n", + " -0.7913568615913391,\n", + " 0.29521042108535767,\n", + " 0.0913262739777565,\n", + " 1.2030049562454224,\n", + " -1.3831913471221924,\n", + " 4.050319194793701,\n", + " -1.2508262395858765,\n", + " -1.1040664911270142,\n", + " 1.600762963294983,\n", + " -2.0887181758880615,\n", + " -1.5644268989562988,\n", + " 0.31997552514076233,\n", + " 0.721390962600708,\n", + " 1.2438726425170898,\n", + " -1.7440379858016968,\n", + " 1.2353302240371704,\n", + " -0.15850384533405304,\n", + " 0.6119896173477173,\n", + " 0.9907702207565308,\n", + " 1.2731077671051025,\n", + " 1.2138645648956299,\n", + " 6.721953868865967,\n", + " -0.2504028081893921,\n", + " -1.382326364517212,\n", + " 0.04728212207555771,\n", + " 0.5801144242286682,\n", + " -0.4697207510471344,\n", + " 0.6041349172592163,\n", + " 1.2571274042129517,\n", + " -0.4074985086917877,\n", + " -1.6010504961013794,\n", + " 3.875206708908081,\n", + " -1.9802753925323486,\n", + " -0.922169029712677,\n", + " -1.3483080863952637,\n", + " 2.2528719902038574,\n", + " 1.7215412855148315,\n", + " 1.004778265953064,\n", + " -0.9481913447380066,\n", + " -1.1743320226669312,\n", + " -1.6903272867202759,\n", + " 1.4239429235458374,\n", + " 1.0980380773544312,\n", + " 5.632511615753174,\n", + " -1.5414550304412842,\n", + " 1.132023811340332,\n", + " -0.28032270073890686,\n", + " 0.020960716530680656,\n", + " -2.2207391262054443,\n", + " -0.07656984776258469,\n", + " 1.0084593296051025,\n", + " -0.4201846420764923,\n", + " -0.013524290174245834,\n", + " 0.378415584564209,\n", + " ...]" ] }, - "execution_count": 17, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "query_result[:5]" + "# async embed query\n", + "await embeddings.aembed_query(\"My query to look up\")" ] }, { "cell_type": "code", - "execution_count": 18, - "id": "e3221db6", - "metadata": {}, - "outputs": [], - "source": [ - "doc_result = embeddings.embed_documents([text])" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "id": "a0865409-3a6d-468f-939f-abde17c7cac3", + "execution_count": 8, + "id": "e48632ea", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "[-0.042427532374858856,\n", - " 0.01653730869293213,\n", - " 0.10052604228258133,\n", - " 0.18272635340690613,\n", - " 0.20790338516235352]" + "[[0.026717308908700943,\n", + " -3.073253870010376,\n", + " -0.983579158782959,\n", + " -1.3976373672485352,\n", + " 0.3153868317604065,\n", + " -0.9198529124259949,\n", + " -0.5000395178794861,\n", + " -2.8302183151245117,\n", + " 0.48412731289863586,\n", + " -1.3201743364334106,\n", + " 2.1840200424194336,\n", + " 1.8516451120376587,\n", + " -0.3010086119174957,\n", + " -2.0235533714294434,\n", + " -1.5968759059906006,\n", + " -1.8724948167800903,\n", + " -0.5951926112174988,\n", + " 0.39937323331832886,\n", + " -1.422173023223877,\n", + " -0.4554414749145508,\n", + " -1.3107271194458008,\n", + " 0.4371069371700287,\n", + " -0.35458794236183167,\n", + " 2.2485244274139404,\n", + " -0.6444820761680603,\n", + " -1.1975884437561035,\n", + " 0.7529797554016113,\n", + " -0.8240599632263184,\n", + " 2.270399332046509,\n", + " 1.7715342044830322,\n", + " -0.7533677220344543,\n", + " 1.3202179670333862,\n", + " 1.1890583038330078,\n", + " 2.583138942718506,\n", + " 0.2897748351097107,\n", + " 2.0970191955566406,\n", + " 0.8640325665473938,\n", + " -1.4255969524383545,\n", + " 0.6775333881378174,\n", + " 1.0958609580993652,\n", + " -0.06745656579732895,\n", + " -1.026739478111267,\n", + " 4.353838920593262,\n", + " -1.307796597480774,\n", + " 2.018310308456421,\n", + " 0.025882123038172722,\n", + " -0.2596699595451355,\n", + " -2.8316152095794678,\n", + " 0.2786482572555542,\n", + " -2.4338526725769043,\n", + " 1.7176285982131958,\n", + " -2.3856818675994873,\n", + " -0.8177772164344788,\n", + " 1.8894743919372559,\n", + " -3.1035237312316895,\n", + " -1.1637845039367676,\n", + " 2.084111452102661,\n", + " 0.4729601740837097,\n", + " -0.6619122624397278,\n", + " 2.1771023273468018,\n", + " -0.0016843565972521901,\n", + " 0.7641392946243286,\n", + " 3.1067798137664795,\n", + " 1.5978010892868042,\n", + " 4.099151611328125,\n", + " -0.354404479265213,\n", + " -0.5072272419929504,\n", + " -0.4278642535209656,\n", + " 2.687389850616455,\n", + " 0.7284980416297913,\n", + " 0.6419050693511963,\n", + " -1.5070881843566895,\n", + " 1.5855128765106201,\n", + " 3.5309643745422363,\n", + " -1.012750267982483,\n", + " 0.33412203192710876,\n", + " 1.4072771072387695,\n", + " -1.5712347030639648,\n", + " -2.8175408840179443,\n", + " 1.732979416847229,\n", + " -2.1090025901794434,\n", + " -0.5641390085220337,\n", + " -0.7873497009277344,\n", + " 3.764495372772217,\n", + " -2.0843584537506104,\n", + " -0.23248206079006195,\n", + " 0.041751474142074585,\n", + " 0.4747326076030731,\n", + " 1.7116739749908447,\n", + " -0.03898052126169205,\n", + " 3.084993362426758,\n", + " -1.743934988975525,\n", + " -0.4811558127403259,\n", + " 2.288424253463745,\n", + " -1.8777436017990112,\n", + " -1.89717435836792,\n", + " -2.3290278911590576,\n", + " 1.4090726375579834,\n", + " -0.13189227879047394,\n", + " -1.6202075481414795,\n", + " -0.49017438292503357,\n", + " -2.774104595184326,\n", + " -2.2781519889831543,\n", + " -1.733016848564148,\n", + " -1.0853590965270996,\n", + " 1.0377845764160156,\n", + " 0.11097811907529831,\n", + " -0.6899252533912659,\n", + " -4.025875568389893,\n", + " 0.3574219346046448,\n", + " 2.48128080368042,\n", + " 0.716792106628418,\n", + " 0.5063115954399109,\n", + " 0.9703182578086853,\n", + " -0.2161022573709488,\n", + " 2.9063303470611572,\n", + " 0.6950815916061401,\n", + " 1.6585043668746948,\n", + " 1.7222602367401123,\n", + " 1.7062965631484985,\n", + " -0.6428905725479126,\n", + " -1.70795476436615,\n", + " 0.35549041628837585,\n", + " -0.018765531480312347,\n", + " -1.1625276803970337,\n", + " -2.402967929840088,\n", + " 0.43371760845184326,\n", + " -0.5024239420890808,\n", + " -6.130197525024414,\n", + " 0.058472033590078354,\n", + " 2.7138113975524902,\n", + " -0.23731113970279694,\n", + " -2.0155885219573975,\n", + " 6.265206336975098,\n", + " 0.06020008772611618,\n", + " -0.812073290348053,\n", + " 0.4731346368789673,\n", + " -0.6897581219673157,\n", + " 3.230292797088623,\n", + " 0.5337257385253906,\n", + " -1.0041537284851074,\n", + " -0.04507758840918541,\n", + " -1.5368560552597046,\n", + " 2.405879259109497,\n", + " -0.8992667198181152,\n", + " -0.44732460379600525,\n", + " 1.6525166034698486,\n", + " -1.3517338037490845,\n", + " 1.1007601022720337,\n", + " -0.041462428867816925,\n", + " 0.4985283315181732,\n", + " 1.0086987018585205,\n", + " 1.016295075416565,\n", + " -3.7423529624938965,\n", + " -2.706648826599121,\n", + " 1.9058319330215454,\n", + " -1.2032614946365356,\n", + " -1.3974393606185913,\n", + " -0.7731496691703796,\n", + " -1.0925463438034058,\n", + " 2.346466064453125,\n", + " 3.625058889389038,\n", + " -1.5892901420593262,\n", + " 0.01959707960486412,\n", + " -0.5415254831314087,\n", + " 0.335084468126297,\n", + " 2.2965500354766846,\n", + " -0.7749836444854736,\n", + " -1.3894739151000977,\n", + " -1.0824460983276367,\n", + " -3.297056198120117,\n", + " 1.7825411558151245,\n", + " 1.1096142530441284,\n", + " -0.03977459296584129,\n", + " 0.9160926342010498,\n", + " -0.8065985441207886,\n", + " -1.7276893854141235,\n", + " -1.0204452276229858,\n", + " 1.178256630897522,\n", + " -0.7816577553749084,\n", + " -1.5120762586593628,\n", + " 0.8400945663452148,\n", + " 0.7989885807037354,\n", + " -0.7149533033370972,\n", + " 8.335212707519531,\n", + " 0.050751943141222,\n", + " -1.0497180223464966,\n", + " -0.7823722958564758,\n", + " -0.10929509252309799,\n", + " 0.9082885384559631,\n", + " -0.33650222420692444,\n", + " -0.5199440717697144,\n", + " -2.1859261989593506,\n", + " 3.0295941829681396,\n", + " -0.11376741528511047,\n", + " 2.9171061515808105,\n", + " -3.479733467102051,\n", + " -2.3066799640655518,\n", + " -4.466789722442627,\n", + " 2.733057737350464,\n", + " -1.03090238571167,\n", + " 2.3107597827911377,\n", + " -2.7823054790496826,\n", + " -2.2845728397369385,\n", + " -0.8511890172958374,\n", + " 0.20347073674201965,\n", + " -1.2296565771102905,\n", + " -3.0533154010772705,\n", + " 2.7986693382263184,\n", + " 2.5631518363952637,\n", + " 0.952899694442749,\n", + " -0.39777690172195435,\n", + " 2.2006852626800537,\n", + " -0.8717543482780457,\n", + " -8.033182144165039,\n", + " 2.1896238327026367,\n", + " 2.478433132171631,\n", + " 2.2562718391418457,\n", + " 0.013974095694720745,\n", + " -1.976767897605896,\n", + " 1.4605448246002197,\n", + " 2.2424638271331787,\n", + " 0.12891075015068054,\n", + " 0.3790381848812103,\n", + " 0.7923580408096313,\n", + " 2.870664119720459,\n", + " 1.7757912874221802,\n", + " 0.5546240210533142,\n", + " 2.2496278285980225,\n", + " -1.0769950151443481,\n", + " 1.5696698427200317,\n", + " -0.6919817924499512,\n", + " -0.028310546651482582,\n", + " 2.688535451889038,\n", + " -0.757993221282959,\n", + " 0.2328571379184723,\n", + " 0.5360584855079651,\n", + " 3.6621901988983154,\n", + " 0.6530188322067261,\n", + " 0.0859115868806839,\n", + " 2.0972437858581543,\n", + " 0.46973463892936707,\n", + " 2.730447769165039,\n", + " 0.2412702888250351,\n", + " -1.044063687324524,\n", + " 1.6172006130218506,\n", + " -0.22516946494579315,\n", + " -0.5335642695426941,\n", + " 0.8275823593139648,\n", + " 2.8645689487457275,\n", + " -4.237293720245361,\n", + " -2.766214370727539,\n", + " 2.4629828929901123,\n", + " -2.6421544551849365,\n", + " 1.7491819858551025,\n", + " 0.6698367595672607,\n", + " -1.2033149003982544,\n", + " 0.9181250333786011,\n", + " 1.0507344007492065,\n", + " 1.4599311351776123,\n", + " -1.4361722469329834,\n", + " -2.5916759967803955,\n", + " -1.3246519565582275,\n", + " 0.1079646497964859,\n", + " -2.2403411865234375,\n", + " -3.072622537612915,\n", + " 0.31669750809669495,\n", + " -1.1096093654632568,\n", + " -1.6666183471679688,\n", + " -1.483022928237915,\n", + " 0.5176268815994263,\n", + " 0.8780972957611084,\n", + " -1.0288445949554443,\n", + " -2.6958236694335938,\n", + " 0.5275738835334778,\n", + " -1.0595060586929321,\n", + " 0.7626713514328003,\n", + " -2.756638526916504,\n", + " 0.928656280040741,\n", + " 0.933577299118042,\n", + " -0.08630683273077011,\n", + " -9.227815628051758,\n", + " -1.9162994623184204,\n", + " 0.11540680378675461,\n", + " 1.9167009592056274,\n", + " -1.1091969013214111,\n", + " 1.672775149345398,\n", + " -4.4126200675964355,\n", + " 2.7103805541992188,\n", + " -10.411971092224121,\n", + " -9.22303295135498,\n", + " -1.25534188747406,\n", + " 12.056777000427246,\n", + " -1.735790491104126,\n", + " -1.6243411302566528,\n", + " -3.071399211883545,\n", + " -1.0125621557235718,\n", + " -1.0339174270629883,\n", + " 3.816934585571289,\n", + " -0.440189003944397,\n", + " -0.4743768870830536,\n", + " 3.262524366378784,\n", + " -0.4572724401950836,\n", + " -0.46764689683914185,\n", + " -0.029862485826015472,\n", + " 1.1229056119918823,\n", + " 1.6376248598098755,\n", + " -2.460693120956421,\n", + " -0.2973520755767822,\n", + " 1.520696759223938,\n", + " -0.0986490398645401,\n", + " 0.24537293612957,\n", + " -3.9179461002349854,\n", + " 0.2888944149017334,\n", + " 0.9517350196838379,\n", + " 1.4186291694641113,\n", + " -1.4627443552017212,\n", + " 2.134878396987915,\n", + " 0.48006200790405273,\n", + " -0.6264674067497253,\n", + " -7.271275997161865,\n", + " 1.2673039436340332,\n", + " 3.2998273372650146,\n", + " 3.1871774196624756,\n", + " 0.48085397481918335,\n", + " -0.206886425614357,\n", + " -0.03116680681705475,\n", + " 2.389113426208496,\n", + " -1.8123655319213867,\n", + " -0.5753913521766663,\n", + " 2.298330068588257,\n", + " -1.9461785554885864,\n", + " 0.01917611062526703,\n", + " 1.473065733909607,\n", + " 0.26479971408843994,\n", + " 0.13233143091201782,\n", + " -0.9118562340736389,\n", + " -1.3524703979492188,\n", + " -0.9908326864242554,\n", + " 0.1621469110250473,\n", + " 0.25943493843078613,\n", + " -0.23961058259010315,\n", + " 0.47202739119529724,\n", + " -1.2138139009475708,\n", + " 1.346591591835022,\n", + " -2.157972574234009,\n", + " -2.4823291301727295,\n", + " -2.9505441188812256,\n", + " 1.4433603286743164,\n", + " -1.7098407745361328,\n", + " -0.1840589940547943,\n", + " -3.4049768447875977,\n", + " 0.8356589674949646,\n", + " -1.840678095817566,\n", + " -2.239001989364624,\n", + " -3.3707456588745117,\n", + " -0.08583131432533264,\n", + " 0.6905569434165955,\n", + " -0.7588489055633545,\n", + " 0.8704045414924622,\n", + " -0.21636343002319336,\n", + " 1.5839855670928955,\n", + " 1.0033503770828247,\n", + " -3.4025657176971436,\n", + " -1.1387205123901367,\n", + " -0.7117018103599548,\n", + " -1.8022944927215576,\n", + " 0.201739102602005,\n", + " -2.1537623405456543,\n", + " 0.08270526677370071,\n", + " 0.5075051188468933,\n", + " 3.0067293643951416,\n", + " 0.07482617348432541,\n", + " -1.32440185546875,\n", + " 1.5424766540527344,\n", + " 1.594306468963623,\n", + " -0.990329384803772,\n", + " 1.4455547332763672,\n", + " 2.2173986434936523,\n", + " 2.9684293270111084,\n", + " -0.7076241374015808,\n", + " -0.5783892273902893,\n", + " -3.6097705364227295,\n", + " 0.8552119731903076,\n", + " 1.210046410560608,\n", + " -0.8996566534042358,\n", + " 1.0503664016723633,\n", + " -2.188053607940674,\n", + " 1.4872989654541016,\n", + " 2.07106614112854,\n", + " -3.8259897232055664,\n", + " 2.826853036880493,\n", + " -3.621142625808716,\n", + " 0.7980952858924866,\n", + " -0.9585616588592529,\n", + " 2.001718759536743,\n", + " -2.0664732456207275,\n", + " 2.5997657775878906,\n", + " -1.6276531219482422,\n", + " 1.6918525695800781,\n", + " 1.4889588356018066,\n", + " -2.2652482986450195,\n", + " -5.347990036010742,\n", + " 2.061901330947876,\n", + " 2.883211851119995,\n", + " 0.6274645328521729,\n", + " 5.4982380867004395,\n", + " -0.6936045289039612,\n", + " -0.08191787451505661,\n", + " -1.2311333417892456,\n", + " 1.8159682750701904,\n", + " 1.8154428005218506,\n", + " -0.3232429027557373,\n", + " 0.8520640134811401,\n", + " 0.9876762628555298,\n", + " 1.7222920656204224,\n", + " -1.86406409740448,\n", + " -2.1149168014526367,\n", + " -2.2021360397338867,\n", + " 1.876705288887024,\n", + " 0.026317736133933067,\n", + " 3.7954442501068115,\n", + " -0.6879523396492004,\n", + " 4.027620315551758,\n", + " -2.9056761264801025,\n", + " 0.3859586715698242,\n", + " 1.2217315435409546,\n", + " 0.5589178204536438,\n", + " -0.10501305758953094,\n", + " -2.35835599899292,\n", + " 0.05528240278363228,\n", + " 0.4029955565929413,\n", + " 2.4429123401641846,\n", + " 2.8426527976989746,\n", + " 1.19734525680542,\n", + " -1.7425122261047363,\n", + " 2.6791045665740967,\n", + " -3.691251516342163,\n", + " -2.370537281036377,\n", + " 2.1656038761138916,\n", + " 1.558953881263733,\n", + " 1.9788095951080322,\n", + " -1.5613638162612915,\n", + " 3.459259271621704,\n", + " -2.3323798179626465,\n", + " -1.2499924898147583,\n", + " -1.823384404182434,\n", + " -1.754738688468933,\n", + " -2.0725417137145996,\n", + " -0.8252647519111633,\n", + " -2.0487749576568604,\n", + " -0.522021472454071,\n", + " 2.557943820953369,\n", + " 0.22756552696228027,\n", + " 0.7813788056373596,\n", + " -0.6041549444198608,\n", + " 0.4604742228984833,\n", + " -0.7861675024032593,\n", + " 2.129812479019165,\n", + " 0.08868035674095154,\n", + " 1.228132724761963,\n", + " 0.48421069979667664,\n", + " -0.5727242827415466,\n", + " -2.8403635025024414,\n", + " 2.0975775718688965,\n", + " 0.3020351231098175,\n", + " 4.890812873840332,\n", + " -2.3530821800231934,\n", + " 1.1093765497207642,\n", + " 0.08936131000518799,\n", + " -1.786980152130127,\n", + " -1.127266764640808,\n", + " -0.42669662833213806,\n", + " 2.4850215911865234,\n", + " 0.01809186115860939,\n", + " 2.1962730884552,\n", + " 1.8123252391815186,\n", + " 3.185354471206665,\n", + " 2.3117177486419678,\n", + " -1.5728116035461426,\n", + " -3.0310428142547607,\n", + " 1.5499656200408936,\n", + " 1.2953983545303345,\n", + " -0.26389065384864807,\n", + " 1.1181063652038574,\n", + " 0.6439679265022278,\n", + " 2.018975257873535,\n", + " 0.5102697014808655,\n", + " -1.5742875337600708,\n", + " -2.5278515815734863,\n", + " -0.2849779427051544,\n", + " 1.565861701965332,\n", + " 0.4623192250728607,\n", + " 1.5533277988433838,\n", + " 0.5009170770645142,\n", + " -3.2570340633392334,\n", + " -0.4590409994125366,\n", + " -0.782965898513794,\n", + " 0.2103162258863449,\n", + " 0.7612560987472534,\n", + " 1.2766461372375488,\n", + " -2.06323504447937,\n", + " 0.608253538608551,\n", + " 0.25170132517814636,\n", + " -1.6967055797576904,\n", + " -0.045272503048181534,\n", + " 4.324664115905762,\n", + " -1.7692341804504395,\n", + " -2.644824504852295,\n", + " 1.1797205209732056,\n", + " 1.8078806400299072,\n", + " -1.8870664834976196,\n", + " -1.6100736856460571,\n", + " -2.379772901535034,\n", + " -2.7693698406219482,\n", + " -0.21224282681941986,\n", + " -2.425485134124756,\n", + " 0.2079107165336609,\n", + " 8.104188919067383,\n", + " -0.9445183873176575,\n", + " -2.537433385848999,\n", + " -3.6967689990997314,\n", + " -0.8071864247322083,\n", + " -0.18707095086574554,\n", + " -0.44063517451286316,\n", + " 0.9460508823394775,\n", + " -0.6368346214294434,\n", + " 1.637871503829956,\n", + " -2.102997064590454,\n", + " 0.5615842342376709,\n", + " -1.1097103357315063,\n", + " -0.4091738164424896,\n", + " 1.3178879022598267,\n", + " -2.143094778060913,\n", + " -0.1916944682598114,\n", + " -0.5005049109458923,\n", + " 2.743046522140503,\n", + " -0.9219987988471985,\n", + " -4.339287757873535,\n", + " -1.6714619398117065,\n", + " 0.6674743294715881,\n", + " 0.519782304763794,\n", + " -0.4845026433467865,\n", + " 1.3532599210739136,\n", + " -0.8829174041748047,\n", + " 0.484173983335495,\n", + " 2.7435708045959473,\n", + " 0.72844398021698,\n", + " -2.146169424057007,\n", + " 0.8045269250869751,\n", + " 0.5028496980667114,\n", + " -0.8951881527900696,\n", + " 1.06409752368927,\n", + " -3.4454379081726074,\n", + " -2.16044282913208,\n", + " 3.8086798191070557,\n", + " -1.0974539518356323,\n", + " 0.4666401147842407,\n", + " -0.8954592347145081,\n", + " 2.7918334007263184,\n", + " 0.778723955154419,\n", + " -1.9324796199798584,\n", + " -0.18118909001350403,\n", + " 1.000211238861084,\n", + " 3.0955049991607666,\n", + " 2.036156415939331,\n", + " -4.338984489440918,\n", + " -0.3649972379207611,\n", + " 0.7340630888938904,\n", + " 0.8605188727378845,\n", + " 0.39720672369003296,\n", + " 0.6574087738990784,\n", + " 0.8407801389694214,\n", + " 3.4705159664154053,\n", + " 1.1116807460784912,\n", + " 0.34176161885261536,\n", + " 2.0417861938476562,\n", + " 1.6423430442810059,\n", + " 0.6665520071983337,\n", + " -0.992579996585846,\n", + " -2.36446475982666,\n", + " -1.295265555381775,\n", + " 0.6320671439170837,\n", + " 0.03856160119175911,\n", + " -0.5974507927894592,\n", + " 2.8359744548797607,\n", + " 0.31748247146606445,\n", + " -3.1549973487854004,\n", + " 0.8790888786315918,\n", + " -0.9462788701057434,\n", + " 1.7385379076004028,\n", + " 2.3604812622070312,\n", + " 1.144897699356079,\n", + " -5.097238063812256,\n", + " 1.517143726348877,\n", + " 1.5873501300811768,\n", + " -2.1139659881591797,\n", + " -0.37079235911369324,\n", + " 0.5414790511131287,\n", + " -3.8092081546783447,\n", + " 1.3270295858383179,\n", + " 1.9105969667434692,\n", + " 1.4886144399642944,\n", + " 0.3116031587123871,\n", + " 3.9410548210144043,\n", + " 0.1770516037940979,\n", + " -0.27600952982902527,\n", + " -1.8802461624145508,\n", + " -1.2370104789733887,\n", + " 3.26505446434021,\n", + " -0.48703476786613464,\n", + " 1.3420827388763428,\n", + " 2.3240084648132324,\n", + " -1.701611042022705,\n", + " -0.023306578397750854,\n", + " 0.14150844514369965,\n", + " 4.042800426483154,\n", + " 2.465778350830078,\n", + " 1.150189995765686,\n", + " -1.8300646543502808,\n", + " -0.6335951089859009,\n", + " 0.8886809945106506,\n", + " 2.305349111557007,\n", + " -0.19333235919475555,\n", + " 2.5646467208862305,\n", + " -2.0341851711273193,\n", + " 0.9828628301620483,\n", + " 0.07663260400295258,\n", + " -0.27510419487953186,\n", + " -0.7647022008895874,\n", + " -1.5746089220046997,\n", + " -0.3872641324996948,\n", + " 0.9675670266151428,\n", + " 2.4169344902038574,\n", + " -1.4376085996627808,\n", + " 0.05478806421160698,\n", + " -1.2385368347167969,\n", + " -0.736283540725708,\n", + " 2.687896490097046,\n", + " 1.9015583992004395,\n", + " -2.4600675106048584,\n", + " 14.24061393737793,\n", + " 3.268317222595215,\n", + " -0.5889497399330139,\n", + " -1.7897940874099731,\n", + " 0.5092192888259888,\n", + " -0.37065255641937256,\n", + " -2.0178065299987793,\n", + " 2.1634418964385986,\n", + " 1.3275322914123535,\n", + " -0.38493669033050537,\n", + " 1.2281993627548218,\n", + " -2.172119140625,\n", + " 0.5391632914543152,\n", + " 1.4219807386398315,\n", + " 2.5114645957946777,\n", + " 0.3881058692932129,\n", + " 0.674972653388977,\n", + " 2.1711418628692627,\n", + " 1.1366493701934814,\n", + " 1.1679856777191162,\n", + " 1.0501271486282349,\n", + " 1.1892261505126953,\n", + " 1.0744839906692505,\n", + " -0.8069765567779541,\n", + " 2.600438117980957,\n", + " -1.7306872606277466,\n", + " -3.152841567993164,\n", + " 0.20925702154636383,\n", + " -0.9573125839233398,\n", + " 0.3618144989013672,\n", + " -1.9628139734268188,\n", + " 1.782770037651062,\n", + " -0.4886611998081207,\n", + " 1.144348382949829,\n", + " -1.477710485458374,\n", + " 0.42595258355140686,\n", + " 3.5167789459228516,\n", + " 0.02681596390902996,\n", + " 2.1810247898101807,\n", + " -2.312587261199951,\n", + " 4.526058197021484,\n", + " 2.512063980102539,\n", + " -3.188737630844116,\n", + " 1.633571982383728,\n", + " 1.515235424041748,\n", + " -0.11963092535734177,\n", + " 0.7297665476799011,\n", + " -1.9374632835388184,\n", + " 0.7154972553253174,\n", + " 2.1501646041870117,\n", + " -1.0030709505081177,\n", + " -2.9639689922332764,\n", + " 2.222465991973877,\n", + " 0.7344105243682861,\n", + " -0.7484860420227051,\n", + " 1.463850736618042,\n", + " 2.4788801670074463,\n", + " -1.4563840627670288,\n", + " -2.0105385780334473,\n", + " 0.770861804485321,\n", + " -2.5791640281677246,\n", + " -1.7584089040756226,\n", + " -1.0280697345733643,\n", + " -4.545958995819092,\n", + " 0.6905809640884399,\n", + " 2.59002423286438,\n", + " -1.178574800491333,\n", + " 0.3862844705581665,\n", + " 3.0636682510375977,\n", + " -2.763105869293213,\n", + " -0.5455369353294373,\n", + " -1.5181553363800049,\n", + " 0.7556935548782349,\n", + " -2.7470240592956543,\n", + " 2.6362216472625732,\n", + " 1.6483041048049927,\n", + " 1.3280600309371948,\n", + " 0.4630092680454254,\n", + " -0.15466490387916565,\n", + " -0.9717910885810852,\n", + " -0.3978442847728729,\n", + " 2.1155595779418945,\n", + " -2.8930368423461914,\n", + " 0.035269226878881454,\n", + " -1.8880590200424194,\n", + " 2.763767719268799,\n", + " 1.6371660232543945,\n", + " 1.0387924909591675,\n", + " 1.229513168334961,\n", + " 1.5292593240737915,\n", + " 1.415895700454712,\n", + " -2.56246280670166,\n", + " -2.1125943660736084,\n", + " -0.9503294229507446,\n", + " -3.657386541366577,\n", + " 1.9061741828918457,\n", + " -1.1124987602233887,\n", + " -1.1921380758285522,\n", + " -0.45438557863235474,\n", + " -0.7548614144325256,\n", + " -0.6804344058036804,\n", + " 0.34497344493865967,\n", + " -1.7915760278701782,\n", + " 2.0725820064544678,\n", + " 1.3850363492965698,\n", + " 0.09702670574188232,\n", + " -0.11054238677024841,\n", + " 6.202457427978516,\n", + " -1.5213345289230347,\n", + " 2.9122281074523926,\n", + " -0.671360194683075,\n", + " -1.026809811592102,\n", + " -1.4349303245544434,\n", + " -0.17202964425086975,\n", + " -0.5952938199043274,\n", + " 0.5905974507331848,\n", + " -0.7233237028121948,\n", + " 1.0256723165512085,\n", + " -0.5644855499267578,\n", + " -1.8284316062927246,\n", + " -0.1065862700343132,\n", + " 1.059626579284668,\n", + " -0.40559861063957214,\n", + " 0.06844177097082138,\n", + " -1.377408742904663,\n", + " -0.6658124327659607,\n", + " 3.2132840156555176,\n", + " 4.284290313720703,\n", + " 0.38916999101638794,\n", + " -1.048604965209961,\n", + " -0.18579992651939392,\n", + " 0.0991368293762207,\n", + " 1.6914924383163452,\n", + " 3.683741807937622,\n", + " 1.2918672561645508,\n", + " -0.5980482697486877,\n", + " 2.829113245010376,\n", + " -2.829972743988037,\n", + " -0.6595404744148254,\n", + " -0.6697270274162292,\n", + " 0.7314231991767883,\n", + " 15.16686725616455,\n", + " 1.2773864269256592,\n", + " -0.4687189757823944,\n", + " 0.5312354564666748,\n", + " -0.2667217552661896,\n", + " -0.9243032932281494,\n", + " -0.9422645568847656,\n", + " 0.04961542785167694,\n", + " 0.37646111845970154,\n", + " -2.596221685409546,\n", + " 2.7239294052124023,\n", + " -1.080231785774231,\n", + " 1.4714635610580444,\n", + " -0.07025141268968582,\n", + " -1.7993584871292114,\n", + " 1.3575772047042847,\n", + " 4.481748580932617,\n", + " -0.9073246121406555,\n", + " -1.9371683597564697,\n", + " 1.0611876249313354,\n", + " 1.542786717414856,\n", + " 2.424128532409668,\n", + " -1.7128057479858398,\n", + " 2.2499518394470215,\n", + " -0.24361266195774078,\n", + " 0.05417673662304878,\n", + " -0.5013822317123413,\n", + " 1.0689815282821655,\n", + " 0.02156682126224041,\n", + " 1.1983665227890015,\n", + " -0.3331460654735565,\n", + " -2.6417322158813477,\n", + " -0.506986141204834,\n", + " -1.153713345527649,\n", + " -1.1596237421035767,\n", + " 0.712287425994873,\n", + " 0.8147823214530945,\n", + " 1.8822524547576904,\n", + " -2.8474678993225098,\n", + " -0.040338870137929916,\n", + " 1.7062550783157349,\n", + " -2.523608684539795,\n", + " 4.0190019607543945,\n", + " -2.046696662902832,\n", + " -0.5332344174385071,\n", + " 0.46133723855018616,\n", + " 1.547816276550293,\n", + " -2.603698968887329,\n", + " -2.036357879638672,\n", + " 0.794645369052887,\n", + " -0.9367685914039612,\n", + " 0.2125317007303238,\n", + " 0.37586337327957153,\n", + " 2.8974201679229736,\n", + " -2.0632970333099365,\n", + " -1.758088231086731,\n", + " -2.064100980758667,\n", + " 2.0932257175445557,\n", + " 2.811422109603882,\n", + " 1.0836060047149658,\n", + " -0.5917598009109497,\n", + " 1.3121929168701172,\n", + " -1.4244052171707153,\n", + " -0.43519413471221924,\n", + " 2.5276036262512207,\n", + " 0.3998633325099945,\n", + " -2.6107234954833984,\n", + " -0.5880607962608337,\n", + " 0.3022153079509735,\n", + " 0.5112606287002563,\n", + " -0.7791751027107239,\n", + " 1.6701602935791016,\n", + " -1.8032042980194092,\n", + " -3.8151543140411377,\n", + " -0.2984772026538849,\n", + " 2.58489727973938,\n", + " 2.3892900943756104,\n", + " -2.319155216217041,\n", + " 0.6655018329620361,\n", + " -1.3546305894851685,\n", + " -0.23690995573997498,\n", + " 0.4343591034412384,\n", + " -4.77136754989624,\n", + " 1.3126916885375977,\n", + " 0.9698073863983154,\n", + " -0.5062421560287476,\n", + " 0.3419676125049591,\n", + " -2.0727243423461914,\n", + " 3.135908603668213,\n", + " -1.02927565574646,\n", + " -1.5094317197799683,\n", + " 1.7750214338302612,\n", + " 1.205409288406372,\n", + " 0.5660333633422852,\n", + " -0.33989208936691284,\n", + " -0.12868711352348328,\n", + " 2.0807735919952393,\n", + " -0.29705390334129333,\n", + " -0.07748128473758698,\n", + " -0.6942689418792725,\n", + " -1.0866572856903076,\n", + " 1.122031331062317,\n", + " -0.5617876052856445,\n", + " 1.0840904712677002,\n", + " 1.9021860361099243,\n", + " 1.6595134735107422,\n", + " -0.5799726247787476,\n", + " -2.5359926223754883,\n", + " -0.8809743523597717,\n", + " -0.45047926902770996,\n", + " -1.7058762311935425,\n", + " 21.573143005371094,\n", + " -0.5211783051490784,\n", + " -1.4806725978851318,\n", + " -0.6267976760864258,\n", + " 2.639122486114502,\n", + " 0.20821425318717957,\n", + " 0.447999507188797,\n", + " -3.452333450317383,\n", + " -0.8575541377067566,\n", + " -0.684929370880127,\n", + " -1.2338565587997437,\n", + " -2.256376266479492,\n", + " 0.9412142634391785,\n", + " -1.4187431335449219,\n", + " 2.6078779697418213,\n", + " -1.0858112573623657,\n", + " -3.3062405586242676,\n", + " -23.112136840820312,\n", + " -2.320906162261963,\n", + " -1.7153809070587158,\n", + " 2.0616440773010254,\n", + " 0.5635734796524048,\n", + " 0.3261658251285553,\n", + " -2.6611506938934326,\n", + " -1.4870636463165283,\n", + " 1.9610953330993652,\n", + " -2.003458023071289,\n", + " -2.2675042152404785,\n", + " 0.8220226764678955,\n", + " -1.7531087398529053,\n", + " 0.839792788028717,\n", + " -2.586395263671875,\n", + " -1.9877121448516846,\n", + " -2.2157182693481445,\n", + " 1.652684211730957,\n", + " 0.5088396072387695,\n", + " -1.0833625793457031,\n", + " 1.6719884872436523,\n", + " -0.2749879062175751,\n", + " 2.264012336730957,\n", + " 3.1194260120391846,\n", + " -0.43775299191474915,\n", + " -1.4778852462768555,\n", + " -1.2708078622817993,\n", + " 2.158430337905884,\n", + " 3.8900246620178223,\n", + " -0.03763490170240402,\n", + " -6.650566577911377,\n", + " -0.2756822407245636,\n", + " 0.846537172794342,\n", + " -2.8391239643096924,\n", + " 0.976464569568634,\n", + " -2.137193202972412,\n", + " -0.4086329936981201,\n", + " 7.995760440826416,\n", + " 1.806972861289978,\n", + " -0.5274609327316284,\n", + " 0.44659295678138733,\n", + " -1.4418755769729614,\n", + " -1.5329405069351196,\n", + " -1.0242698192596436,\n", + " -0.60414057970047,\n", + " -0.9061265587806702,\n", + " 1.8773664236068726,\n", + " 0.5921235084533691,\n", + " 2.727875232696533,\n", + " -0.02484242618083954,\n", + " -0.9262365698814392,\n", + " 1.8290631771087646,\n", + " 0.5181377530097961,\n", + " -2.0564019680023193,\n", + " 2.2676148414611816,\n", + " 0.4792182743549347,\n", + " -2.297076940536499,\n", + " 0.15173502266407013,\n", + " -0.6994649767875671,\n", + " -0.06450791656970978,\n", + " -3.1257598400115967,\n", + " 1.995498538017273,\n", + " 0.13659416139125824,\n", + " 1.9107611179351807,\n", + " 2.7589988708496094,\n", + " -3.0753071308135986,\n", + " -1.2863909006118774,\n", + " 4.879091262817383,\n", + " 0.28704097867012024,\n", + " 0.13916786015033722,\n", + " -2.504258394241333,\n", + " -2.013745069503784,\n", + " 1.3163681030273438,\n", + " 1.8200992345809937,\n", + " 1.5073593854904175,\n", + " -0.12198928743600845,\n", + " -4.334866046905518,\n", + " -0.4231010377407074,\n", + " 5.175387382507324,\n", + " 2.6860170364379883,\n", + " 1.7732445001602173,\n", + " -4.942932605743408,\n", + " 4.577020645141602,\n", + " 1.6197823286056519,\n", + " 1.0200133323669434,\n", + " 0.04334559664130211,\n", + " -1.9528486728668213,\n", + " 2.483665704727173,\n", + " -1.5390368700027466,\n", + " -1.0416266918182373,\n", + " ...],\n", + " [-3.8816797733306885,\n", + " -1.447176218032837,\n", + " -1.9102357625961304,\n", + " -0.8988841772079468,\n", + " -0.09709599614143372,\n", + " -1.9380629062652588,\n", + " -2.022951364517212,\n", + " 0.7661373019218445,\n", + " 1.8066705465316772,\n", + " 4.437873840332031,\n", + " 2.445958375930786,\n", + " -0.13426220417022705,\n", + " 0.0988345593214035,\n", + " 0.47813716530799866,\n", + " -2.1457550525665283,\n", + " -3.6079492568969727,\n", + " -1.2987637519836426,\n", + " -0.2951391339302063,\n", + " -0.1702861487865448,\n", + " -0.6301457285881042,\n", + " -0.05460710823535919,\n", + " 1.589271903038025,\n", + " -0.3614136874675751,\n", + " 2.613068103790283,\n", + " 0.23085521161556244,\n", + " 1.232046365737915,\n", + " 0.1178579181432724,\n", + " -0.4429476261138916,\n", + " 0.787911057472229,\n", + " -0.021177150309085846,\n", + " -2.968456745147705,\n", + " -0.10679227858781815,\n", + " 3.6390721797943115,\n", + " 4.074835300445557,\n", + " -1.1943150758743286,\n", + " -4.874373912811279,\n", + " -0.251912385225296,\n", + " -0.6252238750457764,\n", + " -0.030459199100732803,\n", + " -0.21246477961540222,\n", + " -1.0228310823440552,\n", + " 0.3375636041164398,\n", + " 3.881335973739624,\n", + " -1.5607224702835083,\n", + " 3.003056287765503,\n", + " -3.1571710109710693,\n", + " -2.9329288005828857,\n", + " -4.2484025955200195,\n", + " 0.5152091383934021,\n", + " 1.5245022773742676,\n", + " -2.506498098373413,\n", + " -3.0109269618988037,\n", + " -4.3324103355407715,\n", + " 3.3239758014678955,\n", + " 1.2333815097808838,\n", + " -1.7500648498535156,\n", + " 1.1499723196029663,\n", + " 0.21140572428703308,\n", + " -2.507949113845825,\n", + " 0.7278156876564026,\n", + " -0.7984867095947266,\n", + " 0.7366600036621094,\n", + " -0.22803130745887756,\n", + " -1.8109548091888428,\n", + " 2.7226104736328125,\n", + " -2.9260077476501465,\n", + " -2.872901201248169,\n", + " -2.737553358078003,\n", + " -1.4742523431777954,\n", + " -0.5145723223686218,\n", + " 2.849119186401367,\n", + " -0.7900468707084656,\n", + " 2.0334372520446777,\n", + " 1.4459054470062256,\n", + " -1.9013005495071411,\n", + " 1.1252529621124268,\n", + " 1.7437458038330078,\n", + " -1.8205087184906006,\n", + " -2.2317752838134766,\n", + " 1.075022578239441,\n", + " -4.232845306396484,\n", + " 1.0894452333450317,\n", + " -3.8484997749328613,\n", + " 4.266648769378662,\n", + " -4.31502628326416,\n", + " 0.440782368183136,\n", + " 1.0563533306121826,\n", + " -0.6203970909118652,\n", + " -0.39848795533180237,\n", + " 0.32591697573661804,\n", + " 1.001083254814148,\n", + " -2.347222089767456,\n", + " -0.19946283102035522,\n", + " 3.4642820358276367,\n", + " 1.5340077877044678,\n", + " -0.5120069980621338,\n", + " -2.024677276611328,\n", + " 0.7290834188461304,\n", + " -0.2104824185371399,\n", + " -4.0774245262146,\n", + " -2.1286139488220215,\n", + " -2.8324594497680664,\n", + " -1.8085262775421143,\n", + " -0.7486924529075623,\n", + " -3.1006975173950195,\n", + " 0.36876797676086426,\n", + " 1.774880051612854,\n", + " 1.3104523420333862,\n", + " -1.6482869386672974,\n", + " 2.887101173400879,\n", + " 0.5781636238098145,\n", + " 0.33517804741859436,\n", + " -2.7057409286499023,\n", + " -1.4250922203063965,\n", + " 0.4694637954235077,\n", + " 2.678828477859497,\n", + " 3.088592290878296,\n", + " 2.87996506690979,\n", + " -0.5735533833503723,\n", + " 1.902958631515503,\n", + " -0.2636910378932953,\n", + " -1.9614709615707397,\n", + " -0.4674627184867859,\n", + " 0.8687885403633118,\n", + " 0.4725387394428253,\n", + " -2.135042905807495,\n", + " 2.205646514892578,\n", + " -1.016764760017395,\n", + " -7.640507698059082,\n", + " -0.12831588089466095,\n", + " 2.9137701988220215,\n", + " 0.8019832968711853,\n", + " -0.22126926481723785,\n", + " 8.93970775604248,\n", + " -0.7345666289329529,\n", + " 3.629134178161621,\n", + " -0.6376039385795593,\n", + " 0.9024605751037598,\n", + " 0.4314664900302887,\n", + " 0.35859155654907227,\n", + " 2.7955992221832275,\n", + " 3.4752228260040283,\n", + " -5.034854888916016,\n", + " -1.1288392543792725,\n", + " -0.10112037509679794,\n", + " -1.5500589609146118,\n", + " -0.6251096129417419,\n", + " -1.4889836311340332,\n", + " 0.6721649765968323,\n", + " 2.2565975189208984,\n", + " 2.2474193572998047,\n", + " 1.092359185218811,\n", + " 0.3021765947341919,\n", + " -0.41914480924606323,\n", + " -2.1840245723724365,\n", + " -0.4879227876663208,\n", + " 1.7223384380340576,\n", + " 0.6767154335975647,\n", + " -0.3680137097835541,\n", + " 0.7096230983734131,\n", + " -0.9239556789398193,\n", + " 3.646073341369629,\n", + " 2.1176252365112305,\n", + " -3.7912166118621826,\n", + " -1.8807270526885986,\n", + " 0.9111031293869019,\n", + " -0.7411085367202759,\n", + " -1.2743639945983887,\n", + " -1.5719870328903198,\n", + " 1.441236972808838,\n", + " -0.7341034412384033,\n", + " 2.8222832679748535,\n", + " 0.6202909350395203,\n", + " -1.4037672281265259,\n", + " 2.0017576217651367,\n", + " 1.069449782371521,\n", + " 0.3349338173866272,\n", + " -1.8266205787658691,\n", + " 2.587061882019043,\n", + " 0.8151261210441589,\n", + " 0.3578042984008789,\n", + " 0.010996738448739052,\n", + " 2.5780091285705566,\n", + " 1.433400273323059,\n", + " 10.436251640319824,\n", + " -0.21294045448303223,\n", + " -1.662264347076416,\n", + " -1.7538344860076904,\n", + " 1.1532472372055054,\n", + " 0.5691545605659485,\n", + " 1.416627049446106,\n", + " -1.8548182249069214,\n", + " -1.894418716430664,\n", + " 1.5214126110076904,\n", + " -1.1449618339538574,\n", + " 1.8780837059020996,\n", + " -3.098949432373047,\n", + " -1.1753703355789185,\n", + " -2.442674160003662,\n", + " 2.660795211791992,\n", + " -1.8535804748535156,\n", + " 2.8515806198120117,\n", + " -1.4816968441009521,\n", + " -3.445911169052124,\n", + " 0.8264482617378235,\n", + " -1.6242533922195435,\n", + " -1.9312942028045654,\n", + " -1.1970953941345215,\n", + " 0.6263165473937988,\n", + " -0.12555089592933655,\n", + " 0.25199657678604126,\n", + " -1.0001208782196045,\n", + " 3.2424206733703613,\n", + " -1.3730639219284058,\n", + " 2.6455540657043457,\n", + " 1.9954884052276611,\n", + " 3.488955020904541,\n", + " -1.3941504955291748,\n", + " -2.4651336669921875,\n", + " -0.14270156621932983,\n", + " 2.0889387130737305,\n", + " 2.3129360675811768,\n", + " 0.03292836621403694,\n", + " -2.477942705154419,\n", + " 4.310580730438232,\n", + " 3.1661057472229004,\n", + " 0.6012360453605652,\n", + " 3.061018943786621,\n", + " -0.47689276933670044,\n", + " 0.5982692837715149,\n", + " 0.8192957043647766,\n", + " 1.864122986793518,\n", + " 4.297408580780029,\n", + " 2.3404524326324463,\n", + " -0.7469441890716553,\n", + " -0.6871550679206848,\n", + " -0.804821252822876,\n", + " 1.8948009014129639,\n", + " 1.3318531513214111,\n", + " -0.43510493636131287,\n", + " -1.3492395877838135,\n", + " 2.018049478530884,\n", + " -0.8666848540306091,\n", + " 0.3885653614997864,\n", + " 1.0478256940841675,\n", + " 3.2340545654296875,\n", + " -2.273437738418579,\n", + " -4.190129280090332,\n", + " 0.6492358446121216,\n", + " 0.6681175827980042,\n", + " -2.5977025032043457,\n", + " -2.452658176422119,\n", + " 1.633664608001709,\n", + " -3.1147055625915527,\n", + " 1.8476824760437012,\n", + " 2.4756627082824707,\n", + " 0.1524430811405182,\n", + " -0.9955349564552307,\n", + " -0.785118579864502,\n", + " 0.09535930305719376,\n", + " -1.8279333114624023,\n", + " -1.3857954740524292,\n", + " -2.075129270553589,\n", + " -1.9075851440429688,\n", + " 0.26677578687667847,\n", + " -3.4947454929351807,\n", + " 0.9620150327682495,\n", + " -4.577984809875488,\n", + " -2.4944114685058594,\n", + " -2.549290180206299,\n", + " -0.7315886616706848,\n", + " -2.8721423149108887,\n", + " -4.115537643432617,\n", + " 0.868995726108551,\n", + " -1.6530613899230957,\n", + " -1.2541897296905518,\n", + " 1.102706789970398,\n", + " -5.952432155609131,\n", + " -2.1025965213775635,\n", + " -0.6458753347396851,\n", + " 0.7745829224586487,\n", + " -3.5125911235809326,\n", + " 0.11359093338251114,\n", + " -0.24972708523273468,\n", + " 2.257991075515747,\n", + " -0.24376241862773895,\n", + " 1.5403962135314941,\n", + " -3.7926855087280273,\n", + " 1.917070984840393,\n", + " -9.26376724243164,\n", + " -5.482766628265381,\n", + " 0.7928407192230225,\n", + " 7.906066417694092,\n", + " 2.0906975269317627,\n", + " -3.8339345455169678,\n", + " 0.03092207945883274,\n", + " -2.9991321563720703,\n", + " 2.4202489852905273,\n", + " 5.947826385498047,\n", + " 4.185272216796875,\n", + " -0.10200139135122299,\n", + " 4.688581466674805,\n", + " 0.8249329924583435,\n", + " -2.5633041858673096,\n", + " -1.46888267993927,\n", + " 0.9956538677215576,\n", + " 2.413656234741211,\n", + " -3.6799185276031494,\n", + " 2.5906431674957275,\n", + " 2.1038763523101807,\n", + " -0.8835083246231079,\n", + " -1.8384885787963867,\n", + " -0.6787655353546143,\n", + " -0.6429534554481506,\n", + " 0.1507904827594757,\n", + " -0.012526275590062141,\n", + " 0.35030966997146606,\n", + " 2.6888797283172607,\n", + " -2.814384937286377,\n", + " -1.428504467010498,\n", + " -7.312694549560547,\n", + " 0.14763425290584564,\n", + " 2.7720351219177246,\n", + " 5.421904563903809,\n", + " 0.9799038767814636,\n", + " -1.9051073789596558,\n", + " -0.7308603525161743,\n", + " 1.9272819757461548,\n", + " -2.5293312072753906,\n", + " 0.26691529154777527,\n", + " -0.15687108039855957,\n", + " -1.708122968673706,\n", + " -1.1936396360397339,\n", + " 0.060814257711172104,\n", + " -0.6689651608467102,\n", + " -1.140608549118042,\n", + " -2.36881947517395,\n", + " -1.4012644290924072,\n", + " -0.20334547758102417,\n", + " 0.5981454253196716,\n", + " -3.215273380279541,\n", + " 1.5469393730163574,\n", + " 0.13370372354984283,\n", + " 0.4592379033565521,\n", + " 1.7046856880187988,\n", + " -4.921545505523682,\n", + " -0.431110680103302,\n", + " -2.014374256134033,\n", + " 1.09357488155365,\n", + " 5.574455261230469,\n", + " 1.273197054862976,\n", + " -2.7891879081726074,\n", + " 0.26504406332969666,\n", + " -2.3403985500335693,\n", + " -2.9432637691497803,\n", + " -1.6242749691009521,\n", + " -0.9695174098014832,\n", + " 1.6617469787597656,\n", + " -2.1990268230438232,\n", + " 2.135615348815918,\n", + " 2.3875882625579834,\n", + " 2.622556447982788,\n", + " -2.2946348190307617,\n", + " -2.990304946899414,\n", + " -1.6225816011428833,\n", + " -2.0447590351104736,\n", + " -2.5879158973693848,\n", + " 1.5159296989440918,\n", + " -1.6617423295974731,\n", + " 1.3700659275054932,\n", + " -2.5438032150268555,\n", + " 2.2506723403930664,\n", + " 1.9274924993515015,\n", + " -3.1044161319732666,\n", + " 0.5216255784034729,\n", + " -0.19187408685684204,\n", + " -1.866398572921753,\n", + " 1.0274090766906738,\n", + " -0.10953636467456818,\n", + " 2.473564863204956,\n", + " -2.0253689289093018,\n", + " -0.3667924404144287,\n", + " -3.0461626052856445,\n", + " 3.986839771270752,\n", + " 2.043687343597412,\n", + " -1.8955844640731812,\n", + " 0.6737838983535767,\n", + " -0.31056538224220276,\n", + " 0.23865938186645508,\n", + " 5.528167724609375,\n", + " -3.2416698932647705,\n", + " 4.295351505279541,\n", + " 0.15166401863098145,\n", + " 1.2277815341949463,\n", + " 0.28395751118659973,\n", + " 3.30012583732605,\n", + " -0.9456813335418701,\n", + " -2.629518508911133,\n", + " -3.6751317977905273,\n", + " 2.3286044597625732,\n", + " -0.33106470108032227,\n", + " -3.043043613433838,\n", + " 0.3938867747783661,\n", + " 4.194258213043213,\n", + " 0.792519748210907,\n", + " 0.4785829484462738,\n", + " 2.5523619651794434,\n", + " 0.7499622702598572,\n", + " -1.3125587701797485,\n", + " -4.914602756500244,\n", + " -0.6112402081489563,\n", + " 0.310628205537796,\n", + " 0.426767498254776,\n", + " 0.5314018130302429,\n", + " -2.545466661453247,\n", + " 2.1799395084381104,\n", + " -2.123727560043335,\n", + " 0.2009015530347824,\n", + " -1.6098428964614868,\n", + " 2.300116539001465,\n", + " 1.5784406661987305,\n", + " 0.1429145485162735,\n", + " 2.8834128379821777,\n", + " 4.030981540679932,\n", + " -1.9334334135055542,\n", + " -0.7291154265403748,\n", + " -0.24457567930221558,\n", + " -0.3202131390571594,\n", + " 0.22356203198432922,\n", + " -0.17479224503040314,\n", + " 0.9218044877052307,\n", + " 2.18530535697937,\n", + " 3.9705352783203125,\n", + " 0.5044087171554565,\n", + " 1.735719919204712,\n", + " -1.3751099109649658,\n", + " 2.479010581970215,\n", + " -2.566220760345459,\n", + " 1.3614745140075684,\n", + " -0.0033637566957622766,\n", + " 4.0970635414123535,\n", + " 0.9395595192909241,\n", + " -2.382606029510498,\n", + " 2.2945656776428223,\n", + " -0.7869022488594055,\n", + " -2.5368964672088623,\n", + " -3.7103068828582764,\n", + " -0.5028799176216125,\n", + " -2.3123891353607178,\n", + " -1.6076501607894897,\n", + " -0.9586088061332703,\n", + " -4.142017841339111,\n", + " 1.0469846725463867,\n", + " 0.42526867985725403,\n", + " 0.9800991415977478,\n", + " -0.8325374722480774,\n", + " -0.16207939386367798,\n", + " -1.5968691110610962,\n", + " 10.778789520263672,\n", + " 0.5351438522338867,\n", + " 0.7857174873352051,\n", + " 2.314697504043579,\n", + " 0.8842220902442932,\n", + " -3.0593113899230957,\n", + " -1.910050868988037,\n", + " -1.4804836511611938,\n", + " 1.8713462352752686,\n", + " -0.0025129972491413355,\n", + " -0.678056538105011,\n", + " -0.42586129903793335,\n", + " 1.9681624174118042,\n", + " -1.8661227226257324,\n", + " -2.4191718101501465,\n", + " 1.9751805067062378,\n", + " -1.5538579225540161,\n", + " 0.15747469663619995,\n", + " -2.552933931350708,\n", + " 1.9819620847702026,\n", + " 0.29047656059265137,\n", + " -2.604759931564331,\n", + " -3.726311445236206,\n", + " 2.111194610595703,\n", + " 1.7966347932815552,\n", + " 0.5284622311592102,\n", + " 3.356606960296631,\n", + " 0.24157491326332092,\n", + " -0.058753468096256256,\n", + " 1.4317262172698975,\n", + " -0.4679686427116394,\n", + " -5.2194366455078125,\n", + " -1.9108306169509888,\n", + " 1.2149436473846436,\n", + " 0.24689604341983795,\n", + " 0.7739450931549072,\n", + " -1.4911245107650757,\n", + " -2.1845808029174805,\n", + " -1.6522196531295776,\n", + " -1.8682409524917603,\n", + " 1.785595417022705,\n", + " 0.6828886866569519,\n", + " -0.6421892642974854,\n", + " -3.1234121322631836,\n", + " 3.2046895027160645,\n", + " -0.6937681436538696,\n", + " -3.890895366668701,\n", + " -1.3175357580184937,\n", + " 3.340691566467285,\n", + " 0.9861456751823425,\n", + " -2.4512672424316406,\n", + " 1.929763674736023,\n", + " 1.4535064697265625,\n", + " 0.7870248556137085,\n", + " -0.4018072187900543,\n", + " -4.618013381958008,\n", + " -0.6317737698554993,\n", + " 2.6401238441467285,\n", + " 0.7678934931755066,\n", + " 1.742942452430725,\n", + " 11.424970626831055,\n", + " -3.845896005630493,\n", + " -3.2668967247009277,\n", + " -1.3397881984710693,\n", + " -0.7081610560417175,\n", + " -0.12017089873552322,\n", + " -1.3421963453292847,\n", + " 0.7197027802467346,\n", + " -0.706287145614624,\n", + " 3.008577346801758,\n", + " 2.142421245574951,\n", + " -1.7568621635437012,\n", + " -1.3834558725357056,\n", + " 1.8775113821029663,\n", + " -0.06831107288599014,\n", + " -3.9091107845306396,\n", + " -3.0237913131713867,\n", + " -0.08975642174482346,\n", + " 0.5605543851852417,\n", + " 3.1716415882110596,\n", + " 2.0892131328582764,\n", + " 0.3382408022880554,\n", + " 2.4478442668914795,\n", + " 1.9368280172348022,\n", + " -3.5305404663085938,\n", + " 3.8562276363372803,\n", + " -2.22890305519104,\n", + " -0.6399180293083191,\n", + " 3.297292709350586,\n", + " 0.9037948250770569,\n", + " -1.8101223707199097,\n", + " 0.8045119047164917,\n", + " -0.5296229124069214,\n", + " -1.3250744342803955,\n", + " 0.1983412504196167,\n", + " -3.676255464553833,\n", + " 0.31949716806411743,\n", + " 4.211909770965576,\n", + " 2.4153671264648438,\n", + " 0.40959614515304565,\n", + " -0.42917564511299133,\n", + " 4.746598243713379,\n", + " 0.9752652645111084,\n", + " -0.6237136125564575,\n", + " -1.7860472202301025,\n", + " -0.21701925992965698,\n", + " -1.2336204051971436,\n", + " 1.9731824398040771,\n", + " -3.568244457244873,\n", + " 1.118125557899475,\n", + " 0.9097978472709656,\n", + " 2.5092673301696777,\n", + " -1.565161108970642,\n", + " -0.920995831489563,\n", + " -1.0606961250305176,\n", + " -2.137868881225586,\n", + " 1.9401278495788574,\n", + " 3.669708013534546,\n", + " 2.3399949073791504,\n", + " 0.13820895552635193,\n", + " -2.07993483543396,\n", + " -1.5678884983062744,\n", + " 1.2031221389770508,\n", + " -3.2159314155578613,\n", + " 2.6128528118133545,\n", + " 1.4618548154830933,\n", + " -1.2560421228408813,\n", + " 4.867201805114746,\n", + " -0.2731351852416992,\n", + " -0.8537291288375854,\n", + " -0.3982611894607544,\n", + " -2.433908224105835,\n", + " -0.3688610792160034,\n", + " 1.7981752157211304,\n", + " 2.5015439987182617,\n", + " -17.172409057617188,\n", + " 2.9532229900360107,\n", + " -2.244809627532959,\n", + " -0.8366732597351074,\n", + " 0.8506537079811096,\n", + " 1.7279510498046875,\n", + " -4.427548885345459,\n", + " 0.6317188143730164,\n", + " 1.7454392910003662,\n", + " 0.18244779109954834,\n", + " -0.8424748182296753,\n", + " 2.0541210174560547,\n", + " 2.2222931385040283,\n", + " -0.8150769472122192,\n", + " -4.396881103515625,\n", + " 0.6054971218109131,\n", + " 2.0359959602355957,\n", + " 2.376392364501953,\n", + " 0.41949430108070374,\n", + " 3.9469404220581055,\n", + " 0.6174566149711609,\n", + " 0.05115560069680214,\n", + " -2.051602602005005,\n", + " 7.870035648345947,\n", + " 0.9198711514472961,\n", + " -0.5555006265640259,\n", + " 0.8737522959709167,\n", + " -2.2257819175720215,\n", + " -1.1962131261825562,\n", + " 0.5985279083251953,\n", + " 1.321067452430725,\n", + " 6.056581974029541,\n", + " -0.28270605206489563,\n", + " 1.7308640480041504,\n", + " 3.122567892074585,\n", + " -1.679848074913025,\n", + " 1.2718193531036377,\n", + " 0.17060716450214386,\n", + " 1.269361972808838,\n", + " 2.5335516929626465,\n", + " 2.6741082668304443,\n", + " -1.62208092212677,\n", + " -2.9962751865386963,\n", + " -1.1706316471099854,\n", + " 1.1096113920211792,\n", + " 2.7003817558288574,\n", + " 1.5158874988555908,\n", + " -1.05333411693573,\n", + " 13.709431648254395,\n", + " 0.753689169883728,\n", + " -1.2147440910339355,\n", + " -1.0730971097946167,\n", + " 2.1503965854644775,\n", + " -1.3923307657241821,\n", + " -0.7943398952484131,\n", + " 1.5712182521820068,\n", + " -0.844743013381958,\n", + " -0.6349348425865173,\n", + " -1.4941654205322266,\n", + " -2.2284975051879883,\n", + " 0.343301922082901,\n", + " -1.2071216106414795,\n", + " 2.1885015964508057,\n", + " 1.302516222000122,\n", + " 1.0702766180038452,\n", + " -0.5276296138763428,\n", + " 1.5254217386245728,\n", + " 2.0156924724578857,\n", + " -2.069061517715454,\n", + " 0.663082480430603,\n", + " 4.371224880218506,\n", + " 1.4976167678833008,\n", + " 0.34234100580215454,\n", + " -0.4704199433326721,\n", + " -2.4234867095947266,\n", + " 0.31516528129577637,\n", + " -1.3777424097061157,\n", + " -1.0750154256820679,\n", + " -3.581940174102783,\n", + " -2.3514411449432373,\n", + " 0.4236695170402527,\n", + " -1.6118556261062622,\n", + " -1.6452305316925049,\n", + " 2.1222918033599854,\n", + " 2.4127817153930664,\n", + " 0.3439115583896637,\n", + " -1.440924882888794,\n", + " -1.5620825290679932,\n", + " 1.3253965377807617,\n", + " 2.693525552749634,\n", + " -0.4951741099357605,\n", + " -8.125655174255371,\n", + " 0.4264536201953888,\n", + " -3.289186954498291,\n", + " 0.011011071503162384,\n", + " 0.7512866854667664,\n", + " 0.7880078554153442,\n", + " -0.8080321550369263,\n", + " 1.7000516653060913,\n", + " -1.779439091682434,\n", + " 0.4583180844783783,\n", + " 3.048825979232788,\n", + " 3.3860838413238525,\n", + " 2.2389116287231445,\n", + " 2.8537440299987793,\n", + " 1.459533452987671,\n", + " 0.15542131662368774,\n", + " 1.800506353378296,\n", + " -3.289271593093872,\n", + " 1.0154770612716675,\n", + " -2.1671528816223145,\n", + " -5.452414512634277,\n", + " 1.3169593811035156,\n", + " 3.522233724594116,\n", + " -1.3844144344329834,\n", + " -2.816166400909424,\n", + " 0.5287947058677673,\n", + " -0.4341337978839874,\n", + " -0.7044467329978943,\n", + " -0.6589184403419495,\n", + " 0.6472010612487793,\n", + " 0.567675769329071,\n", + " 3.6363844871520996,\n", + " 3.605060338973999,\n", + " 1.521091103553772,\n", + " 1.6354999542236328,\n", + " -1.5642375946044922,\n", + " -2.559781312942505,\n", + " 0.02004855126142502,\n", + " 2.9901411533355713,\n", + " -0.542164146900177,\n", + " 0.2802582085132599,\n", + " -4.246005058288574,\n", + " 0.2605953514575958,\n", + " -2.6922993659973145,\n", + " 1.6629635095596313,\n", + " 2.088543653488159,\n", + " 0.4196684658527374,\n", + " -0.695177435874939,\n", + " -2.0204944610595703,\n", + " -3.093552350997925,\n", + " -3.6224629878997803,\n", + " -1.2724854946136475,\n", + " -0.3221820294857025,\n", + " 2.5930678844451904,\n", + " 0.4549116790294647,\n", + " 0.37298354506492615,\n", + " -0.5239182114601135,\n", + " 2.7268495559692383,\n", + " 0.08675707876682281,\n", + " -0.6603065729141235,\n", + " 1.8180832862854004,\n", + " 2.705871105194092,\n", + " 2.9835684299468994,\n", + " 0.847063422203064,\n", + " 4.269921779632568,\n", + " -0.7382970452308655,\n", + " 4.143216609954834,\n", + " -3.4339449405670166,\n", + " -0.23857153952121735,\n", + " -1.357593297958374,\n", + " 1.889617919921875,\n", + " -0.6655383110046387,\n", + " -0.28966355323791504,\n", + " 0.8688241839408875,\n", + " 1.9595723152160645,\n", + " -2.0157418251037598,\n", + " 1.3808566331863403,\n", + " -0.5582972168922424,\n", + " 2.95975661277771,\n", + " 0.010108568705618382,\n", + " 0.4278804063796997,\n", + " -0.13725998997688293,\n", + " 0.6479336619377136,\n", + " -0.10564786195755005,\n", + " 2.9164791107177734,\n", + " 0.27981382608413696,\n", + " -3.434560775756836,\n", + " -1.2718145847320557,\n", + " -0.27389955520629883,\n", + " 2.2078545093536377,\n", + " 2.2862606048583984,\n", + " -0.8161864280700684,\n", + " -1.167996883392334,\n", + " 4.050617218017578,\n", + " -0.16730143129825592,\n", + " 1.7290441989898682,\n", + " 0.8043820858001709,\n", + " 3.811464548110962,\n", + " -5.546247482299805,\n", + " 2.561819553375244,\n", + " -1.0095903873443604,\n", + " 0.540019690990448,\n", + " -0.5900160074234009,\n", + " -0.37200069427490234,\n", + " -1.0705102682113647,\n", + " 0.7527463436126709,\n", + " -1.0367463827133179,\n", + " -2.9444351196289062,\n", + " 2.013843536376953,\n", + " 0.4592212736606598,\n", + " -3.555436849594116,\n", + " -2.9486937522888184,\n", + " -0.46775537729263306,\n", + " 1.109654188156128,\n", + " 3.4264543056488037,\n", + " -0.6727878451347351,\n", + " -0.9122493267059326,\n", + " -0.5320616960525513,\n", + " 1.898447871208191,\n", + " -0.43063634634017944,\n", + " -2.5253212451934814,\n", + " 2.0057106018066406,\n", + " 1.5170979499816895,\n", + " -1.612911581993103,\n", + " 0.2634989321231842,\n", + " 0.45518726110458374,\n", + " -0.49200910329818726,\n", + " -2.713655710220337,\n", + " 0.9716266393661499,\n", + " 0.33054935932159424,\n", + " -0.3342835009098053,\n", + " -0.6386486291885376,\n", + " 1.8689916133880615,\n", + " 1.3185193538665771,\n", + " -0.7859625220298767,\n", + " -0.685684084892273,\n", + " -4.519786357879639,\n", + " 3.2605013847351074,\n", + " -0.9050686359405518,\n", + " -2.1221654415130615,\n", + " 3.1782584190368652,\n", + " -0.7860816121101379,\n", + " -2.1633098125457764,\n", + " -1.2788394689559937,\n", + " 1.8520097732543945,\n", + " 1.1278436183929443,\n", + " 0.63631671667099,\n", + " 2.4696147441864014,\n", + " 0.7206150889396667,\n", + " 3.1719532012939453,\n", + " 0.8070290088653564,\n", + " 0.9802379608154297,\n", + " -0.7980870604515076,\n", + " -1.1095521450042725,\n", + " -0.032403625547885895,\n", + " 0.2603766918182373,\n", + " 5.1491546630859375,\n", + " -0.05290107801556587,\n", + " 1.111739158630371,\n", + " 1.1674721240997314,\n", + " -2.5872855186462402,\n", + " -0.1287286877632141,\n", + " 0.9960156083106995,\n", + " -0.9919991493225098,\n", + " -5.302570819854736,\n", + " -1.5821691751480103,\n", + " -0.9387773275375366,\n", + " 0.4740335941314697,\n", + " 1.5573517084121704,\n", + " -0.13127921521663666,\n", + " 0.6574786305427551,\n", + " -3.2385902404785156,\n", + " -0.6724160313606262,\n", + " 2.541769504547119,\n", + " -2.046502113342285,\n", + " -0.43637022376060486,\n", + " -0.35392946004867554,\n", + " 1.3203871250152588,\n", + " 4.351476669311523,\n", + " -1.1860628128051758,\n", + " -4.32291841506958,\n", + " 1.706323504447937,\n", + " 1.1185646057128906,\n", + " -2.301795482635498,\n", + " -1.1211491823196411,\n", + " -2.458738088607788,\n", + " 2.090550184249878,\n", + " 0.3335612118244171,\n", + " -2.293703079223633,\n", + " 3.03767466545105,\n", + " 2.775224447250366,\n", + " -0.3276342749595642,\n", + " -1.7362749576568604,\n", + " -0.651249349117279,\n", + " 0.26522523164749146,\n", + " -1.9206342697143555,\n", + " -1.0287178754806519,\n", + " -3.431009531021118,\n", + " -0.7926996946334839,\n", + " 3.4176559448242188,\n", + " 1.9183744192123413,\n", + " 1.9320831298828125,\n", + " -0.6303430199623108,\n", + " 1.4581233263015747,\n", + " -0.6945940852165222,\n", + " -3.9149084091186523,\n", + " -0.1439647078514099,\n", + " 1.9966615438461304,\n", + " 1.0089069604873657,\n", + " 1.604979157447815,\n", + " -0.06675189733505249,\n", + " -0.7863495349884033,\n", + " 0.517461359500885,\n", + " 0.3963678479194641,\n", + " -0.029786787927150726,\n", + " -0.4660739600658417,\n", + " -2.200404405593872,\n", + " 0.05245295912027359,\n", + " 1.4053086042404175,\n", + " 2.745178699493408,\n", + " -1.7572541236877441,\n", + " -0.9642260074615479,\n", + " -2.556072950363159,\n", + " 0.11483374238014221,\n", + " -1.3819165229797363,\n", + " -4.124022960662842,\n", + " -8.875129699707031,\n", + " -0.887072741985321,\n", + " -2.702098846435547,\n", + " 1.2441999912261963,\n", + " -0.060320161283016205,\n", + " 3.2127902507781982,\n", + " -4.787941932678223,\n", + " -1.7735847234725952,\n", + " 2.3401880264282227,\n", + " 0.5994641780853271,\n", + " -3.2655715942382812,\n", + " 0.7493075728416443,\n", + " 0.20031413435935974,\n", + " 0.269188791513443,\n", + " -0.6489375233650208,\n", + " -1.1827962398529053,\n", + " 0.6488084197044373,\n", + " 3.799541473388672,\n", + " 0.08789312839508057,\n", + " 0.4126721918582916,\n", + " 2.273970365524292,\n", + " -1.4167795181274414,\n", + " 3.361281156539917,\n", + " 5.478500843048096,\n", + " 1.255025029182434,\n", + " 0.6729123592376709,\n", + " -2.490095615386963,\n", + " 0.7573592066764832,\n", + " 1.5050171613693237,\n", + " 1.3889999389648438,\n", + " 6.226860046386719,\n", + " 2.4419143199920654,\n", + " 1.325605869293213,\n", + " -2.8164639472961426,\n", + " 0.0338548943400383,\n", + " -1.7200915813446045,\n", + " 0.08039979636669159,\n", + " 4.257935047149658,\n", + " 0.769836962223053,\n", + " -0.56553715467453,\n", + " 0.8128640055656433,\n", + " 0.5728873014450073,\n", + " 3.774625301361084,\n", + " -0.36815983057022095,\n", + " 0.5384926199913025,\n", + " -1.7822424173355103,\n", + " 2.6060216426849365,\n", + " 4.28328275680542,\n", + " 0.27838122844696045,\n", + " 0.5124579668045044,\n", + " -3.385490894317627,\n", + " 2.756040334701538,\n", + " 0.21497005224227905,\n", + " -1.1206204891204834,\n", + " -0.687329113483429,\n", + " 0.37097248435020447,\n", + " 1.7511025667190552,\n", + " -3.067614793777466,\n", + " -0.7502833008766174,\n", + " -0.30752646923065186,\n", + " 0.6274518370628357,\n", + " -1.3394132852554321,\n", + " 0.38683128356933594,\n", + " 2.7706401348114014,\n", + " 2.2502565383911133,\n", + " -2.318115711212158,\n", + " -0.014325552619993687,\n", + " -2.630859136581421,\n", + " 1.4868338108062744,\n", + " 2.3034861087799072,\n", + " -1.639756202697754,\n", + " 0.5782852172851562,\n", + " 1.0485166311264038,\n", + " 0.23609744012355804,\n", + " -0.7751088738441467,\n", + " 1.0902869701385498,\n", + " -4.068610191345215,\n", + " -0.9249467849731445,\n", + " 1.5832273960113525,\n", + " 1.1743921041488647,\n", + " -0.2737315595149994,\n", + " -5.202696323394775,\n", + " 2.8652448654174805,\n", + " 0.3447275161743164,\n", + " 3.166260004043579,\n", + " 1.63128662109375,\n", + " -2.5201687812805176,\n", + " 0.5847077965736389,\n", + " -1.5145337581634521,\n", + " -0.3376529812812805,\n", + " ...]]" ] }, - "execution_count": 19, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "doc_result[0][:5]" + "# async embed documents\n", + "await embeddings.aembed_documents(\n", + " [\"This is a content of the document\", \"This is another document\"]\n", + ")" ] } ], @@ -209,12 +6186,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.12" - }, - "vscode": { - "interpreter": { - "hash": "e971737741ff4ec9aff7dc6155a1060a59a8a6d52c757dbbe66bf8ee389494b1" - } + "version": "3.12.3" } }, "nbformat": 4, diff --git a/libs/partners/ollama/.gitignore b/libs/partners/ollama/.gitignore new file mode 100644 index 00000000000..bee8a64b79a --- /dev/null +++ b/libs/partners/ollama/.gitignore @@ -0,0 +1 @@ +__pycache__ diff --git a/libs/partners/ollama/LICENSE b/libs/partners/ollama/LICENSE new file mode 100644 index 00000000000..fc0602feecd --- /dev/null +++ b/libs/partners/ollama/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 LangChain, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/libs/partners/ollama/Makefile b/libs/partners/ollama/Makefile new file mode 100644 index 00000000000..85e987175c5 --- /dev/null +++ b/libs/partners/ollama/Makefile @@ -0,0 +1,64 @@ +.PHONY: all format lint test tests integration_tests docker_tests help extended_tests + +# Default target executed when no arguments are given to make. +all: help + +# Define a variable for the test file path. +TEST_FILE ?= tests/unit_tests/ +integration_test: TEST_FILE = tests/integration_tests/ +# note: leaving out integration_tests (with s) command to skip release testing for now +# TODO(erick) configure ollama server to run in CI, in separate repo + + +# unit tests are run with the --disable-socket flag to prevent network calls +test tests: + poetry run pytest --disable-socket --allow-unix-socket $(TEST_FILE) + +# integration tests are run without the --disable-socket flag to allow network calls +integration_test integration_tests: + poetry run pytest $(TEST_FILE) + +###################### +# LINTING AND FORMATTING +###################### + +# Define a variable for Python and notebook files. +PYTHON_FILES=. +MYPY_CACHE=.mypy_cache +lint format: PYTHON_FILES=. +lint_diff format_diff: PYTHON_FILES=$(shell git diff --relative=libs/partners/ollama --name-only --diff-filter=d master | grep -E '\.py$$|\.ipynb$$') +lint_package: PYTHON_FILES=langchain_ollama +lint_tests: PYTHON_FILES=tests +lint_tests: MYPY_CACHE=.mypy_cache_test + +lint lint_diff lint_package lint_tests: + poetry run ruff . + poetry run ruff format $(PYTHON_FILES) --diff + poetry run ruff --select I $(PYTHON_FILES) + mkdir -p $(MYPY_CACHE); poetry run mypy $(PYTHON_FILES) --cache-dir $(MYPY_CACHE) + +format format_diff: + poetry run ruff format $(PYTHON_FILES) + poetry run ruff --select I --fix $(PYTHON_FILES) + +spell_check: + poetry run codespell --toml pyproject.toml + +spell_fix: + poetry run codespell --toml pyproject.toml -w + +check_imports: $(shell find langchain_ollama -name '*.py') + poetry run python ./scripts/check_imports.py $^ + +###################### +# HELP +###################### + +help: + @echo '----' + @echo 'check_imports - check imports' + @echo 'format - run code formatters' + @echo 'lint - run linters' + @echo 'test - run unit tests' + @echo 'tests - run unit tests' + @echo 'test TEST_FILE= - run all tests in file' diff --git a/libs/partners/ollama/README.md b/libs/partners/ollama/README.md new file mode 100644 index 00000000000..640264f5a74 --- /dev/null +++ b/libs/partners/ollama/README.md @@ -0,0 +1,44 @@ +# langchain-ollama + +This package contains the LangChain integration with Ollama + +## Installation + +```bash +pip install -U langchain-ollama +``` + +You will also need to run the Ollama server locally. +You can download it [here](https://ollama.com/download). + +## Chat Models + +`ChatOllama` class exposes chat models from Ollama. + +```python +from langchain_ollama import ChatOllama + +llm = ChatOllama(model="llama3-groq-tool-use") +llm.invoke("Sing a ballad of LangChain.") +``` + +## Embeddings + +`OllamaEmbeddings` class exposes embeddings from Ollama. + +```python +from langchain_ollama import OllamaEmbeddings + +embeddings = OllamaEmbeddings(model="llama3") +embeddings.embed_query("What is the meaning of life?") +``` + +## LLMs +`OllamaLLM` class exposes LLMs from Ollama. + +```python +from langchain_ollama import OllamaLLM + +llm = OllamaLLM(model="llama3") +llm.invoke("The meaning of life is") +``` diff --git a/libs/partners/ollama/langchain_ollama/__init__.py b/libs/partners/ollama/langchain_ollama/__init__.py new file mode 100644 index 00000000000..4921503fa6e --- /dev/null +++ b/libs/partners/ollama/langchain_ollama/__init__.py @@ -0,0 +1,19 @@ +from importlib import metadata + +from langchain_ollama.chat_models import ChatOllama +from langchain_ollama.embeddings import OllamaEmbeddings +from langchain_ollama.llms import OllamaLLM + +try: + __version__ = metadata.version(__package__) +except metadata.PackageNotFoundError: + # Case where package metadata is not available. + __version__ = "" +del metadata # optional, avoids polluting the results of dir(__package__) + +__all__ = [ + "ChatOllama", + "OllamaLLM", + "OllamaEmbeddings", + "__version__", +] diff --git a/libs/partners/ollama/langchain_ollama/chat_models.py b/libs/partners/ollama/langchain_ollama/chat_models.py new file mode 100644 index 00000000000..339c2b2711a --- /dev/null +++ b/libs/partners/ollama/langchain_ollama/chat_models.py @@ -0,0 +1,719 @@ +"""Ollama chat models.""" + +from typing import ( + Any, + AsyncIterator, + Callable, + Dict, + Iterator, + List, + Literal, + Mapping, + Optional, + Sequence, + Type, + Union, + cast, +) +from uuid import uuid4 + +import ollama +from langchain_core.callbacks import ( + CallbackManagerForLLMRun, +) +from langchain_core.callbacks.manager import AsyncCallbackManagerForLLMRun +from langchain_core.language_models import LanguageModelInput +from langchain_core.language_models.chat_models import BaseChatModel, LangSmithParams +from langchain_core.messages import ( + AIMessage, + AIMessageChunk, + BaseMessage, + HumanMessage, + SystemMessage, + ToolCall, + ToolMessage, +) +from langchain_core.messages.ai import UsageMetadata +from langchain_core.messages.tool import tool_call +from langchain_core.outputs import ChatGeneration, ChatGenerationChunk, ChatResult +from langchain_core.pydantic_v1 import BaseModel +from langchain_core.runnables import Runnable +from langchain_core.tools import BaseTool +from langchain_core.utils.function_calling import convert_to_openai_tool +from ollama import AsyncClient, Message, Options + + +def _get_usage_metadata_from_generation_info( + generation_info: Optional[Mapping[str, Any]], +) -> Optional[UsageMetadata]: + """Get usage metadata from ollama generation info mapping.""" + if generation_info is None: + return None + input_tokens: Optional[int] = generation_info.get("prompt_eval_count") + output_tokens: Optional[int] = generation_info.get("eval_count") + if input_tokens is not None and output_tokens is not None: + return UsageMetadata( + input_tokens=input_tokens, + output_tokens=output_tokens, + total_tokens=input_tokens + output_tokens, + ) + return None + + +def _get_tool_calls_from_response( + response: Mapping[str, Any], +) -> List[ToolCall]: + """Get tool calls from ollama response.""" + tool_calls = [] + if "message" in response: + if "tool_calls" in response["message"]: + for tc in response["message"]["tool_calls"]: + tool_calls.append( + tool_call( + id=str(uuid4()), + name=tc["function"]["name"], + args=tc["function"]["arguments"], + ) + ) + return tool_calls + + +def _lc_tool_call_to_openai_tool_call(tool_call: ToolCall) -> dict: + return { + "type": "function", + "id": tool_call["id"], + "function": { + "name": tool_call["name"], + "arguments": tool_call["args"], + }, + } + + +class ChatOllama(BaseChatModel): + """Ollama chat model integration. + + Setup: + Install ``langchain-ollama`` and download any models you want to use from ollama. + + .. code-block:: bash + + ollama pull mistral:v0.3 + pip install -U langchain-ollama + + Key init args — completion params: + model: str + Name of Ollama model to use. + temperature: float + Sampling temperature. Ranges from 0.0 to 1.0. + num_predict: Optional[int] + Max number of tokens to generate. + + See full list of supported init args and their descriptions in the params section. + + Instantiate: + .. code-block:: python + + from langchain_ollama import ChatOllama + + llm = ChatOllama( + model = "llama3", + temperature = 0.8, + num_predict = 256, + # other params ... + ) + + Invoke: + .. code-block:: python + + messages = [ + ("system", "You are a helpful translator. Translate the user sentence to French."), + ("human", "I love programming."), + ] + llm.invoke(messages) + + .. code-block:: python + + AIMessage(content='J'adore le programmation. (Note: "programming" can also refer to the act of writing code, so if you meant that, I could translate it as "J'adore programmer". But since you didn\'t specify, I assumed you were talking about the activity itself, which is what "le programmation" usually refers to.)', response_metadata={'model': 'llama3', 'created_at': '2024-07-04T03:37:50.182604Z', 'message': {'role': 'assistant', 'content': ''}, 'done_reason': 'stop', 'done': True, 'total_duration': 3576619666, 'load_duration': 788524916, 'prompt_eval_count': 32, 'prompt_eval_duration': 128125000, 'eval_count': 71, 'eval_duration': 2656556000}, id='run-ba48f958-6402-41a5-b461-5e250a4ebd36-0') + + Stream: + .. code-block:: python + + messages = [ + ("human", "Return the words Hello World!"), + ] + for chunk in llm.stream(messages): + print(chunk) + + + .. code-block:: python + + content='Hello' id='run-327ff5ad-45c8-49fe-965c-0a93982e9be1' + content=' World' id='run-327ff5ad-45c8-49fe-965c-0a93982e9be1' + content='!' id='run-327ff5ad-45c8-49fe-965c-0a93982e9be1' + content='' response_metadata={'model': 'llama3', 'created_at': '2024-07-04T03:39:42.274449Z', 'message': {'role': 'assistant', 'content': ''}, 'done_reason': 'stop', 'done': True, 'total_duration': 411875125, 'load_duration': 1898166, 'prompt_eval_count': 14, 'prompt_eval_duration': 297320000, 'eval_count': 4, 'eval_duration': 111099000} id='run-327ff5ad-45c8-49fe-965c-0a93982e9be1' + + + .. code-block:: python + + stream = llm.stream(messages) + full = next(stream) + for chunk in stream: + full += chunk + full + + .. code-block:: python + + AIMessageChunk(content='Je adore le programmation.(Note: "programmation" is the formal way to say "programming" in French, but informally, people might use the phrase "le développement logiciel" or simply "le code")', response_metadata={'model': 'llama3', 'created_at': '2024-07-04T03:38:54.933154Z', 'message': {'role': 'assistant', 'content': ''}, 'done_reason': 'stop', 'done': True, 'total_duration': 1977300042, 'load_duration': 1345709, 'prompt_eval_duration': 159343000, 'eval_count': 47, 'eval_duration': 1815123000}, id='run-3c81a3ed-3e79-4dd3-a796-04064d804890') + + Async: + .. code-block:: python + + messages = [ + ("human", "Hello how are you!"), + ] + await llm.ainvoke(messages) + + .. code-block:: python + + AIMessage(content="Hi there! I'm just an AI, so I don't have feelings or emotions like humans do. But I'm functioning properly and ready to help with any questions or tasks you may have! How can I assist you today?", response_metadata={'model': 'llama3', 'created_at': '2024-07-04T03:52:08.165478Z', 'message': {'role': 'assistant', 'content': ''}, 'done_reason': 'stop', 'done': True, 'total_duration': 2138492875, 'load_duration': 1364000, 'prompt_eval_count': 10, 'prompt_eval_duration': 297081000, 'eval_count': 47, 'eval_duration': 1838524000}, id='run-29c510ae-49a4-4cdd-8f23-b972bfab1c49-0') + + .. code-block:: python + + messages = [ + ("human", "Say hello world!"), + ] + async for chunk in llm.astream(messages): + print(chunk.content) + + .. code-block:: python + + HEL + LO + WORLD + ! + + .. code-block:: python + + messages = [ + ("human", "Say hello world!"), + ("human","Say goodbye world!") + ] + await llm.abatch(messages) + + .. code-block:: python + + [AIMessage(content='HELLO, WORLD!', response_metadata={'model': 'llama3', 'created_at': '2024-07-04T03:55:07.315396Z', 'message': {'role': 'assistant', 'content': ''}, 'done_reason': 'stop', 'done': True, 'total_duration': 1696745458, 'load_duration': 1505000, 'prompt_eval_count': 8, 'prompt_eval_duration': 111627000, 'eval_count': 6, 'eval_duration': 185181000}, id='run-da6c7562-e25a-4a44-987a-2c83cd8c2686-0'), + AIMessage(content="It's been a blast chatting with you! Say goodbye to the world for me, and don't forget to come back and visit us again soon!", response_metadata={'model': 'llama3', 'created_at': '2024-07-04T03:55:07.018076Z', 'message': {'role': 'assistant', 'content': ''}, 'done_reason': 'stop', 'done': True, 'total_duration': 1399391083, 'load_duration': 1187417, 'prompt_eval_count': 20, 'prompt_eval_duration': 230349000, 'eval_count': 31, 'eval_duration': 1166047000}, id='run-96cad530-6f3e-4cf9-86b4-e0f8abba4cdb-0')] + + JSON mode: + .. code-block:: python + + + json_llm = ChatOllama(format="json") + messages = [ + ("human", "Return a query for the weather in a random location and time of day with two keys: location and time_of_day. Respond using JSON only."), + ] + llm.invoke(messages).content + + .. code-block:: python + + '{"location": "Pune, India", "time_of_day": "morning"}' + + Tool Calling: + .. warning:: + Ollama currently does not support streaming for tools + + .. code-block:: python + + from langchain_ollama import ChatOllama + from langchain_core.pydantic_v1 import BaseModel, Field + + class Multiply(BaseModel): + a: int = Field(..., description="First integer") + b: int = Field(..., description="Second integer") + + ans = await chat.invoke("What is 45*67") + ans.tool_calls + + .. code-block:: python + + [{'name': 'Multiply', + 'args': {'a': 45, 'b': 67}, + 'id': '420c3f3b-df10-4188-945f-eb3abdb40622', + 'type': 'tool_call'}] + """ # noqa: E501 + + model: str + """Model name to use.""" + + mirostat: Optional[int] = None + """Enable Mirostat sampling for controlling perplexity. + (default: 0, 0 = disabled, 1 = Mirostat, 2 = Mirostat 2.0)""" + + mirostat_eta: Optional[float] = None + """Influences how quickly the algorithm responds to feedback + from the generated text. A lower learning rate will result in + slower adjustments, while a higher learning rate will make + the algorithm more responsive. (Default: 0.1)""" + + mirostat_tau: Optional[float] = None + """Controls the balance between coherence and diversity + of the output. A lower value will result in more focused and + coherent text. (Default: 5.0)""" + + num_ctx: Optional[int] = None + """Sets the size of the context window used to generate the + next token. (Default: 2048) """ + + num_gpu: Optional[int] = None + """The number of GPUs to use. On macOS it defaults to 1 to + enable metal support, 0 to disable.""" + + num_thread: Optional[int] = None + """Sets the number of threads to use during computation. + By default, Ollama will detect this for optimal performance. + It is recommended to set this value to the number of physical + CPU cores your system has (as opposed to the logical number of cores).""" + + num_predict: Optional[int] = None + """Maximum number of tokens to predict when generating text. + (Default: 128, -1 = infinite generation, -2 = fill context)""" + + repeat_last_n: Optional[int] = None + """Sets how far back for the model to look back to prevent + repetition. (Default: 64, 0 = disabled, -1 = num_ctx)""" + + repeat_penalty: Optional[float] = None + """Sets how strongly to penalize repetitions. A higher value (e.g., 1.5) + will penalize repetitions more strongly, while a lower value (e.g., 0.9) + will be more lenient. (Default: 1.1)""" + + temperature: Optional[float] = None + """The temperature of the model. Increasing the temperature will + make the model answer more creatively. (Default: 0.8)""" + + stop: Optional[List[str]] = None + """Sets the stop tokens to use.""" + + tfs_z: Optional[float] = None + """Tail free sampling is used to reduce the impact of less probable + tokens from the output. A higher value (e.g., 2.0) will reduce the + impact more, while a value of 1.0 disables this setting. (default: 1)""" + + top_k: Optional[int] = None + """Reduces the probability of generating nonsense. A higher value (e.g. 100) + will give more diverse answers, while a lower value (e.g. 10) + will be more conservative. (Default: 40)""" + + top_p: Optional[float] = None + """Works together with top-k. A higher value (e.g., 0.95) will lead + to more diverse text, while a lower value (e.g., 0.5) will + generate more focused and conservative text. (Default: 0.9)""" + + format: Literal["", "json"] = "" + """Specify the format of the output (options: json)""" + + keep_alive: Optional[Union[int, str]] = None + """How long the model will stay loaded into memory.""" + + @property + def _default_params(self) -> Dict[str, Any]: + """Get the default parameters for calling Ollama.""" + return { + "model": self.model, + "format": self.format, + "options": { + "mirostat": self.mirostat, + "mirostat_eta": self.mirostat_eta, + "mirostat_tau": self.mirostat_tau, + "num_ctx": self.num_ctx, + "num_gpu": self.num_gpu, + "num_thread": self.num_thread, + "num_predict": self.num_predict, + "repeat_last_n": self.repeat_last_n, + "repeat_penalty": self.repeat_penalty, + "temperature": self.temperature, + "stop": self.stop, + "tfs_z": self.tfs_z, + "top_k": self.top_k, + "top_p": self.top_p, + }, + "keep_alive": self.keep_alive, + } + + def _convert_messages_to_ollama_messages( + self, messages: List[BaseMessage] + ) -> Sequence[Message]: + ollama_messages: List = [] + for message in messages: + role = "" + tool_call_id: Optional[str] = None + tool_calls: Optional[List[Dict[str, Any]]] = None + if isinstance(message, HumanMessage): + role = "user" + elif isinstance(message, AIMessage): + role = "assistant" + tool_calls = ( + [ + _lc_tool_call_to_openai_tool_call(tool_call) + for tool_call in message.tool_calls + ] + if message.tool_calls + else None + ) + elif isinstance(message, SystemMessage): + role = "system" + elif isinstance(message, ToolMessage): + role = "tool" + tool_call_id = message.tool_call_id + else: + raise ValueError("Received unsupported message type for Ollama.") + + content = "" + images = [] + if isinstance(message.content, str): + content = message.content + else: + for content_part in cast(List[Dict], message.content): + if content_part.get("type") == "text": + content += f"\n{content_part['text']}" + elif content_part.get("type") == "tool_use": + continue + elif content_part.get("type") == "image_url": + image_url = None + temp_image_url = content_part.get("image_url") + if isinstance(temp_image_url, str): + image_url = content_part["image_url"] + elif ( + isinstance(temp_image_url, dict) and "url" in temp_image_url + ): + image_url = temp_image_url + else: + raise ValueError( + "Only string image_url or dict with string 'url' " + "inside content parts are supported." + ) + + image_url_components = image_url.split(",") + # Support data:image/jpeg;base64, format + # and base64 strings + if len(image_url_components) > 1: + images.append(image_url_components[1]) + else: + images.append(image_url_components[0]) + + else: + raise ValueError( + "Unsupported message content type. " + "Must either have type 'text' or type 'image_url' " + "with a string 'image_url' field." + ) + msg = { + "role": role, + "content": content, + "images": images, + } + if tool_call_id: + msg["tool_call_id"] = tool_call_id + if tool_calls: + msg["tool_calls"] = tool_calls + ollama_messages.append(msg) + + return ollama_messages + + async def _acreate_chat_stream( + self, + messages: List[BaseMessage], + stop: Optional[List[str]] = None, + **kwargs: Any, + ) -> AsyncIterator[Union[Mapping[str, Any], str]]: + ollama_messages = self._convert_messages_to_ollama_messages(messages) + + stop = stop if stop is not None else self.stop + + params = self._default_params + + for key in self._default_params: + if key in kwargs: + params[key] = kwargs[key] + + params["options"]["stop"] = stop + if "tools" in kwargs: + yield await AsyncClient().chat( + model=params["model"], + messages=ollama_messages, + stream=False, + options=Options(**params["options"]), + keep_alive=params["keep_alive"], + format=params["format"], + tools=kwargs["tools"], + ) # type:ignore + else: + async for part in await AsyncClient().chat( + model=params["model"], + messages=ollama_messages, + stream=True, + options=Options(**params["options"]), + keep_alive=params["keep_alive"], + format=params["format"], + ): # type:ignore + yield part + + def _create_chat_stream( + self, + messages: List[BaseMessage], + stop: Optional[List[str]] = None, + **kwargs: Any, + ) -> Iterator[Union[Mapping[str, Any], str]]: + ollama_messages = self._convert_messages_to_ollama_messages(messages) + + stop = stop if stop is not None else self.stop + + params = self._default_params + + for key in self._default_params: + if key in kwargs: + params[key] = kwargs[key] + + params["options"]["stop"] = stop + if "tools" in kwargs: + yield ollama.chat( + model=params["model"], + messages=ollama_messages, + stream=False, + options=Options(**params["options"]), + keep_alive=params["keep_alive"], + format=params["format"], + tools=kwargs["tools"], + ) + else: + yield from ollama.chat( + model=params["model"], + messages=ollama_messages, + stream=True, + options=Options(**params["options"]), + keep_alive=params["keep_alive"], + format=params["format"], + ) + + def _chat_stream_with_aggregation( + self, + messages: List[BaseMessage], + stop: Optional[List[str]] = None, + run_manager: Optional[CallbackManagerForLLMRun] = None, + verbose: bool = False, + **kwargs: Any, + ) -> ChatGenerationChunk: + final_chunk = None + for stream_resp in self._create_chat_stream(messages, stop, **kwargs): + if not isinstance(stream_resp, str): + chunk = ChatGenerationChunk( + message=AIMessageChunk( + content=( + stream_resp["message"]["content"] + if "message" in stream_resp + and "content" in stream_resp["message"] + else "" + ), + usage_metadata=_get_usage_metadata_from_generation_info( + stream_resp + ), + tool_calls=_get_tool_calls_from_response(stream_resp), + ), + generation_info=( + dict(stream_resp) if stream_resp.get("done") is True else None + ), + ) + if final_chunk is None: + final_chunk = chunk + else: + final_chunk += chunk + if run_manager: + run_manager.on_llm_new_token( + chunk.text, + chunk=chunk, + verbose=verbose, + ) + if final_chunk is None: + raise ValueError("No data received from Ollama stream.") + + return final_chunk + + async def _achat_stream_with_aggregation( + self, + messages: List[BaseMessage], + stop: Optional[List[str]] = None, + run_manager: Optional[AsyncCallbackManagerForLLMRun] = None, + verbose: bool = False, + **kwargs: Any, + ) -> ChatGenerationChunk: + final_chunk = None + async for stream_resp in self._acreate_chat_stream(messages, stop, **kwargs): + if not isinstance(stream_resp, str): + chunk = ChatGenerationChunk( + message=AIMessageChunk( + content=( + stream_resp["message"]["content"] + if "message" in stream_resp + and "content" in stream_resp["message"] + else "" + ), + usage_metadata=_get_usage_metadata_from_generation_info( + stream_resp + ), + tool_calls=_get_tool_calls_from_response(stream_resp), + ), + generation_info=( + dict(stream_resp) if stream_resp.get("done") is True else None + ), + ) + if final_chunk is None: + final_chunk = chunk + else: + final_chunk += chunk + if run_manager: + await run_manager.on_llm_new_token( + chunk.text, + chunk=chunk, + verbose=verbose, + ) + if final_chunk is None: + raise ValueError("No data received from Ollama stream.") + + return final_chunk + + def _get_ls_params( + self, stop: Optional[List[str]] = None, **kwargs: Any + ) -> LangSmithParams: + """Get standard params for tracing.""" + params = self._get_invocation_params(stop=stop, **kwargs) + ls_params = LangSmithParams( + ls_provider="ollama", + ls_model_name=self.model, + ls_model_type="chat", + ls_temperature=params.get("temperature", self.temperature), + ) + if ls_stop := stop or params.get("stop", None) or self.stop: + ls_params["ls_stop"] = ls_stop + return ls_params + + def _generate( + self, + messages: List[BaseMessage], + stop: Optional[List[str]] = None, + run_manager: Optional[CallbackManagerForLLMRun] = None, + **kwargs: Any, + ) -> ChatResult: + final_chunk = self._chat_stream_with_aggregation( + messages, stop, run_manager, verbose=self.verbose, **kwargs + ) + generation_info = final_chunk.generation_info + chat_generation = ChatGeneration( + message=AIMessage( + content=final_chunk.text, + usage_metadata=cast(AIMessageChunk, final_chunk.message).usage_metadata, + tool_calls=cast(AIMessageChunk, final_chunk.message).tool_calls, + ), + generation_info=generation_info, + ) + return ChatResult(generations=[chat_generation]) + + def _stream( + self, + messages: List[BaseMessage], + stop: Optional[List[str]] = None, + run_manager: Optional[CallbackManagerForLLMRun] = None, + **kwargs: Any, + ) -> Iterator[ChatGenerationChunk]: + for stream_resp in self._create_chat_stream(messages, stop, **kwargs): + if not isinstance(stream_resp, str): + chunk = ChatGenerationChunk( + message=AIMessageChunk( + content=( + stream_resp["message"]["content"] + if "message" in stream_resp + and "content" in stream_resp["message"] + else "" + ), + usage_metadata=_get_usage_metadata_from_generation_info( + stream_resp + ), + tool_calls=_get_tool_calls_from_response(stream_resp), + ), + generation_info=( + dict(stream_resp) if stream_resp.get("done") is True else None + ), + ) + if run_manager: + run_manager.on_llm_new_token( + chunk.text, + verbose=self.verbose, + ) + yield chunk + + async def _astream( + self, + messages: List[BaseMessage], + stop: Optional[List[str]] = None, + run_manager: Optional[AsyncCallbackManagerForLLMRun] = None, + **kwargs: Any, + ) -> AsyncIterator[ChatGenerationChunk]: + async for stream_resp in self._acreate_chat_stream(messages, stop, **kwargs): + if not isinstance(stream_resp, str): + chunk = ChatGenerationChunk( + message=AIMessageChunk( + content=( + stream_resp["message"]["content"] + if "message" in stream_resp + and "content" in stream_resp["message"] + else "" + ), + usage_metadata=_get_usage_metadata_from_generation_info( + stream_resp + ), + tool_calls=_get_tool_calls_from_response(stream_resp), + ), + generation_info=( + dict(stream_resp) if stream_resp.get("done") is True else None + ), + ) + if run_manager: + await run_manager.on_llm_new_token( + chunk.text, + verbose=self.verbose, + ) + yield chunk + + async def _agenerate( + self, + messages: List[BaseMessage], + stop: Optional[List[str]] = None, + run_manager: Optional[AsyncCallbackManagerForLLMRun] = None, + **kwargs: Any, + ) -> ChatResult: + final_chunk = await self._achat_stream_with_aggregation( + messages, stop, run_manager, verbose=self.verbose, **kwargs + ) + generation_info = final_chunk.generation_info + chat_generation = ChatGeneration( + message=AIMessage( + content=final_chunk.text, + usage_metadata=cast(AIMessageChunk, final_chunk.message).usage_metadata, + tool_calls=cast(AIMessageChunk, final_chunk.message).tool_calls, + ), + generation_info=generation_info, + ) + return ChatResult(generations=[chat_generation]) + + @property + def _llm_type(self) -> str: + """Return type of chat model.""" + return "chat-ollama" + + def bind_tools( + self, + tools: Sequence[Union[Dict[str, Any], Type[BaseModel], Callable, BaseTool]], + **kwargs: Any, + ) -> Runnable[LanguageModelInput, BaseMessage]: + formatted_tools = [convert_to_openai_tool(tool) for tool in tools] + return super().bind(tools=formatted_tools, **kwargs) diff --git a/libs/partners/ollama/langchain_ollama/embeddings.py b/libs/partners/ollama/langchain_ollama/embeddings.py new file mode 100644 index 00000000000..5233f68f48d --- /dev/null +++ b/libs/partners/ollama/langchain_ollama/embeddings.py @@ -0,0 +1,51 @@ +from typing import List + +import ollama +from langchain_core.embeddings import Embeddings +from langchain_core.pydantic_v1 import BaseModel, Extra +from ollama import AsyncClient + + +class OllamaEmbeddings(BaseModel, Embeddings): + """OllamaEmbeddings embedding model. + + Example: + .. code-block:: python + + from langchain_ollama import OllamaEmbeddings + + model = OllamaEmbeddings(model="llama3") + embedder.embed_query("what is the place that jonathan worked at?") + """ + + model: str + """Model name to use.""" + + class Config: + """Configuration for this pydantic object.""" + + extra = Extra.forbid + + def embed_documents(self, texts: List[str]) -> List[List[float]]: + """Embed search docs.""" + embedded_docs = [] + for doc in texts: + embedded_docs.append(list(ollama.embeddings(self.model, doc)["embedding"])) + return embedded_docs + + def embed_query(self, text: str) -> List[float]: + """Embed query text.""" + return self.embed_documents([text])[0] + + async def aembed_documents(self, texts: List[str]) -> List[List[float]]: + """Embed search docs.""" + embedded_docs = [] + for doc in texts: + embedded_docs.append( + list((await AsyncClient().embeddings(self.model, doc))["embedding"]) + ) + return embedded_docs + + async def aembed_query(self, text: str) -> List[float]: + """Embed query text.""" + return (await self.aembed_documents([text]))[0] diff --git a/libs/partners/ollama/langchain_ollama/llms.py b/libs/partners/ollama/langchain_ollama/llms.py new file mode 100644 index 00000000000..e2bf73cfabd --- /dev/null +++ b/libs/partners/ollama/langchain_ollama/llms.py @@ -0,0 +1,347 @@ +"""Ollama large language models.""" + +from typing import ( + Any, + AsyncIterator, + Dict, + Iterator, + List, + Literal, + Mapping, + Optional, + Union, +) + +import ollama +from langchain_core.callbacks import ( + AsyncCallbackManagerForLLMRun, + CallbackManagerForLLMRun, +) +from langchain_core.language_models import BaseLLM +from langchain_core.outputs import GenerationChunk, LLMResult +from ollama import AsyncClient, Options + + +class OllamaLLM(BaseLLM): + """OllamaLLM large language models. + + Example: + .. code-block:: python + + from langchain_ollama import OllamaLLM + + model = OllamaLLM(model="llama3") + model.invoke("Come up with 10 names for a song about parrots") + """ + + model: str + """Model name to use.""" + + mirostat: Optional[int] = None + """Enable Mirostat sampling for controlling perplexity. + (default: 0, 0 = disabled, 1 = Mirostat, 2 = Mirostat 2.0)""" + + mirostat_eta: Optional[float] = None + """Influences how quickly the algorithm responds to feedback + from the generated text. A lower learning rate will result in + slower adjustments, while a higher learning rate will make + the algorithm more responsive. (Default: 0.1)""" + + mirostat_tau: Optional[float] = None + """Controls the balance between coherence and diversity + of the output. A lower value will result in more focused and + coherent text. (Default: 5.0)""" + + num_ctx: Optional[int] = None + """Sets the size of the context window used to generate the + next token. (Default: 2048) """ + + num_gpu: Optional[int] = None + """The number of GPUs to use. On macOS it defaults to 1 to + enable metal support, 0 to disable.""" + + num_thread: Optional[int] = None + """Sets the number of threads to use during computation. + By default, Ollama will detect this for optimal performance. + It is recommended to set this value to the number of physical + CPU cores your system has (as opposed to the logical number of cores).""" + + num_predict: Optional[int] = None + """Maximum number of tokens to predict when generating text. + (Default: 128, -1 = infinite generation, -2 = fill context)""" + + repeat_last_n: Optional[int] = None + """Sets how far back for the model to look back to prevent + repetition. (Default: 64, 0 = disabled, -1 = num_ctx)""" + + repeat_penalty: Optional[float] = None + """Sets how strongly to penalize repetitions. A higher value (e.g., 1.5) + will penalize repetitions more strongly, while a lower value (e.g., 0.9) + will be more lenient. (Default: 1.1)""" + + temperature: Optional[float] = None + """The temperature of the model. Increasing the temperature will + make the model answer more creatively. (Default: 0.8)""" + + stop: Optional[List[str]] = None + """Sets the stop tokens to use.""" + + tfs_z: Optional[float] = None + """Tail free sampling is used to reduce the impact of less probable + tokens from the output. A higher value (e.g., 2.0) will reduce the + impact more, while a value of 1.0 disables this setting. (default: 1)""" + + top_k: Optional[int] = None + """Reduces the probability of generating nonsense. A higher value (e.g. 100) + will give more diverse answers, while a lower value (e.g. 10) + will be more conservative. (Default: 40)""" + + top_p: Optional[float] = None + """Works together with top-k. A higher value (e.g., 0.95) will lead + to more diverse text, while a lower value (e.g., 0.5) will + generate more focused and conservative text. (Default: 0.9)""" + + format: Literal["", "json"] = "" + """Specify the format of the output (options: json)""" + + keep_alive: Optional[Union[int, str]] = None + """How long the model will stay loaded into memory.""" + + @property + def _default_params(self) -> Dict[str, Any]: + """Get the default parameters for calling Ollama.""" + return { + "model": self.model, + "format": self.format, + "options": { + "mirostat": self.mirostat, + "mirostat_eta": self.mirostat_eta, + "mirostat_tau": self.mirostat_tau, + "num_ctx": self.num_ctx, + "num_gpu": self.num_gpu, + "num_thread": self.num_thread, + "num_predict": self.num_predict, + "repeat_last_n": self.repeat_last_n, + "repeat_penalty": self.repeat_penalty, + "temperature": self.temperature, + "stop": self.stop, + "tfs_z": self.tfs_z, + "top_k": self.top_k, + "top_p": self.top_p, + }, + "keep_alive": self.keep_alive, + } + + @property + def _llm_type(self) -> str: + """Return type of LLM.""" + return "ollama-llm" + + async def _acreate_generate_stream( + self, + prompt: str, + stop: Optional[List[str]] = None, + **kwargs: Any, + ) -> AsyncIterator[Union[Mapping[str, Any], str]]: + if self.stop is not None and stop is not None: + raise ValueError("`stop` found in both the input and default params.") + elif self.stop is not None: + stop = self.stop + + params = self._default_params + + for key in self._default_params: + if key in kwargs: + params[key] = kwargs[key] + + params["options"]["stop"] = stop + async for part in await AsyncClient().generate( + model=params["model"], + prompt=prompt, + stream=True, + options=Options(**params["options"]), + keep_alive=params["keep_alive"], + format=params["format"], + ): # type: ignore + yield part + + def _create_generate_stream( + self, + prompt: str, + stop: Optional[List[str]] = None, + **kwargs: Any, + ) -> Iterator[Union[Mapping[str, Any], str]]: + if self.stop is not None and stop is not None: + raise ValueError("`stop` found in both the input and default params.") + elif self.stop is not None: + stop = self.stop + + params = self._default_params + + for key in self._default_params: + if key in kwargs: + params[key] = kwargs[key] + + params["options"]["stop"] = stop + yield from ollama.generate( + model=params["model"], + prompt=prompt, + stream=True, + options=Options(**params["options"]), + keep_alive=params["keep_alive"], + format=params["format"], + ) + + async def _astream_with_aggregation( + self, + prompt: str, + stop: Optional[List[str]] = None, + run_manager: Optional[AsyncCallbackManagerForLLMRun] = None, + verbose: bool = False, + **kwargs: Any, + ) -> GenerationChunk: + final_chunk = None + async for stream_resp in self._acreate_generate_stream(prompt, stop, **kwargs): + if not isinstance(stream_resp, str): + chunk = GenerationChunk( + text=stream_resp["response"] if "response" in stream_resp else "", + generation_info=( + dict(stream_resp) if stream_resp.get("done") is True else None + ), + ) + if final_chunk is None: + final_chunk = chunk + else: + final_chunk += chunk + if run_manager: + await run_manager.on_llm_new_token( + chunk.text, + chunk=chunk, + verbose=verbose, + ) + if final_chunk is None: + raise ValueError("No data received from Ollama stream.") + + return final_chunk + + def _stream_with_aggregation( + self, + prompt: str, + stop: Optional[List[str]] = None, + run_manager: Optional[CallbackManagerForLLMRun] = None, + verbose: bool = False, + **kwargs: Any, + ) -> GenerationChunk: + final_chunk = None + for stream_resp in self._create_generate_stream(prompt, stop, **kwargs): + if not isinstance(stream_resp, str): + chunk = GenerationChunk( + text=stream_resp["response"] if "response" in stream_resp else "", + generation_info=( + dict(stream_resp) if stream_resp.get("done") is True else None + ), + ) + if final_chunk is None: + final_chunk = chunk + else: + final_chunk += chunk + if run_manager: + run_manager.on_llm_new_token( + chunk.text, + chunk=chunk, + verbose=verbose, + ) + if final_chunk is None: + raise ValueError("No data received from Ollama stream.") + + return final_chunk + + def _generate( + self, + prompts: List[str], + stop: Optional[List[str]] = None, + run_manager: Optional[CallbackManagerForLLMRun] = None, + **kwargs: Any, + ) -> LLMResult: + generations = [] + for prompt in prompts: + final_chunk = self._stream_with_aggregation( + prompt, + stop=stop, + run_manager=run_manager, + verbose=self.verbose, + **kwargs, + ) + generations.append([final_chunk]) + return LLMResult(generations=generations) # type: ignore[arg-type] + + async def _agenerate( + self, + prompts: List[str], + stop: Optional[List[str]] = None, + run_manager: Optional[AsyncCallbackManagerForLLMRun] = None, + **kwargs: Any, + ) -> LLMResult: + generations = [] + for prompt in prompts: + final_chunk = await self._astream_with_aggregation( + prompt, + stop=stop, + run_manager=run_manager, + verbose=self.verbose, + **kwargs, + ) + generations.append([final_chunk]) + return LLMResult(generations=generations) # type: ignore[arg-type] + + def _stream( + self, + prompt: str, + stop: Optional[List[str]] = None, + run_manager: Optional[CallbackManagerForLLMRun] = None, + **kwargs: Any, + ) -> Iterator[GenerationChunk]: + for stream_resp in self._create_generate_stream(prompt, stop, **kwargs): + if not isinstance(stream_resp, str): + chunk = GenerationChunk( + text=( + stream_resp["message"]["content"] + if "message" in stream_resp + else "" + ), + generation_info=( + dict(stream_resp) if stream_resp.get("done") is True else None + ), + ) + if run_manager: + run_manager.on_llm_new_token( + chunk.text, + verbose=self.verbose, + ) + yield chunk + + async def _astream( + self, + prompt: str, + stop: Optional[List[str]] = None, + run_manager: Optional[AsyncCallbackManagerForLLMRun] = None, + **kwargs: Any, + ) -> AsyncIterator[GenerationChunk]: + async for stream_resp in self._acreate_generate_stream(prompt, stop, **kwargs): + if not isinstance(stream_resp, str): + chunk = GenerationChunk( + text=( + stream_resp["message"]["content"] + if "message" in stream_resp + else "" + ), + generation_info=( + dict(stream_resp) if stream_resp.get("done") is True else None + ), + ) + if run_manager: + await run_manager.on_llm_new_token( + chunk.text, + verbose=self.verbose, + ) + yield chunk diff --git a/libs/partners/ollama/langchain_ollama/py.typed b/libs/partners/ollama/langchain_ollama/py.typed new file mode 100644 index 00000000000..e69de29bb2d diff --git a/libs/partners/ollama/poetry.lock b/libs/partners/ollama/poetry.lock new file mode 100644 index 00000000000..679c8dd0a76 --- /dev/null +++ b/libs/partners/ollama/poetry.lock @@ -0,0 +1,879 @@ +# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. + +[[package]] +name = "annotated-types" +version = "0.7.0" +description = "Reusable constraint types to use with typing.Annotated" +optional = false +python-versions = ">=3.8" +files = [ + {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, + {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, +] + +[package.dependencies] +typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.9\""} + +[[package]] +name = "anyio" +version = "4.4.0" +description = "High level compatibility layer for multiple asynchronous event loop implementations" +optional = false +python-versions = ">=3.8" +files = [ + {file = "anyio-4.4.0-py3-none-any.whl", hash = "sha256:c1b2d8f46a8a812513012e1107cb0e68c17159a7a594208005a57dc776e1bdc7"}, + {file = "anyio-4.4.0.tar.gz", hash = "sha256:5aadc6a1bbb7cdb0bede386cac5e2940f5e2ff3aa20277e991cf028e0585ce94"}, +] + +[package.dependencies] +exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""} +idna = ">=2.8" +sniffio = ">=1.1" +typing-extensions = {version = ">=4.1", markers = "python_version < \"3.11\""} + +[package.extras] +doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] +test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"] +trio = ["trio (>=0.23)"] + +[[package]] +name = "certifi" +version = "2024.7.4" +description = "Python package for providing Mozilla's CA Bundle." +optional = false +python-versions = ">=3.6" +files = [ + {file = "certifi-2024.7.4-py3-none-any.whl", hash = "sha256:c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90"}, + {file = "certifi-2024.7.4.tar.gz", hash = "sha256:5a1e7645bc0ec61a09e26c36f6106dd4cf40c6db3a1fb6352b0244e7fb057c7b"}, +] + +[[package]] +name = "charset-normalizer" +version = "3.3.2" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, + {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, +] + +[[package]] +name = "codespell" +version = "2.3.0" +description = "Codespell" +optional = false +python-versions = ">=3.8" +files = [ + {file = "codespell-2.3.0-py3-none-any.whl", hash = "sha256:a9c7cef2501c9cfede2110fd6d4e5e62296920efe9abfb84648df866e47f58d1"}, + {file = "codespell-2.3.0.tar.gz", hash = "sha256:360c7d10f75e65f67bad720af7007e1060a5d395670ec11a7ed1fed9dd17471f"}, +] + +[package.extras] +dev = ["Pygments", "build", "chardet", "pre-commit", "pytest", "pytest-cov", "pytest-dependency", "ruff", "tomli", "twine"] +hard-encoding-detection = ["chardet"] +toml = ["tomli"] +types = ["chardet (>=5.1.0)", "mypy", "pytest", "pytest-cov", "pytest-dependency"] + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "exceptiongroup" +version = "1.2.2" +description = "Backport of PEP 654 (exception groups)" +optional = false +python-versions = ">=3.7" +files = [ + {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, + {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, +] + +[package.extras] +test = ["pytest (>=6)"] + +[[package]] +name = "h11" +version = "0.14.0" +description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" +optional = false +python-versions = ">=3.7" +files = [ + {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, + {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, +] + +[[package]] +name = "httpcore" +version = "1.0.5" +description = "A minimal low-level HTTP client." +optional = false +python-versions = ">=3.8" +files = [ + {file = "httpcore-1.0.5-py3-none-any.whl", hash = "sha256:421f18bac248b25d310f3cacd198d55b8e6125c107797b609ff9b7a6ba7991b5"}, + {file = "httpcore-1.0.5.tar.gz", hash = "sha256:34a38e2f9291467ee3b44e89dd52615370e152954ba21721378a87b2960f7a61"}, +] + +[package.dependencies] +certifi = "*" +h11 = ">=0.13,<0.15" + +[package.extras] +asyncio = ["anyio (>=4.0,<5.0)"] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (==1.*)"] +trio = ["trio (>=0.22.0,<0.26.0)"] + +[[package]] +name = "httpx" +version = "0.27.0" +description = "The next generation HTTP client." +optional = false +python-versions = ">=3.8" +files = [ + {file = "httpx-0.27.0-py3-none-any.whl", hash = "sha256:71d5465162c13681bff01ad59b2cc68dd838ea1f10e51574bac27103f00c91a5"}, + {file = "httpx-0.27.0.tar.gz", hash = "sha256:a0cb88a46f32dc874e04ee956e4c2764aba2aa228f650b06788ba6bda2962ab5"}, +] + +[package.dependencies] +anyio = "*" +certifi = "*" +httpcore = "==1.*" +idna = "*" +sniffio = "*" + +[package.extras] +brotli = ["brotli", "brotlicffi"] +cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (==1.*)"] + +[[package]] +name = "idna" +version = "3.7" +description = "Internationalized Domain Names in Applications (IDNA)" +optional = false +python-versions = ">=3.5" +files = [ + {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, + {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, +] + +[[package]] +name = "iniconfig" +version = "2.0.0" +description = "brain-dead simple config-ini parsing" +optional = false +python-versions = ">=3.7" +files = [ + {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, + {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, +] + +[[package]] +name = "jsonpatch" +version = "1.33" +description = "Apply JSON-Patches (RFC 6902)" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*" +files = [ + {file = "jsonpatch-1.33-py2.py3-none-any.whl", hash = "sha256:0ae28c0cd062bbd8b8ecc26d7d164fbbea9652a1a3693f3b956c1eae5145dade"}, + {file = "jsonpatch-1.33.tar.gz", hash = "sha256:9fcd4009c41e6d12348b4a0ff2563ba56a2923a7dfee731d004e212e1ee5030c"}, +] + +[package.dependencies] +jsonpointer = ">=1.9" + +[[package]] +name = "jsonpointer" +version = "3.0.0" +description = "Identify specific nodes in a JSON document (RFC 6901)" +optional = false +python-versions = ">=3.7" +files = [ + {file = "jsonpointer-3.0.0-py2.py3-none-any.whl", hash = "sha256:13e088adc14fca8b6aa8177c044e12701e6ad4b28ff10e65f2267a90109c9942"}, + {file = "jsonpointer-3.0.0.tar.gz", hash = "sha256:2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef"}, +] + +[[package]] +name = "langchain-core" +version = "0.2.21" +description = "Building applications with LLMs through composability" +optional = false +python-versions = ">=3.8.1,<4.0" +files = [] +develop = true + +[package.dependencies] +jsonpatch = "^1.33" +langsmith = "^0.1.75" +packaging = ">=23.2,<25" +pydantic = [ + {version = ">=1,<3", markers = "python_full_version < \"3.12.4\""}, + {version = ">=2.7.4,<3.0.0", markers = "python_full_version >= \"3.12.4\""}, +] +PyYAML = ">=5.3" +tenacity = "^8.1.0,!=8.4.0" + +[package.source] +type = "directory" +url = "../../core" + +[[package]] +name = "langchain-standard-tests" +version = "0.1.1" +description = "Standard tests for LangChain implementations" +optional = false +python-versions = ">=3.8.1,<4.0" +files = [] +develop = true + +[package.dependencies] +httpx = "^0.27.0" +langchain-core = ">=0.1.40,<0.3" +pytest = ">=7,<9" + +[package.source] +type = "directory" +url = "../../standard-tests" + +[[package]] +name = "langsmith" +version = "0.1.92" +description = "Client library to connect to the LangSmith LLM Tracing and Evaluation Platform." +optional = false +python-versions = "<4.0,>=3.8.1" +files = [ + {file = "langsmith-0.1.92-py3-none-any.whl", hash = "sha256:8acb27844ff5263bde14b23425f83ee63996f4d5a8e9998cdeef07fd913137ff"}, + {file = "langsmith-0.1.92.tar.gz", hash = "sha256:681a613a4dc8c8e57c8961c347a39ffcb64d6c697e8ddde1fd8458fcfaef6c13"}, +] + +[package.dependencies] +orjson = ">=3.9.14,<4.0.0" +pydantic = [ + {version = ">=1,<3", markers = "python_full_version < \"3.12.4\""}, + {version = ">=2.7.4,<3.0.0", markers = "python_full_version >= \"3.12.4\""}, +] +requests = ">=2,<3" + +[[package]] +name = "mypy" +version = "1.10.1" +description = "Optional static typing for Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "mypy-1.10.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e36f229acfe250dc660790840916eb49726c928e8ce10fbdf90715090fe4ae02"}, + {file = "mypy-1.10.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:51a46974340baaa4145363b9e051812a2446cf583dfaeba124af966fa44593f7"}, + {file = "mypy-1.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:901c89c2d67bba57aaaca91ccdb659aa3a312de67f23b9dfb059727cce2e2e0a"}, + {file = "mypy-1.10.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0cd62192a4a32b77ceb31272d9e74d23cd88c8060c34d1d3622db3267679a5d9"}, + {file = "mypy-1.10.1-cp310-cp310-win_amd64.whl", hash = "sha256:a2cbc68cb9e943ac0814c13e2452d2046c2f2b23ff0278e26599224cf164e78d"}, + {file = "mypy-1.10.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:bd6f629b67bb43dc0d9211ee98b96d8dabc97b1ad38b9b25f5e4c4d7569a0c6a"}, + {file = "mypy-1.10.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a1bbb3a6f5ff319d2b9d40b4080d46cd639abe3516d5a62c070cf0114a457d84"}, + {file = "mypy-1.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8edd4e9bbbc9d7b79502eb9592cab808585516ae1bcc1446eb9122656c6066f"}, + {file = "mypy-1.10.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:6166a88b15f1759f94a46fa474c7b1b05d134b1b61fca627dd7335454cc9aa6b"}, + {file = "mypy-1.10.1-cp311-cp311-win_amd64.whl", hash = "sha256:5bb9cd11c01c8606a9d0b83ffa91d0b236a0e91bc4126d9ba9ce62906ada868e"}, + {file = "mypy-1.10.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d8681909f7b44d0b7b86e653ca152d6dff0eb5eb41694e163c6092124f8246d7"}, + {file = "mypy-1.10.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:378c03f53f10bbdd55ca94e46ec3ba255279706a6aacaecac52ad248f98205d3"}, + {file = "mypy-1.10.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6bacf8f3a3d7d849f40ca6caea5c055122efe70e81480c8328ad29c55c69e93e"}, + {file = "mypy-1.10.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:701b5f71413f1e9855566a34d6e9d12624e9e0a8818a5704d74d6b0402e66c04"}, + {file = "mypy-1.10.1-cp312-cp312-win_amd64.whl", hash = "sha256:3c4c2992f6ea46ff7fce0072642cfb62af7a2484efe69017ed8b095f7b39ef31"}, + {file = "mypy-1.10.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:604282c886497645ffb87b8f35a57ec773a4a2721161e709a4422c1636ddde5c"}, + {file = "mypy-1.10.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37fd87cab83f09842653f08de066ee68f1182b9b5282e4634cdb4b407266bade"}, + {file = "mypy-1.10.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8addf6313777dbb92e9564c5d32ec122bf2c6c39d683ea64de6a1fd98b90fe37"}, + {file = "mypy-1.10.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5cc3ca0a244eb9a5249c7c583ad9a7e881aa5d7b73c35652296ddcdb33b2b9c7"}, + {file = "mypy-1.10.1-cp38-cp38-win_amd64.whl", hash = "sha256:1b3a2ffce52cc4dbaeee4df762f20a2905aa171ef157b82192f2e2f368eec05d"}, + {file = "mypy-1.10.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fe85ed6836165d52ae8b88f99527d3d1b2362e0cb90b005409b8bed90e9059b3"}, + {file = "mypy-1.10.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c2ae450d60d7d020d67ab440c6e3fae375809988119817214440033f26ddf7bf"}, + {file = "mypy-1.10.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6be84c06e6abd72f960ba9a71561c14137a583093ffcf9bbfaf5e613d63fa531"}, + {file = "mypy-1.10.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:2189ff1e39db399f08205e22a797383613ce1cb0cb3b13d8bcf0170e45b96cc3"}, + {file = "mypy-1.10.1-cp39-cp39-win_amd64.whl", hash = "sha256:97a131ee36ac37ce9581f4220311247ab6cba896b4395b9c87af0675a13a755f"}, + {file = "mypy-1.10.1-py3-none-any.whl", hash = "sha256:71d8ac0b906354ebda8ef1673e5fde785936ac1f29ff6987c7483cfbd5a4235a"}, + {file = "mypy-1.10.1.tar.gz", hash = "sha256:1f8f492d7db9e3593ef42d4f115f04e556130f2819ad33ab84551403e97dd4c0"}, +] + +[package.dependencies] +mypy-extensions = ">=1.0.0" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} +typing-extensions = ">=4.1.0" + +[package.extras] +dmypy = ["psutil (>=4.0)"] +install-types = ["pip"] +mypyc = ["setuptools (>=50)"] +reports = ["lxml"] + +[[package]] +name = "mypy-extensions" +version = "1.0.0" +description = "Type system extensions for programs checked with the mypy type checker." +optional = false +python-versions = ">=3.5" +files = [ + {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, + {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, +] + +[[package]] +name = "ollama" +version = "0.3.0" +description = "The official Python client for Ollama." +optional = false +python-versions = "<4.0,>=3.8" +files = [ + {file = "ollama-0.3.0-py3-none-any.whl", hash = "sha256:cd7010c4e2a37d7f08f36cd35c4592b14f1ec0d1bf3df10342cd47963d81ad7a"}, + {file = "ollama-0.3.0.tar.gz", hash = "sha256:6ff493a2945ba76cdd6b7912a1cd79a45cfd9ba9120d14adeb63b2b5a7f353da"}, +] + +[package.dependencies] +httpx = ">=0.27.0,<0.28.0" + +[[package]] +name = "orjson" +version = "3.10.6" +description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy" +optional = false +python-versions = ">=3.8" +files = [ + {file = "orjson-3.10.6-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:fb0ee33124db6eaa517d00890fc1a55c3bfe1cf78ba4a8899d71a06f2d6ff5c7"}, + {file = "orjson-3.10.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c1c4b53b24a4c06547ce43e5fee6ec4e0d8fe2d597f4647fc033fd205707365"}, + {file = "orjson-3.10.6-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eadc8fd310edb4bdbd333374f2c8fec6794bbbae99b592f448d8214a5e4050c0"}, + {file = "orjson-3.10.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:61272a5aec2b2661f4fa2b37c907ce9701e821b2c1285d5c3ab0207ebd358d38"}, + {file = "orjson-3.10.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:57985ee7e91d6214c837936dc1608f40f330a6b88bb13f5a57ce5257807da143"}, + {file = "orjson-3.10.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:633a3b31d9d7c9f02d49c4ab4d0a86065c4a6f6adc297d63d272e043472acab5"}, + {file = "orjson-3.10.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:1c680b269d33ec444afe2bdc647c9eb73166fa47a16d9a75ee56a374f4a45f43"}, + {file = "orjson-3.10.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f759503a97a6ace19e55461395ab0d618b5a117e8d0fbb20e70cfd68a47327f2"}, + {file = "orjson-3.10.6-cp310-none-win32.whl", hash = "sha256:95a0cce17f969fb5391762e5719575217bd10ac5a189d1979442ee54456393f3"}, + {file = "orjson-3.10.6-cp310-none-win_amd64.whl", hash = "sha256:df25d9271270ba2133cc88ee83c318372bdc0f2cd6f32e7a450809a111efc45c"}, + {file = "orjson-3.10.6-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:b1ec490e10d2a77c345def52599311849fc063ae0e67cf4f84528073152bb2ba"}, + {file = "orjson-3.10.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55d43d3feb8f19d07e9f01e5b9be4f28801cf7c60d0fa0d279951b18fae1932b"}, + {file = "orjson-3.10.6-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac3045267e98fe749408eee1593a142e02357c5c99be0802185ef2170086a863"}, + {file = "orjson-3.10.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c27bc6a28ae95923350ab382c57113abd38f3928af3c80be6f2ba7eb8d8db0b0"}, + {file = "orjson-3.10.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d27456491ca79532d11e507cadca37fb8c9324a3976294f68fb1eff2dc6ced5a"}, + {file = "orjson-3.10.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05ac3d3916023745aa3b3b388e91b9166be1ca02b7c7e41045da6d12985685f0"}, + {file = "orjson-3.10.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1335d4ef59ab85cab66fe73fd7a4e881c298ee7f63ede918b7faa1b27cbe5212"}, + {file = "orjson-3.10.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4bbc6d0af24c1575edc79994c20e1b29e6fb3c6a570371306db0993ecf144dc5"}, + {file = "orjson-3.10.6-cp311-none-win32.whl", hash = "sha256:450e39ab1f7694465060a0550b3f6d328d20297bf2e06aa947b97c21e5241fbd"}, + {file = "orjson-3.10.6-cp311-none-win_amd64.whl", hash = "sha256:227df19441372610b20e05bdb906e1742ec2ad7a66ac8350dcfd29a63014a83b"}, + {file = "orjson-3.10.6-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:ea2977b21f8d5d9b758bb3f344a75e55ca78e3ff85595d248eee813ae23ecdfb"}, + {file = "orjson-3.10.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b6f3d167d13a16ed263b52dbfedff52c962bfd3d270b46b7518365bcc2121eed"}, + {file = "orjson-3.10.6-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f710f346e4c44a4e8bdf23daa974faede58f83334289df80bc9cd12fe82573c7"}, + {file = "orjson-3.10.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7275664f84e027dcb1ad5200b8b18373e9c669b2a9ec33d410c40f5ccf4b257e"}, + {file = "orjson-3.10.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0943e4c701196b23c240b3d10ed8ecd674f03089198cf503105b474a4f77f21f"}, + {file = "orjson-3.10.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:446dee5a491b5bc7d8f825d80d9637e7af43f86a331207b9c9610e2f93fee22a"}, + {file = "orjson-3.10.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:64c81456d2a050d380786413786b057983892db105516639cb5d3ee3c7fd5148"}, + {file = "orjson-3.10.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:960db0e31c4e52fa0fc3ecbaea5b2d3b58f379e32a95ae6b0ebeaa25b93dfd34"}, + {file = "orjson-3.10.6-cp312-none-win32.whl", hash = "sha256:a6ea7afb5b30b2317e0bee03c8d34c8181bc5a36f2afd4d0952f378972c4efd5"}, + {file = "orjson-3.10.6-cp312-none-win_amd64.whl", hash = "sha256:874ce88264b7e655dde4aeaacdc8fd772a7962faadfb41abe63e2a4861abc3dc"}, + {file = "orjson-3.10.6-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:66680eae4c4e7fc193d91cfc1353ad6d01b4801ae9b5314f17e11ba55e934183"}, + {file = "orjson-3.10.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:caff75b425db5ef8e8f23af93c80f072f97b4fb3afd4af44482905c9f588da28"}, + {file = "orjson-3.10.6-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3722fddb821b6036fd2a3c814f6bd9b57a89dc6337b9924ecd614ebce3271394"}, + {file = "orjson-3.10.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c2c116072a8533f2fec435fde4d134610f806bdac20188c7bd2081f3e9e0133f"}, + {file = "orjson-3.10.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6eeb13218c8cf34c61912e9df2de2853f1d009de0e46ea09ccdf3d757896af0a"}, + {file = "orjson-3.10.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:965a916373382674e323c957d560b953d81d7a8603fbeee26f7b8248638bd48b"}, + {file = "orjson-3.10.6-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:03c95484d53ed8e479cade8628c9cea00fd9d67f5554764a1110e0d5aa2de96e"}, + {file = "orjson-3.10.6-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:e060748a04cccf1e0a6f2358dffea9c080b849a4a68c28b1b907f272b5127e9b"}, + {file = "orjson-3.10.6-cp38-none-win32.whl", hash = "sha256:738dbe3ef909c4b019d69afc19caf6b5ed0e2f1c786b5d6215fbb7539246e4c6"}, + {file = "orjson-3.10.6-cp38-none-win_amd64.whl", hash = "sha256:d40f839dddf6a7d77114fe6b8a70218556408c71d4d6e29413bb5f150a692ff7"}, + {file = "orjson-3.10.6-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:697a35a083c4f834807a6232b3e62c8b280f7a44ad0b759fd4dce748951e70db"}, + {file = "orjson-3.10.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fd502f96bf5ea9a61cbc0b2b5900d0dd68aa0da197179042bdd2be67e51a1e4b"}, + {file = "orjson-3.10.6-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f215789fb1667cdc874c1b8af6a84dc939fd802bf293a8334fce185c79cd359b"}, + {file = "orjson-3.10.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a2debd8ddce948a8c0938c8c93ade191d2f4ba4649a54302a7da905a81f00b56"}, + {file = "orjson-3.10.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5410111d7b6681d4b0d65e0f58a13be588d01b473822483f77f513c7f93bd3b2"}, + {file = "orjson-3.10.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb1f28a137337fdc18384079fa5726810681055b32b92253fa15ae5656e1dddb"}, + {file = "orjson-3.10.6-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:bf2fbbce5fe7cd1aa177ea3eab2b8e6a6bc6e8592e4279ed3db2d62e57c0e1b2"}, + {file = "orjson-3.10.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:79b9b9e33bd4c517445a62b90ca0cc279b0f1f3970655c3df9e608bc3f91741a"}, + {file = "orjson-3.10.6-cp39-none-win32.whl", hash = "sha256:30b0a09a2014e621b1adf66a4f705f0809358350a757508ee80209b2d8dae219"}, + {file = "orjson-3.10.6-cp39-none-win_amd64.whl", hash = "sha256:49e3bc615652617d463069f91b867a4458114c5b104e13b7ae6872e5f79d0844"}, + {file = "orjson-3.10.6.tar.gz", hash = "sha256:e54b63d0a7c6c54a5f5f726bc93a2078111ef060fec4ecbf34c5db800ca3b3a7"}, +] + +[[package]] +name = "packaging" +version = "24.1" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"}, + {file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"}, +] + +[[package]] +name = "pluggy" +version = "1.5.0" +description = "plugin and hook calling mechanisms for python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, + {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, +] + +[package.extras] +dev = ["pre-commit", "tox"] +testing = ["pytest", "pytest-benchmark"] + +[[package]] +name = "pydantic" +version = "2.8.2" +description = "Data validation using Python type hints" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pydantic-2.8.2-py3-none-any.whl", hash = "sha256:73ee9fddd406dc318b885c7a2eab8a6472b68b8fb5ba8150949fc3db939f23c8"}, + {file = "pydantic-2.8.2.tar.gz", hash = "sha256:6f62c13d067b0755ad1c21a34bdd06c0c12625a22b0fc09c6b149816604f7c2a"}, +] + +[package.dependencies] +annotated-types = ">=0.4.0" +pydantic-core = "2.20.1" +typing-extensions = [ + {version = ">=4.6.1", markers = "python_version < \"3.13\""}, + {version = ">=4.12.2", markers = "python_version >= \"3.13\""}, +] + +[package.extras] +email = ["email-validator (>=2.0.0)"] + +[[package]] +name = "pydantic-core" +version = "2.20.1" +description = "Core functionality for Pydantic validation and serialization" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pydantic_core-2.20.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:3acae97ffd19bf091c72df4d726d552c473f3576409b2a7ca36b2f535ffff4a3"}, + {file = "pydantic_core-2.20.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:41f4c96227a67a013e7de5ff8f20fb496ce573893b7f4f2707d065907bffdbd6"}, + {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f239eb799a2081495ea659d8d4a43a8f42cd1fe9ff2e7e436295c38a10c286a"}, + {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:53e431da3fc53360db73eedf6f7124d1076e1b4ee4276b36fb25514544ceb4a3"}, + {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1f62b2413c3a0e846c3b838b2ecd6c7a19ec6793b2a522745b0869e37ab5bc1"}, + {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5d41e6daee2813ecceea8eda38062d69e280b39df793f5a942fa515b8ed67953"}, + {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d482efec8b7dc6bfaedc0f166b2ce349df0011f5d2f1f25537ced4cfc34fd98"}, + {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e93e1a4b4b33daed65d781a57a522ff153dcf748dee70b40c7258c5861e1768a"}, + {file = "pydantic_core-2.20.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e7c4ea22b6739b162c9ecaaa41d718dfad48a244909fe7ef4b54c0b530effc5a"}, + {file = "pydantic_core-2.20.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4f2790949cf385d985a31984907fecb3896999329103df4e4983a4a41e13e840"}, + {file = "pydantic_core-2.20.1-cp310-none-win32.whl", hash = "sha256:5e999ba8dd90e93d57410c5e67ebb67ffcaadcea0ad973240fdfd3a135506250"}, + {file = "pydantic_core-2.20.1-cp310-none-win_amd64.whl", hash = "sha256:512ecfbefef6dac7bc5eaaf46177b2de58cdf7acac8793fe033b24ece0b9566c"}, + {file = "pydantic_core-2.20.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d2a8fa9d6d6f891f3deec72f5cc668e6f66b188ab14bb1ab52422fe8e644f312"}, + {file = "pydantic_core-2.20.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:175873691124f3d0da55aeea1d90660a6ea7a3cfea137c38afa0a5ffabe37b88"}, + {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:37eee5b638f0e0dcd18d21f59b679686bbd18917b87db0193ae36f9c23c355fc"}, + {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:25e9185e2d06c16ee438ed39bf62935ec436474a6ac4f9358524220f1b236e43"}, + {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:150906b40ff188a3260cbee25380e7494ee85048584998c1e66df0c7a11c17a6"}, + {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ad4aeb3e9a97286573c03df758fc7627aecdd02f1da04516a86dc159bf70121"}, + {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3f3ed29cd9f978c604708511a1f9c2fdcb6c38b9aae36a51905b8811ee5cbf1"}, + {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b0dae11d8f5ded51699c74d9548dcc5938e0804cc8298ec0aa0da95c21fff57b"}, + {file = "pydantic_core-2.20.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:faa6b09ee09433b87992fb5a2859efd1c264ddc37280d2dd5db502126d0e7f27"}, + {file = "pydantic_core-2.20.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9dc1b507c12eb0481d071f3c1808f0529ad41dc415d0ca11f7ebfc666e66a18b"}, + {file = "pydantic_core-2.20.1-cp311-none-win32.whl", hash = "sha256:fa2fddcb7107e0d1808086ca306dcade7df60a13a6c347a7acf1ec139aa6789a"}, + {file = "pydantic_core-2.20.1-cp311-none-win_amd64.whl", hash = "sha256:40a783fb7ee353c50bd3853e626f15677ea527ae556429453685ae32280c19c2"}, + {file = "pydantic_core-2.20.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:595ba5be69b35777474fa07f80fc260ea71255656191adb22a8c53aba4479231"}, + {file = "pydantic_core-2.20.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a4f55095ad087474999ee28d3398bae183a66be4823f753cd7d67dd0153427c9"}, + {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9aa05d09ecf4c75157197f27cdc9cfaeb7c5f15021c6373932bf3e124af029f"}, + {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e97fdf088d4b31ff4ba35db26d9cc472ac7ef4a2ff2badeabf8d727b3377fc52"}, + {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bc633a9fe1eb87e250b5c57d389cf28998e4292336926b0b6cdaee353f89a237"}, + {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d573faf8eb7e6b1cbbcb4f5b247c60ca8be39fe2c674495df0eb4318303137fe"}, + {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26dc97754b57d2fd00ac2b24dfa341abffc380b823211994c4efac7f13b9e90e"}, + {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:33499e85e739a4b60c9dac710c20a08dc73cb3240c9a0e22325e671b27b70d24"}, + {file = "pydantic_core-2.20.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:bebb4d6715c814597f85297c332297c6ce81e29436125ca59d1159b07f423eb1"}, + {file = "pydantic_core-2.20.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:516d9227919612425c8ef1c9b869bbbee249bc91912c8aaffb66116c0b447ebd"}, + {file = "pydantic_core-2.20.1-cp312-none-win32.whl", hash = "sha256:469f29f9093c9d834432034d33f5fe45699e664f12a13bf38c04967ce233d688"}, + {file = "pydantic_core-2.20.1-cp312-none-win_amd64.whl", hash = "sha256:035ede2e16da7281041f0e626459bcae33ed998cca6a0a007a5ebb73414ac72d"}, + {file = "pydantic_core-2.20.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:0827505a5c87e8aa285dc31e9ec7f4a17c81a813d45f70b1d9164e03a813a686"}, + {file = "pydantic_core-2.20.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:19c0fa39fa154e7e0b7f82f88ef85faa2a4c23cc65aae2f5aea625e3c13c735a"}, + {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa223cd1e36b642092c326d694d8bf59b71ddddc94cdb752bbbb1c5c91d833b"}, + {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c336a6d235522a62fef872c6295a42ecb0c4e1d0f1a3e500fe949415761b8a19"}, + {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7eb6a0587eded33aeefea9f916899d42b1799b7b14b8f8ff2753c0ac1741edac"}, + {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:70c8daf4faca8da5a6d655f9af86faf6ec2e1768f4b8b9d0226c02f3d6209703"}, + {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e9fa4c9bf273ca41f940bceb86922a7667cd5bf90e95dbb157cbb8441008482c"}, + {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:11b71d67b4725e7e2a9f6e9c0ac1239bbc0c48cce3dc59f98635efc57d6dac83"}, + {file = "pydantic_core-2.20.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:270755f15174fb983890c49881e93f8f1b80f0b5e3a3cc1394a255706cabd203"}, + {file = "pydantic_core-2.20.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:c81131869240e3e568916ef4c307f8b99583efaa60a8112ef27a366eefba8ef0"}, + {file = "pydantic_core-2.20.1-cp313-none-win32.whl", hash = "sha256:b91ced227c41aa29c672814f50dbb05ec93536abf8f43cd14ec9521ea09afe4e"}, + {file = "pydantic_core-2.20.1-cp313-none-win_amd64.whl", hash = "sha256:65db0f2eefcaad1a3950f498aabb4875c8890438bc80b19362cf633b87a8ab20"}, + {file = "pydantic_core-2.20.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:4745f4ac52cc6686390c40eaa01d48b18997cb130833154801a442323cc78f91"}, + {file = "pydantic_core-2.20.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a8ad4c766d3f33ba8fd692f9aa297c9058970530a32c728a2c4bfd2616d3358b"}, + {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41e81317dd6a0127cabce83c0c9c3fbecceae981c8391e6f1dec88a77c8a569a"}, + {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:04024d270cf63f586ad41fff13fde4311c4fc13ea74676962c876d9577bcc78f"}, + {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eaad4ff2de1c3823fddf82f41121bdf453d922e9a238642b1dedb33c4e4f98ad"}, + {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:26ab812fa0c845df815e506be30337e2df27e88399b985d0bb4e3ecfe72df31c"}, + {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c5ebac750d9d5f2706654c638c041635c385596caf68f81342011ddfa1e5598"}, + {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2aafc5a503855ea5885559eae883978c9b6d8c8993d67766ee73d82e841300dd"}, + {file = "pydantic_core-2.20.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:4868f6bd7c9d98904b748a2653031fc9c2f85b6237009d475b1008bfaeb0a5aa"}, + {file = "pydantic_core-2.20.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:aa2f457b4af386254372dfa78a2eda2563680d982422641a85f271c859df1987"}, + {file = "pydantic_core-2.20.1-cp38-none-win32.whl", hash = "sha256:225b67a1f6d602de0ce7f6c1c3ae89a4aa25d3de9be857999e9124f15dab486a"}, + {file = "pydantic_core-2.20.1-cp38-none-win_amd64.whl", hash = "sha256:6b507132dcfc0dea440cce23ee2182c0ce7aba7054576efc65634f080dbe9434"}, + {file = "pydantic_core-2.20.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:b03f7941783b4c4a26051846dea594628b38f6940a2fdc0df00b221aed39314c"}, + {file = "pydantic_core-2.20.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1eedfeb6089ed3fad42e81a67755846ad4dcc14d73698c120a82e4ccf0f1f9f6"}, + {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:635fee4e041ab9c479e31edda27fcf966ea9614fff1317e280d99eb3e5ab6fe2"}, + {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:77bf3ac639c1ff567ae3b47f8d4cc3dc20f9966a2a6dd2311dcc055d3d04fb8a"}, + {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7ed1b0132f24beeec5a78b67d9388656d03e6a7c837394f99257e2d55b461611"}, + {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c6514f963b023aeee506678a1cf821fe31159b925c4b76fe2afa94cc70b3222b"}, + {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10d4204d8ca33146e761c79f83cc861df20e7ae9f6487ca290a97702daf56006"}, + {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2d036c7187b9422ae5b262badb87a20a49eb6c5238b2004e96d4da1231badef1"}, + {file = "pydantic_core-2.20.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9ebfef07dbe1d93efb94b4700f2d278494e9162565a54f124c404a5656d7ff09"}, + {file = "pydantic_core-2.20.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6b9d9bb600328a1ce523ab4f454859e9d439150abb0906c5a1983c146580ebab"}, + {file = "pydantic_core-2.20.1-cp39-none-win32.whl", hash = "sha256:784c1214cb6dd1e3b15dd8b91b9a53852aed16671cc3fbe4786f4f1db07089e2"}, + {file = "pydantic_core-2.20.1-cp39-none-win_amd64.whl", hash = "sha256:d2fe69c5434391727efa54b47a1e7986bb0186e72a41b203df8f5b0a19a4f669"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:a45f84b09ac9c3d35dfcf6a27fd0634d30d183205230a0ebe8373a0e8cfa0906"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d02a72df14dfdbaf228424573a07af10637bd490f0901cee872c4f434a735b94"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2b27e6af28f07e2f195552b37d7d66b150adbaa39a6d327766ffd695799780f"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:084659fac3c83fd674596612aeff6041a18402f1e1bc19ca39e417d554468482"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:242b8feb3c493ab78be289c034a1f659e8826e2233786e36f2893a950a719bb6"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:38cf1c40a921d05c5edc61a785c0ddb4bed67827069f535d794ce6bcded919fc"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:e0bbdd76ce9aa5d4209d65f2b27fc6e5ef1312ae6c5333c26db3f5ade53a1e99"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:254ec27fdb5b1ee60684f91683be95e5133c994cc54e86a0b0963afa25c8f8a6"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:407653af5617f0757261ae249d3fba09504d7a71ab36ac057c938572d1bc9331"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:c693e916709c2465b02ca0ad7b387c4f8423d1db7b4649c551f27a529181c5ad"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b5ff4911aea936a47d9376fd3ab17e970cc543d1b68921886e7f64bd28308d1"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:177f55a886d74f1808763976ac4efd29b7ed15c69f4d838bbd74d9d09cf6fa86"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:964faa8a861d2664f0c7ab0c181af0bea66098b1919439815ca8803ef136fc4e"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:4dd484681c15e6b9a977c785a345d3e378d72678fd5f1f3c0509608da24f2ac0"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f6d6cff3538391e8486a431569b77921adfcdef14eb18fbf19b7c0a5294d4e6a"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a6d511cc297ff0883bc3708b465ff82d7560193169a8b93260f74ecb0a5e08a7"}, + {file = "pydantic_core-2.20.1.tar.gz", hash = "sha256:26ca695eeee5f9f1aeeb211ffc12f10bcb6f71e2989988fda61dabd65db878d4"}, +] + +[package.dependencies] +typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" + +[[package]] +name = "pytest" +version = "7.4.4" +description = "pytest: simple powerful testing with Python" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pytest-7.4.4-py3-none-any.whl", hash = "sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8"}, + {file = "pytest-7.4.4.tar.gz", hash = "sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "sys_platform == \"win32\""} +exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} +iniconfig = "*" +packaging = "*" +pluggy = ">=0.12,<2.0" +tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} + +[package.extras] +testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] + +[[package]] +name = "pytest-asyncio" +version = "0.23.8" +description = "Pytest support for asyncio" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pytest_asyncio-0.23.8-py3-none-any.whl", hash = "sha256:50265d892689a5faefb84df80819d1ecef566eb3549cf915dfb33569359d1ce2"}, + {file = "pytest_asyncio-0.23.8.tar.gz", hash = "sha256:759b10b33a6dc61cce40a8bd5205e302978bbbcc00e279a8b61d9a6a3c82e4d3"}, +] + +[package.dependencies] +pytest = ">=7.0.0,<9" + +[package.extras] +docs = ["sphinx (>=5.3)", "sphinx-rtd-theme (>=1.0)"] +testing = ["coverage (>=6.2)", "hypothesis (>=5.7.1)"] + +[[package]] +name = "pytest-socket" +version = "0.7.0" +description = "Pytest Plugin to disable socket calls during tests" +optional = false +python-versions = ">=3.8,<4.0" +files = [ + {file = "pytest_socket-0.7.0-py3-none-any.whl", hash = "sha256:7e0f4642177d55d317bbd58fc68c6bd9048d6eadb2d46a89307fa9221336ce45"}, + {file = "pytest_socket-0.7.0.tar.gz", hash = "sha256:71ab048cbbcb085c15a4423b73b619a8b35d6a307f46f78ea46be51b1b7e11b3"}, +] + +[package.dependencies] +pytest = ">=6.2.5" + +[[package]] +name = "pyyaml" +version = "6.0.1" +description = "YAML parser and emitter for Python" +optional = false +python-versions = ">=3.6" +files = [ + {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"}, + {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, + {file = "PyYAML-6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290"}, + {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, + {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, + {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, + {file = "PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, + {file = "PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b"}, + {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, + {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, + {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, + {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, + {file = "PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df"}, + {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd"}, + {file = "PyYAML-6.0.1-cp36-cp36m-win32.whl", hash = "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585"}, + {file = "PyYAML-6.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa"}, + {file = "PyYAML-6.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c"}, + {file = "PyYAML-6.0.1-cp37-cp37m-win32.whl", hash = "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba"}, + {file = "PyYAML-6.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867"}, + {file = "PyYAML-6.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, + {file = "PyYAML-6.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6"}, + {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, + {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, + {file = "PyYAML-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5"}, + {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, + {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, + {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, +] + +[[package]] +name = "requests" +version = "2.32.3" +description = "Python HTTP for Humans." +optional = false +python-versions = ">=3.8" +files = [ + {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, + {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, +] + +[package.dependencies] +certifi = ">=2017.4.17" +charset-normalizer = ">=2,<4" +idna = ">=2.5,<4" +urllib3 = ">=1.21.1,<3" + +[package.extras] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] + +[[package]] +name = "ruff" +version = "0.1.15" +description = "An extremely fast Python linter and code formatter, written in Rust." +optional = false +python-versions = ">=3.7" +files = [ + {file = "ruff-0.1.15-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:5fe8d54df166ecc24106db7dd6a68d44852d14eb0729ea4672bb4d96c320b7df"}, + {file = "ruff-0.1.15-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:6f0bfbb53c4b4de117ac4d6ddfd33aa5fc31beeaa21d23c45c6dd249faf9126f"}, + {file = "ruff-0.1.15-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e0d432aec35bfc0d800d4f70eba26e23a352386be3a6cf157083d18f6f5881c8"}, + {file = "ruff-0.1.15-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9405fa9ac0e97f35aaddf185a1be194a589424b8713e3b97b762336ec79ff807"}, + {file = "ruff-0.1.15-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c66ec24fe36841636e814b8f90f572a8c0cb0e54d8b5c2d0e300d28a0d7bffec"}, + {file = "ruff-0.1.15-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:6f8ad828f01e8dd32cc58bc28375150171d198491fc901f6f98d2a39ba8e3ff5"}, + {file = "ruff-0.1.15-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:86811954eec63e9ea162af0ffa9f8d09088bab51b7438e8b6488b9401863c25e"}, + {file = "ruff-0.1.15-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fd4025ac5e87d9b80e1f300207eb2fd099ff8200fa2320d7dc066a3f4622dc6b"}, + {file = "ruff-0.1.15-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b17b93c02cdb6aeb696effecea1095ac93f3884a49a554a9afa76bb125c114c1"}, + {file = "ruff-0.1.15-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:ddb87643be40f034e97e97f5bc2ef7ce39de20e34608f3f829db727a93fb82c5"}, + {file = "ruff-0.1.15-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:abf4822129ed3a5ce54383d5f0e964e7fef74a41e48eb1dfad404151efc130a2"}, + {file = "ruff-0.1.15-py3-none-musllinux_1_2_i686.whl", hash = "sha256:6c629cf64bacfd136c07c78ac10a54578ec9d1bd2a9d395efbee0935868bf852"}, + {file = "ruff-0.1.15-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:1bab866aafb53da39c2cadfb8e1c4550ac5340bb40300083eb8967ba25481447"}, + {file = "ruff-0.1.15-py3-none-win32.whl", hash = "sha256:2417e1cb6e2068389b07e6fa74c306b2810fe3ee3476d5b8a96616633f40d14f"}, + {file = "ruff-0.1.15-py3-none-win_amd64.whl", hash = "sha256:3837ac73d869efc4182d9036b1405ef4c73d9b1f88da2413875e34e0d6919587"}, + {file = "ruff-0.1.15-py3-none-win_arm64.whl", hash = "sha256:9a933dfb1c14ec7a33cceb1e49ec4a16b51ce3c20fd42663198746efc0427360"}, + {file = "ruff-0.1.15.tar.gz", hash = "sha256:f6dfa8c1b21c913c326919056c390966648b680966febcb796cc9d1aaab8564e"}, +] + +[[package]] +name = "sniffio" +version = "1.3.1" +description = "Sniff out which async library your code is running under" +optional = false +python-versions = ">=3.7" +files = [ + {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, + {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, +] + +[[package]] +name = "syrupy" +version = "4.6.1" +description = "Pytest Snapshot Test Utility" +optional = false +python-versions = ">=3.8.1,<4" +files = [ + {file = "syrupy-4.6.1-py3-none-any.whl", hash = "sha256:203e52f9cb9fa749cf683f29bd68f02c16c3bc7e7e5fe8f2fc59bdfe488ce133"}, + {file = "syrupy-4.6.1.tar.gz", hash = "sha256:37a835c9ce7857eeef86d62145885e10b3cb9615bc6abeb4ce404b3f18e1bb36"}, +] + +[package.dependencies] +pytest = ">=7.0.0,<9.0.0" + +[[package]] +name = "tenacity" +version = "8.5.0" +description = "Retry code until it succeeds" +optional = false +python-versions = ">=3.8" +files = [ + {file = "tenacity-8.5.0-py3-none-any.whl", hash = "sha256:b594c2a5945830c267ce6b79a166228323ed52718f30302c1359836112346687"}, + {file = "tenacity-8.5.0.tar.gz", hash = "sha256:8bc6c0c8a09b31e6cad13c47afbed1a567518250a9a171418582ed8d9c20ca78"}, +] + +[package.extras] +doc = ["reno", "sphinx"] +test = ["pytest", "tornado (>=4.5)", "typeguard"] + +[[package]] +name = "tomli" +version = "2.0.1" +description = "A lil' TOML parser" +optional = false +python-versions = ">=3.7" +files = [ + {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, + {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, +] + +[[package]] +name = "typing-extensions" +version = "4.12.2" +description = "Backported and Experimental Type Hints for Python 3.8+" +optional = false +python-versions = ">=3.8" +files = [ + {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, + {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, +] + +[[package]] +name = "urllib3" +version = "2.2.2" +description = "HTTP library with thread-safe connection pooling, file post, and more." +optional = false +python-versions = ">=3.8" +files = [ + {file = "urllib3-2.2.2-py3-none-any.whl", hash = "sha256:a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472"}, + {file = "urllib3-2.2.2.tar.gz", hash = "sha256:dd505485549a7a552833da5e6063639d0d177c04f23bc3864e41e5dc5f612168"}, +] + +[package.extras] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +h2 = ["h2 (>=4,<5)"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] + +[metadata] +lock-version = "2.0" +python-versions = ">=3.8.1,<4.0" +content-hash = "832fbfff0734b5ca736b8175526b0f548100c280954b0323720e2e3da8430488" diff --git a/libs/partners/ollama/pyproject.toml b/libs/partners/ollama/pyproject.toml new file mode 100644 index 00000000000..159bb232c3a --- /dev/null +++ b/libs/partners/ollama/pyproject.toml @@ -0,0 +1,90 @@ +[tool.poetry] +name = "langchain-ollama" +version = "0.1.0rc0" +description = "An integration package connecting Ollama and LangChain" +authors = [] +readme = "README.md" +repository = "https://github.com/langchain-ai/langchain" +license = "MIT" + +[tool.poetry.urls] +"Source Code" = "https://github.com/langchain-ai/langchain/tree/master/libs/partners/ollama" + +[tool.poetry.dependencies] +python = ">=3.8.1,<4.0" +ollama = ">=0.3.0,<1" +langchain-core = "^0.2.20" + +[tool.poetry.group.test] +optional = true + +[tool.poetry.group.test.dependencies] +pytest = "^7.4.3" +pytest-asyncio = "^0.23.2" +syrupy = "^4.0.2" +pytest-socket = "^0.7.0" +langchain-core = { path = "../../core", develop = true } +langchain-standard-tests = { path = "../../standard-tests", develop = true } + +[tool.poetry.group.codespell] +optional = true + +[tool.poetry.group.codespell.dependencies] +codespell = "^2.2.6" + +[tool.poetry.group.test_integration] +optional = true + +[tool.poetry.group.test_integration.dependencies] + +[tool.poetry.group.lint] +optional = true + +[tool.poetry.group.lint.dependencies] +ruff = "^0.1.8" + +[tool.poetry.group.typing.dependencies] +mypy = "^1.7.1" +langchain-core = { path = "../../core", develop = true } + +[tool.poetry.group.dev] +optional = true + +[tool.poetry.group.dev.dependencies] +langchain-core = { path = "../../core", develop = true } + +[tool.ruff.lint] +select = [ + "E", # pycodestyle + "F", # pyflakes + "I", # isort + "T201", # print +] + +[tool.mypy] +disallow_untyped_defs = "True" + +[tool.coverage.run] +omit = ["tests/*"] + +[build-system] +requires = ["poetry-core>=1.0.0"] +build-backend = "poetry.core.masonry.api" + +[tool.pytest.ini_options] +# --strict-markers will raise errors on unknown marks. +# https://docs.pytest.org/en/7.1.x/how-to/mark.html#raising-errors-on-unknown-marks +# +# https://docs.pytest.org/en/7.1.x/reference/reference.html +# --strict-config any warnings encountered while parsing the `pytest` +# section of the configuration file raise errors. +# +# https://github.com/tophat/syrupy +# --snapshot-warn-unused Prints a warning on unused snapshots rather than fail the test suite. +addopts = "--snapshot-warn-unused --strict-markers --strict-config --durations=5" +# Registering custom markers. +# https://docs.pytest.org/en/7.1.x/example/markers.html#registering-markers +markers = [ + "compile: mark placeholder test used to compile integration tests without running them", +] +asyncio_mode = "auto" diff --git a/libs/partners/ollama/scripts/check_imports.py b/libs/partners/ollama/scripts/check_imports.py new file mode 100644 index 00000000000..365f5fa118d --- /dev/null +++ b/libs/partners/ollama/scripts/check_imports.py @@ -0,0 +1,17 @@ +import sys +import traceback +from importlib.machinery import SourceFileLoader + +if __name__ == "__main__": + files = sys.argv[1:] + has_failure = False + for file in files: + try: + SourceFileLoader("x", file).load_module() + except Exception: + has_faillure = True + print(file) # noqa: T201 + traceback.print_exc() + print() # noqa: T201 + + sys.exit(1 if has_failure else 0) diff --git a/libs/partners/ollama/scripts/check_pydantic.sh b/libs/partners/ollama/scripts/check_pydantic.sh new file mode 100755 index 00000000000..06b5bb81ae2 --- /dev/null +++ b/libs/partners/ollama/scripts/check_pydantic.sh @@ -0,0 +1,27 @@ +#!/bin/bash +# +# This script searches for lines starting with "import pydantic" or "from pydantic" +# in tracked files within a Git repository. +# +# Usage: ./scripts/check_pydantic.sh /path/to/repository + +# Check if a path argument is provided +if [ $# -ne 1 ]; then + echo "Usage: $0 /path/to/repository" + exit 1 +fi + +repository_path="$1" + +# Search for lines matching the pattern within the specified repository +result=$(git -C "$repository_path" grep -E '^import pydantic|^from pydantic') + +# Check if any matching lines were found +if [ -n "$result" ]; then + echo "ERROR: The following lines need to be updated:" + echo "$result" + echo "Please replace the code with an import from langchain_core.pydantic_v1." + echo "For example, replace 'from pydantic import BaseModel'" + echo "with 'from langchain_core.pydantic_v1 import BaseModel'" + exit 1 +fi diff --git a/libs/partners/ollama/scripts/lint_imports.sh b/libs/partners/ollama/scripts/lint_imports.sh new file mode 100755 index 00000000000..19ccec1480c --- /dev/null +++ b/libs/partners/ollama/scripts/lint_imports.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +set -eu + +# Initialize a variable to keep track of errors +errors=0 + +# make sure not importing from langchain, langchain_experimental, or langchain_community +git --no-pager grep '^from langchain\.' . && errors=$((errors+1)) +git --no-pager grep '^from langchain_experimental\.' . && errors=$((errors+1)) +git --no-pager grep '^from langchain_community\.' . && errors=$((errors+1)) + +# Decide on an exit status based on the errors +if [ "$errors" -gt 0 ]; then + exit 1 +else + exit 0 +fi diff --git a/libs/partners/ollama/tests/__init__.py b/libs/partners/ollama/tests/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/libs/partners/ollama/tests/integration_tests/__init__.py b/libs/partners/ollama/tests/integration_tests/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/libs/partners/ollama/tests/integration_tests/test_chat_models.py b/libs/partners/ollama/tests/integration_tests/test_chat_models.py new file mode 100644 index 00000000000..0d54b2c738b --- /dev/null +++ b/libs/partners/ollama/tests/integration_tests/test_chat_models.py @@ -0,0 +1,17 @@ +"""Test chat model integration.""" + +from typing import Type + +from langchain_standard_tests.integration_tests import ChatModelIntegrationTests + +from langchain_ollama.chat_models import ChatOllama + + +class TestChatOllama(ChatModelIntegrationTests): + @property + def chat_model_class(self) -> Type[ChatOllama]: + return ChatOllama + + @property + def chat_model_params(self) -> dict: + return {"model": "llama3-groq-tool-use"} diff --git a/libs/partners/ollama/tests/integration_tests/test_compile.py b/libs/partners/ollama/tests/integration_tests/test_compile.py new file mode 100644 index 00000000000..33ecccdfa0f --- /dev/null +++ b/libs/partners/ollama/tests/integration_tests/test_compile.py @@ -0,0 +1,7 @@ +import pytest + + +@pytest.mark.compile +def test_placeholder() -> None: + """Used for compiling integration tests without running any real tests.""" + pass diff --git a/libs/partners/ollama/tests/integration_tests/test_embeddings.py b/libs/partners/ollama/tests/integration_tests/test_embeddings.py new file mode 100644 index 00000000000..e0310bf3b0f --- /dev/null +++ b/libs/partners/ollama/tests/integration_tests/test_embeddings.py @@ -0,0 +1,20 @@ +"""Test Ollama embeddings.""" + +from langchain_ollama.embeddings import OllamaEmbeddings + + +def test_langchain_ollama_embedding_documents() -> None: + """Test cohere embeddings.""" + documents = ["foo bar"] + embedding = OllamaEmbeddings(model="llama3") + output = embedding.embed_documents(documents) + assert len(output) == 1 + assert len(output[0]) > 0 + + +def test_langchain_ollama_embedding_query() -> None: + """Test cohere embeddings.""" + document = "foo bar" + embedding = OllamaEmbeddings(model="llama3") + output = embedding.embed_query(document) + assert len(output) > 0 diff --git a/libs/partners/ollama/tests/integration_tests/test_llms.py b/libs/partners/ollama/tests/integration_tests/test_llms.py new file mode 100644 index 00000000000..9d731d24e9b --- /dev/null +++ b/libs/partners/ollama/tests/integration_tests/test_llms.py @@ -0,0 +1,66 @@ +"""Test OllamaLLM llm.""" + +from langchain_ollama.llms import OllamaLLM + +MODEL_NAME = "llama3" + + +def test_stream() -> None: + """Test streaming tokens from OpenAI.""" + llm = OllamaLLM(model=MODEL_NAME) + + for token in llm.stream("I'm Pickle Rick"): + assert isinstance(token, str) + + +async def test_astream() -> None: + """Test streaming tokens from OpenAI.""" + llm = OllamaLLM(model=MODEL_NAME) + + async for token in llm.astream("I'm Pickle Rick"): + assert isinstance(token, str) + + +async def test_abatch() -> None: + """Test streaming tokens from OllamaLLM.""" + llm = OllamaLLM(model=MODEL_NAME) + + result = await llm.abatch(["I'm Pickle Rick", "I'm not Pickle Rick"]) + for token in result: + assert isinstance(token, str) + + +async def test_abatch_tags() -> None: + """Test batch tokens from OllamaLLM.""" + llm = OllamaLLM(model=MODEL_NAME) + + result = await llm.abatch( + ["I'm Pickle Rick", "I'm not Pickle Rick"], config={"tags": ["foo"]} + ) + for token in result: + assert isinstance(token, str) + + +def test_batch() -> None: + """Test batch tokens from OllamaLLM.""" + llm = OllamaLLM(model=MODEL_NAME) + + result = llm.batch(["I'm Pickle Rick", "I'm not Pickle Rick"]) + for token in result: + assert isinstance(token, str) + + +async def test_ainvoke() -> None: + """Test invoke tokens from OllamaLLM.""" + llm = OllamaLLM(model=MODEL_NAME) + + result = await llm.ainvoke("I'm Pickle Rick", config={"tags": ["foo"]}) + assert isinstance(result, str) + + +def test_invoke() -> None: + """Test invoke tokens from OllamaLLM.""" + llm = OllamaLLM(model=MODEL_NAME) + + result = llm.invoke("I'm Pickle Rick", config=dict(tags=["foo"])) + assert isinstance(result, str) diff --git a/libs/partners/ollama/tests/unit_tests/__init__.py b/libs/partners/ollama/tests/unit_tests/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/libs/partners/ollama/tests/unit_tests/test_chat_models.py b/libs/partners/ollama/tests/unit_tests/test_chat_models.py new file mode 100644 index 00000000000..d0869143104 --- /dev/null +++ b/libs/partners/ollama/tests/unit_tests/test_chat_models.py @@ -0,0 +1,17 @@ +"""Test chat model integration.""" + +from typing import Dict, Type + +from langchain_standard_tests.unit_tests import ChatModelUnitTests + +from langchain_ollama.chat_models import ChatOllama + + +class TestChatOllama(ChatModelUnitTests): + @property + def chat_model_class(self) -> Type[ChatOllama]: + return ChatOllama + + @property + def chat_model_params(self) -> Dict: + return {"model": "llama3-groq-tool-use"} diff --git a/libs/partners/ollama/tests/unit_tests/test_embeddings.py b/libs/partners/ollama/tests/unit_tests/test_embeddings.py new file mode 100644 index 00000000000..b1db475ce2a --- /dev/null +++ b/libs/partners/ollama/tests/unit_tests/test_embeddings.py @@ -0,0 +1,8 @@ +"""Test embedding model integration.""" + +from langchain_ollama.embeddings import OllamaEmbeddings + + +def test_initialization() -> None: + """Test embedding model initialization.""" + OllamaEmbeddings(model="llama3") diff --git a/libs/partners/ollama/tests/unit_tests/test_imports.py b/libs/partners/ollama/tests/unit_tests/test_imports.py new file mode 100644 index 00000000000..a5afb37b048 --- /dev/null +++ b/libs/partners/ollama/tests/unit_tests/test_imports.py @@ -0,0 +1,12 @@ +from langchain_ollama import __all__ + +EXPECTED_ALL = [ + "OllamaLLM", + "ChatOllama", + "OllamaEmbeddings", + "__version__", +] + + +def test_all_imports() -> None: + assert sorted(EXPECTED_ALL) == sorted(__all__) diff --git a/libs/partners/ollama/tests/unit_tests/test_llms.py b/libs/partners/ollama/tests/unit_tests/test_llms.py new file mode 100644 index 00000000000..56287792a41 --- /dev/null +++ b/libs/partners/ollama/tests/unit_tests/test_llms.py @@ -0,0 +1,8 @@ +"""Test Ollama Chat API wrapper.""" + +from langchain_ollama import OllamaLLM + + +def test_initialization() -> None: + """Test integration initialization.""" + OllamaLLM(model="llama3")