From f09bd0b75ba4946c4cc9d2c93f04eb5264309281 Mon Sep 17 00:00:00 2001 From: Erick Friis Date: Wed, 17 Apr 2024 16:25:36 -0700 Subject: [PATCH] upstage: init package (#20574) Co-authored-by: Sean Cho Co-authored-by: JuHyung-Son --- .github/workflows/_integration_test.yml | 1 + .github/workflows/_release.yml | 1 + docs/docs/integrations/chat/solar.ipynb | 80 - docs/docs/integrations/chat/upstage.ipynb | 157 ++ docs/docs/integrations/llms/solar.ipynb | 95 +- docs/docs/integrations/platforms/index.mdx | 1 + .../docs/integrations/providers/upstage.ipynb | 149 ++ .../integrations/text_embedding/solar.ipynb | 2257 ----------------- .../integrations/text_embedding/upstage.ipynb | 216 ++ docs/vercel.json | 8 + .../langchain_community/chat_models/solar.py | 27 +- .../langchain_community/embeddings/solar.py | 4 + .../langchain_community/llms/solar.py | 2 +- libs/partners/upstage/.gitignore | 1 + libs/partners/upstage/LICENSE | 21 + libs/partners/upstage/Makefile | 57 + libs/partners/upstage/README.md | 25 + .../upstage/langchain_upstage/__init__.py | 4 + .../upstage/langchain_upstage/chat_models.py | 101 + .../upstage/langchain_upstage/embeddings.py | 263 ++ .../upstage/langchain_upstage/py.typed | 0 libs/partners/upstage/poetry.lock | 1273 ++++++++++ libs/partners/upstage/pyproject.toml | 96 + .../partners/upstage/scripts/check_imports.py | 17 + .../upstage/scripts/check_pydantic.sh | 27 + libs/partners/upstage/scripts/lint_imports.sh | 17 + libs/partners/upstage/tests/__init__.py | 0 .../tests/integration_tests/__init__.py | 0 .../integration_tests/test_chat_models.py | 136 + .../test_chat_models_standard.py | 32 + .../tests/integration_tests/test_compile.py | 7 + .../integration_tests/test_embeddings.py | 36 + .../upstage/tests/unit_tests/__init__.py | 0 .../tests/unit_tests/test_chat_models.py | 192 ++ .../unit_tests/test_chat_models_standard.py | 20 + .../tests/unit_tests/test_embeddings.py | 24 + .../upstage/tests/unit_tests/test_imports.py | 10 + .../upstage/tests/unit_tests/test_secrets.py | 13 + 38 files changed, 2947 insertions(+), 2423 deletions(-) delete mode 100644 docs/docs/integrations/chat/solar.ipynb create mode 100644 docs/docs/integrations/chat/upstage.ipynb create mode 100644 docs/docs/integrations/providers/upstage.ipynb delete mode 100644 docs/docs/integrations/text_embedding/solar.ipynb create mode 100644 docs/docs/integrations/text_embedding/upstage.ipynb create mode 100644 libs/partners/upstage/.gitignore create mode 100644 libs/partners/upstage/LICENSE create mode 100644 libs/partners/upstage/Makefile create mode 100644 libs/partners/upstage/README.md create mode 100644 libs/partners/upstage/langchain_upstage/__init__.py create mode 100644 libs/partners/upstage/langchain_upstage/chat_models.py create mode 100644 libs/partners/upstage/langchain_upstage/embeddings.py create mode 100644 libs/partners/upstage/langchain_upstage/py.typed create mode 100644 libs/partners/upstage/poetry.lock create mode 100644 libs/partners/upstage/pyproject.toml create mode 100644 libs/partners/upstage/scripts/check_imports.py create mode 100755 libs/partners/upstage/scripts/check_pydantic.sh create mode 100755 libs/partners/upstage/scripts/lint_imports.sh create mode 100644 libs/partners/upstage/tests/__init__.py create mode 100644 libs/partners/upstage/tests/integration_tests/__init__.py create mode 100644 libs/partners/upstage/tests/integration_tests/test_chat_models.py create mode 100644 libs/partners/upstage/tests/integration_tests/test_chat_models_standard.py create mode 100644 libs/partners/upstage/tests/integration_tests/test_compile.py create mode 100644 libs/partners/upstage/tests/integration_tests/test_embeddings.py create mode 100644 libs/partners/upstage/tests/unit_tests/__init__.py create mode 100644 libs/partners/upstage/tests/unit_tests/test_chat_models.py create mode 100644 libs/partners/upstage/tests/unit_tests/test_chat_models_standard.py create mode 100644 libs/partners/upstage/tests/unit_tests/test_embeddings.py create mode 100644 libs/partners/upstage/tests/unit_tests/test_imports.py create mode 100644 libs/partners/upstage/tests/unit_tests/test_secrets.py diff --git a/.github/workflows/_integration_test.yml b/.github/workflows/_integration_test.yml index 58f27c9744..7cf6e42512 100644 --- a/.github/workflows/_integration_test.yml +++ b/.github/workflows/_integration_test.yml @@ -78,6 +78,7 @@ jobs: MONGODB_ATLAS_URI: ${{ secrets.MONGODB_ATLAS_URI }} VOYAGE_API_KEY: ${{ secrets.VOYAGE_API_KEY }} COHERE_API_KEY: ${{ secrets.COHERE_API_KEY }} + UPSTAGE_API_KEY: ${{ secrets.UPSTAGE_API_KEY }} run: | make integration_tests diff --git a/.github/workflows/_release.yml b/.github/workflows/_release.yml index 49b20777dc..417400d3b9 100644 --- a/.github/workflows/_release.yml +++ b/.github/workflows/_release.yml @@ -215,6 +215,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # for airbyte MONGODB_ATLAS_URI: ${{ secrets.MONGODB_ATLAS_URI }} VOYAGE_API_KEY: ${{ secrets.VOYAGE_API_KEY }} + UPSTAGE_API_KEY: ${{ secrets.UPSTAGE_API_KEY }} run: make integration_tests working-directory: ${{ inputs.working-directory }} diff --git a/docs/docs/integrations/chat/solar.ipynb b/docs/docs/integrations/chat/solar.ipynb deleted file mode 100644 index f91c23e783..0000000000 --- a/docs/docs/integrations/chat/solar.ipynb +++ /dev/null @@ -1,80 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 5, - "id": "a9667088-04e1-4f67-8221-a0072a2d635f", - "metadata": { - "execution": { - "iopub.execute_input": "2024-03-06T17:04:59.273702Z", - "iopub.status.busy": "2024-03-06T17:04:59.272602Z", - "iopub.status.idle": "2024-03-06T17:05:00.129177Z", - "shell.execute_reply": "2024-03-06T17:05:00.124594Z", - "shell.execute_reply.started": "2024-03-06T17:04:59.273646Z" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "AIMessage(content='저는 대형 언어 모델 프로젝트를 구축하고 싶습니다.')" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import os\n", - "\n", - "os.environ[\"SOLAR_API_KEY\"] = \"SOLAR_API_KEY\"\n", - "\n", - "from langchain_community.chat_models.solar import SolarChat\n", - "from langchain_core.messages import HumanMessage, SystemMessage\n", - "\n", - "chat = SolarChat(max_tokens=1024)\n", - "\n", - "messages = [\n", - " SystemMessage(\n", - " content=\"You are a helpful assistant who translates English to Korean.\"\n", - " ),\n", - " HumanMessage(\n", - " content=\"Translate this sentence from English to Korean. I want to build a project of large language model.\"\n", - " ),\n", - "]\n", - "\n", - "chat.invoke(messages)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "8cb792fe-2844-4969-a9e9-f4c0f97b1699", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.0" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/docs/docs/integrations/chat/upstage.ipynb b/docs/docs/integrations/chat/upstage.ipynb new file mode 100644 index 0000000000..46b7c30120 --- /dev/null +++ b/docs/docs/integrations/chat/upstage.ipynb @@ -0,0 +1,157 @@ +{ + "cells": [ + { + "cell_type": "raw", + "id": "910f5772b6af13c9", + "metadata": { + "collapsed": false + }, + "source": [ + "---\n", + "sidebar_label: Upstage\n", + "---" + ] + }, + { + "cell_type": "markdown", + "id": "433f5422ad8e1efa", + "metadata": { + "collapsed": false + }, + "source": [ + "# ChatUpstage\n", + "\n", + "This notebook covers how to get started with Upstage chat models.\n", + "\n", + "## Installation\n", + "\n", + "Install `langchain-upstage` package.\n", + "\n", + "```bash\n", + "pip install -U langchain-upstage\n", + "```" + ] + }, + { + "cell_type": "markdown", + "id": "b3c5c4627fe95eae", + "metadata": { + "collapsed": false + }, + "source": [ + "## Environment Setup\n", + "\n", + "Make sure to set the following environment variables:\n", + "\n", + "- `UPSTAGE_API_KEY`: Your Upstage API key from [Upstage console](https://console.upstage.ai/).\n", + "\n", + "## Usage" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "20a0067b", + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "\n", + "os.environ[\"UPSTAGE_API_KEY\"] = \"YOUR_API_KEY\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8a4d650d76a33494", + "metadata": { + "collapsed": false, + "is_executing": true + }, + "outputs": [], + "source": [ + "from langchain_core.prompts import ChatPromptTemplate\n", + "from langchain_upstage import ChatUpstage\n", + "\n", + "chat = ChatUpstage()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a1679b5cafaf88b9", + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# using chat invoke\n", + "chat.invoke(\"Hello, how are you?\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "698a788a63b5c3e5", + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# using chat stream\n", + "for m in chat.stream(\"Hello, how are you?\"):\n", + " print(m)" + ] + }, + { + "cell_type": "markdown", + "id": "36f8a703", + "metadata": {}, + "source": [ + "## Chaining" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "efa06617e5d4f6b2", + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# using chain\n", + "prompt = ChatPromptTemplate.from_messages(\n", + " [\n", + " (\"system\", \"You are a helpful assistant that translates English to French.\"),\n", + " (\"human\", \"Translate this sentence from English to French. {english_text}.\"),\n", + " ]\n", + ")\n", + "chain = prompt | chat\n", + "\n", + "chain.invoke({\"english_text\": \"Hello, how are you?\"})" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "3.9.13" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/docs/integrations/llms/solar.ipynb b/docs/docs/integrations/llms/solar.ipynb index 7fa0f9b7de..b2682e2d28 100644 --- a/docs/docs/integrations/llms/solar.ipynb +++ b/docs/docs/integrations/llms/solar.ipynb @@ -1,30 +1,19 @@ { "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Solar\n", + "\n", + "*This community integration is deprecated. You should use [`ChatUpstage`](../../chat/upstage) instead to access Solar LLM via the chat model connector.*" + ] + }, { "cell_type": "code", - "execution_count": 1, - "id": "2ff00e23-1a90-4a39-b220-83ebfffd96d6", - "metadata": { - "execution": { - "iopub.execute_input": "2024-03-06T17:10:57.375714Z", - "iopub.status.busy": "2024-03-06T17:10:57.375261Z", - "iopub.status.idle": "2024-03-06T17:11:03.473978Z", - "shell.execute_reply": "2024-03-06T17:11:03.472875Z", - "shell.execute_reply.started": "2024-03-06T17:10:57.375670Z" - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "\"Once upon a time, in a far-off land, there was a young girl named Lily. Lily was a kind and curious girl who loved to explore the world around her. One day, while wandering through the forest, she came across a small, shimmering pond.\\n\\nAs she approached the pond, she saw a beautiful, glowing flower floating on the water's surface. Lily reached out to touch the flower, and as she did, she felt a strange tingling sensation. Suddenly, the flower began to glow even brighter, and Lily was transported to a magical world filled with talking animals and enchanted forests.\\n\\nIn this world, Lily met a wise old owl named Winston who told her that the flower she had touched was a magical one that could grant her any wish she desired. Lily was overjoyed and asked Winston to show her around the magical world.\\n\\nTogether, they explored the enchanted forests, met friendly animals, and discovered hidden treasures. Lily was having the time of her life, but she knew that she couldn't stay in this magical world forever. Eventually, she had to return home.\\n\\nAs she said goodbye to Winston and the magical world, Lily realized that she had learned an important lesson. She had discovered that sometimes, the most magical things in life are the ones that are right in front of us, if we only take the time to look.\\n\\nFrom that day on, Lily always kept her eyes open for the magic in the world around her, and she never forgot the adventure she had in the enchanted forest.\"" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "import os\n", "\n", @@ -37,37 +26,9 @@ }, { "cell_type": "code", - "execution_count": 2, - "id": "67fa1711-f08f-43fa-a3bd-75ae5bc6b988", - "metadata": { - "execution": { - "iopub.execute_input": "2024-03-06T17:11:11.359924Z", - "iopub.status.busy": "2024-03-06T17:11:11.358357Z", - "iopub.status.idle": "2024-03-06T17:11:16.692138Z", - "shell.execute_reply": "2024-03-06T17:11:16.686492Z", - "shell.execute_reply.started": "2024-03-06T17:11:11.359835Z" - } - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/ary/dev/llm/langchain/libs/core/langchain_core/_api/deprecation.py:117: LangChainDeprecationWarning: The function `run` was deprecated in LangChain 0.1.0 and will be removed in 0.2.0. Use invoke instead.\n", - " warn_deprecated(\n" - ] - }, - { - "data": { - "text/plain": [ - "'Step 1: Determine the year Justin Bieber was born.\\nJustin Bieber was born on March 1, 1994.\\n\\nStep 2: Determine the Super Bowl held in 1994.\\nSuper Bowl XXVIII was held in 1994.\\n\\nStep 3: Determine the winning team of Super Bowl XXVIII.\\nThe Dallas Cowboys won Super Bowl XXVIII in 1994.\\n\\nFinal Answer: The Dallas Cowboys won the Super Bowl in the year Justin Bieber was born (1994).'" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ "from langchain.chains import LLMChain\n", "from langchain.prompts import PromptTemplate\n", @@ -86,35 +47,13 @@ "\n", "llm_chain.run(question)" ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "91961983-d0d5-4901-b854-531e158c0416", - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.0" + "name": "python" } }, "nbformat": 4, - "nbformat_minor": 5 + "nbformat_minor": 2 } diff --git a/docs/docs/integrations/platforms/index.mdx b/docs/docs/integrations/platforms/index.mdx index 26410b3ecf..d80e47f049 100644 --- a/docs/docs/integrations/platforms/index.mdx +++ b/docs/docs/integrations/platforms/index.mdx @@ -30,6 +30,7 @@ These providers have standalone `langchain-{provider}` packages for improved ver - [Pinecone](/docs/integrations/providers/pinecone) - [Robocorp](/docs/integrations/providers/robocorp) - [Together AI](/docs/integrations/providers/together) +- [Upstage](/docs/integrations/providers/upstage) - [Voyage AI](/docs/integrations/providers/voyageai) diff --git a/docs/docs/integrations/providers/upstage.ipynb b/docs/docs/integrations/providers/upstage.ipynb new file mode 100644 index 0000000000..e1f79c8666 --- /dev/null +++ b/docs/docs/integrations/providers/upstage.ipynb @@ -0,0 +1,149 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Upstage\n", + "\n", + "[Upstage](https://upstage.ai) is a leading artificial intelligence (AI) company specializing in delivering above-human-grade performance LLM components. \n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Solar LLM\n", + "\n", + "**Solar Mini Chat** is a fast yet powerful advanced large language model focusing on English and Korean. It has been specifically fine-tuned for multi-turn chat purposes, showing enhanced performance across a wide range of natural language processing tasks, like multi-turn conversation or tasks that require an understanding of long contexts, such as RAG (Retrieval-Augmented Generation), compared to other models of a similar size. This fine-tuning equips it with the ability to handle longer conversations more effectively, making it particularly adept for interactive applications." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Installation and Setup\n", + "\n", + "Install `langchain-upstage` package:\n", + "\n", + "```bash\n", + "pip install -qU langchain-core langchain-upstage\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Get an [access token](https://console.upstage.ai) and set it as an environment variable (`UPSTAGE_API_KEY`)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Upstage LangChain integrations\n", + "\n", + "| API | Description | Import | Example usage |\n", + "| --- | --- | --- | --- |\n", + "| Chat | Build assistants using Solar Mini Chat | `from langchain_upstage import ChatUpstage` | [Go](../../chat/upstage) |\n", + "| Text Embedding | Embed strings to vectors | `from langchain_upstage import UpstageEmbeddings` | [Go](../../text_embedding/upstage) |\n", + "\n", + "See [documentations](https://developers.upstage.ai/) for more details about the features." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Quick Examples\n", + "\n", + "### Environment Setup" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "\n", + "os.environ[\"UPSTAGE_API_KEY\"] = \"YOUR_API_KEY\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "### Chat\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from langchain_upstage import ChatUpstage\n", + "\n", + "chat = ChatUpstage()\n", + "response = chat.invoke(\"Hello, how are you?\")\n", + "print(response)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "\n", + "### Text embedding\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from langchain_upstage import UpstageEmbeddings\n", + "\n", + "embeddings = UpstageEmbeddings()\n", + "doc_result = embeddings.embed_documents(\n", + " [\"Sam is a teacher.\", \"This is another document\"]\n", + ")\n", + "print(doc_result)\n", + "\n", + "query_result = embeddings.embed_query(\"What does Sam do?\")\n", + "print(query_result)" + ] + } + ], + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.11" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/docs/docs/integrations/text_embedding/solar.ipynb b/docs/docs/integrations/text_embedding/solar.ipynb deleted file mode 100644 index a2e2443bcb..0000000000 --- a/docs/docs/integrations/text_embedding/solar.ipynb +++ /dev/null @@ -1,2257 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "0f1199c1-f885-4290-b5e7-d1defd49abe1", - "metadata": {}, - "source": [ - "# Soalr\n", - "\n", - "[Solar](https://console.upstage.ai/services/embedding) offers an embeddings service.\n", - "\n", - "This example goes over how to use LangChain to interact with Solar Inference for text embedding." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "595c52be-ee54-4a67-83e0-066b6980d240", - "metadata": { - "ExecuteTime": { - "end_time": "2023-05-24T15:13:15.397075Z", - "start_time": "2023-05-24T15:13:15.387540Z" - }, - "execution": { - "iopub.execute_input": "2024-03-29T15:39:46.059500Z", - "iopub.status.busy": "2024-03-29T15:39:46.058840Z", - "iopub.status.idle": "2024-03-29T15:39:46.066609Z", - "shell.execute_reply": "2024-03-29T15:39:46.063869Z", - "shell.execute_reply.started": "2024-03-29T15:39:46.059467Z" - } - }, - "outputs": [], - "source": [ - "import os\n", - "\n", - "os.environ[\"SOLAR_API_KEY\"] = \"\"" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "d25dc22d-b656-46c6-a42d-eace958590cd", - "metadata": { - "ExecuteTime": { - "end_time": "2023-05-24T15:13:17.176956Z", - "start_time": "2023-05-24T15:13:15.399076Z" - }, - "execution": { - "iopub.execute_input": "2024-03-29T15:39:19.252281Z", - "iopub.status.busy": "2024-03-29T15:39:19.252101Z", - "iopub.status.idle": "2024-03-29T15:39:19.339106Z", - "shell.execute_reply": "2024-03-29T15:39:19.338614Z", - "shell.execute_reply.started": "2024-03-29T15:39:19.252260Z" - } - }, - "outputs": [], - "source": [ - "from langchain_community.embeddings import SolarEmbeddings" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "8397b91f-a1f9-4be6-a699-fedaada7c37a", - "metadata": { - "ExecuteTime": { - "end_time": "2023-05-24T15:13:17.193751Z", - "start_time": "2023-05-24T15:13:17.182053Z" - }, - "execution": { - "iopub.execute_input": "2024-03-29T15:39:19.901573Z", - "iopub.status.busy": "2024-03-29T15:39:19.900935Z", - "iopub.status.idle": "2024-03-29T15:39:19.906540Z", - "shell.execute_reply": "2024-03-29T15:39:19.905345Z", - "shell.execute_reply.started": "2024-03-29T15:39:19.901529Z" - } - }, - "outputs": [], - "source": [ - "embeddings = SolarEmbeddings()" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "abcf98b7-424c-4691-a1cd-862c3d53be11", - "metadata": { - "ExecuteTime": { - "end_time": "2023-05-24T15:13:17.844903Z", - "start_time": "2023-05-24T15:13:17.198751Z" - }, - "execution": { - "iopub.execute_input": "2024-03-29T15:39:20.434581Z", - "iopub.status.busy": "2024-03-29T15:39:20.433117Z", - "iopub.status.idle": "2024-03-29T15:39:22.178650Z", - "shell.execute_reply": "2024-03-29T15:39:22.176058Z", - "shell.execute_reply.started": "2024-03-29T15:39:20.434501Z" - }, - "scrolled": true - }, - "outputs": [], - "source": [ - "query_text = \"This is a test query.\"\n", - "query_result = embeddings.embed_query(query_text)" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "e68b5cc1-8c6b-40bc-8103-ba40e2e06a29", - "metadata": { - "collapsed": true, - "execution": { - "iopub.execute_input": "2024-03-29T15:39:22.182986Z", - "iopub.status.busy": "2024-03-29T15:39:22.182334Z", - "iopub.status.idle": "2024-03-29T15:39:22.207603Z", - "shell.execute_reply": "2024-03-29T15:39:22.206733Z", - "shell.execute_reply.started": "2024-03-29T15:39:22.182936Z" - }, - "jupyter": { - "outputs_hidden": true - }, - "scrolled": true - }, - "outputs": [ - { - "data": { - "text/plain": [ - "[-0.009612835943698883,\n", - " 0.005192634183913469,\n", - " -0.0007243562722578645,\n", - " -0.02104002982378006,\n", - " -0.004770803730934858,\n", - " -0.024557538330554962,\n", - " -0.03355177119374275,\n", - " 0.002088239649310708,\n", - " 0.005196372978389263,\n", - " -0.025660645216703415,\n", - " -0.00485575944185257,\n", - " -0.015621133148670197,\n", - " 0.014192958362400532,\n", - " -0.011372988112270832,\n", - " 0.02780674397945404,\n", - " 0.0032780447509139776,\n", - " -0.015384051948785782,\n", - " 0.014557680115103722,\n", - " -0.002221834147349,\n", - " -0.004098917823284864,\n", - " 0.019031716510653496,\n", - " 0.0012823417782783508,\n", - " 0.00443899305537343,\n", - " 0.010559789836406708,\n", - " 0.0029694491531699896,\n", - " 0.006230773404240608,\n", - " -0.006915881764143705,\n", - " 0.007640184834599495,\n", - " 0.002265951596200466,\n", - " -0.00772814080119133,\n", - " 0.009235503152012825,\n", - " 0.006972184870392084,\n", - " -0.01011792290955782,\n", - " -0.01449803076684475,\n", - " 0.0034380410797894,\n", - " 0.017988374456763268,\n", - " -0.001981367589905858,\n", - " 0.019687853753566742,\n", - " 0.00599881773814559,\n", - " -0.033464811742305756,\n", - " -0.005420745350420475,\n", - " 0.026795821264386177,\n", - " -0.02160714939236641,\n", - " -0.013100927695631981,\n", - " 0.008083999156951904,\n", - " 0.014485755935311317,\n", - " -0.0009732113685458899,\n", - " -0.012884712778031826,\n", - " 0.025087689980864525,\n", - " -0.03585042431950569,\n", - " 0.04038093611598015,\n", - " -0.0028256087098270655,\n", - " -0.0011333064176142216,\n", - " 0.12208127230405807,\n", - " 0.01880730129778385,\n", - " 0.01855185627937317,\n", - " -0.0038447133265435696,\n", - " 0.014112002216279507,\n", - " 0.0018906412879005075,\n", - " 0.010727775283157825,\n", - " 0.007657645735889673,\n", - " -0.010718741454184055,\n", - " 0.0009449812932871282,\n", - " 0.00786784291267395,\n", - " -0.004893230274319649,\n", - " -0.0017297398298978806,\n", - " -0.014865854755043983,\n", - " -0.0161128006875515,\n", - " -0.02509428933262825,\n", - " -0.011645237915217876,\n", - " -0.02115057036280632,\n", - " 0.027240969240665436,\n", - " -0.03013959713280201,\n", - " 0.020873211324214935,\n", - " -0.023083331063389778,\n", - " -0.014274565503001213,\n", - " 0.018262118101119995,\n", - " 0.03854333609342575,\n", - " -0.011523822322487831,\n", - " 0.0016228322638198733,\n", - " 0.018532132729887962,\n", - " -0.021359337493777275,\n", - " -0.0073746913112699986,\n", - " -0.00306093436665833,\n", - " -0.0224248506128788,\n", - " 0.022097807377576828,\n", - " 0.009984304197132587,\n", - " -0.009028983302414417,\n", - " 0.014073910191655159,\n", - " -0.01653546467423439,\n", - " 0.005302212201058865,\n", - " -0.0038526973221451044,\n", - " -0.002201930619776249,\n", - " -0.010180548764765263,\n", - " -0.014118028804659843,\n", - " 0.0020483224652707577,\n", - " -0.004559666849672794,\n", - " -0.025423899292945862,\n", - " -0.030747853219509125,\n", - " 0.0042665028013288975,\n", - " 0.01872953400015831,\n", - " -0.015436792746186256,\n", - " -0.0012506360653787851,\n", - " 0.002480799565091729,\n", - " 0.012969587929546833,\n", - " -0.0030781375244259834,\n", - " -0.003880476113408804,\n", - " 0.005123113747686148,\n", - " 0.01838541217148304,\n", - " -0.012043023481965065,\n", - " 0.005955793894827366,\n", - " 0.005877435207366943,\n", - " -0.021440008655190468,\n", - " 0.007327971048653126,\n", - " 0.005668329074978828,\n", - " -0.020333116874098778,\n", - " -0.010220373049378395,\n", - " -0.025336747989058495,\n", - " 0.009634329937398434,\n", - " -0.022424353286623955,\n", - " 0.0036242357455193996,\n", - " 0.019212981685996056,\n", - " 0.0008957164827734232,\n", - " -0.0027208265382796526,\n", - " 0.0007398341549560428,\n", - " -0.014906578697264194,\n", - " 0.0026832111179828644,\n", - " 0.008843235671520233,\n", - " -0.009975744411349297,\n", - " -0.017594290897250175,\n", - " -0.007390517275780439,\n", - " -0.0018038008129224181,\n", - " 0.025810424238443375,\n", - " -0.03663061559200287,\n", - " -0.016672957688570023,\n", - " 0.009701783768832684,\n", - " -0.015615193173289299,\n", - " -0.0017102754209190607,\n", - " 0.018835289403796196,\n", - " -0.014688814990222454,\n", - " -0.02063092403113842,\n", - " 0.020857617259025574,\n", - " -0.007686559576541185,\n", - " 0.01151837594807148,\n", - " 0.0033596211578696966,\n", - " -0.014537064358592033,\n", - " 0.0036612350959330797,\n", - " -0.013696428388357162,\n", - " -0.011392973363399506,\n", - " -0.001989757176488638,\n", - " -0.020189374685287476,\n", - " -0.024850046262145042,\n", - " 0.00836894754320383,\n", - " -0.020748576149344444,\n", - " -0.004396480042487383,\n", - " 0.03407088667154312,\n", - " 0.021833691745996475,\n", - " 0.02130814827978611,\n", - " 0.006232410203665495,\n", - " 0.0039503793232142925,\n", - " -0.012550112791359425,\n", - " -0.021708764135837555,\n", - " -0.004276007879525423,\n", - " 0.02033841423690319,\n", - " -0.003566763596609235,\n", - " 0.021997885778546333,\n", - " -0.01681455411016941,\n", - " -0.018676014617085457,\n", - " 0.01742757298052311,\n", - " -0.00598341366276145,\n", - " 0.009576573967933655,\n", - " -0.027214830741286278,\n", - " -0.011387384496629238,\n", - " -0.003966265358030796,\n", - " 0.013394222594797611,\n", - " 0.00260531110689044,\n", - " -0.0018310232553631067,\n", - " -0.004507850389927626,\n", - " -0.02329740673303604,\n", - " -0.0011288138339295983,\n", - " -0.029134375974535942,\n", - " 0.009268014691770077,\n", - " -0.0029798042960464954,\n", - " -0.0181003175675869,\n", - " 0.010883892886340618,\n", - " 0.003947356250137091,\n", - " 0.012287858873605728,\n", - " 0.012322994880378246,\n", - " 0.01976163126528263,\n", - " -0.009208086878061295,\n", - " 0.02332279458642006,\n", - " -0.024003351107239723,\n", - " -0.01067762915045023,\n", - " -0.02086666040122509,\n", - " 0.012497895397245884,\n", - " -0.018715588375926018,\n", - " -0.01373564638197422,\n", - " 0.01511511579155922,\n", - " -0.004894122015684843,\n", - " 0.0102867865934968,\n", - " 0.01963503472507,\n", - " 0.010318577289581299,\n", - " -0.025310182943940163,\n", - " 0.009286437183618546,\n", - " -0.014914891682565212,\n", - " -0.022296326234936714,\n", - " 0.0092850960791111,\n", - " -0.003506426466628909,\n", - " -0.009920112788677216,\n", - " 0.0064842249266803265,\n", - " -0.006868164520710707,\n", - " 0.010974838398396969,\n", - " 0.0196993350982666,\n", - " -0.015959274023771286,\n", - " -0.01983925700187683,\n", - " -0.0032453376334160566,\n", - " -0.007468512747436762,\n", - " 0.014899743720889091,\n", - " -0.031494736671447754,\n", - " -0.003950838930904865,\n", - " -0.002206148114055395,\n", - " -0.020258402451872826,\n", - " 0.007158157415688038,\n", - " 0.004851853474974632,\n", - " 0.009486673399806023,\n", - " 0.027494588866829872,\n", - " -0.007189360447227955,\n", - " 0.008461890742182732,\n", - " -0.0004358790465630591,\n", - " 0.0076111904345452785,\n", - " -0.0007249601767398417,\n", - " 0.030181696638464928,\n", - " -0.0005211788229644299,\n", - " 0.018220754340291023,\n", - " 0.005095703527331352,\n", - " 0.004471085965633392,\n", - " -0.009794448502361774,\n", - " -0.0030862493440508842,\n", - " 0.025696849450469017,\n", - " -0.004642312414944172,\n", - " 0.004473725333809853,\n", - " 0.0010625463910400867,\n", - " -0.003617122070863843,\n", - " -0.015058541670441628,\n", - " -0.012431029230356216,\n", - " -0.0048724086955189705,\n", - " -0.0003166526439599693,\n", - " -0.009018509648740292,\n", - " 0.012120921164751053,\n", - " -0.006830958649516106,\n", - " 0.0032028749119490385,\n", - " -0.033147528767585754,\n", - " 0.010441552847623825,\n", - " -0.015877237543463707,\n", - " 0.024799810722470284,\n", - " -0.016226306557655334,\n", - " -0.005698256194591522,\n", - " 0.02627044916152954,\n", - " -0.0183611661195755,\n", - " -0.010974086821079254,\n", - " 0.0007014335715211928,\n", - " 0.028307344764471054,\n", - " -0.0016226363368332386,\n", - " -0.009277352131903172,\n", - " -2.833910366462078e-05,\n", - " -0.0024536976125091314,\n", - " 0.0029181847348809242,\n", - " 0.0004575004568323493,\n", - " -0.001210278132930398,\n", - " -0.02081933431327343,\n", - " -0.005646225530654192,\n", - " 0.013928511179983616,\n", - " -0.007426239550113678,\n", - " -0.00886646006256342,\n", - " -0.0024645142257213593,\n", - " 0.026097506284713745,\n", - " 0.00356660527177155,\n", - " 0.011681274510920048,\n", - " 0.02047765627503395,\n", - " -0.0023202800657600164,\n", - " -0.014933145605027676,\n", - " -0.0023335106670856476,\n", - " -0.015454763546586037,\n", - " -0.006096171215176582,\n", - " 0.003595830872654915,\n", - " 0.010202085599303246,\n", - " 0.0098204854875803,\n", - " 0.028708523139357567,\n", - " 0.004216618370264769,\n", - " -0.0037561950739473104,\n", - " -0.010510984808206558,\n", - " 0.025745287537574768,\n", - " -0.01602184772491455,\n", - " -0.008643347769975662,\n", - " 0.03565279394388199,\n", - " -0.00391846289858222,\n", - " 0.0067151449620723724,\n", - " 0.006582110188901424,\n", - " 0.011514297686517239,\n", - " -0.006655575707554817,\n", - " -0.02781674824655056,\n", - " 0.021441366523504257,\n", - " 0.0023280216846615076,\n", - " -0.006080655846744776,\n", - " -0.0015929073560982943,\n", - " 0.0012868221383541822,\n", - " 0.0185436699539423,\n", - " 0.004185759928077459,\n", - " 0.01332230307161808,\n", - " 0.021739855408668518,\n", - " -0.0018754908815026283,\n", - " -0.00912096630781889,\n", - " -0.019020525738596916,\n", - " -0.010130912065505981,\n", - " 0.0012980804312974215,\n", - " -0.02112886682152748,\n", - " 0.01379894558340311,\n", - " -0.019787294790148735,\n", - " -0.017875097692012787,\n", - " -0.016615208238363266,\n", - " 0.013888785615563393,\n", - " -0.006550563499331474,\n", - " 0.012047415599226952,\n", - " -0.005544085055589676,\n", - " 0.00046558587928302586,\n", - " -0.03268171101808548,\n", - " -0.01981344074010849,\n", - " 0.01326016429811716,\n", - " -0.0039311726577579975,\n", - " -0.016159934923052788,\n", - " 0.007912284694612026,\n", - " 0.017360089346766472,\n", - " -0.00917900912463665,\n", - " -0.015222931280732155,\n", - " 0.01181393675506115,\n", - " -0.0036780585069209337,\n", - " 0.0008283006027340889,\n", - " -0.03979955613613129,\n", - " 0.005076248664408922,\n", - " -0.00943879596889019,\n", - " 0.0049046906642615795,\n", - " 0.0503443107008934,\n", - " 0.007274238392710686,\n", - " -0.024708405137062073,\n", - " 0.03180333226919174,\n", - " -0.024111684411764145,\n", - " 0.014323772862553596,\n", - " -0.009170287288725376,\n", - " 0.0014948569005355239,\n", - " 0.014668592251837254,\n", - " 0.009418771602213383,\n", - " 0.024519264698028564,\n", - " -0.0028209055308252573,\n", - " -0.011101690120995045,\n", - " 0.008618107996881008,\n", - " -0.008609072305262089,\n", - " -0.002511126920580864,\n", - " -0.012777554802596569,\n", - " 0.02389429695904255,\n", - " -0.00396793894469738,\n", - " -0.00549497501924634,\n", - " 0.009450403042137623,\n", - " 0.007008947432041168,\n", - " 0.02295737899839878,\n", - " -0.03609155863523483,\n", - " -0.005497496109455824,\n", - " -0.011227840557694435,\n", - " 0.005365726538002491,\n", - " 0.0178525410592556,\n", - " -0.009112250059843063,\n", - " 0.023930715397000313,\n", - " -0.019720004871487617,\n", - " -0.0016240220284089446,\n", - " -0.008786618709564209,\n", - " -0.0031093028374016285,\n", - " 0.0060302517376840115,\n", - " -0.01411086693406105,\n", - " 0.009259095415472984,\n", - " 0.026444211602211,\n", - " -0.012551960535347462,\n", - " 0.0007369715603999794,\n", - " 0.029658250510692596,\n", - " 0.012057793326675892,\n", - " 0.007323889993131161,\n", - " 0.006429325323551893,\n", - " -0.04151007905602455,\n", - " -0.013682323507964611,\n", - " 0.015200085006654263,\n", - " 0.005704157520085573,\n", - " -0.0024766852147877216,\n", - " 0.009210777468979359,\n", - " 0.019238585606217384,\n", - " 0.01412604283541441,\n", - " 0.008283768780529499,\n", - " -0.012045786716043949,\n", - " -0.019151538610458374,\n", - " -0.008146371692419052,\n", - " -0.0003192038566339761,\n", - " -0.013413612730801105,\n", - " -0.005666160024702549,\n", - " 0.02234991453588009,\n", - " -0.017263537272810936,\n", - " -0.0004641618288587779,\n", - " 0.011303545907139778,\n", - " -0.007437041960656643,\n", - " 0.009322786703705788,\n", - " -0.011791775934398174,\n", - " -0.029371924698352814,\n", - " 0.011847944930195808,\n", - " -0.012746450491249561,\n", - " 0.0006847915938124061,\n", - " 0.007335502654314041,\n", - " 0.002275111386552453,\n", - " -0.02154112234711647,\n", - " 0.02269313670694828,\n", - " 0.022147901356220245,\n", - " 0.004866878502070904,\n", - " -0.018933145329356194,\n", - " 0.005171678960323334,\n", - " 0.0040926444344222546,\n", - " 0.014178114011883736,\n", - " -0.00392212113365531,\n", - " 0.008461268618702888,\n", - " -0.007197211030870676,\n", - " 0.031356364488601685,\n", - " 0.006938708946108818,\n", - " 0.004082654602825642,\n", - " 0.01137610711157322,\n", - " 0.0035184617154300213,\n", - " 0.02558928169310093,\n", - " -0.002163136610761285,\n", - " 0.018033865839242935,\n", - " -0.004614625591784716,\n", - " 0.00650483462959528,\n", - " -0.008514108136296272,\n", - " -0.028073208406567574,\n", - " 0.013087261468172073,\n", - " -0.007777229882776737,\n", - " 0.013863285072147846,\n", - " 2.2165347672853386e-06,\n", - " 0.02258075214922428,\n", - " 0.02859872579574585,\n", - " 0.009593948721885681,\n", - " 0.005797175690531731,\n", - " 0.013160321861505508,\n", - " 0.010131489485502243,\n", - " 0.007077783811837435,\n", - " 0.019415685907006264,\n", - " 0.02302323468029499,\n", - " -0.02055949531495571,\n", - " -0.014745713211596012,\n", - " -0.012071777135133743,\n", - " 0.005507923197001219,\n", - " -0.006524238269776106,\n", - " -0.010228286497294903,\n", - " 0.01565360277891159,\n", - " 0.009641028009355068,\n", - " -0.01614265702664852,\n", - " 0.000580347201321274,\n", - " 0.0005364116514101624,\n", - " -0.023418348282575607,\n", - " -0.02351146936416626,\n", - " 0.0065367743372917175,\n", - " 0.011478199623525143,\n", - " 0.0029822385404258966,\n", - " 0.016715558245778084,\n", - " 0.016576580703258514,\n", - " -0.0019007038790732622,\n", - " -0.01610071025788784,\n", - " 0.03106078691780567,\n", - " 0.008976636454463005,\n", - " -0.015568850561976433,\n", - " 0.01831594854593277,\n", - " 0.021407460793852806,\n", - " 0.012749534100294113,\n", - " 0.022004077211022377,\n", - " 0.01768640987575054,\n", - " -0.0031022171024233103,\n", - " 0.003041802207008004,\n", - " 0.005421467125415802,\n", - " -0.013152116909623146,\n", - " 0.014155357144773006,\n", - " -0.0011325232917442918,\n", - " -0.0008713186252862215,\n", - " 0.014029284939169884,\n", - " 0.005906077567487955,\n", - " 0.008186781778931618,\n", - " -0.006220459938049316,\n", - " 0.015955379232764244,\n", - " -0.017231818288564682,\n", - " 0.01309678889811039,\n", - " 0.01892782561480999,\n", - " 0.0074506704695522785,\n", - " 0.00252294703386724,\n", - " 0.021975934505462646,\n", - " -0.008126703090965748,\n", - " 0.029144490137696266,\n", - " -0.01697709411382675,\n", - " 0.005407759919762611,\n", - " 0.007914980873465538,\n", - " 0.016133509576320648,\n", - " -0.002494237618520856,\n", - " 0.020019978284835815,\n", - " -0.005621489603072405,\n", - " 0.020884649828076363,\n", - " -0.022830966860055923,\n", - " 0.003192953998222947,\n", - " 0.009623222053050995,\n", - " -0.016929129138588905,\n", - " 0.008178411982953548,\n", - " -0.006764373742043972,\n", - " 0.011279193684458733,\n", - " -0.013274733908474445,\n", - " 0.0067980908788740635,\n", - " -0.021725470200181007,\n", - " -0.009492350742220879,\n", - " -0.013368367217481136,\n", - " -0.0005820324295200408,\n", - " 0.010973022319376469,\n", - " -0.016382437199354172,\n", - " -0.013291421346366405,\n", - " 0.01631794311106205,\n", - " 0.026708001270890236,\n", - " -0.01604301854968071,\n", - " 0.029547305777668953,\n", - " -0.012892454862594604,\n", - " -0.018933599814772606,\n", - " -0.0046638804487884045,\n", - " 0.0424632728099823,\n", - " 0.005532404873520136,\n", - " -0.00618926202878356,\n", - " 0.01928447186946869,\n", - " -0.016525447368621826,\n", - " 0.005132186226546764,\n", - " 0.017395589500665665,\n", - " 0.010804228484630585,\n", - " -0.01774679683148861,\n", - " -0.03498842939734459,\n", - " -0.009244519285857677,\n", - " 0.002269187942147255,\n", - " -0.017580782994627953,\n", - " 0.03342902287840843,\n", - " 0.019035592675209045,\n", - " -0.010364466346800327,\n", - " -0.0010365818161517382,\n", - " -0.008475861512124538,\n", - " -0.024768078699707985,\n", - " 0.007811828516423702,\n", - " 0.0007224922883324325,\n", - " 0.0053406283259391785,\n", - " 0.015365003608167171,\n", - " 0.014544358476996422,\n", - " 0.006721693091094494,\n", - " -0.0053669000044465065,\n", - " -0.0061641717329621315,\n", - " 0.0167725570499897,\n", - " -0.012045960873365402,\n", - " -0.017861204221844673,\n", - " -0.002282701665535569,\n", - " -0.01277306117117405,\n", - " -0.026085669174790382,\n", - " 0.02142571657896042,\n", - " 0.01169880572706461,\n", - " 0.00661891745403409,\n", - " -0.008942786604166031,\n", - " -0.0005775789613835514,\n", - " 0.017732907086610794,\n", - " 1.2999666068935767e-05,\n", - " 0.01615849696099758,\n", - " 0.03065437451004982,\n", - " -0.00019303745648358017,\n", - " 0.024879885837435722,\n", - " 0.009697318077087402,\n", - " 0.003906070487573743,\n", - " -0.001108623924665153,\n", - " 0.010587952099740505,\n", - " -0.015321311540901661,\n", - " 0.014482120983302593,\n", - " -0.014630504883825779,\n", - " 0.008109631016850471,\n", - " 0.013947028666734695,\n", - " 0.020127564668655396,\n", - " -0.02681734412908554,\n", - " -0.001262568635866046,\n", - " -0.02351762354373932,\n", - " -0.0034904133062809706,\n", - " -0.025115966796875,\n", - " 0.00041233477531932294,\n", - " -0.03210841864347458,\n", - " -0.014403645880520344,\n", - " 0.01508869044482708,\n", - " -0.01426045224070549,\n", - " 0.017466282472014427,\n", - " 0.005857695359736681,\n", - " -0.0013472529826685786,\n", - " -0.002424640581011772,\n", - " -0.0014821934746578336,\n", - " -0.017711561173200607,\n", - " 0.020194660872220993,\n", - " 0.007711687125265598,\n", - " -0.006724135018885136,\n", - " -0.01219252496957779,\n", - " -0.002240788424387574,\n", - " -0.017092730849981308,\n", - " -0.013157549314200878,\n", - " -0.004683325998485088,\n", - " -0.006799815222620964,\n", - " 0.0013616927899420261,\n", - " 0.003650276456028223,\n", - " 0.004854041151702404,\n", - " 0.014137422665953636,\n", - " 0.015527388080954552,\n", - " -0.03160852566361427,\n", - " 0.0007112329476512969,\n", - " -0.002946733497083187,\n", - " -0.021824302151799202,\n", - " 0.006391474977135658,\n", - " -0.03130871802568436,\n", - " 0.002444390906020999,\n", - " -0.02205747179687023,\n", - " -0.0009384482982568443,\n", - " 0.0037650992162525654,\n", - " -0.005415714345872402,\n", - " 0.0182612556964159,\n", - " -0.006117376498878002,\n", - " -0.01413779053837061,\n", - " -0.014110713265836239,\n", - " -0.0016754124080762267,\n", - " -0.0027341260574758053,\n", - " -0.017401142045855522,\n", - " -0.014090651646256447,\n", - " -0.006296559236943722,\n", - " 0.011119811795651913,\n", - " -0.013338878750801086,\n", - " 0.022201355546712875,\n", - " -0.008421794511377811,\n", - " -0.024969641119241714,\n", - " 0.016300074756145477,\n", - " 0.00221728952601552,\n", - " -0.025288395583629608,\n", - " -0.024768929928541183,\n", - " -0.005367298610508442,\n", - " -0.011850270442664623,\n", - " -7.055165769997984e-05,\n", - " -0.02498014271259308,\n", - " 0.002521191257983446,\n", - " -0.0005549240158870816,\n", - " -0.002553754486143589,\n", - " 0.01495042908936739,\n", - " -0.0168534517288208,\n", - " 0.01468364056199789,\n", - " -0.0002745247620623559,\n", - " -0.0012332743499428034,\n", - " 0.02281203493475914,\n", - " -0.0019585280679166317,\n", - " 0.0025182447861880064,\n", - " 0.007781229913234711,\n", - " -0.009566482156515121,\n", - " -0.013032464310526848,\n", - " -0.03374152258038521,\n", - " -0.007732870988547802,\n", - " -0.005964191630482674,\n", - " -0.027642998844385147,\n", - " -0.002493371721357107,\n", - " 0.013606597669422626,\n", - " 0.0027858021203428507,\n", - " -0.004969800356775522,\n", - " -0.008887036703526974,\n", - " 0.017043963074684143,\n", - " -0.01029882486909628,\n", - " -0.00596567802131176,\n", - " -0.0030601369217038155,\n", - " -0.0038627428002655506,\n", - " 0.004196135327219963,\n", - " -0.02537938579916954,\n", - " -0.011517830193042755,\n", - " 0.003922145813703537,\n", - " 0.024173494428396225,\n", - " 0.007839345373213291,\n", - " 0.018174149096012115,\n", - " 0.01833866909146309,\n", - " 0.007239053025841713,\n", - " 0.006254516541957855,\n", - " 0.017041588202118874,\n", - " 0.05501232296228409,\n", - " 0.006659498438239098,\n", - " -0.03173157200217247,\n", - " 0.011870153248310089,\n", - " -0.044423483312129974,\n", - " 0.00765900406986475,\n", - " 0.003303903853520751,\n", - " -0.00989844836294651,\n", - " -0.00102717406116426,\n", - " 0.010751670226454735,\n", - " -0.01436996553093195,\n", - " 0.0007458398467861116,\n", - " -0.02406933903694153,\n", - " 0.013927231542766094,\n", - " -0.0023855960462242365,\n", - " -0.018460353836417198,\n", - " -0.013494566082954407,\n", - " -0.024894949048757553,\n", - " 0.0027491513174027205,\n", - " 0.01960483193397522,\n", - " 0.0020772041752934456,\n", - " 0.02088438905775547,\n", - " -0.007962409406900406,\n", - " 0.01874588616192341,\n", - " -0.0119165675714612,\n", - " 0.006801045034080744,\n", - " 0.005523370113223791,\n", - " 0.005721281748265028,\n", - " 8.281860937131569e-05,\n", - " 0.022861666977405548,\n", - " 0.031650010496377945,\n", - " 0.011051682755351067,\n", - " 0.014575383625924587,\n", - " -0.008896112442016602,\n", - " -0.0064266943372786045,\n", - " -0.008789743296802044,\n", - " -0.005537368822842836,\n", - " -0.029184775426983833,\n", - " -0.012891268357634544,\n", - " 0.008750290609896183,\n", - " -0.013342045247554779,\n", - " -0.018940439447760582,\n", - " -0.010383781976997852,\n", - " 0.009893164038658142,\n", - " 0.00484957080334425,\n", - " -0.003208030480891466,\n", - " 0.002685114974156022,\n", - " 0.02932116575539112,\n", - " -0.005980887915939093,\n", - " -0.02094399183988571,\n", - " 0.0011950458865612745,\n", - " -0.0013160411035642028,\n", - " -0.015973364934325218,\n", - " 0.006585970055311918,\n", - " -0.013596748933196068,\n", - " -0.014491614885628223,\n", - " -0.002483466174453497,\n", - " -0.015564654022455215,\n", - " -0.004617113154381514,\n", - " 0.005632814951241016,\n", - " 0.013269959948956966,\n", - " -0.0102331368252635,\n", - " -0.01374089252203703,\n", - " 0.010636764578521252,\n", - " -0.00011052726040361449,\n", - " -0.020722508430480957,\n", - " -0.00012687862908933312,\n", - " -0.00044137012446299195,\n", - " -0.002424860605970025,\n", - " 0.031966038048267365,\n", - " -0.02460266463458538,\n", - " 0.0014620558358728886,\n", - " -0.005570637993514538,\n", - " -0.017171526327729225,\n", - " -0.004151195287704468,\n", - " -0.00979167316108942,\n", - " 0.013350186869502068,\n", - " -0.03380487486720085,\n", - " 0.004512457642704248,\n", - " -0.030104100704193115,\n", - " 0.00020586112805176526,\n", - " -0.004360636696219444,\n", - " 0.024787265807390213,\n", - " -0.021622182801365852,\n", - " -0.013142443262040615,\n", - " -0.008689089678227901,\n", - " -0.019221695140004158,\n", - " 0.015511195175349712,\n", - " 0.004761400632560253,\n", - " -0.018051810562610626,\n", - " 0.0030495638493448496,\n", - " 0.013037407770752907,\n", - " 0.018515795469284058,\n", - " 0.030628709122538567,\n", - " -0.008378121070563793,\n", - " 0.005477331578731537,\n", - " 0.030206406489014626,\n", - " -0.018550679087638855,\n", - " -0.005074893124401569,\n", - " 0.018194109201431274,\n", - " -0.022404147312045097,\n", - " 0.005452401004731655,\n", - " -0.0061740027740597725,\n", - " 0.007163482252508402,\n", - " -0.007498984690755606,\n", - " 0.0013850930845364928,\n", - " 0.019100110977888107,\n", - " -0.00539770070463419,\n", - " -0.02813248336315155,\n", - " 0.021426543593406677,\n", - " -0.0020243236795067787,\n", - " -0.012561444193124771,\n", - " 0.005466975271701813,\n", - " -0.0004141190438531339,\n", - " 0.008710913360118866,\n", - " -0.01259232871234417,\n", - " 0.02724912390112877,\n", - " 0.014795316383242607,\n", - " 0.0017043438274413347,\n", - " 0.03569337725639343,\n", - " 0.009455371648073196,\n", - " -0.008252507075667381,\n", - " 0.034219030290842056,\n", - " -0.003471348201856017,\n", - " -0.005572606343775988,\n", - " 0.002426962135359645,\n", - " 0.006176020484417677,\n", - " -0.02644067071378231,\n", - " -0.0015432301443070173,\n", - " 0.01251029409468174,\n", - " 0.006000349763780832,\n", - " 0.012471841648221016,\n", - " -0.001398047199472785,\n", - " -0.013531356118619442,\n", - " -0.01039454061537981,\n", - " -0.004671303555369377,\n", - " 0.00626105023548007,\n", - " -0.0019008438102900982,\n", - " 0.020720865577459335,\n", - " 0.012591890059411526,\n", - " -0.0053941598162055016,\n", - " -0.025267941877245903,\n", - " 0.005296881310641766,\n", - " 0.0342840850353241,\n", - " -0.01581035926938057,\n", - " 0.004621365573257208,\n", - " 0.0030632903799414635,\n", - " 0.007074137218296528,\n", - " -0.005330575164407492,\n", - " -0.0030899883713573217,\n", - " 0.016070717945694923,\n", - " -0.045663513243198395,\n", - " -0.0010349617805331945,\n", - " -0.007994215004146099,\n", - " -0.017588473856449127,\n", - " -0.014046519063413143,\n", - " -0.0028416865970939398,\n", - " -0.00362231838516891,\n", - " -0.0026648773346096277,\n", - " 0.006982769817113876,\n", - " 0.006077419500797987,\n", - " -0.012517980299890041,\n", - " 0.016320543363690376,\n", - " 0.006708477158099413,\n", - " -0.02435096725821495,\n", - " 0.020286191254854202,\n", - " -0.001916136359795928,\n", - " -0.020461106672883034,\n", - " 0.03223827853798866,\n", - " -0.008052353747189045,\n", - " 0.03137693554162979,\n", - " 0.0007936311303637922,\n", - " 0.026611249893903732,\n", - " -0.013749106787145138,\n", - " -0.005045521073043346,\n", - " 0.01802709884941578,\n", - " 0.004193250089883804,\n", - " -0.0074610221199691296,\n", - " 0.012689094990491867,\n", - " -0.001128576579503715,\n", - " -0.008252380415797234,\n", - " -0.008191979490220547,\n", - " -0.008434522897005081,\n", - " -0.02567083016037941,\n", - " -0.006246744189411402,\n", - " -0.024753373116254807,\n", - " 0.005886504426598549,\n", - " -0.0030029790941625834,\n", - " 0.011522923596203327,\n", - " 0.0011658172588795424,\n", - " 0.00444172415882349,\n", - " 0.03330754488706589,\n", - " -0.028662286698818207,\n", - " -0.0243659857660532,\n", - " -0.016821498051285744,\n", - " 0.018770718947052956,\n", - " 0.01755281165242195,\n", - " 0.015005288645625114,\n", - " -0.0038322769105434418,\n", - " 0.016096081584692,\n", - " 0.005756937898695469,\n", - " 0.004192751832306385,\n", - " 0.01487874798476696,\n", - " -0.018225383013486862,\n", - " 0.00040869449730962515,\n", - " -0.009901725687086582,\n", - " 0.011486656963825226,\n", - " 0.022721173241734505,\n", - " 0.008551487699151039,\n", - " -0.006110388319939375,\n", - " 0.027253510430455208,\n", - " 0.025853939354419708,\n", - " -0.011822552420198917,\n", - " 0.011195230297744274,\n", - " 0.023045159876346588,\n", - " 0.0054076313972473145,\n", - " -0.0376087948679924,\n", - " -0.012947173789143562,\n", - " -0.01948842778801918,\n", - " -0.006805140990763903,\n", - " -0.016297485679388046,\n", - " 0.01277123112231493,\n", - " 0.005486239679157734,\n", - " 0.013064263388514519,\n", - " -0.01799067109823227,\n", - " -0.000999069889076054,\n", - " 0.0032741266768425703,\n", - " -0.004913169424980879,\n", - " 0.010930745862424374,\n", - " -0.0022265056613832712,\n", - " -0.007856646552681923,\n", - " 0.024474594742059708,\n", - " -0.01740814931690693,\n", - " -0.0058359322138130665,\n", - " -0.0076317558996379375,\n", - " 0.02482902817428112,\n", - " -0.0038906049448996782,\n", - " 0.009218372404575348,\n", - " 0.011257494799792767,\n", - " 0.02811446040868759,\n", - " 0.01012449711561203,\n", - " -0.009031664580106735,\n", - " -0.010511829517781734,\n", - " 0.03654777631163597,\n", - " 0.0030149882659316063,\n", - " 0.022236613556742668,\n", - " -0.011791135184466839,\n", - " -7.580777310067788e-05,\n", - " 0.00784097146242857,\n", - " -0.0025190457236021757,\n", - " -0.0004561890091281384,\n", - " -0.01860455982387066,\n", - " 0.0008333594887517393,\n", - " -0.002219945890828967,\n", - " 0.02410193160176277,\n", - " -0.006336560007184744,\n", - " 0.013507379218935966,\n", - " 0.01625504530966282,\n", - " -0.005512222182005644,\n", - " 0.017335521057248116,\n", - " 0.001445610774680972,\n", - " -0.014676893129944801,\n", - " -0.01950543373823166,\n", - " 0.027771327644586563,\n", - " 0.010210845619440079,\n", - " -0.003559559816494584,\n", - " 0.0018264109967276454,\n", - " 0.0008935378864407539,\n", - " 0.0026427831035107374,\n", - " 0.01573711261153221,\n", - " 0.0014196783304214478,\n", - " 0.014842817559838295,\n", - " -0.0027134984266012907,\n", - " 0.0011339110787957907,\n", - " -0.002446472179144621,\n", - " -0.03947463259100914,\n", - " -0.012350163422524929,\n", - " -0.0068352906964719296,\n", - " 0.016724968329072,\n", - " 0.02971581369638443,\n", - " -0.0023575620725750923,\n", - " -0.0028808927163481712,\n", - " 0.0055499328300356865,\n", - " -0.024555519223213196,\n", - " 0.008399837650358677,\n", - " -0.013832250609993935,\n", - " -0.010051798075437546,\n", - " 0.0062475660815835,\n", - " 0.010128488764166832,\n", - " -0.03516209498047829,\n", - " 0.016856608912348747,\n", - " -0.01280664186924696,\n", - " -0.008145435713231564,\n", - " -0.013778863474726677,\n", - " -0.007605956867337227,\n", - " -0.0023700245656073093,\n", - " -0.02099779061973095,\n", - " -0.00743044214323163,\n", - " -0.02712254971265793,\n", - " 0.029353691264986992,\n", - " 0.005820101127028465,\n", - " 0.012708257883787155,\n", - " -0.004160662181675434,\n", - " -0.02543794736266136,\n", - " 0.002900070045143366,\n", - " 0.007988318800926208,\n", - " -0.007849618792533875,\n", - " 0.00019223698473069817,\n", - " -0.0029571824707090855,\n", - " 0.0017812871374189854,\n", - " -0.0067518725991249084,\n", - " -0.010918932035565376,\n", - " -0.0021185216028243303,\n", - " -0.01898864097893238,\n", - " -0.014883413910865784,\n", - " -0.024012362584471703,\n", - " ...]" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "query_result" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "98897454-b280-4ee1-bbb9-2c6c15342f87", - "metadata": { - "ExecuteTime": { - "end_time": "2023-05-24T15:13:18.605339Z", - "start_time": "2023-05-24T15:13:17.845906Z" - }, - "execution": { - "iopub.execute_input": "2024-03-29T15:39:28.164009Z", - "iopub.status.busy": "2024-03-29T15:39:28.161759Z", - "iopub.status.idle": "2024-03-29T15:39:30.217232Z", - "shell.execute_reply": "2024-03-29T15:39:30.215348Z", - "shell.execute_reply.started": "2024-03-29T15:39:28.163876Z" - }, - "scrolled": true - }, - "outputs": [], - "source": [ - "document_text = \"This is a test document.\"\n", - "document_result = embeddings.embed_documents([document_text])" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "21e03cca-bdb2-49e4-95d7-105cf6a5874d", - "metadata": { - "collapsed": true, - "execution": { - "iopub.execute_input": "2024-03-29T15:39:32.330215Z", - "iopub.status.busy": "2024-03-29T15:39:32.328926Z", - "iopub.status.idle": "2024-03-29T15:39:32.356001Z", - "shell.execute_reply": "2024-03-29T15:39:32.355284Z", - "shell.execute_reply.started": "2024-03-29T15:39:32.330135Z" - }, - "jupyter": { - "outputs_hidden": true - } - }, - "outputs": [ - { - "data": { - "text/plain": [ - "[[-0.019484492018818855,\n", - " 0.0004918322083540261,\n", - " -0.007027746178209782,\n", - " -0.012673289515078068,\n", - " -0.005353343673050404,\n", - " -0.03189416974782944,\n", - " -0.027227548882365227,\n", - " 0.0009138379828073084,\n", - " -0.0017150233034044504,\n", - " -0.028936535120010376,\n", - " -0.003939046058803797,\n", - " -0.026341330260038376,\n", - " 0.008856299333274364,\n", - " -0.013755874708294868,\n", - " 0.016992073506116867,\n", - " -0.0032008232083171606,\n", - " -0.008546354249119759,\n", - " 0.018413474783301353,\n", - " -0.004322977736592293,\n", - " -0.0033296330366283655,\n", - " 0.014928839169442654,\n", - " 0.00902748666703701,\n", - " 0.0033201989717781544,\n", - " 0.01944599114358425,\n", - " -0.004280788823962212,\n", - " 0.026516154408454895,\n", - " -0.0004448844993021339,\n", - " 0.005788407754153013,\n", - " 0.004848824813961983,\n", - " -0.010850796476006508,\n", - " 0.0074156359769403934,\n", - " 0.0028794733807444572,\n", - " -0.005040694493800402,\n", - " -0.009943140670657158,\n", - " -0.0014771600253880024,\n", - " 0.02702862024307251,\n", - " 0.012307064607739449,\n", - " 0.031931404024362564,\n", - " -0.0077228182926774025,\n", - " -0.027956398203969002,\n", - " 0.017846351489424706,\n", - " 0.01735025644302368,\n", - " -0.024033349007368088,\n", - " -0.009735107421875,\n", - " 0.01633143052458763,\n", - " 0.010355479083955288,\n", - " -0.0019731861539185047,\n", - " -0.0035277868155390024,\n", - " 0.020027706399559975,\n", - " -0.04373868554830551,\n", - " 0.0354132205247879,\n", - " -0.001807031687349081,\n", - " -0.002918412210419774,\n", - " 0.09777230769395828,\n", - " 0.015062221325933933,\n", - " 0.004985701758414507,\n", - " -0.018884792923927307,\n", - " 0.010831230320036411,\n", - " -0.008481908589601517,\n", - " -0.003799594473093748,\n", - " 0.0004316098056733608,\n", - " -0.019112855195999146,\n", - " 0.014202145859599113,\n", - " 0.011331802234053612,\n", - " -0.007499997038394213,\n", - " -0.007928249426186085,\n", - " -0.017887219786643982,\n", - " -0.03139348700642586,\n", - " -0.01899610459804535,\n", - " 0.0013776234118267894,\n", - " -0.008819176815450191,\n", - " 0.03704814240336418,\n", - " -0.022388434037566185,\n", - " 0.0156440120190382,\n", - " -0.017101433128118515,\n", - " -0.013089085929095745,\n", - " 0.02561251074075699,\n", - " 0.029660305008292198,\n", - " -0.007624164689332247,\n", - " -0.006829928606748581,\n", - " 0.026884594932198524,\n", - " -0.027975428849458694,\n", - " -0.010908747091889381,\n", - " 0.007614677771925926,\n", - " -0.0005592447123490274,\n", - " 0.032569821923971176,\n", - " 0.009540022350847721,\n", - " -0.0028657703660428524,\n", - " 0.01721801981329918,\n", - " -0.010194444097578526,\n", - " -0.01614883914589882,\n", - " -0.009784751571714878,\n", - " 0.002176648238673806,\n", - " -0.019132796674966812,\n", - " -0.01863129623234272,\n", - " 0.006362563464790583,\n", - " -0.003694645594805479,\n", - " -0.024288378655910492,\n", - " -0.022363897413015366,\n", - " 0.000744891818612814,\n", - " 0.006259715650230646,\n", - " -0.019178815186023712,\n", - " 0.011478138156235218,\n", - " -1.5152631931414362e-05,\n", - " 0.017119858413934708,\n", - " 0.0019262970890849829,\n", - " -0.007264178246259689,\n", - " 0.0020848813001066446,\n", - " 0.012564039789140224,\n", - " -0.015715299174189568,\n", - " 0.0036766608245670795,\n", - " 0.007963340729475021,\n", - " -0.03583437204360962,\n", - " 0.0167242344468832,\n", - " -0.004585846792906523,\n", - " -0.02034004032611847,\n", - " -0.008786039426922798,\n", - " -0.019419966265559196,\n", - " 0.003955639433115721,\n", - " -0.02039165608584881,\n", - " 0.007168842479586601,\n", - " 0.024760562926530838,\n", - " -0.010934860445559025,\n", - " 0.003110958728939295,\n", - " -0.0054563055746257305,\n", - " -0.01438088808208704,\n", - " -0.0013200901448726654,\n", - " 0.010165776126086712,\n", - " -0.002869517309591174,\n", - " -0.006820392794907093,\n", - " -0.006658782716840506,\n", - " 0.004162106662988663,\n", - " 0.020661450922489166,\n", - " -0.02874227613210678,\n", - " -0.014118155464529991,\n", - " 0.003224856685847044,\n", - " -0.014369030483067036,\n", - " 0.004771883133798838,\n", - " 0.012497876770794392,\n", - " -0.018075305968523026,\n", - " -0.028585655614733696,\n", - " 0.015290608629584312,\n", - " -0.00422133831307292,\n", - " 0.0003679264336824417,\n", - " -0.004252501763403416,\n", - " -0.011410473845899105,\n", - " 0.002173950197175145,\n", - " -0.01132588367909193,\n", - " -0.017615757882595062,\n", - " -0.005467323586344719,\n", - " -0.022641275078058243,\n", - " -0.030672792345285416,\n", - " 0.020841708406805992,\n", - " -0.004163825884461403,\n", - " -0.003081672824919224,\n", - " 0.04334355145692825,\n", - " 0.016485434025526047,\n", - " 0.02830098755657673,\n", - " 0.014162690378725529,\n", - " 0.003305956721305847,\n", - " -0.01558461133390665,\n", - " -0.028950272127985954,\n", - " 0.0017209401121363044,\n", - " 0.016394009813666344,\n", - " -0.014193333685398102,\n", - " 0.032301925122737885,\n", - " -0.008469345979392529,\n", - " -0.018771948292851448,\n", - " 0.007705388590693474,\n", - " 0.0048446026630699635,\n", - " 0.00827891007065773,\n", - " -0.024297840893268585,\n", - " -0.015459121204912663,\n", - " -0.004894130397588015,\n", - " 0.019174423068761826,\n", - " 0.003726472845301032,\n", - " -0.0069329096004366875,\n", - " -0.005054902285337448,\n", - " -0.01115730032324791,\n", - " 0.0011553125223144889,\n", - " -0.013363232836127281,\n", - " 0.012810817919671535,\n", - " 0.0065435804426670074,\n", - " -0.019356241449713707,\n", - " 0.0038377989549189806,\n", - " -0.0059433975256979465,\n", - " 0.01719961129128933,\n", - " 0.01027001440525055,\n", - " 0.023838665336370468,\n", - " -0.017898323014378548,\n", - " 0.0275045745074749,\n", - " -0.01586216874420643,\n", - " -0.017809314653277397,\n", - " -0.01702960953116417,\n", - " -0.00023454823531210423,\n", - " -0.023614460602402687,\n", - " -0.02317613735795021,\n", - " 0.004228908568620682,\n", - " -0.010320615954697132,\n", - " 0.012252600863575935,\n", - " 0.01613335683941841,\n", - " 0.00556036876514554,\n", - " -0.024423038586974144,\n", - " -0.00248654349707067,\n", - " -0.0052187684923410416,\n", - " -0.02748170867562294,\n", - " 0.000613022071775049,\n", - " -0.010094189085066319,\n", - " -0.0061216638423502445,\n", - " 0.01032200176268816,\n", - " 0.005635530222207308,\n", - " 0.01639268361032009,\n", - " 0.020736921578645706,\n", - " -0.016877925023436546,\n", - " -0.021583687514066696,\n", - " -0.000881461426615715,\n", - " -0.000917142431717366,\n", - " 0.025361627340316772,\n", - " -0.017409449443221092,\n", - " -0.0007481586071662605,\n", - " -0.006518878508359194,\n", - " -0.014359765686094761,\n", - " 0.009346549399197102,\n", - " 0.0006721566896885633,\n", - " 0.002496484899893403,\n", - " 0.012045742943882942,\n", - " 0.0023702955804765224,\n", - " 0.009324215352535248,\n", - " -0.00405908515676856,\n", - " 0.010660269297659397,\n", - " 0.00604375870898366,\n", - " 0.02218792587518692,\n", - " -0.0003027633356396109,\n", - " 0.023658229038119316,\n", - " 0.0015295293414965272,\n", - " -0.009180267341434956,\n", - " -0.013470915146172047,\n", - " -0.00011685601202771068,\n", - " 0.019391989335417747,\n", - " -0.0016365452902391553,\n", - " 0.016382677480578423,\n", - " -0.0025949093978852034,\n", - " -0.01129817683249712,\n", - " -0.028478750959038734,\n", - " -0.011386929079890251,\n", - " 0.0024167357478290796,\n", - " -0.015677297487854958,\n", - " 0.0006413079099729657,\n", - " 0.008419468067586422,\n", - " 0.002269485266879201,\n", - " -0.010327519848942757,\n", - " -0.04196741059422493,\n", - " -0.0024877903051674366,\n", - " -0.009378228336572647,\n", - " 0.01839737594127655,\n", - " -0.01404246874153614,\n", - " -0.0018654247978702188,\n", - " 0.01985299400985241,\n", - " -0.01309738215059042,\n", - " -0.012849090620875359,\n", - " -0.018644336611032486,\n", - " 0.01661038212478161,\n", - " -0.018413694575428963,\n", - " -0.012359190732240677,\n", - " -0.002676716772839427,\n", - " -0.004197251051664352,\n", - " 0.0035521811805665493,\n", - " 0.007935849018394947,\n", - " 0.010034419596195221,\n", - " -0.025826072320342064,\n", - " -0.005588399711996317,\n", - " 0.0067875268869102,\n", - " -0.007897238247096539,\n", - " -0.0012126719811931252,\n", - " -0.007319039199501276,\n", - " 0.013140472583472729,\n", - " -0.013658048585057259,\n", - " 0.016172612085938454,\n", - " 0.031625062227249146,\n", - " -0.0027903085574507713,\n", - " -0.009913383983075619,\n", - " -0.011814743280410767,\n", - " -0.013551912270486355,\n", - " -0.00040318811079487205,\n", - " -0.004645766690373421,\n", - " 0.018931986764073372,\n", - " -0.006715825293213129,\n", - " 0.0345010980963707,\n", - " 0.009808865375816822,\n", - " 0.00031219382071867585,\n", - " -0.021361790597438812,\n", - " 0.029589565470814705,\n", - " -0.019545778632164,\n", - " -0.006839600391685963,\n", - " 0.03414703160524368,\n", - " 0.003162563545629382,\n", - " -0.01362021267414093,\n", - " 0.011285877786576748,\n", - " 0.0028935351874679327,\n", - " -0.005350036080926657,\n", - " -0.02735786698758602,\n", - " 0.02172314189374447,\n", - " 0.005949749611318111,\n", - " -0.0007144561968743801,\n", - " -0.013414089567959309,\n", - " -0.007161424029618502,\n", - " 0.024019431322813034,\n", - " 0.004262072965502739,\n", - " 0.002016711048781872,\n", - " 0.0222645066678524,\n", - " -0.012368962168693542,\n", - " -0.008090445771813393,\n", - " -0.007152413949370384,\n", - " 0.004305841866880655,\n", - " -0.0049229636788368225,\n", - " -0.01076631247997284,\n", - " 0.01656140387058258,\n", - " -0.03583301976323128,\n", - " -0.01484199520200491,\n", - " -0.018741128966212273,\n", - " -0.002573228208348155,\n", - " -0.004580455832183361,\n", - " -0.003019571304321289,\n", - " -0.010984795168042183,\n", - " 0.002048774156719446,\n", - " -0.025104226544499397,\n", - " -0.02455284260213375,\n", - " 7.540378283010796e-05,\n", - " -0.012761498801410198,\n", - " -0.013445761054754257,\n", - " 0.0035847313702106476,\n", - " 0.0231394711881876,\n", - " -0.02027887850999832,\n", - " -0.013337776996195316,\n", - " 0.00901948381215334,\n", - " -0.003112646285444498,\n", - " 0.01194683089852333,\n", - " -0.03696063160896301,\n", - " 0.014971568249166012,\n", - " -0.016337668523192406,\n", - " 0.015908148139715195,\n", - " 0.04104166850447655,\n", - " 0.004572720266878605,\n", - " -0.021547675132751465,\n", - " 0.03474141284823418,\n", - " -0.017567714676260948,\n", - " 0.014558297581970692,\n", - " -0.0008156535332091153,\n", - " 0.003627184545621276,\n", - " 0.021257365122437477,\n", - " 0.01536672841757536,\n", - " 0.016293726861476898,\n", - " 0.0008670052629895508,\n", - " -0.00728483684360981,\n", - " 0.01691974140703678,\n", - " -0.014672094956040382,\n", - " -0.0008179476717486978,\n", - " -0.018543900921940804,\n", - " 0.0226394385099411,\n", - " -0.0002712066634558141,\n", - " 0.00036770993028767407,\n", - " 0.00850330013781786,\n", - " 0.006761811673641205,\n", - " 0.031168123707175255,\n", - " -0.03146185725927353,\n", - " -0.001735692610964179,\n", - " -0.013010626658797264,\n", - " 0.00505995936691761,\n", - " 0.019633151590824127,\n", - " 0.0012399450642988086,\n", - " 0.029671084135770798,\n", - " -0.02056892216205597,\n", - " 0.0035886557307094336,\n", - " -0.002683571306988597,\n", - " 0.0002559150743763894,\n", - " 0.008231519721448421,\n", - " -0.01546843908727169,\n", - " 0.015084458515048027,\n", - " 0.0261235274374485,\n", - " 0.010675269179046154,\n", - " 0.00859019160270691,\n", - " 0.01880238577723503,\n", - " 0.012341131456196308,\n", - " 0.00215032952837646,\n", - " 0.010820840485394001,\n", - " -0.037973176687955856,\n", - " -0.015073548071086407,\n", - " 0.005285357125103474,\n", - " -0.0039015556685626507,\n", - " -0.012085077352821827,\n", - " 0.008736337535083294,\n", - " 0.003232941497117281,\n", - " 0.0007238306570798159,\n", - " 0.007120898459106684,\n", - " 0.004377692937850952,\n", - " -0.012878673151135445,\n", - " -0.004737012088298798,\n", - " 0.0016103372909128666,\n", - " -0.014453768730163574,\n", - " -0.0030761680100113153,\n", - " 0.024939827620983124,\n", - " -0.009631255641579628,\n", - " 0.0015462863957509398,\n", - " 0.018152868375182152,\n", - " 0.002558876993134618,\n", - " 0.013886932283639908,\n", - " -0.010613802820444107,\n", - " -0.011718024499714375,\n", - " 0.01970844343304634,\n", - " -0.025368008762598038,\n", - " 0.004451524466276169,\n", - " 0.0026539869140833616,\n", - " -0.00317376758903265,\n", - " -0.004587087314575911,\n", - " 0.02286575548350811,\n", - " 0.026008864864706993,\n", - " 0.013202764093875885,\n", - " -0.016171438619494438,\n", - " -0.009343815967440605,\n", - " 0.002988232532516122,\n", - " 0.015619875863194466,\n", - " 0.0038960971869528294,\n", - " 0.0048093171790242195,\n", - " 0.011655006557703018,\n", - " 0.03504527732729912,\n", - " -0.0006444973987527192,\n", - " 0.014385323040187359,\n", - " 0.011684667319059372,\n", - " 0.0051994482055306435,\n", - " 0.006360795348882675,\n", - " -0.005261885933578014,\n", - " 0.01097958255559206,\n", - " -0.0075597199611365795,\n", - " 0.001088718301616609,\n", - " -0.008491522632539272,\n", - " -0.022506099194288254,\n", - " 0.002214604988694191,\n", - " 0.0016500533092767,\n", - " 0.002922724699601531,\n", - " -0.015052741393446922,\n", - " -0.005067442078143358,\n", - " 0.026262778788805008,\n", - " 0.002882997505366802,\n", - " 0.008469714783132076,\n", - " 0.0009098969167098403,\n", - " 0.0007244800799526274,\n", - " 0.011361891403794289,\n", - " 0.008085162378847599,\n", - " 0.01785528101027012,\n", - " -0.021736353635787964,\n", - " -0.014902740716934204,\n", - " -0.02387191355228424,\n", - " 0.01154129859060049,\n", - " -0.008052042685449123,\n", - " -0.01643543504178524,\n", - " 0.016863014549016953,\n", - " -0.0014375959290191531,\n", - " -0.010861627757549286,\n", - " -0.005060057621449232,\n", - " 0.004441055003553629,\n", - " -0.02616089954972267,\n", - " -0.017412282526493073,\n", - " 0.005458134692162275,\n", - " 0.012355134822428226,\n", - " 0.003947863355278969,\n", - " 0.016718722879886627,\n", - " 0.0049648103304207325,\n", - " 0.006712459027767181,\n", - " -0.01303650438785553,\n", - " 0.024115873500704765,\n", - " -0.00809017475694418,\n", - " -0.027580678462982178,\n", - " 0.014839811250567436,\n", - " 0.0116657679900527,\n", - " 0.006128309294581413,\n", - " 0.03048730455338955,\n", - " 0.0058337547816336155,\n", - " 0.006805578246712685,\n", - " -0.0014874201733618975,\n", - " 0.001879621879197657,\n", - " -0.015665048733353615,\n", - " 0.017865389585494995,\n", - " 0.011625503189861774,\n", - " 0.009321278892457485,\n", - " 0.013675824739038944,\n", - " 0.01227673888206482,\n", - " 0.0006669477443210781,\n", - " -0.0032042409293353558,\n", - " 0.010426733642816544,\n", - " 0.0017667359206825495,\n", - " 0.0029695217963308096,\n", - " 0.013515078462660313,\n", - " 0.00724818417802453,\n", - " -0.009386356920003891,\n", - " 0.01737366057932377,\n", - " -0.006175730377435684,\n", - " 0.025559378787875175,\n", - " -0.013050810433924198,\n", - " -0.014836403541266918,\n", - " 0.013735868968069553,\n", - " 0.029224025085568428,\n", - " -0.0019481983035802841,\n", - " 0.018222419545054436,\n", - " -0.007173576392233372,\n", - " 0.012109430506825447,\n", - " -0.019521046429872513,\n", - " 0.009070102125406265,\n", - " 0.008546192198991776,\n", - " 0.007099777925759554,\n", - " 0.011943133547902107,\n", - " -0.02416291832923889,\n", - " 0.007409253157675266,\n", - " -0.015731152147054672,\n", - " 0.005225952249020338,\n", - " -0.01997862383723259,\n", - " -0.021982494741678238,\n", - " -0.02488778717815876,\n", - " 0.0017780216876417398,\n", - " -0.0012331722537055612,\n", - " -0.006630309857428074,\n", - " -0.015080750919878483,\n", - " 0.007971370592713356,\n", - " 0.018193203955888748,\n", - " -0.01859109289944172,\n", - " 0.01914096623659134,\n", - " -0.020169110968708992,\n", - " -0.02489267662167549,\n", - " -0.02323361672461033,\n", - " 0.04145375266671181,\n", - " 0.028890211135149002,\n", - " -0.007760887034237385,\n", - " 0.0045552244409918785,\n", - " -0.0176457017660141,\n", - " -0.008273054845631123,\n", - " 0.012306966818869114,\n", - " -0.0031461024191230536,\n", - " -0.020325353369116783,\n", - " -0.0398121140897274,\n", - " -0.013626369647681713,\n", - " -0.007093450985848904,\n", - " -0.017960568889975548,\n", - " 0.0556635856628418,\n", - " 0.02151196263730526,\n", - " -0.006550669204443693,\n", - " -0.004232341423630714,\n", - " -0.01489347219467163,\n", - " -0.021089769899845123,\n", - " 0.0007471065619029105,\n", - " 0.005566490814089775,\n", - " 0.014780324883759022,\n", - " 0.004473445471376181,\n", - " 0.02594108320772648,\n", - " -0.008353671059012413,\n", - " -0.012298411689698696,\n", - " -0.027804264798760414,\n", - " 0.008500847034156322,\n", - " -0.01670648157596588,\n", - " -0.030227677896618843,\n", - " -0.0008617430576123297,\n", - " -0.012609113939106464,\n", - " -0.026223087683320045,\n", - " 0.011928856372833252,\n", - " 0.013128691352903843,\n", - " 0.015468685887753963,\n", - " -0.009659596718847752,\n", - " -0.005760476924479008,\n", - " 0.017638003453612328,\n", - " -0.007418491877615452,\n", - " 0.00456077279523015,\n", - " 0.024832524359226227,\n", - " -0.003971753176301718,\n", - " 0.024014055728912354,\n", - " 0.0029347536619752645,\n", - " 0.009343280456960201,\n", - " -0.007382581476122141,\n", - " 0.02028382383286953,\n", - " -0.01377318985760212,\n", - " 0.00569793488830328,\n", - " -0.009646281599998474,\n", - " 0.004583550151437521,\n", - " 0.02593171037733555,\n", - " 0.010284800082445145,\n", - " -0.02534230425953865,\n", - " 0.016492048278450966,\n", - " -0.01944207213819027,\n", - " 0.012236645445227623,\n", - " -0.018289977684617043,\n", - " -0.011027022264897823,\n", - " -0.03984448313713074,\n", - " -0.01360741350799799,\n", - " 0.014925851486623287,\n", - " -0.024778995662927628,\n", - " 0.0075136348605155945,\n", - " 7.207586895674467e-05,\n", - " -0.0034446946810930967,\n", - " 0.014232967980206013,\n", - " 0.004762297961860895,\n", - " -0.020427986979484558,\n", - " 0.016299230977892876,\n", - " 0.007874958217144012,\n", - " -0.0037723788991570473,\n", - " -0.020174451172351837,\n", - " 0.0064780935645103455,\n", - " -0.01707850955426693,\n", - " -0.008320528082549572,\n", - " -0.014858445152640343,\n", - " -0.0104805463925004,\n", - " -0.00347711774520576,\n", - " -0.003243209794163704,\n", - " 0.008600924164056778,\n", - " 0.019620854407548904,\n", - " 0.010859405621886253,\n", - " -0.03035123646259308,\n", - " 0.0031244850251823664,\n", - " -0.0008457346120849252,\n", - " -0.030203018337488174,\n", - " 0.005136424675583839,\n", - " -0.029637040570378304,\n", - " 0.004290843848139048,\n", - " -0.020740751177072525,\n", - " 0.0008698026067577302,\n", - " 0.01733979769051075,\n", - " -0.0017592560034245253,\n", - " 0.005069995764642954,\n", - " -0.008046209812164307,\n", - " -0.014235840179026127,\n", - " -0.0037953874561935663,\n", - " -6.226154800970107e-05,\n", - " 0.012463097460567951,\n", - " -0.0012896147090941668,\n", - " -0.012952055782079697,\n", - " 0.00035749879316426814,\n", - " 0.002543324837461114,\n", - " 0.000518229731824249,\n", - " 0.024755332618951797,\n", - " -0.012228927575051785,\n", - " -0.023000486195087433,\n", - " 0.021329350769519806,\n", - " 0.015798911452293396,\n", - " -0.016479918733239174,\n", - " -0.020029818639159203,\n", - " -0.01717989146709442,\n", - " -0.004491395782679319,\n", - " -0.0003751168551389128,\n", - " -0.022424226626753807,\n", - " 0.0035433790180832148,\n", - " -0.013971994630992413,\n", - " -0.002235779073089361,\n", - " 0.012958453968167305,\n", - " -0.01934337057173252,\n", - " 0.01162923313677311,\n", - " 0.0017600803403183818,\n", - " 0.001735839992761612,\n", - " 0.02399849146604538,\n", - " -0.013805736787617207,\n", - " -0.0017815890023484826,\n", - " 0.0096052261069417,\n", - " -0.002516506239771843,\n", - " -0.010889054276049137,\n", - " -0.038546815514564514,\n", - " -0.0009700870723463595,\n", - " 0.003600931726396084,\n", - " -0.012653791345655918,\n", - " -0.015539748594164848,\n", - " 0.0036487646866589785,\n", - " -0.011216487735509872,\n", - " 0.0043421583250164986,\n", - " -0.006353787612169981,\n", - " 0.016105052083730698,\n", - " -0.006433302536606789,\n", - " -0.009744004346430302,\n", - " 0.0037180231884121895,\n", - " -0.01781967096030712,\n", - " 0.0012477737618610263,\n", - " -0.029512789100408554,\n", - " -0.011096007190644741,\n", - " 0.010373931378126144,\n", - " 0.015442590229213238,\n", - " 0.006841790396720171,\n", - " 0.012226310558617115,\n", - " 0.02514396794140339,\n", - " 6.883557216497138e-05,\n", - " -0.0019605269189924,\n", - " 0.005450403783470392,\n", - " 0.05505552142858505,\n", - " -0.0008810920407995582,\n", - " -0.025708142668008804,\n", - " 0.0008815747569315135,\n", - " -0.06268516927957535,\n", - " 0.002696027047932148,\n", - " 0.006442879792302847,\n", - " 0.004262510221451521,\n", - " 0.008320296183228493,\n", - " 0.012818093411624432,\n", - " -0.006261391565203667,\n", - " -0.0016345081385225058,\n", - " -0.014989924617111683,\n", - " 0.011508957482874393,\n", - " -0.015395257622003555,\n", - " -0.0002456325455568731,\n", - " 0.0028725401498377323,\n", - " -0.022297225892543793,\n", - " 0.012327374890446663,\n", - " 0.010972017422318459,\n", - " 0.006332955323159695,\n", - " 0.014015263877809048,\n", - " -0.010212399065494537,\n", - " 0.024118591099977493,\n", - " -0.014639408327639103,\n", - " 0.009966536425054073,\n", - " 0.004061818588525057,\n", - " 0.002801054622977972,\n", - " -0.002328819828107953,\n", - " 0.022628651931881905,\n", - " 0.03169957548379898,\n", - " -0.005670144222676754,\n", - " 0.014185333624482155,\n", - " -0.00693044438958168,\n", - " -0.0018200587946921587,\n", - " -0.010325311683118343,\n", - " -0.0049256859347224236,\n", - " -0.02498791180551052,\n", - " -0.01577681303024292,\n", - " -0.0033557023853063583,\n", - " -0.008299502544105053,\n", - " -0.00450667692348361,\n", - " -0.011009606532752514,\n", - " 0.01727048121392727,\n", - " 0.004911783616989851,\n", - " -0.017111871391534805,\n", - " -0.0019733328372240067,\n", - " 0.014826241880655289,\n", - " 0.0017785666277632117,\n", - " 0.0052349017933011055,\n", - " 0.0073284609243273735,\n", - " -0.018747160211205482,\n", - " -0.024404797703027725,\n", - " 0.009125935845077038,\n", - " -0.00042940620915032923,\n", - " -0.010243147611618042,\n", - " 0.0018020515562966466,\n", - " -0.013518726453185081,\n", - " 0.0012687112903222442,\n", - " 0.008444477804005146,\n", - " 0.016314662992954254,\n", - " -0.021775074303150177,\n", - " -0.017303291708230972,\n", - " 0.001829018467105925,\n", - " -0.0019452639389783144,\n", - " -0.022065294906497,\n", - " 0.008146111853420734,\n", - " 0.012680048123002052,\n", - " -0.010362723842263222,\n", - " 0.029195884242653847,\n", - " -0.011800278909504414,\n", - " 0.0045953961089253426,\n", - " -0.0025577708147466183,\n", - " -0.01839444600045681,\n", - " 0.007579263299703598,\n", - " -0.010845270939171314,\n", - " 0.0101514533162117,\n", - " -0.03438518941402435,\n", - " 0.004026987124234438,\n", - " -0.0043350569903850555,\n", - " -0.0015670316061004996,\n", - " -0.013465072959661484,\n", - " 0.014462114311754704,\n", - " -0.013360978104174137,\n", - " -0.0072088055312633514,\n", - " -0.009346218779683113,\n", - " -0.01592816226184368,\n", - " 0.020320124924182892,\n", - " -0.010124020278453827,\n", - " -0.009361792355775833,\n", - " 0.005349436774849892,\n", - " 0.007697821594774723,\n", - " 0.02099333517253399,\n", - " 0.03613070026040077,\n", - " 0.004412619397044182,\n", - " -0.0007328703650273383,\n", - " 0.026337556540966034,\n", - " -0.007886849343776703,\n", - " 0.0010734288953244686,\n", - " 0.02038503810763359,\n", - " -0.021293507888913155,\n", - " 0.0005149429198354483,\n", - " -0.010475543327629566,\n", - " -0.006535436026751995,\n", - " -0.009200300090014935,\n", - " 0.0029004113748669624,\n", - " 0.013081453740596771,\n", - " -0.0035991701297461987,\n", - " -0.008680792525410652,\n", - " 0.008129253052175045,\n", - " -0.0077785924077034,\n", - " -0.00902999471873045,\n", - " 0.00724017946049571,\n", - " -0.0012517786817625165,\n", - " 0.013853000476956367,\n", - " -0.015145980753004551,\n", - " 0.027656378224492073,\n", - " 0.013293327763676643,\n", - " -0.0061129010282456875,\n", - " 0.030545543879270554,\n", - " 0.023482991382479668,\n", - " -0.009798603132367134,\n", - " 0.027960622683167458,\n", - " -0.0126644903793931,\n", - " -0.00012814425281248987,\n", - " 0.006706354208290577,\n", - " 0.0018757573561742902,\n", - " -0.029307106509804726,\n", - " 0.004845940973609686,\n", - " 0.008660756051540375,\n", - " 0.011811697855591774,\n", - " 0.01259523257613182,\n", - " 0.00584376510232687,\n", - " -0.009611032903194427,\n", - " -0.006454362999647856,\n", - " -0.008835878223180771,\n", - " 0.013815462589263916,\n", - " -0.0005935532390139997,\n", - " 0.011585534550249577,\n", - " 0.00804165843874216,\n", - " -0.0046113841235637665,\n", - " -0.022198613733053207,\n", - " -0.0011589800706133246,\n", - " 0.011985939927399158,\n", - " -0.0070546455681324005,\n", - " -0.0011772031430155039,\n", - " 0.005077525973320007,\n", - " 0.004629608243703842,\n", - " -0.00513886334374547,\n", - " 0.010327215306460857,\n", - " 0.023579830303788185,\n", - " -0.03293757513165474,\n", - " -0.009293223731219769,\n", - " -0.010876808315515518,\n", - " -0.027919895946979523,\n", - " 0.002014430705457926,\n", - " 0.0015256097540259361,\n", - " -0.0007074680761434138,\n", - " -0.009122752584517002,\n", - " 0.008312408812344074,\n", - " 0.01027339231222868,\n", - " -0.02813871204853058,\n", - " 0.007871834561228752,\n", - " 0.001521389465779066,\n", - " -0.011350546963512897,\n", - " 0.021417556330561638,\n", - " 0.0006441604346036911,\n", - " -0.02114005759358406,\n", - " 0.038964953273534775,\n", - " -0.0042233336716890335,\n", - " 0.027741871774196625,\n", - " -0.00549342343583703,\n", - " 0.023450210690498352,\n", - " -0.013218838721513748,\n", - " -0.008897709660232067,\n", - " 0.0169205442070961,\n", - " 0.004693590570241213,\n", - " 0.004693206399679184,\n", - " 0.027811110019683838,\n", - " 0.009191364981234074,\n", - " -0.013211927376687527,\n", - " -0.0007477460894733667,\n", - " -0.008817661553621292,\n", - " -0.03000003471970558,\n", - " -0.013140132650732994,\n", - " -0.030061693862080574,\n", - " 0.015250189229846,\n", - " -0.014456876553595066,\n", - " 0.01388415414839983,\n", - " 0.0044051725417375565,\n", - " 0.019094303250312805,\n", - " 0.030994007363915443,\n", - " -0.035488810390233994,\n", - " -0.019251754507422447,\n", - " -0.02982616238296032,\n", - " 0.014683743007481098,\n", - " 0.030743330717086792,\n", - " 0.021809089928865433,\n", - " -0.004061093553900719,\n", - " 0.008110971190035343,\n", - " 0.00030069550848565996,\n", - " 0.007436910178512335,\n", - " 0.017309658229351044,\n", - " -0.01872468926012516,\n", - " -0.0038973200134932995,\n", - " -0.011617379263043404,\n", - " 0.0028235134668648243,\n", - " 0.010349615477025509,\n", - " 0.018053589388728142,\n", - " -0.01204252801835537,\n", - " 0.007784688845276833,\n", - " 0.04340056702494621,\n", - " -0.0224344152957201,\n", - " -0.003077515633776784,\n", - " -0.0005072857020422816,\n", - " -0.0025440549943596125,\n", - " -0.03158242627978325,\n", - " -0.004591826349496841,\n", - " -0.015459216199815273,\n", - " 0.0016550722066313028,\n", - " -0.021909017115831375,\n", - " 0.00791469868272543,\n", - " 0.017703266814351082,\n", - " 0.014343260787427425,\n", - " -0.009737424552440643,\n", - " -0.003000229364261031,\n", - " 0.004739667288959026,\n", - " -0.012545120902359486,\n", - " 0.018552439287304878,\n", - " 0.011897699907422066,\n", - " -0.0030499869026243687,\n", - " 0.019290996715426445,\n", - " -0.010966756381094456,\n", - " -0.0069915358908474445,\n", - " -0.013163027353584766,\n", - " 0.021801728755235672,\n", - " 0.0011354534653946757,\n", - " -0.005458917003124952,\n", - " 0.026549678295850754,\n", - " 0.020782314240932465,\n", - " 0.0176919586956501,\n", - " -0.009557580575346947,\n", - " -0.007981647737324238,\n", - " 0.03168530389666557,\n", - " -0.002494144020602107,\n", - " 0.01719747669994831,\n", - " -0.013710014522075653,\n", - " -0.003989398945122957,\n", - " 0.011352983303368092,\n", - " -0.003987086936831474,\n", - " 0.005175672937184572,\n", - " -0.010003799572587013,\n", - " 0.004276175983250141,\n", - " 0.008259350433945656,\n", - " 0.016041047871112823,\n", - " -0.002010929863899946,\n", - " 0.007027979474514723,\n", - " 0.012356432154774666,\n", - " -0.013807359151542187,\n", - " 0.018796386197209358,\n", - " 0.002758659655228257,\n", - " -0.013705180026590824,\n", - " -0.0011855674674734473,\n", - " 0.030971845611929893,\n", - " 0.009778724983334541,\n", - " -0.011201448738574982,\n", - " 0.010989927686750889,\n", - " 0.0008666506037116051,\n", - " 0.017514413222670555,\n", - " 0.017922034487128258,\n", - " 0.008039798587560654,\n", - " 0.018007325008511543,\n", - " -0.000454249995527789,\n", - " 0.0043387943878769875,\n", - " 0.014981968328356743,\n", - " -0.031026123091578484,\n", - " -0.009392671287059784,\n", - " -0.016183026134967804,\n", - " 0.016184339299798012,\n", - " 0.02907208539545536,\n", - " -0.008433868177235126,\n", - " 0.005499284714460373,\n", - " 0.013863838277757168,\n", - " -0.021100474521517754,\n", - " -0.008125292137265205,\n", - " -0.007032178808003664,\n", - " -0.010406806133687496,\n", - " 0.00202157418243587,\n", - " -0.002188085112720728,\n", - " -0.03734145313501358,\n", - " 0.024517972022294998,\n", - " -0.008487368002533913,\n", - " -0.000533925776835531,\n", - " -0.019055671989917755,\n", - " -0.010654153302311897,\n", - " 0.005966866388916969,\n", - " -0.01976938173174858,\n", - " -0.010791301727294922,\n", - " -0.025069167837500572,\n", - " 0.032491523772478104,\n", - " -0.0010522839147597551,\n", - " 0.02935481071472168,\n", - " 0.001831167726777494,\n", - " -0.006750455126166344,\n", - " 0.006963513791561127,\n", - " -0.01235498022288084,\n", - " -0.00947477575391531,\n", - " 0.005211047828197479,\n", - " -0.00418825214728713,\n", - " 0.00045644232886843383,\n", - " -0.0051966155879199505,\n", - " -0.008230665698647499,\n", - " -0.000525494571775198,\n", - " -0.021747473627328873,\n", - " -0.025246966630220413,\n", - " -0.0023829247802495956,\n", - " ...]]" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "document_result" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "9b7ba678-6c02-46b3-8c4d-169fe4c93ea1", - "metadata": { - "ExecuteTime": { - "end_time": "2023-05-24T15:13:18.620432Z", - "start_time": "2023-05-24T15:13:18.608335Z" - }, - "execution": { - "iopub.execute_input": "2024-03-29T15:39:38.446478Z", - "iopub.status.busy": "2024-03-29T15:39:38.445110Z", - "iopub.status.idle": "2024-03-29T15:39:38.521371Z", - "shell.execute_reply": "2024-03-29T15:39:38.520658Z", - "shell.execute_reply.started": "2024-03-29T15:39:38.446388Z" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Cosine similarity between document and query: 0.8685132879722154\n" - ] - } - ], - "source": [ - "import numpy as np\n", - "\n", - "query_numpy = np.array(query_result)\n", - "document_numpy = np.array(document_result[0])\n", - "similarity = np.dot(query_numpy, document_numpy) / (\n", - " np.linalg.norm(query_numpy) * np.linalg.norm(document_numpy)\n", - ")\n", - "print(f\"Cosine similarity between document and query: {similarity}\")" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.0" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/docs/docs/integrations/text_embedding/upstage.ipynb b/docs/docs/integrations/text_embedding/upstage.ipynb new file mode 100644 index 0000000000..117c89b1d6 --- /dev/null +++ b/docs/docs/integrations/text_embedding/upstage.ipynb @@ -0,0 +1,216 @@ +{ + "cells": [ + { + "cell_type": "raw", + "id": "a1915c573ecefe5e", + "metadata": { + "collapsed": false + }, + "source": [ + "---\n", + "sidebar_label: Upstage\n", + "---" + ] + }, + { + "cell_type": "markdown", + "id": "c07bf6cf93adec81", + "metadata": { + "collapsed": false + }, + "source": [ + "# UpstageEmbeddings\n", + "\n", + "This notebook covers how to get started with Upstage embedding models.\n", + "\n", + "## Installation\n", + "\n", + "Install `langchain-upstage` package.\n", + "\n", + "```bash\n", + "pip install -U langchain-upstage\n", + "```" + ] + }, + { + "cell_type": "markdown", + "id": "c2b1c8fd01d71683", + "metadata": { + "collapsed": false + }, + "source": [ + "## Environment Setup\n", + "\n", + "Make sure to set the following environment variables:\n", + "\n", + "- `UPSTAGE_API_KEY`: Your Upstage API key from [Upstage console](https://console.upstage.ai/)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a50c04f9", + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "\n", + "os.environ[\"UPSTAGE_API_KEY\"] = \"YOUR_API_KEY\"" + ] + }, + { + "cell_type": "markdown", + "id": "c02e30aa", + "metadata": {}, + "source": [ + "\n", + "## Usage\n", + "\n", + "Initialize `UpstageEmbeddings` class." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ea89ac9da2520b91", + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "from langchain_upstage import UpstageEmbeddings\n", + "\n", + "embeddings = UpstageEmbeddings()" + ] + }, + { + "cell_type": "markdown", + "id": "8be6eab1", + "metadata": {}, + "source": [ + "Use `embed_documents` to embed list of texts or documents. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "26aa179f7ad60cbe", + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "doc_result = embeddings.embed_documents(\n", + " [\"Sam is a teacher.\", \"This is another document\"]\n", + ")\n", + "print(doc_result)" + ] + }, + { + "cell_type": "markdown", + "id": "0197135c", + "metadata": {}, + "source": [ + "Use `embed_query` to embed query string." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5a80d47413c27bbc", + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "query_result = embeddings.embed_query(\"What does Sam do?\")\n", + "print(query_result)" + ] + }, + { + "cell_type": "markdown", + "id": "6d5ff58e", + "metadata": {}, + "source": [ + "Use `aembed_documents` and `aembed_query` for async operations." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "af75139d0e1d9ba2", + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# async embed query\n", + "await embeddings.aembed_query(\"My query to look up\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "17968d20c0dfb2f9", + "metadata": { + "collapsed": false + }, + "outputs": [], + "source": [ + "# async embed documents\n", + "await embeddings.aembed_documents(\n", + " [\"This is a content of the document\", \"This is another document\"]\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "6429f2f8", + "metadata": {}, + "source": [ + "## Using with vector store\n", + "\n", + "You can use `UpstageEmbeddings` with vector store component. The following demonstrates a simple example." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "09ac41d5", + "metadata": {}, + "outputs": [], + "source": [ + "from langchain_community.vectorstores import DocArrayInMemorySearch\n", + "\n", + "vectorstore = DocArrayInMemorySearch.from_texts(\n", + " [\"harrison worked at kensho\", \"bears like to eat honey\"],\n", + " embedding=UpstageEmbeddings(),\n", + ")\n", + "retriever = vectorstore.as_retriever()\n", + "docs = retriever.get_relevant_documents(\"Where did Harrison work?\")\n", + "print(docs)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 2 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython2", + "version": "2.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/docs/vercel.json b/docs/vercel.json index 700a45fe9f..71ca7cc1da 100644 --- a/docs/vercel.json +++ b/docs/vercel.json @@ -1185,6 +1185,14 @@ { "source": "/docs/guides/evaluation/:path*(/?)", "destination": "/docs/guides/productionization/evaluation/:path*/" + }, + { + "source": "/docs/integrations/text_embedding/solar(/?)", + "destination": "/docs/integrations/text_embedding/upstage" + }, + { + "source": "/docs/integrations/chat/solar(/?)", + "destination": "/docs/integrations/chat/upstage" } ] } diff --git a/libs/community/langchain_community/chat_models/solar.py b/libs/community/langchain_community/chat_models/solar.py index dd466468fb..e0299a7588 100644 --- a/libs/community/langchain_community/chat_models/solar.py +++ b/libs/community/langchain_community/chat_models/solar.py @@ -2,16 +2,19 @@ from typing import Dict -from langchain_core.pydantic_v1 import root_validator +from langchain_core._api import deprecated +from langchain_core.pydantic_v1 import Field, root_validator from langchain_core.utils import get_from_dict_or_env from langchain_community.chat_models import ChatOpenAI from langchain_community.llms.solar import SOLAR_SERVICE_URL_BASE, SolarCommon -class SolarChat(SolarCommon, ChatOpenAI): # type: ignore[misc] - """Solar large language models. - +@deprecated( + since="0.0.34", removal="0.2.0", alternative_import="langchain_upstage.ChatUpstage" +) +class SolarChat(SolarCommon, ChatOpenAI): + """Wrapper around Solar large language models. To use, you should have the ``openai`` python package installed, and the environment variable ``SOLAR_API_KEY`` set with your API key. (Solar's chat API is compatible with OpenAI's SDK.) @@ -24,6 +27,16 @@ class SolarChat(SolarCommon, ChatOpenAI): # type: ignore[misc] solar = SolarChat(model="solar-1-mini-chat") """ + max_tokens: int = Field(default=1024) + + # this is needed to match ChatOpenAI superclass + class Config: + """Configuration for this pydantic object.""" + + allow_population_by_field_name = True + arbitrary_types_allowed = True + extra = "ignore" + @root_validator() def validate_environment(cls, values: Dict) -> Dict: """Validate that the environment is set up correctly.""" @@ -42,9 +55,9 @@ class SolarChat(SolarCommon, ChatOpenAI): # type: ignore[misc] client_params = { "api_key": values["solar_api_key"], - "base_url": values["base_url"] - if "base_url" in values - else SOLAR_SERVICE_URL_BASE, + "base_url": ( + values["base_url"] if "base_url" in values else SOLAR_SERVICE_URL_BASE + ), } if not values.get("client"): diff --git a/libs/community/langchain_community/embeddings/solar.py b/libs/community/langchain_community/embeddings/solar.py index 30979c952c..3dfb864311 100644 --- a/libs/community/langchain_community/embeddings/solar.py +++ b/libs/community/langchain_community/embeddings/solar.py @@ -4,6 +4,7 @@ import logging from typing import Any, Callable, Dict, List, Optional import requests +from langchain_core._api import deprecated from langchain_core.embeddings import Embeddings from langchain_core.pydantic_v1 import BaseModel, Extra, SecretStr, root_validator from langchain_core.utils import convert_to_secret_str, get_from_dict_or_env @@ -44,6 +45,9 @@ def embed_with_retry(embeddings: SolarEmbeddings, *args: Any, **kwargs: Any) -> return _embed_with_retry(*args, **kwargs) +@deprecated( + since="0.0.34", removal="0.2.0", alternative_import="langchain_upstage.ChatUpstage" +) class SolarEmbeddings(BaseModel, Embeddings): """Solar's embedding service. diff --git a/libs/community/langchain_community/llms/solar.py b/libs/community/langchain_community/llms/solar.py index 0ddb128ccd..e8e7b7e11d 100644 --- a/libs/community/langchain_community/llms/solar.py +++ b/libs/community/langchain_community/llms/solar.py @@ -40,7 +40,7 @@ class SolarCommon(BaseModel): """Solar API key. Get it here: https://console.upstage.ai/services/solar""" model_name: str = Field(default="solar-1-mini-chat", alias="model") """Model name. Available models listed here: https://console.upstage.ai/services/solar""" - max_tokens: int = Field(default=1024, alias="max context") + max_tokens: int = Field(default=1024) temperature = 0.3 class Config: diff --git a/libs/partners/upstage/.gitignore b/libs/partners/upstage/.gitignore new file mode 100644 index 0000000000..bee8a64b79 --- /dev/null +++ b/libs/partners/upstage/.gitignore @@ -0,0 +1 @@ +__pycache__ diff --git a/libs/partners/upstage/LICENSE b/libs/partners/upstage/LICENSE new file mode 100644 index 0000000000..fc0602feec --- /dev/null +++ b/libs/partners/upstage/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/upstage/Makefile b/libs/partners/upstage/Makefile new file mode 100644 index 0000000000..1fbb1e8220 --- /dev/null +++ b/libs/partners/upstage/Makefile @@ -0,0 +1,57 @@ +.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 integration_tests: TEST_FILE=tests/integration_tests/ + +test tests 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/upstage --name-only --diff-filter=d master | grep -E '\.py$$|\.ipynb$$') +lint_package: PYTHON_FILES=langchain_upstage +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 $(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_upstage -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/upstage/README.md b/libs/partners/upstage/README.md new file mode 100644 index 0000000000..fb91c0a889 --- /dev/null +++ b/libs/partners/upstage/README.md @@ -0,0 +1,25 @@ +# langchain-upstage + +This package contains the LangChain integrations for [Upstage](https://upstage.ai) through their [APIs](https://developers.upstage.ai/docs/getting-started/models). + +## Installation and Setup + +- Install the LangChain partner package +```bash +pip install -U langchain-upstage +``` + +- Get an Upstage api key from [Upstage Console](https://console.upstage.ai/home) and set it as an environment variable (`UPSTAGE_API_KEY`) + +## Chat Models + +This package contains the `ChatUpstage` class, which is the recommended way to interface with Upstage models. + +See a [usage example](https://python.langchain.com/docs/integrations/chat/upstage) + +## Embeddings + +See a [usage example](https://python.langchain.com/docs/integrations/text_embedding/upstage) + +Use `solar-1-mini-embedding` as the default model for embeddings. Do not add suffixes such as `-query` or `-passage` to the model name. +`UpstageEmbeddings` will automatically add the suffixes based on the method called. diff --git a/libs/partners/upstage/langchain_upstage/__init__.py b/libs/partners/upstage/langchain_upstage/__init__.py new file mode 100644 index 0000000000..431fe8d54c --- /dev/null +++ b/libs/partners/upstage/langchain_upstage/__init__.py @@ -0,0 +1,4 @@ +from langchain_upstage.chat_models import ChatUpstage +from langchain_upstage.embeddings import UpstageEmbeddings + +__all__ = ["ChatUpstage", "UpstageEmbeddings"] diff --git a/libs/partners/upstage/langchain_upstage/chat_models.py b/libs/partners/upstage/langchain_upstage/chat_models.py new file mode 100644 index 0000000000..8af4978048 --- /dev/null +++ b/libs/partners/upstage/langchain_upstage/chat_models.py @@ -0,0 +1,101 @@ +import os +from typing import ( + Any, + Dict, + List, + Optional, +) + +import openai +from langchain_core.pydantic_v1 import Field, SecretStr, root_validator +from langchain_core.utils import ( + convert_to_secret_str, + get_from_dict_or_env, +) +from langchain_openai import ChatOpenAI + + +class ChatUpstage(ChatOpenAI): + """ChatUpstage chat model. + + To use, you should have the environment variable `UPSTAGE_API_KEY` + set with your API key or pass it as a named parameter to the constructor. + + Example: + .. code-block:: python + + from langchain_upstage import ChatUpstage + + + model = ChatUpstage() + """ + + @property + def lc_secrets(self) -> Dict[str, str]: + return {"upstage_api_key": "UPSTAGE_API_KEY"} + + @classmethod + def get_lc_namespace(cls) -> List[str]: + return ["langchain", "chat_models", "upstage"] + + @property + def lc_attributes(self) -> Dict[str, Any]: + attributes: Dict[str, Any] = {} + + if self.upstage_api_base: + attributes["upstage_api_base"] = self.upstage_api_base + + return attributes + + @property + def _llm_type(self) -> str: + """Return type of chat model.""" + return "upstage-chat" + + model_name: str = Field(default="solar-1-mini-chat", alias="model") + """Model name to use.""" + upstage_api_key: Optional[SecretStr] = Field(default=None, alias="api_key") + """Automatically inferred from env are `UPSTAGE_API_KEY` if not provided.""" + upstage_api_base: Optional[str] = Field( + default="https://api.upstage.ai/v1/solar", alias="base_url" + ) + + @root_validator() + def validate_environment(cls, values: Dict) -> Dict: + """Validate that api key and python package exists in environment.""" + if values["n"] < 1: + raise ValueError("n must be at least 1.") + if values["n"] > 1 and values["streaming"]: + raise ValueError("n must be 1 when streaming.") + + values["upstage_api_key"] = convert_to_secret_str( + get_from_dict_or_env(values, "upstage_api_key", "UPSTAGE_API_KEY") + ) + values["upstage_api_base"] = values["upstage_api_base"] or os.getenv( + "UPSTAGE_API_BASE" + ) + + client_params = { + "api_key": ( + values["upstage_api_key"].get_secret_value() + if values["upstage_api_key"] + else None + ), + "base_url": values["upstage_api_base"], + "timeout": values["request_timeout"], + "max_retries": values["max_retries"], + "default_headers": values["default_headers"], + "default_query": values["default_query"], + } + + if not values.get("client"): + sync_specific = {"http_client": values["http_client"]} + values["client"] = openai.OpenAI( + **client_params, **sync_specific + ).chat.completions + if not values.get("async_client"): + async_specific = {"http_client": values["http_async_client"]} + values["async_client"] = openai.AsyncOpenAI( + **client_params, **async_specific + ).chat.completions + return values diff --git a/libs/partners/upstage/langchain_upstage/embeddings.py b/libs/partners/upstage/langchain_upstage/embeddings.py new file mode 100644 index 0000000000..31708239be --- /dev/null +++ b/libs/partners/upstage/langchain_upstage/embeddings.py @@ -0,0 +1,263 @@ +import logging +import os +import warnings +from typing import ( + Any, + Dict, + List, + Literal, + Mapping, + Optional, + Sequence, + Set, + Tuple, + Union, +) + +import openai +from langchain_core.embeddings import Embeddings +from langchain_core.pydantic_v1 import ( + BaseModel, + Extra, + Field, + SecretStr, + root_validator, +) +from langchain_core.utils import ( + convert_to_secret_str, + get_from_dict_or_env, + get_pydantic_field_names, +) + +logger = logging.getLogger(__name__) + + +class UpstageEmbeddings(BaseModel, Embeddings): + """UpstageEmbeddings embedding model. + + To use, set the environment variable `UPSTAGE_API_KEY` with your API key or + pass it as a named parameter to the constructor. + + Example: + .. code-block:: python + + from langchain_upstage import UpstageEmbeddings + + model = UpstageEmbeddings() + """ + + client: Any = Field(default=None, exclude=True) #: :meta private: + async_client: Any = Field(default=None, exclude=True) #: :meta private: + model: str = "solar-1-mini-embedding" + """Embeddings model name to use. Do not add suffixes like `-query` and `-passage`. + Instead, use 'solar-1-mini-embedding' for example. + """ + dimensions: Optional[int] = None + """The number of dimensions the resulting output embeddings should have. + + Not yet supported. + """ + upstage_api_key: Optional[SecretStr] = Field(default=None, alias="api_key") + """API Key for Solar API.""" + upstage_api_base: str = Field( + default="https://api.upstage.ai/v1/solar", alias="base_url" + ) + """Endpoint URL to use.""" + embedding_ctx_length: int = 4096 + """The maximum number of tokens to embed at once. + + Not yet supported. + """ + allowed_special: Union[Literal["all"], Set[str]] = set() + """Not yet supported.""" + disallowed_special: Union[Literal["all"], Set[str], Sequence[str]] = "all" + """Not yet supported.""" + chunk_size: int = 1000 + """Maximum number of texts to embed in each batch. + + Not yet supported. + """ + max_retries: int = 2 + """Maximum number of retries to make when generating.""" + request_timeout: Optional[Union[float, Tuple[float, float], Any]] = Field( + default=None, alias="timeout" + ) + """Timeout for requests to Upstage embedding API. Can be float, httpx.Timeout or + None.""" + show_progress_bar: bool = False + """Whether to show a progress bar when embedding. + + Not yet supported. + """ + model_kwargs: Dict[str, Any] = Field(default_factory=dict) + """Holds any model parameters valid for `create` call not explicitly specified.""" + skip_empty: bool = False + """Whether to skip empty strings when embedding or raise an error. + Defaults to not skipping. + + Not yet supported.""" + default_headers: Union[Mapping[str, str], None] = None + default_query: Union[Mapping[str, object], None] = None + # Configure a custom httpx client. See the + # [httpx documentation](https://www.python-httpx.org/api/#client) for more details. + http_client: Union[Any, None] = None + """Optional httpx.Client. Only used for sync invocations. Must specify + http_async_client as well if you'd like a custom client for async invocations. + """ + http_async_client: Union[Any, None] = None + """Optional httpx.AsyncClient. Only used for async invocations. Must specify + http_client as well if you'd like a custom client for sync invocations.""" + + class Config: + extra = Extra.forbid + allow_population_by_field_name = True + + @root_validator(pre=True) + def build_extra(cls, values: Dict[str, Any]) -> Dict[str, Any]: + """Build extra kwargs from additional params that were passed in.""" + all_required_field_names = get_pydantic_field_names(cls) + extra = values.get("model_kwargs", {}) + for field_name in list(values): + if field_name in extra: + raise ValueError(f"Found {field_name} supplied twice.") + if field_name not in all_required_field_names: + warnings.warn( + f"""WARNING! {field_name} is not default parameter. + {field_name} was transferred to model_kwargs. + Please confirm that {field_name} is what you intended.""" + ) + extra[field_name] = values.pop(field_name) + + invalid_model_kwargs = all_required_field_names.intersection(extra.keys()) + if invalid_model_kwargs: + raise ValueError( + f"Parameters {invalid_model_kwargs} should be specified explicitly. " + f"Instead they were passed in as part of `model_kwargs` parameter." + ) + + values["model_kwargs"] = extra + return values + + @root_validator() + def validate_environment(cls, values: Dict) -> Dict: + """Validate that api key and python package exists in environment.""" + + upstage_api_key = get_from_dict_or_env( + values, "upstage_api_key", "UPSTAGE_API_KEY" + ) + values["upstage_api_key"] = ( + convert_to_secret_str(upstage_api_key) if upstage_api_key else None + ) + values["upstage_api_base"] = values["upstage_api_base"] or os.getenv( + "UPSTAGE_API_BASE" + ) + client_params = { + "api_key": ( + values["upstage_api_key"].get_secret_value() + if values["upstage_api_key"] + else None + ), + "base_url": values["upstage_api_base"], + "timeout": values["request_timeout"], + "max_retries": values["max_retries"], + "default_headers": values["default_headers"], + "default_query": values["default_query"], + } + if not values.get("client"): + sync_specific = {"http_client": values["http_client"]} + values["client"] = openai.OpenAI( + **client_params, **sync_specific + ).embeddings + if not values.get("async_client"): + async_specific = {"http_client": values["http_async_client"]} + values["async_client"] = openai.AsyncOpenAI( + **client_params, **async_specific + ).embeddings + return values + + @property + def _invocation_params(self) -> Dict[str, Any]: + self.model = self.model.replace("-query", "").replace("-passage", "") + + params: Dict = {"model": self.model, **self.model_kwargs} + if self.dimensions is not None: + params["dimensions"] = self.dimensions + return params + + def embed_documents(self, texts: List[str]) -> List[List[float]]: + """Embed a list of document texts using passage model. + + Args: + texts: The list of texts to embed. + + Returns: + List of embeddings, one for each text. + """ + embeddings = [] + params = self._invocation_params + params["model"] = params["model"] + "-passage" + + for text in texts: + response = self.client.create(input=text, **params) + + if not isinstance(response, dict): + response = response.model_dump() + embeddings.extend([i["embedding"] for i in response["data"]]) + return embeddings + + def embed_query(self, text: str) -> List[float]: + """Embed query text using query model. + + Args: + text: The text to embed. + + Returns: + Embedding for the text. + """ + params = self._invocation_params + params["model"] = params["model"] + "-query" + + response = self.client.create(input=text, **params) + + if not isinstance(response, dict): + response = response.model_dump() + return response["data"][0]["embedding"] + + async def aembed_documents(self, texts: List[str]) -> List[List[float]]: + """Embed a list of document texts using passage model asynchronously. + + Args: + texts: The list of texts to embed. + + Returns: + List of embeddings, one for each text. + """ + embeddings = [] + params = self._invocation_params + params["model"] = params["model"] + "-passage" + + for text in texts: + response = await self.async_client.create(input=text, **params) + + if not isinstance(response, dict): + response = response.model_dump() + embeddings.extend([i["embedding"] for i in response["data"]]) + return embeddings + + async def aembed_query(self, text: str) -> List[float]: + """Asynchronous Embed query text using query model. + + Args: + text: The text to embed. + + Returns: + Embedding for the text. + """ + params = self._invocation_params + params["model"] = params["model"] + "-query" + + response = await self.async_client.create(input=text, **params) + + if not isinstance(response, dict): + response = response.model_dump() + return response["data"][0]["embedding"] diff --git a/libs/partners/upstage/langchain_upstage/py.typed b/libs/partners/upstage/langchain_upstage/py.typed new file mode 100644 index 0000000000..e69de29bb2 diff --git a/libs/partners/upstage/poetry.lock b/libs/partners/upstage/poetry.lock new file mode 100644 index 0000000000..358736eb2f --- /dev/null +++ b/libs/partners/upstage/poetry.lock @@ -0,0 +1,1273 @@ +# This file is automatically @generated by Poetry 1.7.1 and should not be changed by hand. + +[[package]] +name = "anyio" +version = "4.3.0" +description = "High level compatibility layer for multiple asynchronous event loop implementations" +optional = false +python-versions = ">=3.8" +files = [ + {file = "anyio-4.3.0-py3-none-any.whl", hash = "sha256:048e05d0f6caeed70d731f3db756d35dcc1f35747c8c403364a8332c630441b8"}, + {file = "anyio-4.3.0.tar.gz", hash = "sha256:f75253795a87df48568485fd18cdd2a3fa5c4f7c5be8e5e36637733fce06fed6"}, +] + +[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.2.2" +description = "Python package for providing Mozilla's CA Bundle." +optional = false +python-versions = ">=3.6" +files = [ + {file = "certifi-2024.2.2-py3-none-any.whl", hash = "sha256:dc383c07b76109f368f6106eee2b593b04a011ea4d55f652c6ca24a754d1cdd1"}, + {file = "certifi-2024.2.2.tar.gz", hash = "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f"}, +] + +[[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.2.6" +description = "Codespell" +optional = false +python-versions = ">=3.8" +files = [ + {file = "codespell-2.2.6-py3-none-any.whl", hash = "sha256:9ee9a3e5df0990604013ac2a9f22fa8e57669c827124a2e961fe8a1da4cacc07"}, + {file = "codespell-2.2.6.tar.gz", hash = "sha256:a8c65d8eb3faa03deabab6b3bbe798bea72e1799c7e9e955d57eca4096abcff9"}, +] + +[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 = "distro" +version = "1.9.0" +description = "Distro - an OS platform information API" +optional = false +python-versions = ">=3.6" +files = [ + {file = "distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2"}, + {file = "distro-1.9.0.tar.gz", hash = "sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed"}, +] + +[[package]] +name = "docarray" +version = "0.32.1" +description = "The data structure for multimodal data" +optional = false +python-versions = ">=3.7,<4.0" +files = [ + {file = "docarray-0.32.1-py3-none-any.whl", hash = "sha256:abd6d8999f44fd37b0c1d54f7cedd9007ab13b8b6c69933a9d30abbd0cbad5cd"}, + {file = "docarray-0.32.1.tar.gz", hash = "sha256:ef349d2501d5cb0f205497e5e7de5b5d034965bdad98cf6daab1baa6aa3e39d2"}, +] + +[package.dependencies] +numpy = ">=1.17.3" +orjson = ">=3.8.2" +pydantic = ">=1.10.2" +rich = ">=13.1.0" +types-requests = ">=2.28.11.6" +typing-inspect = ">=0.8.0" + +[package.extras] +audio = ["pydub (>=0.25.1,<0.26.0)"] +aws = ["smart-open[s3] (>=6.3.0)"] +elasticsearch = ["elastic-transport (>=8.4.0,<9.0.0)", "elasticsearch (>=7.10.1)"] +full = ["av (>=10.0.0)", "lz4 (>=1.0.0)", "pandas (>=1.1.0)", "pillow (>=9.3.0)", "protobuf (>=3.19.0)", "pydub (>=0.25.1,<0.26.0)", "trimesh[easy] (>=3.17.1)", "types-pillow (>=9.3.0.1)"] +hnswlib = ["hnswlib (>=0.6.2)", "protobuf (>=3.19.0)"] +image = ["pillow (>=9.3.0)", "types-pillow (>=9.3.0.1)"] +jac = ["jina-hubble-sdk (>=0.34.0)"] +mesh = ["trimesh[easy] (>=3.17.1)"] +pandas = ["pandas (>=1.1.0)"] +proto = ["lz4 (>=1.0.0)", "protobuf (>=3.19.0)"] +qdrant = ["qdrant-client (>=1.1.4)"] +torch = ["torch (>=1.0.0)"] +video = ["av (>=10.0.0)"] +weaviate = ["weaviate-client (>=3.15)"] +web = ["fastapi (>=0.87.0)"] + +[[package]] +name = "exceptiongroup" +version = "1.2.0" +description = "Backport of PEP 654 (exception groups)" +optional = false +python-versions = ">=3.7" +files = [ + {file = "exceptiongroup-1.2.0-py3-none-any.whl", hash = "sha256:4bfd3996ac73b41e9b9628b04e079f193850720ea5945fc96a08633c66912f14"}, + {file = "exceptiongroup-1.2.0.tar.gz", hash = "sha256:91f5c769735f051a4290d52edd0858999b57e5876e9f85937691bd4c9fa3ed68"}, +] + +[package.extras] +test = ["pytest (>=6)"] + +[[package]] +name = "freezegun" +version = "1.4.0" +description = "Let your Python tests travel through time" +optional = false +python-versions = ">=3.7" +files = [ + {file = "freezegun-1.4.0-py3-none-any.whl", hash = "sha256:55e0fc3c84ebf0a96a5aa23ff8b53d70246479e9a68863f1fcac5a3e52f19dd6"}, + {file = "freezegun-1.4.0.tar.gz", hash = "sha256:10939b0ba0ff5adaecf3b06a5c2f73071d9678e507c5eaedb23c761d56ac774b"}, +] + +[package.dependencies] +python-dateutil = ">=2.7" + +[[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 = "2.4" +description = "Identify specific nodes in a JSON document (RFC 6901)" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*" +files = [ + {file = "jsonpointer-2.4-py2.py3-none-any.whl", hash = "sha256:15d51bba20eea3165644553647711d150376234112651b4f1811022aecad7d7a"}, + {file = "jsonpointer-2.4.tar.gz", hash = "sha256:585cee82b70211fa9e6043b7bb89db6e1aa49524340dde8ad6b63206ea689d88"}, +] + +[[package]] +name = "langchain-core" +version = "0.1.44" +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.0" +packaging = "^23.2" +pydantic = ">=1,<3" +PyYAML = ">=5.3" +tenacity = "^8.1.0" + +[package.extras] +extended-testing = ["jinja2 (>=3,<4)"] + +[package.source] +type = "directory" +url = "../../core" + +[[package]] +name = "langchain-openai" +version = "0.1.3" +description = "An integration package connecting OpenAI and LangChain" +optional = false +python-versions = ">=3.8.1,<4.0" +files = [] +develop = true + +[package.dependencies] +langchain-core = "^0.1.42" +openai = "^1.10.0" +tiktoken = ">=0.5.2,<1" + +[package.source] +type = "directory" +url = "../openai" + +[[package]] +name = "langchain-standard-tests" +version = "0.1.0" +description = "Standard tests for LangChain implementations" +optional = false +python-versions = ">=3.8.1,<4.0" +files = [] +develop = true + +[package.dependencies] +langchain-core = "^0.1.40" +pytest = ">=7,<9" + +[package.source] +type = "directory" +url = "../../standard-tests" + +[[package]] +name = "langsmith" +version = "0.1.48" +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.48-py3-none-any.whl", hash = "sha256:2f8967e2aaaed8881efe6f346590681243b315af8ba8a037d969c299d42071d3"}, + {file = "langsmith-0.1.48.tar.gz", hash = "sha256:9cd21cd0928123b2bd2363f03515cb1f6a833d9a9f00420240d5132861d15fcc"}, +] + +[package.dependencies] +orjson = ">=3.9.14,<4.0.0" +pydantic = ">=1,<3" +requests = ">=2,<3" + +[[package]] +name = "markdown-it-py" +version = "3.0.0" +description = "Python port of markdown-it. Markdown parsing, done right!" +optional = false +python-versions = ">=3.8" +files = [ + {file = "markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"}, + {file = "markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"}, +] + +[package.dependencies] +mdurl = ">=0.1,<1.0" + +[package.extras] +benchmarking = ["psutil", "pytest", "pytest-benchmark"] +code-style = ["pre-commit (>=3.0,<4.0)"] +compare = ["commonmark (>=0.9,<1.0)", "markdown (>=3.4,<4.0)", "mistletoe (>=1.0,<2.0)", "mistune (>=2.0,<3.0)", "panflute (>=2.3,<3.0)"] +linkify = ["linkify-it-py (>=1,<3)"] +plugins = ["mdit-py-plugins"] +profiling = ["gprof2dot"] +rtd = ["jupyter_sphinx", "mdit-py-plugins", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"] +testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] + +[[package]] +name = "mdurl" +version = "0.1.2" +description = "Markdown URL utilities" +optional = false +python-versions = ">=3.7" +files = [ + {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, + {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, +] + +[[package]] +name = "mypy" +version = "0.991" +description = "Optional static typing for Python" +optional = false +python-versions = ">=3.7" +files = [ + {file = "mypy-0.991-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7d17e0a9707d0772f4a7b878f04b4fd11f6f5bcb9b3813975a9b13c9332153ab"}, + {file = "mypy-0.991-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0714258640194d75677e86c786e80ccf294972cc76885d3ebbb560f11db0003d"}, + {file = "mypy-0.991-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0c8f3be99e8a8bd403caa8c03be619544bc2c77a7093685dcf308c6b109426c6"}, + {file = "mypy-0.991-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc9ec663ed6c8f15f4ae9d3c04c989b744436c16d26580eaa760ae9dd5d662eb"}, + {file = "mypy-0.991-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4307270436fd7694b41f913eb09210faff27ea4979ecbcd849e57d2da2f65305"}, + {file = "mypy-0.991-cp310-cp310-win_amd64.whl", hash = "sha256:901c2c269c616e6cb0998b33d4adbb4a6af0ac4ce5cd078afd7bc95830e62c1c"}, + {file = "mypy-0.991-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d13674f3fb73805ba0c45eb6c0c3053d218aa1f7abead6e446d474529aafc372"}, + {file = "mypy-0.991-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1c8cd4fb70e8584ca1ed5805cbc7c017a3d1a29fb450621089ffed3e99d1857f"}, + {file = "mypy-0.991-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:209ee89fbb0deed518605edddd234af80506aec932ad28d73c08f1400ef80a33"}, + {file = "mypy-0.991-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:37bd02ebf9d10e05b00d71302d2c2e6ca333e6c2a8584a98c00e038db8121f05"}, + {file = "mypy-0.991-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:26efb2fcc6b67e4d5a55561f39176821d2adf88f2745ddc72751b7890f3194ad"}, + {file = "mypy-0.991-cp311-cp311-win_amd64.whl", hash = "sha256:3a700330b567114b673cf8ee7388e949f843b356a73b5ab22dd7cff4742a5297"}, + {file = "mypy-0.991-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:1f7d1a520373e2272b10796c3ff721ea1a0712288cafaa95931e66aa15798813"}, + {file = "mypy-0.991-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:641411733b127c3e0dab94c45af15fea99e4468f99ac88b39efb1ad677da5711"}, + {file = "mypy-0.991-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:3d80e36b7d7a9259b740be6d8d906221789b0d836201af4234093cae89ced0cd"}, + {file = "mypy-0.991-cp37-cp37m-win_amd64.whl", hash = "sha256:e62ebaad93be3ad1a828a11e90f0e76f15449371ffeecca4a0a0b9adc99abcef"}, + {file = "mypy-0.991-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:b86ce2c1866a748c0f6faca5232059f881cda6dda2a893b9a8373353cfe3715a"}, + {file = "mypy-0.991-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ac6e503823143464538efda0e8e356d871557ef60ccd38f8824a4257acc18d93"}, + {file = "mypy-0.991-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0cca5adf694af539aeaa6ac633a7afe9bbd760df9d31be55ab780b77ab5ae8bf"}, + {file = "mypy-0.991-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a12c56bf73cdab116df96e4ff39610b92a348cc99a1307e1da3c3768bbb5b135"}, + {file = "mypy-0.991-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:652b651d42f155033a1967739788c436491b577b6a44e4c39fb340d0ee7f0d70"}, + {file = "mypy-0.991-cp38-cp38-win_amd64.whl", hash = "sha256:4175593dc25d9da12f7de8de873a33f9b2b8bdb4e827a7cae952e5b1a342e243"}, + {file = "mypy-0.991-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:98e781cd35c0acf33eb0295e8b9c55cdbef64fcb35f6d3aa2186f289bed6e80d"}, + {file = "mypy-0.991-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6d7464bac72a85cb3491c7e92b5b62f3dcccb8af26826257760a552a5e244aa5"}, + {file = "mypy-0.991-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c9166b3f81a10cdf9b49f2d594b21b31adadb3d5e9db9b834866c3258b695be3"}, + {file = "mypy-0.991-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8472f736a5bfb159a5e36740847808f6f5b659960115ff29c7cecec1741c648"}, + {file = "mypy-0.991-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5e80e758243b97b618cdf22004beb09e8a2de1af481382e4d84bc52152d1c476"}, + {file = "mypy-0.991-cp39-cp39-win_amd64.whl", hash = "sha256:74e259b5c19f70d35fcc1ad3d56499065c601dfe94ff67ae48b85596b9ec1461"}, + {file = "mypy-0.991-py3-none-any.whl", hash = "sha256:de32edc9b0a7e67c2775e574cb061a537660e51210fbf6006b0b36ea695ae9bb"}, + {file = "mypy-0.991.tar.gz", hash = "sha256:3c0165ba8f354a6d9881809ef29f1a9318a236a6d81c690094c5df32107bde06"}, +] + +[package.dependencies] +mypy-extensions = ">=0.4.3" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} +typing-extensions = ">=3.10" + +[package.extras] +dmypy = ["psutil (>=4.0)"] +install-types = ["pip"] +python2 = ["typed-ast (>=1.4.0,<2)"] +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 = "numpy" +version = "1.24.4" +description = "Fundamental package for array computing in Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "numpy-1.24.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c0bfb52d2169d58c1cdb8cc1f16989101639b34c7d3ce60ed70b19c63eba0b64"}, + {file = "numpy-1.24.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ed094d4f0c177b1b8e7aa9cba7d6ceed51c0e569a5318ac0ca9a090680a6a1b1"}, + {file = "numpy-1.24.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79fc682a374c4a8ed08b331bef9c5f582585d1048fa6d80bc6c35bc384eee9b4"}, + {file = "numpy-1.24.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ffe43c74893dbf38c2b0a1f5428760a1a9c98285553c89e12d70a96a7f3a4d6"}, + {file = "numpy-1.24.4-cp310-cp310-win32.whl", hash = "sha256:4c21decb6ea94057331e111a5bed9a79d335658c27ce2adb580fb4d54f2ad9bc"}, + {file = "numpy-1.24.4-cp310-cp310-win_amd64.whl", hash = "sha256:b4bea75e47d9586d31e892a7401f76e909712a0fd510f58f5337bea9572c571e"}, + {file = "numpy-1.24.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f136bab9c2cfd8da131132c2cf6cc27331dd6fae65f95f69dcd4ae3c3639c810"}, + {file = "numpy-1.24.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e2926dac25b313635e4d6cf4dc4e51c8c0ebfed60b801c799ffc4c32bf3d1254"}, + {file = "numpy-1.24.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:222e40d0e2548690405b0b3c7b21d1169117391c2e82c378467ef9ab4c8f0da7"}, + {file = "numpy-1.24.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7215847ce88a85ce39baf9e89070cb860c98fdddacbaa6c0da3ffb31b3350bd5"}, + {file = "numpy-1.24.4-cp311-cp311-win32.whl", hash = "sha256:4979217d7de511a8d57f4b4b5b2b965f707768440c17cb70fbf254c4b225238d"}, + {file = "numpy-1.24.4-cp311-cp311-win_amd64.whl", hash = "sha256:b7b1fc9864d7d39e28f41d089bfd6353cb5f27ecd9905348c24187a768c79694"}, + {file = "numpy-1.24.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1452241c290f3e2a312c137a9999cdbf63f78864d63c79039bda65ee86943f61"}, + {file = "numpy-1.24.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:04640dab83f7c6c85abf9cd729c5b65f1ebd0ccf9de90b270cd61935eef0197f"}, + {file = "numpy-1.24.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5425b114831d1e77e4b5d812b69d11d962e104095a5b9c3b641a218abcc050e"}, + {file = "numpy-1.24.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd80e219fd4c71fc3699fc1dadac5dcf4fd882bfc6f7ec53d30fa197b8ee22dc"}, + {file = "numpy-1.24.4-cp38-cp38-win32.whl", hash = "sha256:4602244f345453db537be5314d3983dbf5834a9701b7723ec28923e2889e0bb2"}, + {file = "numpy-1.24.4-cp38-cp38-win_amd64.whl", hash = "sha256:692f2e0f55794943c5bfff12b3f56f99af76f902fc47487bdfe97856de51a706"}, + {file = "numpy-1.24.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2541312fbf09977f3b3ad449c4e5f4bb55d0dbf79226d7724211acc905049400"}, + {file = "numpy-1.24.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9667575fb6d13c95f1b36aca12c5ee3356bf001b714fc354eb5465ce1609e62f"}, + {file = "numpy-1.24.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3a86ed21e4f87050382c7bc96571755193c4c1392490744ac73d660e8f564a9"}, + {file = "numpy-1.24.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d11efb4dbecbdf22508d55e48d9c8384db795e1b7b51ea735289ff96613ff74d"}, + {file = "numpy-1.24.4-cp39-cp39-win32.whl", hash = "sha256:6620c0acd41dbcb368610bb2f4d83145674040025e5536954782467100aa8835"}, + {file = "numpy-1.24.4-cp39-cp39-win_amd64.whl", hash = "sha256:befe2bf740fd8373cf56149a5c23a0f601e82869598d41f8e188a0e9869926f8"}, + {file = "numpy-1.24.4-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:31f13e25b4e304632a4619d0e0777662c2ffea99fcae2029556b17d8ff958aef"}, + {file = "numpy-1.24.4-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95f7ac6540e95bc440ad77f56e520da5bf877f87dca58bd095288dce8940532a"}, + {file = "numpy-1.24.4-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:e98f220aa76ca2a977fe435f5b04d7b3470c0a2e6312907b37ba6068f26787f2"}, + {file = "numpy-1.24.4.tar.gz", hash = "sha256:80f5e3a4e498641401868df4208b74581206afbee7cf7b8329daae82676d9463"}, +] + +[[package]] +name = "openai" +version = "1.21.2" +description = "The official Python library for the openai API" +optional = false +python-versions = ">=3.7.1" +files = [ + {file = "openai-1.21.2-py3-none-any.whl", hash = "sha256:65f6bed84ecde0fc20e4f3b458000deb775531aa29154ff4d679e937d7e4370d"}, + {file = "openai-1.21.2.tar.gz", hash = "sha256:7b6e4d59f3686fcd94efdb2ee61052bf6c9dbb58052b5116fc0d75ba7adbf329"}, +] + +[package.dependencies] +anyio = ">=3.5.0,<5" +distro = ">=1.7.0,<2" +httpx = ">=0.23.0,<1" +pydantic = ">=1.9.0,<3" +sniffio = "*" +tqdm = ">4" +typing-extensions = ">=4.7,<5" + +[package.extras] +datalib = ["numpy (>=1)", "pandas (>=1.2.3)", "pandas-stubs (>=1.1.0.11)"] + +[[package]] +name = "orjson" +version = "3.10.1" +description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy" +optional = false +python-versions = ">=3.8" +files = [ + {file = "orjson-3.10.1-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:8ec2fc456d53ea4a47768f622bb709be68acd455b0c6be57e91462259741c4f3"}, + {file = "orjson-3.10.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e900863691d327758be14e2a491931605bd0aded3a21beb6ce133889830b659"}, + {file = "orjson-3.10.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ab6ecbd6fe57785ebc86ee49e183f37d45f91b46fc601380c67c5c5e9c0014a2"}, + {file = "orjson-3.10.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8af7c68b01b876335cccfb4eee0beef2b5b6eae1945d46a09a7c24c9faac7a77"}, + {file = "orjson-3.10.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:915abfb2e528677b488a06eba173e9d7706a20fdfe9cdb15890b74ef9791b85e"}, + {file = "orjson-3.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe3fd4a36eff9c63d25503b439531d21828da9def0059c4f472e3845a081aa0b"}, + {file = "orjson-3.10.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d229564e72cfc062e6481a91977a5165c5a0fdce11ddc19ced8471847a67c517"}, + {file = "orjson-3.10.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:9e00495b18304173ac843b5c5fbea7b6f7968564d0d49bef06bfaeca4b656f4e"}, + {file = "orjson-3.10.1-cp310-none-win32.whl", hash = "sha256:fd78ec55179545c108174ba19c1795ced548d6cac4d80d014163033c047ca4ea"}, + {file = "orjson-3.10.1-cp310-none-win_amd64.whl", hash = "sha256:50ca42b40d5a442a9e22eece8cf42ba3d7cd4cd0f2f20184b4d7682894f05eec"}, + {file = "orjson-3.10.1-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:b345a3d6953628df2f42502297f6c1e1b475cfbf6268013c94c5ac80e8abc04c"}, + {file = "orjson-3.10.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:caa7395ef51af4190d2c70a364e2f42138e0e5fcb4bc08bc9b76997659b27dab"}, + {file = "orjson-3.10.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b01d701decd75ae092e5f36f7b88a1e7a1d3bb7c9b9d7694de850fb155578d5a"}, + {file = "orjson-3.10.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b5028981ba393f443d8fed9049211b979cadc9d0afecf162832f5a5b152c6297"}, + {file = "orjson-3.10.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:31ff6a222ea362b87bf21ff619598a4dc1106aaafaea32b1c4876d692891ec27"}, + {file = "orjson-3.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e852a83d7803d3406135fb7a57cf0c1e4a3e73bac80ec621bd32f01c653849c5"}, + {file = "orjson-3.10.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2567bc928ed3c3fcd90998009e8835de7c7dc59aabcf764b8374d36044864f3b"}, + {file = "orjson-3.10.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4ce98cac60b7bb56457bdd2ed7f0d5d7f242d291fdc0ca566c83fa721b52e92d"}, + {file = "orjson-3.10.1-cp311-none-win32.whl", hash = "sha256:813905e111318acb356bb8029014c77b4c647f8b03f314e7b475bd9ce6d1a8ce"}, + {file = "orjson-3.10.1-cp311-none-win_amd64.whl", hash = "sha256:03a3ca0b3ed52bed1a869163a4284e8a7b0be6a0359d521e467cdef7e8e8a3ee"}, + {file = "orjson-3.10.1-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:f02c06cee680b1b3a8727ec26c36f4b3c0c9e2b26339d64471034d16f74f4ef5"}, + {file = "orjson-3.10.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1aa2f127ac546e123283e437cc90b5ecce754a22306c7700b11035dad4ccf85"}, + {file = "orjson-3.10.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2cf29b4b74f585225196944dffdebd549ad2af6da9e80db7115984103fb18a96"}, + {file = "orjson-3.10.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a1b130c20b116f413caf6059c651ad32215c28500dce9cd029a334a2d84aa66f"}, + {file = "orjson-3.10.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d31f9a709e6114492136e87c7c6da5e21dfedebefa03af85f3ad72656c493ae9"}, + {file = "orjson-3.10.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d1d169461726f271ab31633cf0e7e7353417e16fb69256a4f8ecb3246a78d6e"}, + {file = "orjson-3.10.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:57c294d73825c6b7f30d11c9e5900cfec9a814893af7f14efbe06b8d0f25fba9"}, + {file = "orjson-3.10.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d7f11dbacfa9265ec76b4019efffabaabba7a7ebf14078f6b4df9b51c3c9a8ea"}, + {file = "orjson-3.10.1-cp312-none-win32.whl", hash = "sha256:d89e5ed68593226c31c76ab4de3e0d35c760bfd3fbf0a74c4b2be1383a1bf123"}, + {file = "orjson-3.10.1-cp312-none-win_amd64.whl", hash = "sha256:aa76c4fe147fd162107ce1692c39f7189180cfd3a27cfbc2ab5643422812da8e"}, + {file = "orjson-3.10.1-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:a2c6a85c92d0e494c1ae117befc93cf8e7bca2075f7fe52e32698da650b2c6d1"}, + {file = "orjson-3.10.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9813f43da955197d36a7365eb99bed42b83680801729ab2487fef305b9ced866"}, + {file = "orjson-3.10.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ec917b768e2b34b7084cb6c68941f6de5812cc26c6f1a9fecb728e36a3deb9e8"}, + {file = "orjson-3.10.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5252146b3172d75c8a6d27ebca59c9ee066ffc5a277050ccec24821e68742fdf"}, + {file = "orjson-3.10.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:536429bb02791a199d976118b95014ad66f74c58b7644d21061c54ad284e00f4"}, + {file = "orjson-3.10.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7dfed3c3e9b9199fb9c3355b9c7e4649b65f639e50ddf50efdf86b45c6de04b5"}, + {file = "orjson-3.10.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:2b230ec35f188f003f5b543644ae486b2998f6afa74ee3a98fc8ed2e45960afc"}, + {file = "orjson-3.10.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:01234249ba19c6ab1eb0b8be89f13ea21218b2d72d496ef085cfd37e1bae9dd8"}, + {file = "orjson-3.10.1-cp38-none-win32.whl", hash = "sha256:8a884fbf81a3cc22d264ba780920d4885442144e6acaa1411921260416ac9a54"}, + {file = "orjson-3.10.1-cp38-none-win_amd64.whl", hash = "sha256:dab5f802d52b182163f307d2b1f727d30b1762e1923c64c9c56dd853f9671a49"}, + {file = "orjson-3.10.1-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:a51fd55d4486bc5293b7a400f9acd55a2dc3b5fc8420d5ffe9b1d6bb1a056a5e"}, + {file = "orjson-3.10.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:53521542a6db1411b3bfa1b24ddce18605a3abdc95a28a67b33f9145f26aa8f2"}, + {file = "orjson-3.10.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:27d610df96ac18ace4931411d489637d20ab3b8f63562b0531bba16011998db0"}, + {file = "orjson-3.10.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:79244b1456e5846d44e9846534bd9e3206712936d026ea8e6a55a7374d2c0694"}, + {file = "orjson-3.10.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d751efaa8a49ae15cbebdda747a62a9ae521126e396fda8143858419f3b03610"}, + {file = "orjson-3.10.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:27ff69c620a4fff33267df70cfd21e0097c2a14216e72943bd5414943e376d77"}, + {file = "orjson-3.10.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:ebc58693464146506fde0c4eb1216ff6d4e40213e61f7d40e2f0dde9b2f21650"}, + {file = "orjson-3.10.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5be608c3972ed902e0143a5b8776d81ac1059436915d42defe5c6ae97b3137a4"}, + {file = "orjson-3.10.1-cp39-none-win32.whl", hash = "sha256:4ae10753e7511d359405aadcbf96556c86e9dbf3a948d26c2c9f9a150c52b091"}, + {file = "orjson-3.10.1-cp39-none-win_amd64.whl", hash = "sha256:fb5bc4caa2c192077fdb02dce4e5ef8639e7f20bec4e3a834346693907362932"}, + {file = "orjson-3.10.1.tar.gz", hash = "sha256:a883b28d73370df23ed995c466b4f6c708c1f7a9bdc400fe89165c96c7603204"}, +] + +[[package]] +name = "packaging" +version = "23.2" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=3.7" +files = [ + {file = "packaging-23.2-py3-none-any.whl", hash = "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7"}, + {file = "packaging-23.2.tar.gz", hash = "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5"}, +] + +[[package]] +name = "pluggy" +version = "1.4.0" +description = "plugin and hook calling mechanisms for python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pluggy-1.4.0-py3-none-any.whl", hash = "sha256:7db9f7b503d67d1c5b95f59773ebb58a8c1c288129a88665838012cfb07b8981"}, + {file = "pluggy-1.4.0.tar.gz", hash = "sha256:8c85c2876142a764e5b7548e7d9a0e0ddb46f5185161049a79b7e974454223be"}, +] + +[package.extras] +dev = ["pre-commit", "tox"] +testing = ["pytest", "pytest-benchmark"] + +[[package]] +name = "pydantic" +version = "1.10.15" +description = "Data validation and settings management using python type hints" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pydantic-1.10.15-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:22ed12ee588b1df028a2aa5d66f07bf8f8b4c8579c2e96d5a9c1f96b77f3bb55"}, + {file = "pydantic-1.10.15-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:75279d3cac98186b6ebc2597b06bcbc7244744f6b0b44a23e4ef01e5683cc0d2"}, + {file = "pydantic-1.10.15-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:50f1666a9940d3d68683c9d96e39640f709d7a72ff8702987dab1761036206bb"}, + {file = "pydantic-1.10.15-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82790d4753ee5d00739d6cb5cf56bceb186d9d6ce134aca3ba7befb1eedbc2c8"}, + {file = "pydantic-1.10.15-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:d207d5b87f6cbefbdb1198154292faee8017d7495a54ae58db06762004500d00"}, + {file = "pydantic-1.10.15-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:e49db944fad339b2ccb80128ffd3f8af076f9f287197a480bf1e4ca053a866f0"}, + {file = "pydantic-1.10.15-cp310-cp310-win_amd64.whl", hash = "sha256:d3b5c4cbd0c9cb61bbbb19ce335e1f8ab87a811f6d589ed52b0254cf585d709c"}, + {file = "pydantic-1.10.15-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c3d5731a120752248844676bf92f25a12f6e45425e63ce22e0849297a093b5b0"}, + {file = "pydantic-1.10.15-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c365ad9c394f9eeffcb30a82f4246c0006417f03a7c0f8315d6211f25f7cb654"}, + {file = "pydantic-1.10.15-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3287e1614393119c67bd4404f46e33ae3be3ed4cd10360b48d0a4459f420c6a3"}, + {file = "pydantic-1.10.15-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:be51dd2c8596b25fe43c0a4a59c2bee4f18d88efb8031188f9e7ddc6b469cf44"}, + {file = "pydantic-1.10.15-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:6a51a1dd4aa7b3f1317f65493a182d3cff708385327c1c82c81e4a9d6d65b2e4"}, + {file = "pydantic-1.10.15-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:4e316e54b5775d1eb59187f9290aeb38acf620e10f7fd2f776d97bb788199e53"}, + {file = "pydantic-1.10.15-cp311-cp311-win_amd64.whl", hash = "sha256:0d142fa1b8f2f0ae11ddd5e3e317dcac060b951d605fda26ca9b234b92214986"}, + {file = "pydantic-1.10.15-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:7ea210336b891f5ea334f8fc9f8f862b87acd5d4a0cbc9e3e208e7aa1775dabf"}, + {file = "pydantic-1.10.15-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3453685ccd7140715e05f2193d64030101eaad26076fad4e246c1cc97e1bb30d"}, + {file = "pydantic-1.10.15-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9bea1f03b8d4e8e86702c918ccfd5d947ac268f0f0cc6ed71782e4b09353b26f"}, + {file = "pydantic-1.10.15-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:005655cabc29081de8243126e036f2065bd7ea5b9dff95fde6d2c642d39755de"}, + {file = "pydantic-1.10.15-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:af9850d98fc21e5bc24ea9e35dd80a29faf6462c608728a110c0a30b595e58b7"}, + {file = "pydantic-1.10.15-cp37-cp37m-win_amd64.whl", hash = "sha256:d31ee5b14a82c9afe2bd26aaa405293d4237d0591527d9129ce36e58f19f95c1"}, + {file = "pydantic-1.10.15-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:5e09c19df304b8123938dc3c53d3d3be6ec74b9d7d0d80f4f4b5432ae16c2022"}, + {file = "pydantic-1.10.15-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7ac9237cd62947db00a0d16acf2f3e00d1ae9d3bd602b9c415f93e7a9fc10528"}, + {file = "pydantic-1.10.15-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:584f2d4c98ffec420e02305cf675857bae03c9d617fcfdc34946b1160213a948"}, + {file = "pydantic-1.10.15-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bbc6989fad0c030bd70a0b6f626f98a862224bc2b1e36bfc531ea2facc0a340c"}, + {file = "pydantic-1.10.15-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:d573082c6ef99336f2cb5b667b781d2f776d4af311574fb53d908517ba523c22"}, + {file = "pydantic-1.10.15-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6bd7030c9abc80134087d8b6e7aa957e43d35714daa116aced57269a445b8f7b"}, + {file = "pydantic-1.10.15-cp38-cp38-win_amd64.whl", hash = "sha256:3350f527bb04138f8aff932dc828f154847fbdc7a1a44c240fbfff1b57f49a12"}, + {file = "pydantic-1.10.15-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:51d405b42f1b86703555797270e4970a9f9bd7953f3990142e69d1037f9d9e51"}, + {file = "pydantic-1.10.15-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a980a77c52723b0dc56640ced396b73a024d4b74f02bcb2d21dbbac1debbe9d0"}, + {file = "pydantic-1.10.15-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:67f1a1fb467d3f49e1708a3f632b11c69fccb4e748a325d5a491ddc7b5d22383"}, + {file = "pydantic-1.10.15-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:676ed48f2c5bbad835f1a8ed8a6d44c1cd5a21121116d2ac40bd1cd3619746ed"}, + {file = "pydantic-1.10.15-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:92229f73400b80c13afcd050687f4d7e88de9234d74b27e6728aa689abcf58cc"}, + {file = "pydantic-1.10.15-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:2746189100c646682eff0bce95efa7d2e203420d8e1c613dc0c6b4c1d9c1fde4"}, + {file = "pydantic-1.10.15-cp39-cp39-win_amd64.whl", hash = "sha256:394f08750bd8eaad714718812e7fab615f873b3cdd0b9d84e76e51ef3b50b6b7"}, + {file = "pydantic-1.10.15-py3-none-any.whl", hash = "sha256:28e552a060ba2740d0d2aabe35162652c1459a0b9069fe0db7f4ee0e18e74d58"}, + {file = "pydantic-1.10.15.tar.gz", hash = "sha256:ca832e124eda231a60a041da4f013e3ff24949d94a01154b137fc2f2a43c3ffb"}, +] + +[package.dependencies] +typing-extensions = ">=4.2.0" + +[package.extras] +dotenv = ["python-dotenv (>=0.10.4)"] +email = ["email-validator (>=1.0.3)"] + +[[package]] +name = "pygments" +version = "2.17.2" +description = "Pygments is a syntax highlighting package written in Python." +optional = false +python-versions = ">=3.7" +files = [ + {file = "pygments-2.17.2-py3-none-any.whl", hash = "sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c"}, + {file = "pygments-2.17.2.tar.gz", hash = "sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367"}, +] + +[package.extras] +plugins = ["importlib-metadata"] +windows-terminal = ["colorama (>=0.4.6)"] + +[[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.21.1" +description = "Pytest support for asyncio" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pytest-asyncio-0.21.1.tar.gz", hash = "sha256:40a7eae6dded22c7b604986855ea48400ab15b069ae38116e8c01238e9eeb64d"}, + {file = "pytest_asyncio-0.21.1-py3-none-any.whl", hash = "sha256:8666c1c8ac02631d7c51ba282e0c69a8a452b211ffedf2599099845da5c5c37b"}, +] + +[package.dependencies] +pytest = ">=7.0.0" + +[package.extras] +docs = ["sphinx (>=5.3)", "sphinx-rtd-theme (>=1.0)"] +testing = ["coverage (>=6.2)", "flaky (>=3.5.0)", "hypothesis (>=5.7.1)", "mypy (>=0.931)", "pytest-trio (>=0.7.0)"] + +[[package]] +name = "pytest-mock" +version = "3.14.0" +description = "Thin-wrapper around the mock package for easier use with pytest" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pytest-mock-3.14.0.tar.gz", hash = "sha256:2719255a1efeceadbc056d6bf3df3d1c5015530fb40cf347c0f9afac88410bd0"}, + {file = "pytest_mock-3.14.0-py3-none-any.whl", hash = "sha256:0b72c38033392a5f4621342fe11e9219ac11ec9d375f8e2a0c164539e0d70f6f"}, +] + +[package.dependencies] +pytest = ">=6.2.5" + +[package.extras] +dev = ["pre-commit", "pytest-asyncio", "tox"] + +[[package]] +name = "pytest-watcher" +version = "0.3.5" +description = "Automatically rerun your tests on file modifications" +optional = false +python-versions = ">=3.7.0,<4.0.0" +files = [ + {file = "pytest_watcher-0.3.5-py3-none-any.whl", hash = "sha256:af00ca52c7be22dc34c0fd3d7ffef99057207a73b05dc5161fe3b2fe91f58130"}, + {file = "pytest_watcher-0.3.5.tar.gz", hash = "sha256:8896152460ba2b1a8200c12117c6611008ec96c8b2d811f0a05ab8a82b043ff8"}, +] + +[package.dependencies] +tomli = {version = ">=2.0.1,<3.0.0", markers = "python_version < \"3.11\""} +watchdog = ">=2.0.0" + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +description = "Extensions to the standard Python datetime module" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +files = [ + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, +] + +[package.dependencies] +six = ">=1.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 = "regex" +version = "2024.4.16" +description = "Alternative regular expression module, to replace re." +optional = false +python-versions = ">=3.7" +files = [ + {file = "regex-2024.4.16-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:fb83cc090eac63c006871fd24db5e30a1f282faa46328572661c0a24a2323a08"}, + {file = "regex-2024.4.16-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8c91e1763696c0eb66340c4df98623c2d4e77d0746b8f8f2bee2c6883fd1fe18"}, + {file = "regex-2024.4.16-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:10188fe732dec829c7acca7422cdd1bf57d853c7199d5a9e96bb4d40db239c73"}, + {file = "regex-2024.4.16-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:956b58d692f235cfbf5b4f3abd6d99bf102f161ccfe20d2fd0904f51c72c4c66"}, + {file = "regex-2024.4.16-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a70b51f55fd954d1f194271695821dd62054d949efd6368d8be64edd37f55c86"}, + {file = "regex-2024.4.16-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c02fcd2bf45162280613d2e4a1ca3ac558ff921ae4e308ecb307650d3a6ee51"}, + {file = "regex-2024.4.16-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c4ed75ea6892a56896d78f11006161eea52c45a14994794bcfa1654430984b22"}, + {file = "regex-2024.4.16-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bd727ad276bb91928879f3aa6396c9a1d34e5e180dce40578421a691eeb77f47"}, + {file = "regex-2024.4.16-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:7cbc5d9e8a1781e7be17da67b92580d6ce4dcef5819c1b1b89f49d9678cc278c"}, + {file = "regex-2024.4.16-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:78fddb22b9ef810b63ef341c9fcf6455232d97cfe03938cbc29e2672c436670e"}, + {file = "regex-2024.4.16-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:445ca8d3c5a01309633a0c9db57150312a181146315693273e35d936472df912"}, + {file = "regex-2024.4.16-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:95399831a206211d6bc40224af1c635cb8790ddd5c7493e0bd03b85711076a53"}, + {file = "regex-2024.4.16-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:7731728b6568fc286d86745f27f07266de49603a6fdc4d19c87e8c247be452af"}, + {file = "regex-2024.4.16-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4facc913e10bdba42ec0aee76d029aedda628161a7ce4116b16680a0413f658a"}, + {file = "regex-2024.4.16-cp310-cp310-win32.whl", hash = "sha256:911742856ce98d879acbea33fcc03c1d8dc1106234c5e7d068932c945db209c0"}, + {file = "regex-2024.4.16-cp310-cp310-win_amd64.whl", hash = "sha256:e0a2df336d1135a0b3a67f3bbf78a75f69562c1199ed9935372b82215cddd6e2"}, + {file = "regex-2024.4.16-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:1210365faba7c2150451eb78ec5687871c796b0f1fa701bfd2a4a25420482d26"}, + {file = "regex-2024.4.16-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9ab40412f8cd6f615bfedea40c8bf0407d41bf83b96f6fc9ff34976d6b7037fd"}, + {file = "regex-2024.4.16-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fd80d1280d473500d8086d104962a82d77bfbf2b118053824b7be28cd5a79ea5"}, + {file = "regex-2024.4.16-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7bb966fdd9217e53abf824f437a5a2d643a38d4fd5fd0ca711b9da683d452969"}, + {file = "regex-2024.4.16-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:20b7a68444f536365af42a75ccecb7ab41a896a04acf58432db9e206f4e525d6"}, + {file = "regex-2024.4.16-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b74586dd0b039c62416034f811d7ee62810174bb70dffcca6439f5236249eb09"}, + {file = "regex-2024.4.16-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c8290b44d8b0af4e77048646c10c6e3aa583c1ca67f3b5ffb6e06cf0c6f0f89"}, + {file = "regex-2024.4.16-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2d80a6749724b37853ece57988b39c4e79d2b5fe2869a86e8aeae3bbeef9eb0"}, + {file = "regex-2024.4.16-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:3a1018e97aeb24e4f939afcd88211ace472ba566efc5bdf53fd8fd7f41fa7170"}, + {file = "regex-2024.4.16-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:8d015604ee6204e76569d2f44e5a210728fa917115bef0d102f4107e622b08d5"}, + {file = "regex-2024.4.16-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:3d5ac5234fb5053850d79dd8eb1015cb0d7d9ed951fa37aa9e6249a19aa4f336"}, + {file = "regex-2024.4.16-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:0a38d151e2cdd66d16dab550c22f9521ba79761423b87c01dae0a6e9add79c0d"}, + {file = "regex-2024.4.16-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:159dc4e59a159cb8e4e8f8961eb1fa5d58f93cb1acd1701d8aff38d45e1a84a6"}, + {file = "regex-2024.4.16-cp311-cp311-win32.whl", hash = "sha256:ba2336d6548dee3117520545cfe44dc28a250aa091f8281d28804aa8d707d93d"}, + {file = "regex-2024.4.16-cp311-cp311-win_amd64.whl", hash = "sha256:8f83b6fd3dc3ba94d2b22717f9c8b8512354fd95221ac661784df2769ea9bba9"}, + {file = "regex-2024.4.16-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:80b696e8972b81edf0af2a259e1b2a4a661f818fae22e5fa4fa1a995fb4a40fd"}, + {file = "regex-2024.4.16-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d61ae114d2a2311f61d90c2ef1358518e8f05eafda76eaf9c772a077e0b465ec"}, + {file = "regex-2024.4.16-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8ba6745440b9a27336443b0c285d705ce73adb9ec90e2f2004c64d95ab5a7598"}, + {file = "regex-2024.4.16-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6295004b2dd37b0835ea5c14a33e00e8cfa3c4add4d587b77287825f3418d310"}, + {file = "regex-2024.4.16-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4aba818dcc7263852aabb172ec27b71d2abca02a593b95fa79351b2774eb1d2b"}, + {file = "regex-2024.4.16-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d0800631e565c47520aaa04ae38b96abc5196fe8b4aa9bd864445bd2b5848a7a"}, + {file = "regex-2024.4.16-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:08dea89f859c3df48a440dbdcd7b7155bc675f2fa2ec8c521d02dc69e877db70"}, + {file = "regex-2024.4.16-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eeaa0b5328b785abc344acc6241cffde50dc394a0644a968add75fcefe15b9d4"}, + {file = "regex-2024.4.16-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:4e819a806420bc010489f4e741b3036071aba209f2e0989d4750b08b12a9343f"}, + {file = "regex-2024.4.16-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:c2d0e7cbb6341e830adcbfa2479fdeebbfbb328f11edd6b5675674e7a1e37730"}, + {file = "regex-2024.4.16-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:91797b98f5e34b6a49f54be33f72e2fb658018ae532be2f79f7c63b4ae225145"}, + {file = "regex-2024.4.16-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:d2da13568eff02b30fd54fccd1e042a70fe920d816616fda4bf54ec705668d81"}, + {file = "regex-2024.4.16-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:370c68dc5570b394cbaadff50e64d705f64debed30573e5c313c360689b6aadc"}, + {file = "regex-2024.4.16-cp312-cp312-win32.whl", hash = "sha256:904c883cf10a975b02ab3478bce652f0f5346a2c28d0a8521d97bb23c323cc8b"}, + {file = "regex-2024.4.16-cp312-cp312-win_amd64.whl", hash = "sha256:785c071c982dce54d44ea0b79cd6dfafddeccdd98cfa5f7b86ef69b381b457d9"}, + {file = "regex-2024.4.16-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:e2f142b45c6fed48166faeb4303b4b58c9fcd827da63f4cf0a123c3480ae11fb"}, + {file = "regex-2024.4.16-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e87ab229332ceb127a165612d839ab87795972102cb9830e5f12b8c9a5c1b508"}, + {file = "regex-2024.4.16-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:81500ed5af2090b4a9157a59dbc89873a25c33db1bb9a8cf123837dcc9765047"}, + {file = "regex-2024.4.16-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b340cccad138ecb363324aa26893963dcabb02bb25e440ebdf42e30963f1a4e0"}, + {file = "regex-2024.4.16-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c72608e70f053643437bd2be0608f7f1c46d4022e4104d76826f0839199347a"}, + {file = "regex-2024.4.16-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a01fe2305e6232ef3e8f40bfc0f0f3a04def9aab514910fa4203bafbc0bb4682"}, + {file = "regex-2024.4.16-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:03576e3a423d19dda13e55598f0fd507b5d660d42c51b02df4e0d97824fdcae3"}, + {file = "regex-2024.4.16-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:549c3584993772e25f02d0656ac48abdda73169fe347263948cf2b1cead622f3"}, + {file = "regex-2024.4.16-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:34422d5a69a60b7e9a07a690094e824b66f5ddc662a5fc600d65b7c174a05f04"}, + {file = "regex-2024.4.16-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:5f580c651a72b75c39e311343fe6875d6f58cf51c471a97f15a938d9fe4e0d37"}, + {file = "regex-2024.4.16-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:3399dd8a7495bbb2bacd59b84840eef9057826c664472e86c91d675d007137f5"}, + {file = "regex-2024.4.16-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8d1f86f3f4e2388aa3310b50694ac44daefbd1681def26b4519bd050a398dc5a"}, + {file = "regex-2024.4.16-cp37-cp37m-win32.whl", hash = "sha256:dd5acc0a7d38fdc7a3a6fd3ad14c880819008ecb3379626e56b163165162cc46"}, + {file = "regex-2024.4.16-cp37-cp37m-win_amd64.whl", hash = "sha256:ba8122e3bb94ecda29a8de4cf889f600171424ea586847aa92c334772d200331"}, + {file = "regex-2024.4.16-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:743deffdf3b3481da32e8a96887e2aa945ec6685af1cfe2bcc292638c9ba2f48"}, + {file = "regex-2024.4.16-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7571f19f4a3fd00af9341c7801d1ad1967fc9c3f5e62402683047e7166b9f2b4"}, + {file = "regex-2024.4.16-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:df79012ebf6f4efb8d307b1328226aef24ca446b3ff8d0e30202d7ebcb977a8c"}, + {file = "regex-2024.4.16-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e757d475953269fbf4b441207bb7dbdd1c43180711b6208e129b637792ac0b93"}, + {file = "regex-2024.4.16-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4313ab9bf6a81206c8ac28fdfcddc0435299dc88cad12cc6305fd0e78b81f9e4"}, + {file = "regex-2024.4.16-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d83c2bc678453646f1a18f8db1e927a2d3f4935031b9ad8a76e56760461105dd"}, + {file = "regex-2024.4.16-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9df1bfef97db938469ef0a7354b2d591a2d438bc497b2c489471bec0e6baf7c4"}, + {file = "regex-2024.4.16-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62120ed0de69b3649cc68e2965376048793f466c5a6c4370fb27c16c1beac22d"}, + {file = "regex-2024.4.16-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c2ef6f7990b6e8758fe48ad08f7e2f66c8f11dc66e24093304b87cae9037bb4a"}, + {file = "regex-2024.4.16-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:8fc6976a3395fe4d1fbeb984adaa8ec652a1e12f36b56ec8c236e5117b585427"}, + {file = "regex-2024.4.16-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:03e68f44340528111067cecf12721c3df4811c67268b897fbe695c95f860ac42"}, + {file = "regex-2024.4.16-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:ec7e0043b91115f427998febaa2beb82c82df708168b35ece3accb610b91fac1"}, + {file = "regex-2024.4.16-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:c21fc21a4c7480479d12fd8e679b699f744f76bb05f53a1d14182b31f55aac76"}, + {file = "regex-2024.4.16-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:12f6a3f2f58bb7344751919a1876ee1b976fe08b9ffccb4bbea66f26af6017b9"}, + {file = "regex-2024.4.16-cp38-cp38-win32.whl", hash = "sha256:479595a4fbe9ed8f8f72c59717e8cf222da2e4c07b6ae5b65411e6302af9708e"}, + {file = "regex-2024.4.16-cp38-cp38-win_amd64.whl", hash = "sha256:0534b034fba6101611968fae8e856c1698da97ce2efb5c2b895fc8b9e23a5834"}, + {file = "regex-2024.4.16-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:a7ccdd1c4a3472a7533b0a7aa9ee34c9a2bef859ba86deec07aff2ad7e0c3b94"}, + {file = "regex-2024.4.16-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6f2f017c5be19984fbbf55f8af6caba25e62c71293213f044da3ada7091a4455"}, + {file = "regex-2024.4.16-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:803b8905b52de78b173d3c1e83df0efb929621e7b7c5766c0843704d5332682f"}, + {file = "regex-2024.4.16-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:684008ec44ad275832a5a152f6e764bbe1914bea10968017b6feaecdad5736e0"}, + {file = "regex-2024.4.16-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:65436dce9fdc0aeeb0a0effe0839cb3d6a05f45aa45a4d9f9c60989beca78b9c"}, + {file = "regex-2024.4.16-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ea355eb43b11764cf799dda62c658c4d2fdb16af41f59bb1ccfec517b60bcb07"}, + {file = "regex-2024.4.16-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98c1165f3809ce7774f05cb74e5408cd3aa93ee8573ae959a97a53db3ca3180d"}, + {file = "regex-2024.4.16-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cccc79a9be9b64c881f18305a7c715ba199e471a3973faeb7ba84172abb3f317"}, + {file = "regex-2024.4.16-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:00169caa125f35d1bca6045d65a662af0202704489fada95346cfa092ec23f39"}, + {file = "regex-2024.4.16-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:6cc38067209354e16c5609b66285af17a2863a47585bcf75285cab33d4c3b8df"}, + {file = "regex-2024.4.16-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:23cff1b267038501b179ccbbd74a821ac4a7192a1852d1d558e562b507d46013"}, + {file = "regex-2024.4.16-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:b9d320b3bf82a39f248769fc7f188e00f93526cc0fe739cfa197868633d44701"}, + {file = "regex-2024.4.16-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:89ec7f2c08937421bbbb8b48c54096fa4f88347946d4747021ad85f1b3021b3c"}, + {file = "regex-2024.4.16-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4918fd5f8b43aa7ec031e0fef1ee02deb80b6afd49c85f0790be1dc4ce34cb50"}, + {file = "regex-2024.4.16-cp39-cp39-win32.whl", hash = "sha256:684e52023aec43bdf0250e843e1fdd6febbe831bd9d52da72333fa201aaa2335"}, + {file = "regex-2024.4.16-cp39-cp39-win_amd64.whl", hash = "sha256:e697e1c0238133589e00c244a8b676bc2cfc3ab4961318d902040d099fec7483"}, + {file = "regex-2024.4.16.tar.gz", hash = "sha256:fa454d26f2e87ad661c4f0c5a5fe4cf6aab1e307d1b94f16ffdfcb089ba685c0"}, +] + +[[package]] +name = "requests" +version = "2.31.0" +description = "Python HTTP for Humans." +optional = false +python-versions = ">=3.7" +files = [ + {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, + {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, +] + +[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 = "rich" +version = "13.7.1" +description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "rich-13.7.1-py3-none-any.whl", hash = "sha256:4edbae314f59eb482f54e9e30bf00d33350aaa94f4bfcd4e9e3110e64d0d7222"}, + {file = "rich-13.7.1.tar.gz", hash = "sha256:9be308cb1fe2f1f57d67ce99e95af38a1e2bc71ad9813b0e247cf7ffbcc3a432"}, +] + +[package.dependencies] +markdown-it-py = ">=2.2.0" +pygments = ">=2.13.0,<3.0.0" +typing-extensions = {version = ">=4.0.0,<5.0", markers = "python_version < \"3.9\""} + +[package.extras] +jupyter = ["ipywidgets (>=7.5.1,<9)"] + +[[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 = "six" +version = "1.16.0" +description = "Python 2 and 3 compatibility utilities" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] + +[[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.2.3" +description = "Retry code until it succeeds" +optional = false +python-versions = ">=3.7" +files = [ + {file = "tenacity-8.2.3-py3-none-any.whl", hash = "sha256:ce510e327a630c9e1beaf17d42e6ffacc88185044ad85cf74c0a8887c6a0f88c"}, + {file = "tenacity-8.2.3.tar.gz", hash = "sha256:5398ef0d78e63f40007c1fb4c0bff96e1911394d2fa8d194f77619c05ff6cc8a"}, +] + +[package.extras] +doc = ["reno", "sphinx", "tornado (>=4.5)"] + +[[package]] +name = "tiktoken" +version = "0.6.0" +description = "tiktoken is a fast BPE tokeniser for use with OpenAI's models" +optional = false +python-versions = ">=3.8" +files = [ + {file = "tiktoken-0.6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:277de84ccd8fa12730a6b4067456e5cf72fef6300bea61d506c09e45658d41ac"}, + {file = "tiktoken-0.6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9c44433f658064463650d61387623735641dcc4b6c999ca30bc0f8ba3fccaf5c"}, + {file = "tiktoken-0.6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:afb9a2a866ae6eef1995ab656744287a5ac95acc7e0491c33fad54d053288ad3"}, + {file = "tiktoken-0.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c62c05b3109fefca26fedb2820452a050074ad8e5ad9803f4652977778177d9f"}, + {file = "tiktoken-0.6.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:0ef917fad0bccda07bfbad835525bbed5f3ab97a8a3e66526e48cdc3e7beacf7"}, + {file = "tiktoken-0.6.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:e095131ab6092d0769a2fda85aa260c7c383072daec599ba9d8b149d2a3f4d8b"}, + {file = "tiktoken-0.6.0-cp310-cp310-win_amd64.whl", hash = "sha256:05b344c61779f815038292a19a0c6eb7098b63c8f865ff205abb9ea1b656030e"}, + {file = "tiktoken-0.6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cefb9870fb55dca9e450e54dbf61f904aab9180ff6fe568b61f4db9564e78871"}, + {file = "tiktoken-0.6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:702950d33d8cabc039845674107d2e6dcabbbb0990ef350f640661368df481bb"}, + {file = "tiktoken-0.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8d49d076058f23254f2aff9af603863c5c5f9ab095bc896bceed04f8f0b013a"}, + {file = "tiktoken-0.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:430bc4e650a2d23a789dc2cdca3b9e5e7eb3cd3935168d97d43518cbb1f9a911"}, + {file = "tiktoken-0.6.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:293cb8669757301a3019a12d6770bd55bec38a4d3ee9978ddbe599d68976aca7"}, + {file = "tiktoken-0.6.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:7bd1a288b7903aadc054b0e16ea78e3171f70b670e7372432298c686ebf9dd47"}, + {file = "tiktoken-0.6.0-cp311-cp311-win_amd64.whl", hash = "sha256:ac76e000183e3b749634968a45c7169b351e99936ef46f0d2353cd0d46c3118d"}, + {file = "tiktoken-0.6.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:17cc8a4a3245ab7d935c83a2db6bb71619099d7284b884f4b2aea4c74f2f83e3"}, + {file = "tiktoken-0.6.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:284aebcccffe1bba0d6571651317df6a5b376ff6cfed5aeb800c55df44c78177"}, + {file = "tiktoken-0.6.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0c1a3a5d33846f8cd9dd3b7897c1d45722f48625a587f8e6f3d3e85080559be8"}, + {file = "tiktoken-0.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6318b2bb2337f38ee954fd5efa82632c6e5ced1d52a671370fa4b2eff1355e91"}, + {file = "tiktoken-0.6.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:1f5f0f2ed67ba16373f9a6013b68da298096b27cd4e1cf276d2d3868b5c7efd1"}, + {file = "tiktoken-0.6.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:75af4c0b16609c2ad02581f3cdcd1fb698c7565091370bf6c0cf8624ffaba6dc"}, + {file = "tiktoken-0.6.0-cp312-cp312-win_amd64.whl", hash = "sha256:45577faf9a9d383b8fd683e313cf6df88b6076c034f0a16da243bb1c139340c3"}, + {file = "tiktoken-0.6.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:7c1492ab90c21ca4d11cef3a236ee31a3e279bb21b3fc5b0e2210588c4209e68"}, + {file = "tiktoken-0.6.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:e2b380c5b7751272015400b26144a2bab4066ebb8daae9c3cd2a92c3b508fe5a"}, + {file = "tiktoken-0.6.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9f497598b9f58c99cbc0eb764b4a92272c14d5203fc713dd650b896a03a50ad"}, + {file = "tiktoken-0.6.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e65e8bd6f3f279d80f1e1fbd5f588f036b9a5fa27690b7f0cc07021f1dfa0839"}, + {file = "tiktoken-0.6.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5f1495450a54e564d236769d25bfefbf77727e232d7a8a378f97acddee08c1ae"}, + {file = "tiktoken-0.6.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6c4e4857d99f6fb4670e928250835b21b68c59250520a1941618b5b4194e20c3"}, + {file = "tiktoken-0.6.0-cp38-cp38-win_amd64.whl", hash = "sha256:168d718f07a39b013032741867e789971346df8e89983fe3c0ef3fbd5a0b1cb9"}, + {file = "tiktoken-0.6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:47fdcfe11bd55376785a6aea8ad1db967db7f66ea81aed5c43fad497521819a4"}, + {file = "tiktoken-0.6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fb7d2ccbf1a7784810aff6b80b4012fb42c6fc37eaa68cb3b553801a5cc2d1fc"}, + {file = "tiktoken-0.6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1ccb7a111ee76af5d876a729a347f8747d5ad548e1487eeea90eaf58894b3138"}, + {file = "tiktoken-0.6.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b2048e1086b48e3c8c6e2ceeac866561374cd57a84622fa49a6b245ffecb7744"}, + {file = "tiktoken-0.6.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:07f229a5eb250b6403a61200199cecf0aac4aa23c3ecc1c11c1ca002cbb8f159"}, + {file = "tiktoken-0.6.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:432aa3be8436177b0db5a2b3e7cc28fd6c693f783b2f8722539ba16a867d0c6a"}, + {file = "tiktoken-0.6.0-cp39-cp39-win_amd64.whl", hash = "sha256:8bfe8a19c8b5c40d121ee7938cd9c6a278e5b97dc035fd61714b4f0399d2f7a1"}, + {file = "tiktoken-0.6.0.tar.gz", hash = "sha256:ace62a4ede83c75b0374a2ddfa4b76903cf483e9cb06247f566be3bf14e6beed"}, +] + +[package.dependencies] +regex = ">=2022.1.18" +requests = ">=2.26.0" + +[package.extras] +blobfile = ["blobfile (>=2)"] + +[[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 = "tqdm" +version = "4.66.2" +description = "Fast, Extensible Progress Meter" +optional = false +python-versions = ">=3.7" +files = [ + {file = "tqdm-4.66.2-py3-none-any.whl", hash = "sha256:1ee4f8a893eb9bef51c6e35730cebf234d5d0b6bd112b0271e10ed7c24a02bd9"}, + {file = "tqdm-4.66.2.tar.gz", hash = "sha256:6cd52cdf0fef0e0f543299cfc96fec90d7b8a7e88745f411ec33eb44d5ed3531"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[package.extras] +dev = ["pytest (>=6)", "pytest-cov", "pytest-timeout", "pytest-xdist"] +notebook = ["ipywidgets (>=6)"] +slack = ["slack-sdk"] +telegram = ["requests"] + +[[package]] +name = "types-requests" +version = "2.31.0.20240406" +description = "Typing stubs for requests" +optional = false +python-versions = ">=3.8" +files = [ + {file = "types-requests-2.31.0.20240406.tar.gz", hash = "sha256:4428df33c5503945c74b3f42e82b181e86ec7b724620419a2966e2de604ce1a1"}, + {file = "types_requests-2.31.0.20240406-py3-none-any.whl", hash = "sha256:6216cdac377c6b9a040ac1c0404f7284bd13199c0e1bb235f4324627e8898cf5"}, +] + +[package.dependencies] +urllib3 = ">=2" + +[[package]] +name = "typing-extensions" +version = "4.11.0" +description = "Backported and Experimental Type Hints for Python 3.8+" +optional = false +python-versions = ">=3.8" +files = [ + {file = "typing_extensions-4.11.0-py3-none-any.whl", hash = "sha256:c1f94d72897edaf4ce775bb7558d5b79d8126906a14ea5ed1635921406c0387a"}, + {file = "typing_extensions-4.11.0.tar.gz", hash = "sha256:83f085bd5ca59c80295fc2a82ab5dac679cbe02b9f33f7d83af68e241bea51b0"}, +] + +[[package]] +name = "typing-inspect" +version = "0.9.0" +description = "Runtime inspection utilities for typing module." +optional = false +python-versions = "*" +files = [ + {file = "typing_inspect-0.9.0-py3-none-any.whl", hash = "sha256:9ee6fc59062311ef8547596ab6b955e1b8aa46242d854bfc78f4f6b0eff35f9f"}, + {file = "typing_inspect-0.9.0.tar.gz", hash = "sha256:b23fc42ff6f6ef6954e4852c1fb512cdd18dbea03134f91f856a95ccc9461f78"}, +] + +[package.dependencies] +mypy-extensions = ">=0.3.0" +typing-extensions = ">=3.7.4" + +[[package]] +name = "urllib3" +version = "2.2.1" +description = "HTTP library with thread-safe connection pooling, file post, and more." +optional = false +python-versions = ">=3.8" +files = [ + {file = "urllib3-2.2.1-py3-none-any.whl", hash = "sha256:450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d"}, + {file = "urllib3-2.2.1.tar.gz", hash = "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19"}, +] + +[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)"] + +[[package]] +name = "watchdog" +version = "4.0.0" +description = "Filesystem events monitoring" +optional = false +python-versions = ">=3.8" +files = [ + {file = "watchdog-4.0.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:39cb34b1f1afbf23e9562501673e7146777efe95da24fab5707b88f7fb11649b"}, + {file = "watchdog-4.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c522392acc5e962bcac3b22b9592493ffd06d1fc5d755954e6be9f4990de932b"}, + {file = "watchdog-4.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6c47bdd680009b11c9ac382163e05ca43baf4127954c5f6d0250e7d772d2b80c"}, + {file = "watchdog-4.0.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8350d4055505412a426b6ad8c521bc7d367d1637a762c70fdd93a3a0d595990b"}, + {file = "watchdog-4.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c17d98799f32e3f55f181f19dd2021d762eb38fdd381b4a748b9f5a36738e935"}, + {file = "watchdog-4.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4986db5e8880b0e6b7cd52ba36255d4793bf5cdc95bd6264806c233173b1ec0b"}, + {file = "watchdog-4.0.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:11e12fafb13372e18ca1bbf12d50f593e7280646687463dd47730fd4f4d5d257"}, + {file = "watchdog-4.0.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5369136a6474678e02426bd984466343924d1df8e2fd94a9b443cb7e3aa20d19"}, + {file = "watchdog-4.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:76ad8484379695f3fe46228962017a7e1337e9acadafed67eb20aabb175df98b"}, + {file = "watchdog-4.0.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:45cc09cc4c3b43fb10b59ef4d07318d9a3ecdbff03abd2e36e77b6dd9f9a5c85"}, + {file = "watchdog-4.0.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:eed82cdf79cd7f0232e2fdc1ad05b06a5e102a43e331f7d041e5f0e0a34a51c4"}, + {file = "watchdog-4.0.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ba30a896166f0fee83183cec913298151b73164160d965af2e93a20bbd2ab605"}, + {file = "watchdog-4.0.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:d18d7f18a47de6863cd480734613502904611730f8def45fc52a5d97503e5101"}, + {file = "watchdog-4.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2895bf0518361a9728773083908801a376743bcc37dfa252b801af8fd281b1ca"}, + {file = "watchdog-4.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:87e9df830022488e235dd601478c15ad73a0389628588ba0b028cb74eb72fed8"}, + {file = "watchdog-4.0.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:6e949a8a94186bced05b6508faa61b7adacc911115664ccb1923b9ad1f1ccf7b"}, + {file = "watchdog-4.0.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:6a4db54edea37d1058b08947c789a2354ee02972ed5d1e0dca9b0b820f4c7f92"}, + {file = "watchdog-4.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:d31481ccf4694a8416b681544c23bd271f5a123162ab603c7d7d2dd7dd901a07"}, + {file = "watchdog-4.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:8fec441f5adcf81dd240a5fe78e3d83767999771630b5ddfc5867827a34fa3d3"}, + {file = "watchdog-4.0.0-py3-none-manylinux2014_armv7l.whl", hash = "sha256:6a9c71a0b02985b4b0b6d14b875a6c86ddea2fdbebd0c9a720a806a8bbffc69f"}, + {file = "watchdog-4.0.0-py3-none-manylinux2014_i686.whl", hash = "sha256:557ba04c816d23ce98a06e70af6abaa0485f6d94994ec78a42b05d1c03dcbd50"}, + {file = "watchdog-4.0.0-py3-none-manylinux2014_ppc64.whl", hash = "sha256:d0f9bd1fd919134d459d8abf954f63886745f4660ef66480b9d753a7c9d40927"}, + {file = "watchdog-4.0.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:f9b2fdca47dc855516b2d66eef3c39f2672cbf7e7a42e7e67ad2cbfcd6ba107d"}, + {file = "watchdog-4.0.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:73c7a935e62033bd5e8f0da33a4dcb763da2361921a69a5a95aaf6c93aa03a87"}, + {file = "watchdog-4.0.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:6a80d5cae8c265842c7419c560b9961561556c4361b297b4c431903f8c33b269"}, + {file = "watchdog-4.0.0-py3-none-win32.whl", hash = "sha256:8f9a542c979df62098ae9c58b19e03ad3df1c9d8c6895d96c0d51da17b243b1c"}, + {file = "watchdog-4.0.0-py3-none-win_amd64.whl", hash = "sha256:f970663fa4f7e80401a7b0cbeec00fa801bf0287d93d48368fc3e6fa32716245"}, + {file = "watchdog-4.0.0-py3-none-win_ia64.whl", hash = "sha256:9a03e16e55465177d416699331b0f3564138f1807ecc5f2de9d55d8f188d08c7"}, + {file = "watchdog-4.0.0.tar.gz", hash = "sha256:e3e7065cbdabe6183ab82199d7a4f6b3ba0a438c5a512a68559846ccb76a78ec"}, +] + +[package.extras] +watchmedo = ["PyYAML (>=3.10)"] + +[metadata] +lock-version = "2.0" +python-versions = ">=3.8.1,<4.0" +content-hash = "5da7c37ac95e35eb7eaf9b2eb6551d53b4c1737a0445ce3dbdc94b4f349fe207" diff --git a/libs/partners/upstage/pyproject.toml b/libs/partners/upstage/pyproject.toml new file mode 100644 index 0000000000..2a2d5aa93a --- /dev/null +++ b/libs/partners/upstage/pyproject.toml @@ -0,0 +1,96 @@ +[tool.poetry] +name = "langchain-upstage" +version = "0.1.0rc0" +description = "An integration package connecting Upstage 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/upstage" + +[tool.poetry.dependencies] +python = ">=3.8.1,<4.0" +langchain-core = "^0.1.42" +langchain-openai = "^0.1.3" + +[tool.poetry.group.test] +optional = true + +[tool.poetry.group.test.dependencies] +pytest = "^7.3.0" +freezegun = "^1.2.2" +pytest-mock = "^3.10.0" +syrupy = "^4.0.2" +pytest-watcher = "^0.3.4" +pytest-asyncio = "^0.21.1" +langchain-openai = { path = "../openai", develop = true } +langchain-core = { path = "../../core", develop = true } +docarray = "^0.32.1" +pydantic = "^1.10.9" +langchain-standard-tests = { path = "../../standard-tests", develop = true } + +[tool.poetry.group.codespell] +optional = true + +[tool.poetry.group.codespell.dependencies] +codespell = "^2.2.0" + +[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.5" + +[tool.poetry.group.typing.dependencies] +mypy = "^0.991" +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] +select = [ + "E", # pycodestyle + "F", # pyflakes + "I", # isort +] + +[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 = [ + "requires: mark tests as requiring a specific library", + "asyncio: mark tests as requiring asyncio", + "compile: mark placeholder test used to compile integration tests without running them", +] +asyncio_mode = "auto" diff --git a/libs/partners/upstage/scripts/check_imports.py b/libs/partners/upstage/scripts/check_imports.py new file mode 100644 index 0000000000..fd21a4975b --- /dev/null +++ b/libs/partners/upstage/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) + traceback.print_exc() + print() + + sys.exit(1 if has_failure else 0) diff --git a/libs/partners/upstage/scripts/check_pydantic.sh b/libs/partners/upstage/scripts/check_pydantic.sh new file mode 100755 index 0000000000..06b5bb81ae --- /dev/null +++ b/libs/partners/upstage/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/upstage/scripts/lint_imports.sh b/libs/partners/upstage/scripts/lint_imports.sh new file mode 100755 index 0000000000..695613c7ba --- /dev/null +++ b/libs/partners/upstage/scripts/lint_imports.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +set -eu + +# Initialize a variable to keep track of errors +errors=0 + +# make sure not importing from langchain or langchain_experimental +git --no-pager grep '^from langchain\.' . && errors=$((errors+1)) +git --no-pager grep '^from langchain_experimental\.' . && 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/upstage/tests/__init__.py b/libs/partners/upstage/tests/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/libs/partners/upstage/tests/integration_tests/__init__.py b/libs/partners/upstage/tests/integration_tests/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/libs/partners/upstage/tests/integration_tests/test_chat_models.py b/libs/partners/upstage/tests/integration_tests/test_chat_models.py new file mode 100644 index 0000000000..0a0da3a3fb --- /dev/null +++ b/libs/partners/upstage/tests/integration_tests/test_chat_models.py @@ -0,0 +1,136 @@ +import pytest +from langchain_core.messages import BaseMessage, HumanMessage, SystemMessage + +from langchain_upstage import ChatUpstage + + +def test_chat_upstage_model() -> None: + """Test ChatUpstage wrapper handles model_name.""" + chat = ChatUpstage(model="foo") + assert chat.model_name == "foo" + chat = ChatUpstage(model_name="bar") + assert chat.model_name == "bar" + + +def test_chat_upstage_system_message() -> None: + """Test ChatOpenAI wrapper with system message.""" + chat = ChatUpstage(max_tokens=10) + system_message = SystemMessage(content="You are to chat with the user.") + human_message = HumanMessage(content="Hello") + response = chat([system_message, human_message]) + assert isinstance(response, BaseMessage) + assert isinstance(response.content, str) + + +def test_chat_upstage_llm_output_contains_model_name() -> None: + """Test llm_output contains model_name.""" + chat = ChatUpstage(max_tokens=10) + message = HumanMessage(content="Hello") + llm_result = chat.generate([[message]]) + assert llm_result.llm_output is not None + assert llm_result.llm_output["model_name"] == chat.model_name + + +def test_chat_upstage_streaming_llm_output_contains_model_name() -> None: + """Test llm_output contains model_name.""" + chat = ChatUpstage(max_tokens=10, streaming=True) + message = HumanMessage(content="Hello") + llm_result = chat.generate([[message]]) + assert llm_result.llm_output is not None + assert llm_result.llm_output["model_name"] == chat.model_name + + +def test_chat_upstage_invalid_streaming_params() -> None: + """Test that streaming correctly invokes on_llm_new_token callback.""" + with pytest.raises(ValueError): + ChatUpstage( + max_tokens=10, + streaming=True, + temperature=0, + n=5, + ) + + +def test_chat_upstage_extra_kwargs() -> None: + """Test extra kwargs to chat upstage.""" + # Check that foo is saved in extra_kwargs. + llm = ChatUpstage(foo=3, max_tokens=10) + assert llm.max_tokens == 10 + assert llm.model_kwargs == {"foo": 3} + + # Test that if extra_kwargs are provided, they are added to it. + llm = ChatUpstage(foo=3, model_kwargs={"bar": 2}) + assert llm.model_kwargs == {"foo": 3, "bar": 2} + + # Test that if provided twice it errors + with pytest.raises(ValueError): + ChatUpstage(foo=3, model_kwargs={"foo": 2}) + + # Test that if explicit param is specified in kwargs it errors + with pytest.raises(ValueError): + ChatUpstage(model_kwargs={"temperature": 0.2}) + + # Test that "model" cannot be specified in kwargs + with pytest.raises(ValueError): + ChatUpstage(model_kwargs={"model": "solar-1-mini-chat"}) + + +def test_stream() -> None: + """Test streaming tokens from OpenAI.""" + llm = ChatUpstage() + + for token in llm.stream("I'm Pickle Rick"): + assert isinstance(token.content, str) + + +async def test_astream() -> None: + """Test streaming tokens from OpenAI.""" + llm = ChatUpstage() + + async for token in llm.astream("I'm Pickle Rick"): + assert isinstance(token.content, str) + + +async def test_abatch() -> None: + """Test streaming tokens from ChatUpstage.""" + llm = ChatUpstage() + + result = await llm.abatch(["I'm Pickle Rick", "I'm not Pickle Rick"]) + for token in result: + assert isinstance(token.content, str) + + +async def test_abatch_tags() -> None: + """Test batch tokens from ChatUpstage.""" + llm = ChatUpstage() + + result = await llm.abatch( + ["I'm Pickle Rick", "I'm not Pickle Rick"], config={"tags": ["foo"]} + ) + for token in result: + assert isinstance(token.content, str) + + +def test_batch() -> None: + """Test batch tokens from ChatUpstage.""" + llm = ChatUpstage() + + result = llm.batch(["I'm Pickle Rick", "I'm not Pickle Rick"]) + for token in result: + assert isinstance(token.content, str) + + +async def test_ainvoke() -> None: + """Test invoke tokens from ChatUpstage.""" + llm = ChatUpstage() + + result = await llm.ainvoke("I'm Pickle Rick", config={"tags": ["foo"]}) + assert isinstance(result.content, str) + + +def test_invoke() -> None: + """Test invoke tokens from ChatUpstage.""" + llm = ChatUpstage() + + result = llm.invoke("I'm Pickle Rick", config=dict(tags=["foo"])) + assert isinstance(result.content, str) diff --git a/libs/partners/upstage/tests/integration_tests/test_chat_models_standard.py b/libs/partners/upstage/tests/integration_tests/test_chat_models_standard.py new file mode 100644 index 0000000000..0d65a9bca5 --- /dev/null +++ b/libs/partners/upstage/tests/integration_tests/test_chat_models_standard.py @@ -0,0 +1,32 @@ +"""Standard LangChain interface tests""" + +from typing import Type + +import pytest +from langchain_core.language_models import BaseChatModel +from langchain_standard_tests.integration_tests import ChatModelIntegrationTests + +from langchain_upstage import ChatUpstage + + +class TestUpstageStandard(ChatModelIntegrationTests): + @pytest.fixture + def chat_model_class(self) -> Type[BaseChatModel]: + return ChatUpstage + + @pytest.fixture + def chat_model_params(self) -> dict: + return { + "model": "solar-1-mini-chat", + } + + @pytest.mark.xfail(reason="400s with tool calling currently") + def test_tool_message_histories( + self, + chat_model_class: Type[BaseChatModel], + chat_model_params: dict, + chat_model_has_tool_calling: bool, + ) -> None: + super().test_tool_message_histories( + chat_model_class, chat_model_params, chat_model_has_tool_calling + ) diff --git a/libs/partners/upstage/tests/integration_tests/test_compile.py b/libs/partners/upstage/tests/integration_tests/test_compile.py new file mode 100644 index 0000000000..33ecccdfa0 --- /dev/null +++ b/libs/partners/upstage/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/upstage/tests/integration_tests/test_embeddings.py b/libs/partners/upstage/tests/integration_tests/test_embeddings.py new file mode 100644 index 0000000000..6105aae577 --- /dev/null +++ b/libs/partners/upstage/tests/integration_tests/test_embeddings.py @@ -0,0 +1,36 @@ +"""Test Upstage embeddings.""" +from langchain_upstage import UpstageEmbeddings + + +def test_langchain_upstage_embed_documents() -> None: + """Test Upstage embeddings.""" + documents = ["foo bar", "bar foo"] + embedding = UpstageEmbeddings() + output = embedding.embed_documents(documents) + assert len(output) == 2 + assert len(output[0]) > 0 + + +def test_langchain_upstage_embed_query() -> None: + """Test Upstage embeddings.""" + query = "foo bar" + embedding = UpstageEmbeddings() + output = embedding.embed_query(query) + assert len(output) > 0 + + +async def test_langchain_upstage_aembed_documents() -> None: + """Test Upstage embeddings asynchronous.""" + documents = ["foo bar", "bar foo"] + embedding = UpstageEmbeddings() + output = await embedding.aembed_documents(documents) + assert len(output) == 2 + assert len(output[0]) > 0 + + +async def test_langchain_upstage_aembed_query() -> None: + """Test Upstage embeddings asynchronous.""" + query = "foo bar" + embedding = UpstageEmbeddings() + output = await embedding.aembed_query(query) + assert len(output) > 0 diff --git a/libs/partners/upstage/tests/unit_tests/__init__.py b/libs/partners/upstage/tests/unit_tests/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/libs/partners/upstage/tests/unit_tests/test_chat_models.py b/libs/partners/upstage/tests/unit_tests/test_chat_models.py new file mode 100644 index 0000000000..3997cff4df --- /dev/null +++ b/libs/partners/upstage/tests/unit_tests/test_chat_models.py @@ -0,0 +1,192 @@ +import json +from typing import Any +from unittest.mock import AsyncMock, MagicMock, patch + +import pytest +from langchain_core.messages import ( + AIMessage, + FunctionMessage, + HumanMessage, + SystemMessage, + ToolMessage, +) +from langchain_openai.chat_models.base import ( + _convert_dict_to_message, + _convert_message_to_dict, +) + +from langchain_upstage import ChatUpstage + + +def test_initialization() -> None: + """Test chat model initialization.""" + ChatUpstage() + + +def test_upstage_model_param() -> None: + llm = ChatUpstage(model="foo") + assert llm.model_name == "foo" + llm = ChatUpstage(model_name="foo") + assert llm.model_name == "foo" + + +def test_function_dict_to_message_function_message() -> None: + content = json.dumps({"result": "Example #1"}) + name = "test_function" + result = _convert_dict_to_message( + { + "role": "function", + "name": name, + "content": content, + } + ) + assert isinstance(result, FunctionMessage) + assert result.name == name + assert result.content == content + + +def test_convert_dict_to_message_human() -> None: + message = {"role": "user", "content": "foo"} + result = _convert_dict_to_message(message) + expected_output = HumanMessage(content="foo") + assert result == expected_output + assert _convert_message_to_dict(expected_output) == message + + +def test__convert_dict_to_message_human_with_name() -> None: + message = {"role": "user", "content": "foo", "name": "test"} + result = _convert_dict_to_message(message) + expected_output = HumanMessage(content="foo", name="test") + assert result == expected_output + assert _convert_message_to_dict(expected_output) == message + + +def test_convert_dict_to_message_ai() -> None: + message = {"role": "assistant", "content": "foo"} + result = _convert_dict_to_message(message) + expected_output = AIMessage(content="foo") + assert result == expected_output + assert _convert_message_to_dict(expected_output) == message + + +def test_convert_dict_to_message_ai_with_name() -> None: + message = {"role": "assistant", "content": "foo", "name": "test"} + result = _convert_dict_to_message(message) + expected_output = AIMessage(content="foo", name="test") + assert result == expected_output + assert _convert_message_to_dict(expected_output) == message + + +def test_convert_dict_to_message_system() -> None: + message = {"role": "system", "content": "foo"} + result = _convert_dict_to_message(message) + expected_output = SystemMessage(content="foo") + assert result == expected_output + assert _convert_message_to_dict(expected_output) == message + + +def test_convert_dict_to_message_system_with_name() -> None: + message = {"role": "system", "content": "foo", "name": "test"} + result = _convert_dict_to_message(message) + expected_output = SystemMessage(content="foo", name="test") + assert result == expected_output + assert _convert_message_to_dict(expected_output) == message + + +def test_convert_dict_to_message_tool() -> None: + message = {"role": "tool", "content": "foo", "tool_call_id": "bar"} + result = _convert_dict_to_message(message) + expected_output = ToolMessage(content="foo", tool_call_id="bar") + assert result == expected_output + assert _convert_message_to_dict(expected_output) == message + + +@pytest.fixture +def mock_completion() -> dict: + return { + "id": "chatcmpl-7fcZavknQda3SQ", + "object": "chat.completion", + "created": 1689989000, + "model": "solar-1-mini-chat", + "choices": [ + { + "index": 0, + "message": { + "role": "assistant", + "content": "Bab", + "name": "KimSolar", + }, + "finish_reason": "stop", + } + ], + } + + +def test_upstage_invoke(mock_completion: dict) -> None: + llm = ChatUpstage() + mock_client = MagicMock() + completed = False + + def mock_create(*args: Any, **kwargs: Any) -> Any: + nonlocal completed + completed = True + return mock_completion + + mock_client.create = mock_create + with patch.object( + llm, + "client", + mock_client, + ): + res = llm.invoke("bab") + assert res.content == "Bab" + assert completed + + +async def test_upstage_ainvoke(mock_completion: dict) -> None: + llm = ChatUpstage() + mock_client = AsyncMock() + completed = False + + async def mock_create(*args: Any, **kwargs: Any) -> Any: + nonlocal completed + completed = True + return mock_completion + + mock_client.create = mock_create + with patch.object( + llm, + "async_client", + mock_client, + ): + res = await llm.ainvoke("bab") + assert res.content == "Bab" + assert completed + + +def test_upstage_invoke_name(mock_completion: dict) -> None: + llm = ChatUpstage() + + mock_client = MagicMock() + mock_client.create.return_value = mock_completion + + with patch.object( + llm, + "client", + mock_client, + ): + messages = [ + HumanMessage(content="Foo", name="Zorba"), + ] + res = llm.invoke(messages) + call_args, call_kwargs = mock_client.create.call_args + assert len(call_args) == 0 # no positional args + call_messages = call_kwargs["messages"] + assert len(call_messages) == 1 + assert call_messages[0]["role"] == "user" + assert call_messages[0]["content"] == "Foo" + assert call_messages[0]["name"] == "Zorba" + + # check return type has name + assert res.content == "Bab" + assert res.name == "KimSolar" diff --git a/libs/partners/upstage/tests/unit_tests/test_chat_models_standard.py b/libs/partners/upstage/tests/unit_tests/test_chat_models_standard.py new file mode 100644 index 0000000000..aeffab6b4a --- /dev/null +++ b/libs/partners/upstage/tests/unit_tests/test_chat_models_standard.py @@ -0,0 +1,20 @@ +"""Standard LangChain interface tests""" +from typing import Type + +import pytest +from langchain_core.language_models import BaseChatModel +from langchain_standard_tests.unit_tests import ChatModelUnitTests + +from langchain_upstage import ChatUpstage + + +class TestUpstageStandard(ChatModelUnitTests): + @pytest.fixture + def chat_model_class(self) -> Type[BaseChatModel]: + return ChatUpstage + + @pytest.fixture + def chat_model_params(self) -> dict: + return { + "model": "solar-1-mini-chat", + } diff --git a/libs/partners/upstage/tests/unit_tests/test_embeddings.py b/libs/partners/upstage/tests/unit_tests/test_embeddings.py new file mode 100644 index 0000000000..d0dd90b0c1 --- /dev/null +++ b/libs/partners/upstage/tests/unit_tests/test_embeddings.py @@ -0,0 +1,24 @@ +"""Test embedding model integration.""" +import os + +import pytest + +from langchain_upstage import UpstageEmbeddings + +os.environ["UPSTAGE_API_KEY"] = "foo" + + +def test_initialization() -> None: + """Test embedding model initialization.""" + UpstageEmbeddings() + + +def test_upstage_invalid_model_kwargs() -> None: + with pytest.raises(ValueError): + UpstageEmbeddings(model_kwargs={"model": "foo"}) + + +def test_upstage_incorrect_field() -> None: + with pytest.warns(match="not default parameter"): + llm = UpstageEmbeddings(foo="bar") + assert llm.model_kwargs == {"foo": "bar"} diff --git a/libs/partners/upstage/tests/unit_tests/test_imports.py b/libs/partners/upstage/tests/unit_tests/test_imports.py new file mode 100644 index 0000000000..e11947fa18 --- /dev/null +++ b/libs/partners/upstage/tests/unit_tests/test_imports.py @@ -0,0 +1,10 @@ +from langchain_upstage import __all__ + +EXPECTED_ALL = [ + "ChatUpstage", + "UpstageEmbeddings", +] + + +def test_all_imports() -> None: + assert sorted(EXPECTED_ALL) == sorted(__all__) diff --git a/libs/partners/upstage/tests/unit_tests/test_secrets.py b/libs/partners/upstage/tests/unit_tests/test_secrets.py new file mode 100644 index 0000000000..23e72cb86c --- /dev/null +++ b/libs/partners/upstage/tests/unit_tests/test_secrets.py @@ -0,0 +1,13 @@ +from langchain_upstage import ChatUpstage, UpstageEmbeddings + + +def test_chat_upstage_secrets() -> None: + o = ChatUpstage(upstage_api_key="foo") + s = str(o) + assert "foo" not in s + + +def test_upstage_embeddings_secrets() -> None: + o = UpstageEmbeddings(upstage_api_key="foo") + s = str(o) + assert "foo" not in s