diff --git a/.gitignore b/.gitignore index b6e47617d..314d77847 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ __pycache__/ *.py[cod] *$py.class +notebooks # C extensions *.so diff --git a/build_and_push b/build_and_push new file mode 100755 index 000000000..30d8501d5 --- /dev/null +++ b/build_and_push @@ -0,0 +1,5 @@ +#! /bin/bash + +poetry remove langchain +docker build -t ibiscp/expert:v0.0.6 . && docker push ibiscp/expert:v0.0.6 +poetry add --editable ../langchain diff --git a/poetry.lock b/poetry.lock index 884e04f9a..6a37adf87 100644 --- a/poetry.lock +++ b/poetry.lock @@ -46,6 +46,28 @@ doc = ["packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] test = ["contextlib2", "coverage[toml] (>=4.5)", "hypothesis (>=4.0)", "mock (>=4)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (<0.15)", "uvloop (>=0.15)"] trio = ["trio (>=0.16,<0.22)"] +[[package]] +name = "appnope" +version = "0.1.3" +description = "Disable App Nap on macOS >= 10.9" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "asttokens" +version = "2.2.1" +description = "Annotate AST trees with source code positions" +category = "dev" +optional = false +python-versions = "*" + +[package.dependencies] +six = "*" + +[package.extras] +test = ["astroid", "pytest"] + [[package]] name = "async-timeout" version = "4.0.2" @@ -69,6 +91,14 @@ docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib- tests = ["attrs[tests-no-zope]", "zope.interface"] tests-no-zope = ["cloudpickle", "cloudpickle", "hypothesis", "hypothesis", "mypy (>=0.971,<0.990)", "mypy (>=0.971,<0.990)", "pympler", "pympler", "pytest (>=4.3.0)", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-mypy-plugins", "pytest-xdist[psutil]", "pytest-xdist[psutil]"] +[[package]] +name = "backcall" +version = "0.2.0" +description = "Specifications for callback functions passed in to an API" +category = "dev" +optional = false +python-versions = "*" + [[package]] name = "beautifulsoup4" version = "4.11.2" @@ -114,6 +144,17 @@ category = "main" optional = false python-versions = ">=3.6" +[[package]] +name = "cffi" +version = "1.15.1" +description = "Foreign Function Interface for Python calling C code." +category = "dev" +optional = false +python-versions = "*" + +[package.dependencies] +pycparser = "*" + [[package]] name = "charset-normalizer" version = "2.1.1" @@ -144,6 +185,20 @@ category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +[[package]] +name = "comm" +version = "0.1.2" +description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc." +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +traitlets = ">=5.3" + +[package.extras] +test = ["pytest"] + [[package]] name = "dataclasses-json" version = "0.5.7" @@ -160,6 +215,33 @@ typing-inspect = ">=0.4.0" [package.extras] dev = ["flake8", "hypothesis", "ipython", "mypy (>=0.710)", "portray", "pytest (>=6.2.3)", "simplejson", "types-dataclasses"] +[[package]] +name = "debugpy" +version = "1.6.6" +description = "An implementation of the Debug Adapter Protocol for Python" +category = "dev" +optional = false +python-versions = ">=3.7" + +[[package]] +name = "decorator" +version = "5.1.1" +description = "Decorators for Humans" +category = "dev" +optional = false +python-versions = ">=3.5" + +[[package]] +name = "executing" +version = "1.2.0" +description = "Get the currently executing AST node of a frame, and other information" +category = "dev" +optional = false +python-versions = "*" + +[package.extras] +tests = ["asttokens", "littleutils", "pytest", "rich"] + [[package]] name = "fastapi" version = "0.91.0" @@ -214,9 +296,126 @@ category = "main" optional = false python-versions = ">=3.5" +[[package]] +name = "ipykernel" +version = "6.21.2" +description = "IPython Kernel for Jupyter" +category = "dev" +optional = false +python-versions = ">=3.8" + +[package.dependencies] +appnope = {version = "*", markers = "platform_system == \"Darwin\""} +comm = ">=0.1.1" +debugpy = ">=1.6.5" +ipython = ">=7.23.1" +jupyter-client = ">=6.1.12" +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" +matplotlib-inline = ">=0.1" +nest-asyncio = "*" +packaging = "*" +psutil = "*" +pyzmq = ">=20" +tornado = ">=6.1" +traitlets = ">=5.4.0" + +[package.extras] +cov = ["coverage[toml]", "curio", "matplotlib", "pytest-cov", "trio"] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "trio"] +pyqt5 = ["pyqt5"] +pyside6 = ["pyside6"] +test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio", "pytest-cov", "pytest-timeout"] + +[[package]] +name = "ipython" +version = "8.10.0" +description = "IPython: Productive Interactive Computing" +category = "dev" +optional = false +python-versions = ">=3.8" + +[package.dependencies] +appnope = {version = "*", markers = "sys_platform == \"darwin\""} +backcall = "*" +colorama = {version = "*", markers = "sys_platform == \"win32\""} +decorator = "*" +jedi = ">=0.16" +matplotlib-inline = "*" +pexpect = {version = ">4.3", markers = "sys_platform != \"win32\""} +pickleshare = "*" +prompt-toolkit = ">=3.0.30,<3.1.0" +pygments = ">=2.4.0" +stack-data = "*" +traitlets = ">=5" + +[package.extras] +all = ["black", "curio", "docrepr", "ipykernel", "ipyparallel", "ipywidgets", "matplotlib", "matplotlib (!=3.2.0)", "nbconvert", "nbformat", "notebook", "numpy (>=1.21)", "pandas", "pytest (<7)", "pytest (<7.1)", "pytest-asyncio", "qtconsole", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "trio", "typing-extensions"] +black = ["black"] +doc = ["docrepr", "ipykernel", "matplotlib", "pytest (<7)", "pytest (<7.1)", "pytest-asyncio", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "stack-data", "testpath", "typing-extensions"] +kernel = ["ipykernel"] +nbconvert = ["nbconvert"] +nbformat = ["nbformat"] +notebook = ["ipywidgets", "notebook"] +parallel = ["ipyparallel"] +qtconsole = ["qtconsole"] +test = ["pytest (<7.1)", "pytest-asyncio", "testpath"] +test-extra = ["curio", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.21)", "pandas", "pytest (<7.1)", "pytest-asyncio", "testpath", "trio"] + +[[package]] +name = "jedi" +version = "0.18.2" +description = "An autocompletion tool for Python that can be used for text editors." +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +parso = ">=0.8.0,<0.9.0" + +[package.extras] +docs = ["Jinja2 (==2.11.3)", "MarkupSafe (==1.1.1)", "Pygments (==2.8.1)", "alabaster (==0.7.12)", "babel (==2.9.1)", "chardet (==4.0.0)", "commonmark (==0.8.1)", "docutils (==0.17.1)", "future (==0.18.2)", "idna (==2.10)", "imagesize (==1.2.0)", "mock (==1.0.1)", "packaging (==20.9)", "pyparsing (==2.4.7)", "pytz (==2021.1)", "readthedocs-sphinx-ext (==2.1.4)", "recommonmark (==0.5.0)", "requests (==2.25.1)", "six (==1.15.0)", "snowballstemmer (==2.1.0)", "sphinx (==1.8.5)", "sphinx-rtd-theme (==0.4.3)", "sphinxcontrib-serializinghtml (==1.1.4)", "sphinxcontrib-websupport (==1.2.4)", "urllib3 (==1.26.4)"] +qa = ["flake8 (==3.8.3)", "mypy (==0.782)"] +testing = ["Django (<3.1)", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] + +[[package]] +name = "jupyter-client" +version = "8.0.2" +description = "Jupyter protocol implementation and client libraries" +category = "dev" +optional = false +python-versions = ">=3.8" + +[package.dependencies] +jupyter-core = ">=4.12,<5.0.0 || >=5.1.0" +python-dateutil = ">=2.8.2" +pyzmq = ">=23.0" +tornado = ">=6.2" +traitlets = ">=5.3" + +[package.extras] +docs = ["ipykernel", "myst-parser", "pydata-sphinx-theme", "sphinx (>=4)", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] +test = ["codecov", "coverage", "ipykernel (>=6.14)", "mypy", "paramiko", "pre-commit", "pytest", "pytest-cov", "pytest-jupyter[client] (>=0.4.1)", "pytest-timeout"] + +[[package]] +name = "jupyter-core" +version = "5.2.0" +description = "Jupyter core package. A base package on which Jupyter projects rely." +category = "dev" +optional = false +python-versions = ">=3.8" + +[package.dependencies] +platformdirs = ">=2.5" +pywin32 = {version = ">=1.0", markers = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\""} +traitlets = ">=5.3" + +[package.extras] +docs = ["myst-parser", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "traitlets"] +test = ["ipykernel", "pre-commit", "pytest", "pytest-cov", "pytest-timeout"] + [[package]] name = "langchain" -version = "0.0.84" +version = "0.0.86" description = "Building applications with LLMs through composability" category = "main" optional = false @@ -234,8 +433,8 @@ SQLAlchemy = "^1" tenacity = "^8.1.0" [package.extras] -all = ["beautifulsoup4 (>=4,<5)", "cohere (>=3,<4)", "elasticsearch (>=8,<9)", "faiss-cpu (>=1,<2)", "google-api-python-client (==2.70.0)", "google-search-results (>=2,<3)", "huggingface_hub (>=0,<1)", "jinja2 (>=3,<4)", "manifest-ml (>=0.0.1,<0.0.2)", "nlpcloud (>=1,<2)", "nltk (>=3,<4)", "openai (>=0,<1)", "pinecone-client (>=2,<3)", "pypdf (>=3.4.0,<4.0.0)", "qdrant-client (>=0.11.7,<0.12.0)", "redis (>=4,<5)", "sentence-transformers (>=2,<3)", "spacy (>=3,<4)", "tensorflow-text (>=2.11.0,<3.0.0)", "tiktoken (>=0,<1)", "torch (>=1,<2)", "transformers (>=4,<5)", "weaviate-client (>=3,<4)", "wikipedia (>=1,<2)", "wolframalpha (==5.0.0)"] -llms = ["cohere (>=3,<4)", "huggingface_hub (>=0,<1)", "manifest-ml (>=0.0.1,<0.0.2)", "nlpcloud (>=1,<2)", "openai (>=0,<1)", "torch (>=1,<2)", "transformers (>=4,<5)"] +all = ["anthropic (>=0.2.2,<0.3.0)", "beautifulsoup4 (>=4,<5)", "cohere (>=3,<4)", "elasticsearch (>=8,<9)", "faiss-cpu (>=1,<2)", "google-api-python-client (==2.70.0)", "google-search-results (>=2,<3)", "huggingface_hub (>=0,<1)", "jinja2 (>=3,<4)", "manifest-ml (>=0.0.1,<0.0.2)", "networkx (>=2.6.3,<3.0.0)", "nlpcloud (>=1,<2)", "nltk (>=3,<4)", "openai (>=0,<1)", "pinecone-client (>=2,<3)", "pypdf (>=3.4.0,<4.0.0)", "qdrant-client (>=0.11.7,<0.12.0)", "redis (>=4,<5)", "sentence-transformers (>=2,<3)", "spacy (>=3,<4)", "tensorflow-text (>=2.11.0,<3.0.0)", "tiktoken (>=0,<1)", "torch (>=1,<2)", "transformers (>=4,<5)", "weaviate-client (>=3,<4)", "wikipedia (>=1,<2)", "wolframalpha (==5.0.0)"] +llms = ["anthropic (>=0.2.2,<0.3.0)", "cohere (>=3,<4)", "huggingface_hub (>=0,<1)", "manifest-ml (>=0.0.1,<0.0.2)", "nlpcloud (>=1,<2)", "openai (>=0,<1)", "torch (>=1,<2)", "transformers (>=4,<5)"] [package.source] type = "directory" @@ -269,6 +468,17 @@ python-versions = "*" [package.dependencies] marshmallow = ">=2.0.0" +[[package]] +name = "matplotlib-inline" +version = "0.1.6" +description = "Inline Matplotlib backend for Jupyter" +category = "dev" +optional = false +python-versions = ">=3.5" + +[package.dependencies] +traitlets = "*" + [[package]] name = "multidict" version = "6.0.4" @@ -285,6 +495,14 @@ category = "main" optional = false python-versions = ">=3.5" +[[package]] +name = "nest-asyncio" +version = "1.5.6" +description = "Patch asyncio to allow nested event loops" +category = "dev" +optional = false +python-versions = ">=3.5" + [[package]] name = "numpy" version = "1.24.2" @@ -320,6 +538,18 @@ category = "main" optional = false python-versions = ">=3.7" +[[package]] +name = "parso" +version = "0.8.3" +description = "A Python Parser" +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.extras] +qa = ["flake8 (==3.8.3)", "mypy (==0.782)"] +testing = ["docopt", "pytest (<6.0.0)"] + [[package]] name = "pathspec" version = "0.11.0" @@ -328,6 +558,25 @@ category = "dev" optional = false python-versions = ">=3.7" +[[package]] +name = "pexpect" +version = "4.8.0" +description = "Pexpect allows easy control of interactive console applications." +category = "dev" +optional = false +python-versions = "*" + +[package.dependencies] +ptyprocess = ">=0.5" + +[[package]] +name = "pickleshare" +version = "0.7.5" +description = "Tiny 'shelve'-like database with concurrency support" +category = "dev" +optional = false +python-versions = "*" + [[package]] name = "platformdirs" version = "3.0.0" @@ -340,6 +589,55 @@ python-versions = ">=3.7" docs = ["furo (>=2022.12.7)", "proselint (>=0.13)", "sphinx (>=6.1.3)", "sphinx-autodoc-typehints (>=1.22,!=1.23.4)"] test = ["appdirs (==1.4.4)", "covdefaults (>=2.2.2)", "pytest (>=7.2.1)", "pytest-cov (>=4)", "pytest-mock (>=3.10)"] +[[package]] +name = "prompt-toolkit" +version = "3.0.36" +description = "Library for building powerful interactive command lines in Python" +category = "dev" +optional = false +python-versions = ">=3.6.2" + +[package.dependencies] +wcwidth = "*" + +[[package]] +name = "psutil" +version = "5.9.4" +description = "Cross-platform lib for process and system monitoring in Python." +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + +[package.extras] +test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"] + +[[package]] +name = "ptyprocess" +version = "0.7.0" +description = "Run a subprocess in a pseudo terminal" +category = "dev" +optional = false +python-versions = "*" + +[[package]] +name = "pure-eval" +version = "0.2.2" +description = "Safely evaluate AST nodes without side effects" +category = "dev" +optional = false +python-versions = "*" + +[package.extras] +tests = ["pytest"] + +[[package]] +name = "pycparser" +version = "2.21" +description = "C parser in Python" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + [[package]] name = "pydantic" version = "1.10.4" @@ -355,6 +653,36 @@ typing-extensions = ">=4.2.0" dotenv = ["python-dotenv (>=0.10.4)"] email = ["email-validator (>=1.0.3)"] +[[package]] +name = "pygments" +version = "2.14.0" +description = "Pygments is a syntax highlighting package written in Python." +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.extras] +plugins = ["importlib-metadata"] + +[[package]] +name = "python-dateutil" +version = "2.8.2" +description = "Extensions to the standard Python datetime module" +category = "dev" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" + +[package.dependencies] +six = ">=1.5" + +[[package]] +name = "pywin32" +version = "305" +description = "Python for Window Extensions" +category = "dev" +optional = false +python-versions = "*" + [[package]] name = "pyyaml" version = "6.0" @@ -363,6 +691,17 @@ category = "main" optional = false python-versions = ">=3.6" +[[package]] +name = "pyzmq" +version = "25.0.0" +description = "Python bindings for 0MQ" +category = "dev" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +cffi = {version = "*", markers = "implementation_name == \"pypy\""} + [[package]] name = "requests" version = "2.28.2" @@ -381,6 +720,14 @@ urllib3 = ">=1.21.1,<1.27" socks = ["PySocks (>=1.5.6,!=1.5.7)"] use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] +[[package]] +name = "six" +version = "1.16.0" +description = "Python 2 and 3 compatibility utilities" +category = "dev" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" + [[package]] name = "sniffio" version = "1.3.0" @@ -429,6 +776,22 @@ postgresql-psycopg2cffi = ["psycopg2cffi"] pymysql = ["pymysql", "pymysql (<1)"] sqlcipher = ["sqlcipher3_binary"] +[[package]] +name = "stack-data" +version = "0.6.2" +description = "Extract data from python stack frames and tracebacks for informative displays" +category = "dev" +optional = false +python-versions = "*" + +[package.dependencies] +asttokens = ">=2.1.0" +executing = ">=1.2.0" +pure-eval = "*" + +[package.extras] +tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] + [[package]] name = "starlette" version = "0.24.0" @@ -462,6 +825,14 @@ category = "dev" optional = false python-versions = ">=3.7" +[[package]] +name = "tornado" +version = "6.2" +description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed." +category = "dev" +optional = false +python-versions = ">= 3.7" + [[package]] name = "tqdm" version = "4.64.1" @@ -479,6 +850,18 @@ notebook = ["ipywidgets (>=6)"] slack = ["slack-sdk"] telegram = ["requests"] +[[package]] +name = "traitlets" +version = "5.9.0" +description = "Traitlets Python configuration system" +category = "dev" +optional = false +python-versions = ">=3.7" + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] +test = ["argcomplete (>=2.0)", "pre-commit", "pytest", "pytest-mock"] + [[package]] name = "typing-extensions" version = "4.4.0" @@ -527,6 +910,14 @@ h11 = ">=0.8" [package.extras] standard = ["colorama (>=0.4)", "httptools (>=0.5.0)", "python-dotenv (>=0.13)", "pyyaml (>=5.1)", "uvloop (>=0.14.0,!=0.15.0,!=0.15.1)", "watchfiles (>=0.13)", "websockets (>=10.4)"] +[[package]] +name = "wcwidth" +version = "0.2.6" +description = "Measures the displayed width of unicode strings in a terminal" +category = "dev" +optional = false +python-versions = "*" + [[package]] name = "yarl" version = "1.8.2" @@ -542,7 +933,7 @@ multidict = ">=4.0" [metadata] lock-version = "1.1" python-versions = "^3.10" -content-hash = "0f7ccdac03322e997f334a0a983fece4c7b8b1c90bed4f3a108ca4a3982ab4c7" +content-hash = "ffc4b17c403dab7f934d2c026b83757cc40066a79d64ab27842908b40b0bedeb" [metadata.files] aiohttp = [ @@ -642,6 +1033,14 @@ anyio = [ {file = "anyio-3.6.2-py3-none-any.whl", hash = "sha256:fbbe32bd270d2a2ef3ed1c5d45041250284e31fc0a4df4a5a6071842051a51e3"}, {file = "anyio-3.6.2.tar.gz", hash = "sha256:25ea0d673ae30af41a0c442f81cf3b38c7e79fdc7b60335a4c14e05eb0947421"}, ] +appnope = [ + {file = "appnope-0.1.3-py2.py3-none-any.whl", hash = "sha256:265a455292d0bd8a72453494fa24df5a11eb18373a60c7c0430889f22548605e"}, + {file = "appnope-0.1.3.tar.gz", hash = "sha256:02bd91c4de869fbb1e1c50aafc4098827a7a54ab2f39d9dcba6c9547ed920e24"}, +] +asttokens = [ + {file = "asttokens-2.2.1-py2.py3-none-any.whl", hash = "sha256:6b0ac9e93fb0335014d382b8fa9b3afa7df546984258005da0b9e7095b3deb1c"}, + {file = "asttokens-2.2.1.tar.gz", hash = "sha256:4622110b2a6f30b77e1473affaa97e711bc2f07d3f10848420ff1898edbe94f3"}, +] async-timeout = [ {file = "async-timeout-4.0.2.tar.gz", hash = "sha256:2163e1640ddb52b7a8c80d0a67a08587e5d245cc9c553a74a847056bc2976b15"}, {file = "async_timeout-4.0.2-py3-none-any.whl", hash = "sha256:8ca1e4fcf50d07413d66d1a5e416e42cfdf5851c981d679a09851a6853383b3c"}, @@ -650,6 +1049,10 @@ attrs = [ {file = "attrs-22.2.0-py3-none-any.whl", hash = "sha256:29e95c7f6778868dbd49170f98f8818f78f3dc5e0e37c0b1f474e3561b240836"}, {file = "attrs-22.2.0.tar.gz", hash = "sha256:c9227bfc2f01993c03f68db37d1d15c9690188323c067c641f1a35ca58185f99"}, ] +backcall = [ + {file = "backcall-0.2.0-py2.py3-none-any.whl", hash = "sha256:fbbce6a29f263178a1f7915c1940bde0ec2b2a967566fe1c65c1dfb7422bd255"}, + {file = "backcall-0.2.0.tar.gz", hash = "sha256:5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e"}, +] beautifulsoup4 = [ {file = "beautifulsoup4-4.11.2-py3-none-any.whl", hash = "sha256:0e79446b10b3ecb499c1556f7e228a53e64a2bfcebd455f370d8927cb5b59e39"}, {file = "beautifulsoup4-4.11.2.tar.gz", hash = "sha256:bc4bdda6717de5a2987436fb8d72f45dc90dd856bdfd512a1314ce90349a0106"}, @@ -685,6 +1088,72 @@ certifi = [ {file = "certifi-2022.12.7-py3-none-any.whl", hash = "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18"}, {file = "certifi-2022.12.7.tar.gz", hash = "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3"}, ] +cffi = [ + {file = "cffi-1.15.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2"}, + {file = "cffi-1.15.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2"}, + {file = "cffi-1.15.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914"}, + {file = "cffi-1.15.1-cp27-cp27m-win32.whl", hash = "sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3"}, + {file = "cffi-1.15.1-cp27-cp27m-win_amd64.whl", hash = "sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e"}, + {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162"}, + {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b"}, + {file = "cffi-1.15.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21"}, + {file = "cffi-1.15.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e"}, + {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4"}, + {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01"}, + {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e"}, + {file = "cffi-1.15.1-cp310-cp310-win32.whl", hash = "sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2"}, + {file = "cffi-1.15.1-cp310-cp310-win_amd64.whl", hash = "sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d"}, + {file = "cffi-1.15.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac"}, + {file = "cffi-1.15.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325"}, + {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c"}, + {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef"}, + {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8"}, + {file = "cffi-1.15.1-cp311-cp311-win32.whl", hash = "sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d"}, + {file = "cffi-1.15.1-cp311-cp311-win_amd64.whl", hash = "sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104"}, + {file = "cffi-1.15.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405"}, + {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e"}, + {file = "cffi-1.15.1-cp36-cp36m-win32.whl", hash = "sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf"}, + {file = "cffi-1.15.1-cp36-cp36m-win_amd64.whl", hash = "sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497"}, + {file = "cffi-1.15.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c"}, + {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426"}, + {file = "cffi-1.15.1-cp37-cp37m-win32.whl", hash = "sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9"}, + {file = "cffi-1.15.1-cp37-cp37m-win_amd64.whl", hash = "sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045"}, + {file = "cffi-1.15.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02"}, + {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192"}, + {file = "cffi-1.15.1-cp38-cp38-win32.whl", hash = "sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314"}, + {file = "cffi-1.15.1-cp38-cp38-win_amd64.whl", hash = "sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5"}, + {file = "cffi-1.15.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585"}, + {file = "cffi-1.15.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35"}, + {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27"}, + {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76"}, + {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3"}, + {file = "cffi-1.15.1-cp39-cp39-win32.whl", hash = "sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee"}, + {file = "cffi-1.15.1-cp39-cp39-win_amd64.whl", hash = "sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c"}, + {file = "cffi-1.15.1.tar.gz", hash = "sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9"}, +] charset-normalizer = [ {file = "charset-normalizer-2.1.1.tar.gz", hash = "sha256:5a3d016c7c547f69d6f81fb0db9449ce888b418b5b9952cc5e6e66843e9dd845"}, {file = "charset_normalizer-2.1.1-py3-none-any.whl", hash = "sha256:83e9a75d1911279afd89352c68b45348559d1fc0506b054b346651b5e7fee29f"}, @@ -697,10 +1166,42 @@ colorama = [ {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, ] +comm = [ + {file = "comm-0.1.2-py3-none-any.whl", hash = "sha256:9f3abf3515112fa7c55a42a6a5ab358735c9dccc8b5910a9d8e3ef5998130666"}, + {file = "comm-0.1.2.tar.gz", hash = "sha256:3e2f5826578e683999b93716285b3b1f344f157bf75fa9ce0a797564e742f062"}, +] dataclasses-json = [ {file = "dataclasses-json-0.5.7.tar.gz", hash = "sha256:c2c11bc8214fbf709ffc369d11446ff6945254a7f09128154a7620613d8fda90"}, {file = "dataclasses_json-0.5.7-py3-none-any.whl", hash = "sha256:bc285b5f892094c3a53d558858a88553dd6a61a11ab1a8128a0e554385dcc5dd"}, ] +debugpy = [ + {file = "debugpy-1.6.6-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:0ea1011e94416e90fb3598cc3ef5e08b0a4dd6ce6b9b33ccd436c1dffc8cd664"}, + {file = "debugpy-1.6.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dff595686178b0e75580c24d316aa45a8f4d56e2418063865c114eef651a982e"}, + {file = "debugpy-1.6.6-cp310-cp310-win32.whl", hash = "sha256:87755e173fcf2ec45f584bb9d61aa7686bb665d861b81faa366d59808bbd3494"}, + {file = "debugpy-1.6.6-cp310-cp310-win_amd64.whl", hash = "sha256:72687b62a54d9d9e3fb85e7a37ea67f0e803aaa31be700e61d2f3742a5683917"}, + {file = "debugpy-1.6.6-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:78739f77c58048ec006e2b3eb2e0cd5a06d5f48c915e2fc7911a337354508110"}, + {file = "debugpy-1.6.6-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23c29e40e39ad7d869d408ded414f6d46d82f8a93b5857ac3ac1e915893139ca"}, + {file = "debugpy-1.6.6-cp37-cp37m-win32.whl", hash = "sha256:7aa7e103610e5867d19a7d069e02e72eb2b3045b124d051cfd1538f1d8832d1b"}, + {file = "debugpy-1.6.6-cp37-cp37m-win_amd64.whl", hash = "sha256:f6383c29e796203a0bba74a250615ad262c4279d398e89d895a69d3069498305"}, + {file = "debugpy-1.6.6-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:23363e6d2a04d726bbc1400bd4e9898d54419b36b2cdf7020e3e215e1dcd0f8e"}, + {file = "debugpy-1.6.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b5d1b13d7c7bf5d7cf700e33c0b8ddb7baf030fcf502f76fc061ddd9405d16c"}, + {file = "debugpy-1.6.6-cp38-cp38-win32.whl", hash = "sha256:70ab53918fd907a3ade01909b3ed783287ede362c80c75f41e79596d5ccacd32"}, + {file = "debugpy-1.6.6-cp38-cp38-win_amd64.whl", hash = "sha256:c05349890804d846eca32ce0623ab66c06f8800db881af7a876dc073ac1c2225"}, + {file = "debugpy-1.6.6-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:11a0f3a106f69901e4a9a5683ce943a7a5605696024134b522aa1bfda25b5fec"}, + {file = "debugpy-1.6.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a771739902b1ae22a120dbbb6bd91b2cae6696c0e318b5007c5348519a4211c6"}, + {file = "debugpy-1.6.6-cp39-cp39-win32.whl", hash = "sha256:549ae0cb2d34fc09d1675f9b01942499751d174381b6082279cf19cdb3c47cbe"}, + {file = "debugpy-1.6.6-cp39-cp39-win_amd64.whl", hash = "sha256:de4a045fbf388e120bb6ec66501458d3134f4729faed26ff95de52a754abddb1"}, + {file = "debugpy-1.6.6-py2.py3-none-any.whl", hash = "sha256:be596b44448aac14eb3614248c91586e2bc1728e020e82ef3197189aae556115"}, + {file = "debugpy-1.6.6.zip", hash = "sha256:b9c2130e1c632540fbf9c2c88341493797ddf58016e7cba02e311de9b0a96b67"}, +] +decorator = [ + {file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"}, + {file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"}, +] +executing = [ + {file = "executing-1.2.0-py2.py3-none-any.whl", hash = "sha256:0314a69e37426e3608aada02473b4161d4caf5a4b244d1d0c48072b8fee7bacc"}, + {file = "executing-1.2.0.tar.gz", hash = "sha256:19da64c18d2d851112f09c287f8d3dbbdf725ab0e569077efb6cdcbd3497c107"}, +] fastapi = [ {file = "fastapi-0.91.0-py3-none-any.whl", hash = "sha256:8dc18f860755159b3c4b30577c61c821b98f382acfeb6d5a849f9fa6a5369789"}, {file = "fastapi-0.91.0.tar.gz", hash = "sha256:ff2fa93af3f2f982b07b5f96e8512565b3ef0e5f8f02469dbfd6bc27f6fd9a9e"}, @@ -851,6 +1352,26 @@ idna = [ {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"}, {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"}, ] +ipykernel = [ + {file = "ipykernel-6.21.2-py3-none-any.whl", hash = "sha256:430d00549b6aaf49bd0f5393150691edb1815afa62d457ee6b1a66b25cb17874"}, + {file = "ipykernel-6.21.2.tar.gz", hash = "sha256:6e9213484e4ce1fb14267ee435e18f23cc3a0634e635b9fb4ed4677b84e0fdf8"}, +] +ipython = [ + {file = "ipython-8.10.0-py3-none-any.whl", hash = "sha256:b38c31e8fc7eff642fc7c597061fff462537cf2314e3225a19c906b7b0d8a345"}, + {file = "ipython-8.10.0.tar.gz", hash = "sha256:b13a1d6c1f5818bd388db53b7107d17454129a70de2b87481d555daede5eb49e"}, +] +jedi = [ + {file = "jedi-0.18.2-py2.py3-none-any.whl", hash = "sha256:203c1fd9d969ab8f2119ec0a3342e0b49910045abe6af0a3ae83a5764d54639e"}, + {file = "jedi-0.18.2.tar.gz", hash = "sha256:bae794c30d07f6d910d32a7048af09b5a39ed740918da923c6b780790ebac612"}, +] +jupyter-client = [ + {file = "jupyter_client-8.0.2-py3-none-any.whl", hash = "sha256:c53731eb590b68839b0ce04bf46ff8c4f03278f5d9fe5c3b0f268a57cc2bd97e"}, + {file = "jupyter_client-8.0.2.tar.gz", hash = "sha256:47ac9f586dbcff4d79387ec264faf0fdeb5f14845fa7345fd7d1e378f8096011"}, +] +jupyter-core = [ + {file = "jupyter_core-5.2.0-py3-none-any.whl", hash = "sha256:4bdc2928c37f6917130c667d8b8708f20aee539d8283c6be72aabd2a4b4c83b0"}, + {file = "jupyter_core-5.2.0.tar.gz", hash = "sha256:1407cdb4c79ee467696c04b76633fc1884015fa109323365a6372c8e890cc83f"}, +] langchain = [] marshmallow = [ {file = "marshmallow-3.19.0-py3-none-any.whl", hash = "sha256:93f0958568da045b0021ec6aeb7ac37c81bfcccbb9a0e7ed8559885070b3a19b"}, @@ -860,6 +1381,10 @@ marshmallow-enum = [ {file = "marshmallow-enum-1.5.1.tar.gz", hash = "sha256:38e697e11f45a8e64b4a1e664000897c659b60aa57bfa18d44e226a9920b6e58"}, {file = "marshmallow_enum-1.5.1-py2.py3-none-any.whl", hash = "sha256:57161ab3dbfde4f57adeb12090f39592e992b9c86d206d02f6bd03ebec60f072"}, ] +matplotlib-inline = [ + {file = "matplotlib-inline-0.1.6.tar.gz", hash = "sha256:f887e5f10ba98e8d2b150ddcf4702c1e5f8b3a20005eb0f74bfdbd360ee6f304"}, + {file = "matplotlib_inline-0.1.6-py3-none-any.whl", hash = "sha256:f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311"}, +] multidict = [ {file = "multidict-6.0.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b1a97283e0c85772d613878028fec909f003993e1007eafa715b24b377cb9b8"}, {file = "multidict-6.0.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:eeb6dcc05e911516ae3d1f207d4b0520d07f54484c49dfc294d6e7d63b734171"}, @@ -940,6 +1465,10 @@ mypy-extensions = [ {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, ] +nest-asyncio = [ + {file = "nest_asyncio-1.5.6-py3-none-any.whl", hash = "sha256:b9a953fb40dceaa587d109609098db21900182b16440652454a146cffb06e8b8"}, + {file = "nest_asyncio-1.5.6.tar.gz", hash = "sha256:d267cc1ff794403f7df692964d1d2a3fa9418ffea2a3f6859a439ff482fef290"}, +] numpy = [ {file = "numpy-1.24.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:eef70b4fc1e872ebddc38cddacc87c19a3709c0e3e5d20bf3954c147b1dd941d"}, {file = "numpy-1.24.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e8d2859428712785e8a8b7d2b3ef0a1d1565892367b32f915c4a4df44d0e64f5"}, @@ -977,14 +1506,58 @@ packaging = [ {file = "packaging-23.0-py3-none-any.whl", hash = "sha256:714ac14496c3e68c99c29b00845f7a2b85f3bb6f1078fd9f72fd20f0570002b2"}, {file = "packaging-23.0.tar.gz", hash = "sha256:b6ad297f8907de0fa2fe1ccbd26fdaf387f5f47c7275fedf8cce89f99446cf97"}, ] +parso = [ + {file = "parso-0.8.3-py2.py3-none-any.whl", hash = "sha256:c001d4636cd3aecdaf33cbb40aebb59b094be2a74c556778ef5576c175e19e75"}, + {file = "parso-0.8.3.tar.gz", hash = "sha256:8c07be290bb59f03588915921e29e8a50002acaf2cdc5fa0e0114f91709fafa0"}, +] pathspec = [ {file = "pathspec-0.11.0-py3-none-any.whl", hash = "sha256:3a66eb970cbac598f9e5ccb5b2cf58930cd8e3ed86d393d541eaf2d8b1705229"}, {file = "pathspec-0.11.0.tar.gz", hash = "sha256:64d338d4e0914e91c1792321e6907b5a593f1ab1851de7fc269557a21b30ebbc"}, ] +pexpect = [ + {file = "pexpect-4.8.0-py2.py3-none-any.whl", hash = "sha256:0b48a55dcb3c05f3329815901ea4fc1537514d6ba867a152b581d69ae3710937"}, + {file = "pexpect-4.8.0.tar.gz", hash = "sha256:fc65a43959d153d0114afe13997d439c22823a27cefceb5ff35c2178c6784c0c"}, +] +pickleshare = [ + {file = "pickleshare-0.7.5-py2.py3-none-any.whl", hash = "sha256:9649af414d74d4df115d5d718f82acb59c9d418196b7b4290ed47a12ce62df56"}, + {file = "pickleshare-0.7.5.tar.gz", hash = "sha256:87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca"}, +] platformdirs = [ {file = "platformdirs-3.0.0-py3-none-any.whl", hash = "sha256:b1d5eb14f221506f50d6604a561f4c5786d9e80355219694a1b244bcd96f4567"}, {file = "platformdirs-3.0.0.tar.gz", hash = "sha256:8a1228abb1ef82d788f74139988b137e78692984ec7b08eaa6c65f1723af28f9"}, ] +prompt-toolkit = [ + {file = "prompt_toolkit-3.0.36-py3-none-any.whl", hash = "sha256:aa64ad242a462c5ff0363a7b9cfe696c20d55d9fc60c11fd8e632d064804d305"}, + {file = "prompt_toolkit-3.0.36.tar.gz", hash = "sha256:3e163f254bef5a03b146397d7c1963bd3e2812f0964bb9a24e6ec761fd28db63"}, +] +psutil = [ + {file = "psutil-5.9.4-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:c1ca331af862803a42677c120aff8a814a804e09832f166f226bfd22b56feee8"}, + {file = "psutil-5.9.4-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:68908971daf802203f3d37e78d3f8831b6d1014864d7a85937941bb35f09aefe"}, + {file = "psutil-5.9.4-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:3ff89f9b835100a825b14c2808a106b6fdcc4b15483141482a12c725e7f78549"}, + {file = "psutil-5.9.4-cp27-cp27m-win32.whl", hash = "sha256:852dd5d9f8a47169fe62fd4a971aa07859476c2ba22c2254d4a1baa4e10b95ad"}, + {file = "psutil-5.9.4-cp27-cp27m-win_amd64.whl", hash = "sha256:9120cd39dca5c5e1c54b59a41d205023d436799b1c8c4d3ff71af18535728e94"}, + {file = "psutil-5.9.4-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:6b92c532979bafc2df23ddc785ed116fced1f492ad90a6830cf24f4d1ea27d24"}, + {file = "psutil-5.9.4-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:efeae04f9516907be44904cc7ce08defb6b665128992a56957abc9b61dca94b7"}, + {file = "psutil-5.9.4-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:54d5b184728298f2ca8567bf83c422b706200bcbbfafdc06718264f9393cfeb7"}, + {file = "psutil-5.9.4-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:16653106f3b59386ffe10e0bad3bb6299e169d5327d3f187614b1cb8f24cf2e1"}, + {file = "psutil-5.9.4-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:54c0d3d8e0078b7666984e11b12b88af2db11d11249a8ac8920dd5ef68a66e08"}, + {file = "psutil-5.9.4-cp36-abi3-win32.whl", hash = "sha256:149555f59a69b33f056ba1c4eb22bb7bf24332ce631c44a319cec09f876aaeff"}, + {file = "psutil-5.9.4-cp36-abi3-win_amd64.whl", hash = "sha256:fd8522436a6ada7b4aad6638662966de0d61d241cb821239b2ae7013d41a43d4"}, + {file = "psutil-5.9.4-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:6001c809253a29599bc0dfd5179d9f8a5779f9dffea1da0f13c53ee568115e1e"}, + {file = "psutil-5.9.4.tar.gz", hash = "sha256:3d7f9739eb435d4b1338944abe23f49584bde5395f27487d2ee25ad9a8774a62"}, +] +ptyprocess = [ + {file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"}, + {file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"}, +] +pure-eval = [ + {file = "pure_eval-0.2.2-py3-none-any.whl", hash = "sha256:01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350"}, + {file = "pure_eval-0.2.2.tar.gz", hash = "sha256:2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3"}, +] +pycparser = [ + {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"}, + {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"}, +] pydantic = [ {file = "pydantic-1.10.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b5635de53e6686fe7a44b5cf25fcc419a0d5e5c1a1efe73d49d48fe7586db854"}, {file = "pydantic-1.10.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6dc1cc241440ed7ca9ab59d9929075445da6b7c94ced281b3dd4cfe6c8cff817"}, @@ -1023,6 +1596,30 @@ pydantic = [ {file = "pydantic-1.10.4-py3-none-any.whl", hash = "sha256:4948f264678c703f3877d1c8877c4e3b2e12e549c57795107f08cf70c6ec7774"}, {file = "pydantic-1.10.4.tar.gz", hash = "sha256:b9a3859f24eb4e097502a3be1fb4b2abb79b6103dd9e2e0edb70613a4459a648"}, ] +pygments = [ + {file = "Pygments-2.14.0-py3-none-any.whl", hash = "sha256:fa7bd7bd2771287c0de303af8bfdfc731f51bd2c6a47ab69d117138893b82717"}, + {file = "Pygments-2.14.0.tar.gz", hash = "sha256:b3ed06a9e8ac9a9aae5a6f5dbe78a8a58655d17b43b93c078f094ddc476ae297"}, +] +python-dateutil = [ + {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, + {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, +] +pywin32 = [ + {file = "pywin32-305-cp310-cp310-win32.whl", hash = "sha256:421f6cd86e84bbb696d54563c48014b12a23ef95a14e0bdba526be756d89f116"}, + {file = "pywin32-305-cp310-cp310-win_amd64.whl", hash = "sha256:73e819c6bed89f44ff1d690498c0a811948f73777e5f97c494c152b850fad478"}, + {file = "pywin32-305-cp310-cp310-win_arm64.whl", hash = "sha256:742eb905ce2187133a29365b428e6c3b9001d79accdc30aa8969afba1d8470f4"}, + {file = "pywin32-305-cp311-cp311-win32.whl", hash = "sha256:19ca459cd2e66c0e2cc9a09d589f71d827f26d47fe4a9d09175f6aa0256b51c2"}, + {file = "pywin32-305-cp311-cp311-win_amd64.whl", hash = "sha256:326f42ab4cfff56e77e3e595aeaf6c216712bbdd91e464d167c6434b28d65990"}, + {file = "pywin32-305-cp311-cp311-win_arm64.whl", hash = "sha256:4ecd404b2c6eceaca52f8b2e3e91b2187850a1ad3f8b746d0796a98b4cea04db"}, + {file = "pywin32-305-cp36-cp36m-win32.whl", hash = "sha256:48d8b1659284f3c17b68587af047d110d8c44837736b8932c034091683e05863"}, + {file = "pywin32-305-cp36-cp36m-win_amd64.whl", hash = "sha256:13362cc5aa93c2beaf489c9c9017c793722aeb56d3e5166dadd5ef82da021fe1"}, + {file = "pywin32-305-cp37-cp37m-win32.whl", hash = "sha256:a55db448124d1c1484df22fa8bbcbc45c64da5e6eae74ab095b9ea62e6d00496"}, + {file = "pywin32-305-cp37-cp37m-win_amd64.whl", hash = "sha256:109f98980bfb27e78f4df8a51a8198e10b0f347257d1e265bb1a32993d0c973d"}, + {file = "pywin32-305-cp38-cp38-win32.whl", hash = "sha256:9dd98384da775afa009bc04863426cb30596fd78c6f8e4e2e5bbf4edf8029504"}, + {file = "pywin32-305-cp38-cp38-win_amd64.whl", hash = "sha256:56d7a9c6e1a6835f521788f53b5af7912090674bb84ef5611663ee1595860fc7"}, + {file = "pywin32-305-cp39-cp39-win32.whl", hash = "sha256:9d968c677ac4d5cbdaa62fd3014ab241718e619d8e36ef8e11fb930515a1e918"}, + {file = "pywin32-305-cp39-cp39-win_amd64.whl", hash = "sha256:50768c6b7c3f0b38b7fb14dd4104da93ebced5f1a50dc0e834594bff6fbe1271"}, +] pyyaml = [ {file = "PyYAML-6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53"}, {file = "PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c"}, @@ -1065,10 +1662,93 @@ pyyaml = [ {file = "PyYAML-6.0-cp39-cp39-win_amd64.whl", hash = "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c"}, {file = "PyYAML-6.0.tar.gz", hash = "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2"}, ] +pyzmq = [ + {file = "pyzmq-25.0.0-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:2d05d904f03ddf1e0d83d97341354dfe52244a619b5a1440a5f47a5b3451e84e"}, + {file = "pyzmq-25.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a154ef810d44f9d28868be04641f837374a64e7449df98d9208e76c260c7ef1"}, + {file = "pyzmq-25.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:487305c2a011fdcf3db1f24e8814bb76d23bc4d2f46e145bc80316a59a9aa07d"}, + {file = "pyzmq-25.0.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2e7b87638ee30ab13230e37ce5331b3e730b1e0dda30120b9eeec3540ed292c8"}, + {file = "pyzmq-25.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75243e422e85a62f0ab7953dc315452a56b2c6a7e7d1a3c3109ac3cc57ed6b47"}, + {file = "pyzmq-25.0.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:31e523d067ce44a04e876bed3ff9ea1ff8d1b6636d16e5fcace9d22f8c564369"}, + {file = "pyzmq-25.0.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:8539216173135e9e89f6b1cc392e74e6b935b91e8c76106cf50e7a02ab02efe5"}, + {file = "pyzmq-25.0.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:2754fa68da08a854f4816e05160137fa938a2347276471103d31e04bcee5365c"}, + {file = "pyzmq-25.0.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4a1bc30f0c18444d51e9b0d0dd39e3a4e7c53ee74190bebef238cd58de577ea9"}, + {file = "pyzmq-25.0.0-cp310-cp310-win32.whl", hash = "sha256:01d53958c787cfea34091fcb8ef36003dbb7913b8e9f8f62a0715234ebc98b70"}, + {file = "pyzmq-25.0.0-cp310-cp310-win_amd64.whl", hash = "sha256:58fc3ad5e1cfd2e6d24741fbb1e216b388115d31b0ca6670f894187f280b6ba6"}, + {file = "pyzmq-25.0.0-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:e4bba04ea779a3d7ef25a821bb63fd0939142c88e7813e5bd9c6265a20c523a2"}, + {file = "pyzmq-25.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:af1fbfb7ad6ac0009ccee33c90a1d303431c7fb594335eb97760988727a37577"}, + {file = "pyzmq-25.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85456f0d8f3268eecd63dede3b99d5bd8d3b306310c37d4c15141111d22baeaf"}, + {file = "pyzmq-25.0.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0645b5a2d2a06fd8eb738018490c514907f7488bf9359c6ee9d92f62e844b76f"}, + {file = "pyzmq-25.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f72ea279b2941a5203e935a4588b9ba8a48aeb9a926d9dfa1986278bd362cb8"}, + {file = "pyzmq-25.0.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:4e295f7928a31ae0f657e848c5045ba6d693fe8921205f408ca3804b1b236968"}, + {file = "pyzmq-25.0.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ac97e7d647d5519bcef48dd8d3d331f72975afa5c4496c95f6e854686f45e2d9"}, + {file = "pyzmq-25.0.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:656281d496aaf9ca4fd4cea84e6d893e3361057c4707bd38618f7e811759103c"}, + {file = "pyzmq-25.0.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1f6116991568aac48b94d6d8aaed6157d407942ea385335a6ed313692777fb9d"}, + {file = "pyzmq-25.0.0-cp311-cp311-win32.whl", hash = "sha256:0282bba9aee6e0346aa27d6c69b5f7df72b5a964c91958fc9e0c62dcae5fdcdc"}, + {file = "pyzmq-25.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:526f884a27e8bba62fe1f4e07c62be2cfe492b6d432a8fdc4210397f8cf15331"}, + {file = "pyzmq-25.0.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:ccb3e1a863222afdbda42b7ca8ac8569959593d7abd44f5a709177d6fa27d266"}, + {file = "pyzmq-25.0.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4046d03100aca266e70d54a35694cb35d6654cfbef633e848b3c4a8d64b9d187"}, + {file = "pyzmq-25.0.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3100dddcada66ec5940ed6391ebf9d003cc3ede3d320748b2737553019f58230"}, + {file = "pyzmq-25.0.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:7877264aa851c19404b1bb9dbe6eed21ea0c13698be1eda3784aab3036d1c861"}, + {file = "pyzmq-25.0.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:5049e75cc99db65754a3da5f079230fb8889230cf09462ec972d884d1704a3ed"}, + {file = "pyzmq-25.0.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:81f99fb1224d36eb91557afec8cdc2264e856f3464500b55749020ce4c848ef2"}, + {file = "pyzmq-25.0.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:a1cd4a95f176cdc0ee0a82d49d5830f13ae6015d89decbf834c273bc33eeb3d3"}, + {file = "pyzmq-25.0.0-cp36-cp36m-win32.whl", hash = "sha256:926236ca003aec70574754f39703528947211a406f5c6c8b3e50eca04a9e87fc"}, + {file = "pyzmq-25.0.0-cp36-cp36m-win_amd64.whl", hash = "sha256:94f0a7289d0f5c80807c37ebb404205e7deb737e8763eb176f4770839ee2a287"}, + {file = "pyzmq-25.0.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:f3f96d452e9580cb961ece2e5a788e64abaecb1232a80e61deffb28e105ff84a"}, + {file = "pyzmq-25.0.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:930e6ad4f2eaac31a3d0c2130619d25db754b267487ebc186c6ad18af2a74018"}, + {file = "pyzmq-25.0.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e1081d7030a1229c8ff90120346fb7599b54f552e98fcea5170544e7c6725aab"}, + {file = "pyzmq-25.0.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:531866c491aee5a1e967c286cfa470dffac1e2a203b1afda52d62b58782651e9"}, + {file = "pyzmq-25.0.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:fc7c1421c5b1c916acf3128bf3cc7ea7f5018b58c69a6866d70c14190e600ce9"}, + {file = "pyzmq-25.0.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:9a2d5e419bd39a1edb6cdd326d831f0120ddb9b1ff397e7d73541bf393294973"}, + {file = "pyzmq-25.0.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:183e18742be3621acf8908903f689ec520aee3f08449bfd29f583010ca33022b"}, + {file = "pyzmq-25.0.0-cp37-cp37m-win32.whl", hash = "sha256:02f5cb60a7da1edd5591a15efa654ffe2303297a41e1b40c3c8942f8f11fc17c"}, + {file = "pyzmq-25.0.0-cp37-cp37m-win_amd64.whl", hash = "sha256:cac602e02341eaaf4edfd3e29bd3fdef672e61d4e6dfe5c1d065172aee00acee"}, + {file = "pyzmq-25.0.0-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:e14df47c1265356715d3d66e90282a645ebc077b70b3806cf47efcb7d1d630cb"}, + {file = "pyzmq-25.0.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:293a7c2128690f496057f1f1eb6074f8746058d13588389981089ec45d8fdc77"}, + {file = "pyzmq-25.0.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:731b208bc9412deeb553c9519dca47136b5a01ca66667cafd8733211941b17e4"}, + {file = "pyzmq-25.0.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:b055a1cddf8035966ad13aa51edae5dc8f1bba0b5d5e06f7a843d8b83dc9b66b"}, + {file = "pyzmq-25.0.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:17e1cb97d573ea84d7cd97188b42ca6f611ab3ee600f6a75041294ede58e3d20"}, + {file = "pyzmq-25.0.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:60ecbfe7669d3808ffa8a7dd1487d6eb8a4015b07235e3b723d4b2a2d4de7203"}, + {file = "pyzmq-25.0.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:4c25c95416133942280faaf068d0fddfd642b927fb28aaf4ab201a738e597c1e"}, + {file = "pyzmq-25.0.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:be05504af0619d1cffa500af1e0ede69fb683f301003851f5993b5247cc2c576"}, + {file = "pyzmq-25.0.0-cp38-cp38-win32.whl", hash = "sha256:6bf3842af37af43fa953e96074ebbb5315f6a297198f805d019d788a1021dbc8"}, + {file = "pyzmq-25.0.0-cp38-cp38-win_amd64.whl", hash = "sha256:b90bb8dfbbd138558f1f284fecfe328f7653616ff9a972433a00711d9475d1a9"}, + {file = "pyzmq-25.0.0-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:62b9e80890c0d2408eb42d5d7e1fc62a5ce71be3288684788f74cf3e59ffd6e2"}, + {file = "pyzmq-25.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:484c2c4ee02c1edc07039f42130bd16e804b1fe81c4f428e0042e03967f40c20"}, + {file = "pyzmq-25.0.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9ca6db34b26c4d3e9b0728841ec9aa39484eee272caa97972ec8c8e231b20c7e"}, + {file = "pyzmq-25.0.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:610d2d112acd4e5501fac31010064a6c6efd716ceb968e443cae0059eb7b86de"}, + {file = "pyzmq-25.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3594c0ff604e685d7e907860b61d0e10e46c74a9ffca168f6e9e50ea934ee440"}, + {file = "pyzmq-25.0.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c21a5f4e54a807df5afdef52b6d24ec1580153a6bcf0607f70a6e1d9fa74c5c3"}, + {file = "pyzmq-25.0.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:4725412e27612f0d7d7c2f794d89807ad0227c2fc01dd6146b39ada49c748ef9"}, + {file = "pyzmq-25.0.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4d3d604fe0a67afd1aff906e54da557a5203368a99dcc50a70eef374f1d2abef"}, + {file = "pyzmq-25.0.0-cp39-cp39-win32.whl", hash = "sha256:3670e8c5644768f214a3b598fe46378a4a6f096d5fb82a67dfd3440028460565"}, + {file = "pyzmq-25.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:e99629a976809fe102ef73e856cf4b2660acd82a412a51e80ba2215e523dfd0a"}, + {file = "pyzmq-25.0.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:66509c48f7446b640eeae24b60c9c1461799a27b1b0754e438582e36b5af3315"}, + {file = "pyzmq-25.0.0-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:a9c464cc508177c09a5a6122b67f978f20e2954a21362bf095a0da4647e3e908"}, + {file = "pyzmq-25.0.0-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:28bcb2e66224a7ac2843eb632e4109d6b161479e7a2baf24e37210461485b4f1"}, + {file = "pyzmq-25.0.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0e7ef9ac807db50b4eb6f534c5dcc22f998f5dae920cc28873d2c1d080a4fc9"}, + {file = "pyzmq-25.0.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:5050f5c50b58a6e38ccaf9263a356f74ef1040f5ca4030225d1cb1a858c5b7b6"}, + {file = "pyzmq-25.0.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2a73af6504e0d2805e926abf136ebf536735a13c22f709be7113c2ec65b4bec3"}, + {file = "pyzmq-25.0.0-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0e8d00228db627ddd1b418c7afd81820b38575f237128c9650365f2dd6ac3443"}, + {file = "pyzmq-25.0.0-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5605621f2181f20b71f13f698944deb26a0a71af4aaf435b34dd90146092d530"}, + {file = "pyzmq-25.0.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6136bfb0e5a9cf8c60c6ac763eb21f82940a77e6758ea53516c8c7074f4ff948"}, + {file = "pyzmq-25.0.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:0a90b2480a26aef7c13cff18703ba8d68e181facb40f78873df79e6d42c1facc"}, + {file = "pyzmq-25.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:00c94fd4c9dd3c95aace0c629a7fa713627a5c80c1819326b642adf6c4b8e2a2"}, + {file = "pyzmq-25.0.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:20638121b0bdc80777ce0ec8c1f14f1ffec0697a1f88f0b564fa4a23078791c4"}, + {file = "pyzmq-25.0.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b6f75b4b8574f3a8a0d6b4b52606fc75b82cb4391471be48ab0b8677c82f9ed4"}, + {file = "pyzmq-25.0.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4cbb885f347eba7ab7681c450dee5b14aed9f153eec224ec0c3f299273d9241f"}, + {file = "pyzmq-25.0.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:c48f257da280b3be6c94e05bd575eddb1373419dbb1a72c3ce64e88f29d1cd6d"}, + {file = "pyzmq-25.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:866eabf7c1315ef2e93e34230db7cbf672e0d7c626b37c11f7e870c8612c3dcc"}, + {file = "pyzmq-25.0.0.tar.gz", hash = "sha256:f330a1a2c7f89fd4b0aa4dcb7bf50243bf1c8da9a2f1efc31daf57a2046b31f2"}, +] requests = [ {file = "requests-2.28.2-py3-none-any.whl", hash = "sha256:64299f4909223da747622c030b781c0d7811e359c37124b4bd368fb8c6518baa"}, {file = "requests-2.28.2.tar.gz", hash = "sha256:98b1b2782e3c6c4904938b84c0eb932721069dfdb9134313beff7c83c2df24bf"}, ] +six = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] sniffio = [ {file = "sniffio-1.3.0-py3-none-any.whl", hash = "sha256:eecefdce1e5bbfb7ad2eeaabf7c1eeb404d7757c379bd1f7e5cce9d8bf425384"}, {file = "sniffio-1.3.0.tar.gz", hash = "sha256:e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101"}, @@ -1120,6 +1800,10 @@ sqlalchemy = [ {file = "SQLAlchemy-1.4.46-cp39-cp39-win_amd64.whl", hash = "sha256:315676344e3558f1f80d02535f410e80ea4e8fddba31ec78fe390eff5fb8f466"}, {file = "SQLAlchemy-1.4.46.tar.gz", hash = "sha256:6913b8247d8a292ef8315162a51931e2b40ce91681f1b6f18f697045200c4a30"}, ] +stack-data = [ + {file = "stack_data-0.6.2-py3-none-any.whl", hash = "sha256:cbb2a53eb64e5785878201a97ed7c7b94883f48b87bfb0bbe8b623c74679e4a8"}, + {file = "stack_data-0.6.2.tar.gz", hash = "sha256:32d2dd0376772d01b6cb9fc996f3c8b57a357089dec328ed4b6553d037eaf815"}, +] starlette = [ {file = "starlette-0.24.0-py3-none-any.whl", hash = "sha256:75e2b24d71ff4f7cb9a3338f83d234c2d4135bf80f52aeb105c02a01d72a5df1"}, {file = "starlette-0.24.0.tar.gz", hash = "sha256:7925947f177a19e906c6ace10f07c64c4f9fdf7d509caaac6589f7cc0cfd95f3"}, @@ -1132,10 +1816,27 @@ tomli = [ {file = "tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc"}, {file = "tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"}, ] +tornado = [ + {file = "tornado-6.2-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:20f638fd8cc85f3cbae3c732326e96addff0a15e22d80f049e00121651e82e72"}, + {file = "tornado-6.2-cp37-abi3-macosx_10_9_x86_64.whl", hash = "sha256:87dcafae3e884462f90c90ecc200defe5e580a7fbbb4365eda7c7c1eb809ebc9"}, + {file = "tornado-6.2-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba09ef14ca9893954244fd872798b4ccb2367c165946ce2dd7376aebdde8e3ac"}, + {file = "tornado-6.2-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b8150f721c101abdef99073bf66d3903e292d851bee51910839831caba341a75"}, + {file = "tornado-6.2-cp37-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3a2f5999215a3a06a4fc218026cd84c61b8b2b40ac5296a6db1f1451ef04c1e"}, + {file = "tornado-6.2-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:5f8c52d219d4995388119af7ccaa0bcec289535747620116a58d830e7c25d8a8"}, + {file = "tornado-6.2-cp37-abi3-musllinux_1_1_i686.whl", hash = "sha256:6fdfabffd8dfcb6cf887428849d30cf19a3ea34c2c248461e1f7d718ad30b66b"}, + {file = "tornado-6.2-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:1d54d13ab8414ed44de07efecb97d4ef7c39f7438cf5e976ccd356bebb1b5fca"}, + {file = "tornado-6.2-cp37-abi3-win32.whl", hash = "sha256:5c87076709343557ef8032934ce5f637dbb552efa7b21d08e89ae7619ed0eb23"}, + {file = "tornado-6.2-cp37-abi3-win_amd64.whl", hash = "sha256:e5f923aa6a47e133d1cf87d60700889d7eae68988704e20c75fb2d65677a8e4b"}, + {file = "tornado-6.2.tar.gz", hash = "sha256:9b630419bde84ec666bfd7ea0a4cb2a8a651c2d5cccdbdd1972a0c859dfc3c13"}, +] tqdm = [ {file = "tqdm-4.64.1-py2.py3-none-any.whl", hash = "sha256:6fee160d6ffcd1b1c68c65f14c829c22832bc401726335ce92c52d395944a6a1"}, {file = "tqdm-4.64.1.tar.gz", hash = "sha256:5f4f682a004951c1b450bc753c710e9280c5746ce6ffedee253ddbcbf54cf1e4"}, ] +traitlets = [ + {file = "traitlets-5.9.0-py3-none-any.whl", hash = "sha256:9e6ec080259b9a5940c797d58b613b5e31441c2257b87c2e795c5228ae80d2d8"}, + {file = "traitlets-5.9.0.tar.gz", hash = "sha256:f6cde21a9c68cf756af02035f72d5a723bf607e862e7be33ece505abf4a3bad9"}, +] typing-extensions = [ {file = "typing_extensions-4.4.0-py3-none-any.whl", hash = "sha256:16fa4864408f655d35ec496218b85f79b3437c829e93320c7c9215ccfd92489e"}, {file = "typing_extensions-4.4.0.tar.gz", hash = "sha256:1511434bb92bf8dd198c12b1cc812e800d4181cfcb867674e0f8279cc93087aa"}, @@ -1152,6 +1853,10 @@ uvicorn = [ {file = "uvicorn-0.20.0-py3-none-any.whl", hash = "sha256:c3ed1598a5668208723f2bb49336f4509424ad198d6ab2615b7783db58d919fd"}, {file = "uvicorn-0.20.0.tar.gz", hash = "sha256:a4e12017b940247f836bc90b72e725d7dfd0c8ed1c51eb365f5ba30d9f5127d8"}, ] +wcwidth = [ + {file = "wcwidth-0.2.6-py2.py3-none-any.whl", hash = "sha256:795b138f6875577cd91bba52baf9e445cd5118fd32723b460e30a0af30ea230e"}, + {file = "wcwidth-0.2.6.tar.gz", hash = "sha256:a5220780a404dbe3353789870978e472cfe477761f06ee55077256e509b156d0"}, +] yarl = [ {file = "yarl-1.8.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:bb81f753c815f6b8e2ddd2eef3c855cf7da193b82396ac013c661aaa6cc6b0a5"}, {file = "yarl-1.8.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:47d49ac96156f0928f002e2424299b2c91d9db73e08c4cd6742923a086f1c863"}, diff --git a/pyproject.toml b/pyproject.toml index 0404d9313..f6bb5317f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,6 +16,7 @@ langchain = {path = "../langchain", develop = true} [tool.poetry.group.dev.dependencies] black = "^23.1.0" +ipykernel = "^6.21.2" [build-system] requires = ["poetry-core"] diff --git a/response.json b/response.json new file mode 100644 index 000000000..ecc3e73e3 --- /dev/null +++ b/response.json @@ -0,0 +1,3012 @@ +{ + "chains": { + "APIChain": { + "template": { + "memory": { + "type": "Memory", + "required": false, + "default": null, + "list": false, + "show": false + }, + "verbose": { + "type": "bool", + "required": false, + "list": false, + "show": false + }, + "api_request_chain": { + "type": "LLMChain", + "required": true, + "list": false, + "show": true + }, + "api_answer_chain": { + "type": "LLMChain", + "required": true, + "list": false, + "show": true + }, + "requests_wrapper": { + "type": "RequestsWrapper", + "required": true, + "list": false, + "show": true + }, + "api_docs": { + "type": "str", + "required": true, + "list": false, + "show": true + }, + "question_key": { + "type": "str", + "required": false, + "default": "question", + "list": false, + "show": false + }, + "output_key": { + "type": "str", + "required": false, + "default": "output", + "list": false, + "show": false + } + }, + "_type": "api_chain" + }, + "HypotheticalDocumentEmbedder": { + "template": { + "memory": { + "type": "Memory", + "required": false, + "default": null, + "list": false, + "show": false + }, + "verbose": { + "type": "bool", + "required": false, + "list": false, + "show": false + }, + "base_embeddings": { + "type": "Embeddings", + "required": true, + "list": false, + "show": true + }, + "llm_chain": { + "type": "LLMChain", + "required": true, + "list": false, + "show": true + } + }, + "_type": "hyde_chain" + }, + "LLMChain": { + "template": { + "memory": { + "type": "Memory", + "required": false, + "default": null, + "list": false, + "show": false + }, + "verbose": { + "type": "bool", + "required": false, + "list": false, + "show": false + }, + "prompt": { + "type": "BasePromptTemplate", + "required": true, + "list": false, + "show": true + }, + "llm": { + "type": "BaseLLM", + "required": true, + "list": false, + "show": true + }, + "output_key": { + "type": "str", + "required": false, + "default": "text", + "list": false, + "show": false + } + }, + "_type": "llm_chain" + }, + "LLMBashChain": { + "template": { + "memory": { + "type": "Memory", + "required": false, + "default": null, + "list": false, + "show": false + }, + "verbose": { + "type": "bool", + "required": false, + "list": false, + "show": false + }, + "llm": { + "type": "BaseLLM", + "required": true, + "list": false, + "show": true + }, + "input_key": { + "type": "str", + "required": false, + "default": "question", + "list": false, + "show": false + }, + "output_key": { + "type": "str", + "required": false, + "default": "answer", + "list": false, + "show": false + }, + "prompt": { + "type": "BasePromptTemplate", + "required": false, + "default": { + "input_variables": [ + "question" + ], + "output_parser": null, + "template": "If someone asks you to perform a task, your job is to come up with a series of bash commands that will perform the task. There is no need to put \"#!/bin/bash\" in your answer. Make sure to reason step by step, using this format:\n\nQuestion: \"copy the files in the directory named 'target' into a new directory at the same level as target called 'myNewDirectory'\"\n\nI need to take the following actions:\n- List all files in the directory\n- Create a new directory\n- Copy the files from the first directory into the second directory\n```bash\nls\nmkdir myNewDirectory\ncp -r target/* myNewDirectory\n```\n\nThat is the format. Begin!\n\nQuestion: {question}", + "template_format": "f-string", + "validate_template": true, + "_type": "prompt" + }, + "list": false, + "show": false + } + }, + "_type": "llm_bash_chain" + }, + "LLMCheckerChain": { + "template": { + "memory": { + "type": "Memory", + "required": false, + "default": null, + "list": false, + "show": false + }, + "verbose": { + "type": "bool", + "required": false, + "list": false, + "show": false + }, + "llm": { + "type": "BaseLLM", + "required": true, + "list": false, + "show": true + }, + "create_draft_answer_prompt": { + "type": "PromptTemplate", + "required": false, + "default": { + "input_variables": [ + "question" + ], + "output_parser": null, + "template": "{question}\n\n", + "template_format": "f-string", + "validate_template": true, + "_type": "prompt" + }, + "list": false, + "show": false + }, + "list_assertions_prompt": { + "type": "PromptTemplate", + "required": false, + "default": { + "input_variables": [ + "statement" + ], + "output_parser": null, + "template": "Here is a statement:\n{statement}\nMake a bullet point list of the assumptions you made when producing the above statement.\n\n", + "template_format": "f-string", + "validate_template": true, + "_type": "prompt" + }, + "list": false, + "show": false + }, + "check_assertions_prompt": { + "type": "PromptTemplate", + "required": false, + "default": { + "input_variables": [ + "assertions" + ], + "output_parser": null, + "template": "Here is a bullet point list of assertions:\n{assertions}\nFor each assertion, determine whether it is true or false. If it is false, explain why.\n\n", + "template_format": "f-string", + "validate_template": true, + "_type": "prompt" + }, + "list": false, + "show": false + }, + "revised_answer_prompt": { + "type": "PromptTemplate", + "required": false, + "default": { + "input_variables": [ + "checked_assertions", + "question" + ], + "output_parser": null, + "template": "{checked_assertions}\n\nQuestion: In light of the above assertions and checks, how would you answer the question '{question}'?\n\nAnswer:", + "template_format": "f-string", + "validate_template": true, + "_type": "prompt" + }, + "list": false, + "show": false + }, + "input_key": { + "type": "str", + "required": false, + "default": "query", + "list": false, + "show": false + }, + "output_key": { + "type": "str", + "required": false, + "default": "result", + "list": false, + "show": false + } + }, + "_type": "llm_checker_chain" + }, + "LLMMathChain": { + "template": { + "memory": { + "type": "Memory", + "required": false, + "default": null, + "list": false, + "show": false + }, + "verbose": { + "type": "bool", + "required": false, + "list": false, + "show": false + }, + "llm": { + "type": "BaseLLM", + "required": true, + "list": false, + "show": true + }, + "prompt": { + "type": "BasePromptTemplate", + "required": false, + "default": { + "input_variables": [ + "question" + ], + "output_parser": null, + "template": "You are GPT-3, and you can't do math.\n\nYou can do basic math, and your memorization abilities are impressive, but you can't do any complex calculations that a human could not do in their head. You also have an annoying tendency to just make up highly specific, but wrong, answers.\n\nSo we hooked you up to a Python 3 kernel, and now you can execute code. If anyone gives you a hard math problem, just use this format and we’ll take care of the rest:\n\nQuestion: ${{Question with hard calculation.}}\n```python\n${{Code that prints what you need to know}}\n```\n```output\n${{Output of your code}}\n```\nAnswer: ${{Answer}}\n\nOtherwise, use this simpler format:\n\nQuestion: ${{Question without hard calculation}}\nAnswer: ${{Answer}}\n\nBegin.\n\nQuestion: What is 37593 * 67?\n\n```python\nprint(37593 * 67)\n```\n```output\n2518731\n```\nAnswer: 2518731\n\nQuestion: {question}\n", + "template_format": "f-string", + "validate_template": true, + "_type": "prompt" + }, + "list": false, + "show": false + }, + "input_key": { + "type": "str", + "required": false, + "default": "question", + "list": false, + "show": false + }, + "output_key": { + "type": "str", + "required": false, + "default": "answer", + "list": false, + "show": false + } + }, + "_type": "llm_math_chain" + }, + "LLMRequestsChain": { + "template": { + "memory": { + "type": "Memory", + "required": false, + "default": null, + "list": false, + "show": false + }, + "verbose": { + "type": "bool", + "required": false, + "list": false, + "show": false + }, + "llm_chain": { + "type": "LLMChain", + "required": true, + "list": false, + "show": true + }, + "requests_wrapper": { + "type": "RequestsWrapper", + "required": false, + "list": false, + "show": false + }, + "text_length": { + "type": "int", + "required": false, + "default": 8000, + "list": false, + "show": false + }, + "requests_key": { + "type": "str", + "required": false, + "default": "requests_result", + "list": false, + "show": false + }, + "input_key": { + "type": "str", + "required": false, + "default": "url", + "list": false, + "show": false + }, + "output_key": { + "type": "str", + "required": false, + "default": "output", + "list": false, + "show": false + } + }, + "_type": "llm_requests_chain" + }, + "ConversationChain": { + "template": { + "memory": { + "type": "Memory", + "required": false, + "list": false, + "show": false + }, + "verbose": { + "type": "bool", + "required": false, + "list": false, + "show": false + }, + "prompt": { + "type": "BasePromptTemplate", + "required": false, + "default": { + "input_variables": [ + "history", + "input" + ], + "output_parser": null, + "template": "The following is a friendly conversation between a human and an AI. The AI is talkative and provides lots of specific details from its context. If the AI does not know the answer to a question, it truthfully says it does not know.\n\nCurrent conversation:\n{history}\nHuman: {input}\nAI:", + "template_format": "f-string", + "validate_template": true, + "_type": "prompt" + }, + "list": false, + "show": false + }, + "llm": { + "type": "BaseLLM", + "required": true, + "list": false, + "show": true + }, + "output_key": { + "type": "str", + "required": false, + "default": "response", + "list": false, + "show": false + }, + "input_key": { + "type": "str", + "required": false, + "default": "input", + "list": false, + "show": false + } + }, + "_type": "llm_conversation_chain" + }, + "PALChain": { + "template": { + "memory": { + "type": "Memory", + "required": false, + "default": null, + "list": false, + "show": false + }, + "verbose": { + "type": "bool", + "required": false, + "list": false, + "show": false + }, + "llm": { + "type": "BaseLLM", + "required": true, + "list": false, + "show": true + }, + "prompt": { + "type": "BasePromptTemplate", + "required": true, + "list": false, + "show": true + }, + "stop": { + "type": "str", + "required": false, + "default": "\n\n", + "list": false, + "show": false + }, + "get_answer_expr": { + "type": "str", + "required": false, + "default": "print(solution())", + "list": false, + "show": false + }, + "python_globals": { + "type": "dict[str, Any]", + "required": false, + "default": null, + "list": false, + "show": false + }, + "python_locals": { + "type": "dict[str, Any]", + "required": false, + "default": null, + "list": false, + "show": false + }, + "output_key": { + "type": "str", + "required": false, + "default": "result", + "list": false, + "show": false + }, + "return_intermediate_steps": { + "type": "bool", + "required": false, + "default": false, + "list": false, + "show": false + } + }, + "_type": "pal_chain" + }, + "QAWithSourcesChain": { + "template": { + "memory": { + "type": "Memory", + "required": false, + "default": null, + "list": false, + "show": false + }, + "verbose": { + "type": "bool", + "required": false, + "list": false, + "show": false + }, + "combine_documents_chain": { + "type": "BaseCombineDocumentsChain", + "required": true, + "list": false, + "show": true + }, + "question_key": { + "type": "str", + "required": false, + "default": "question", + "list": false, + "show": false + }, + "input_docs_key": { + "type": "str", + "required": false, + "default": "docs", + "list": false, + "show": false + }, + "answer_key": { + "type": "str", + "required": false, + "default": "answer", + "list": false, + "show": false + }, + "sources_answer_key": { + "type": "str", + "required": false, + "default": "sources", + "list": false, + "show": false + } + }, + "_type": "qa_with_sources_chain" + }, + "StuffDocumentsChain": { + "template": { + "memory": { + "type": "Memory", + "required": false, + "default": null, + "list": false, + "show": false + }, + "verbose": { + "type": "bool", + "required": false, + "list": false, + "show": false + }, + "input_key": { + "type": "str", + "required": false, + "default": "input_documents", + "list": false, + "show": false + }, + "output_key": { + "type": "str", + "required": false, + "default": "output_text", + "list": false, + "show": false + }, + "llm_chain": { + "type": "LLMChain", + "required": true, + "list": false, + "show": true + }, + "document_prompt": { + "type": "BasePromptTemplate", + "required": false, + "list": false, + "show": false + }, + "document_variable_name": { + "type": "str", + "required": true, + "list": false, + "show": true + } + }, + "_type": "stuff_documents_chain" + }, + "MapReduceDocumentsChain": { + "template": { + "memory": { + "type": "Memory", + "required": false, + "default": null, + "list": false, + "show": false + }, + "verbose": { + "type": "bool", + "required": false, + "list": false, + "show": false + }, + "input_key": { + "type": "str", + "required": false, + "default": "input_documents", + "list": false, + "show": false + }, + "output_key": { + "type": "str", + "required": false, + "default": "output_text", + "list": false, + "show": false + }, + "llm_chain": { + "type": "LLMChain", + "required": true, + "list": false, + "show": true + }, + "combine_document_chain": { + "type": "BaseCombineDocumentsChain", + "required": true, + "list": false, + "show": true + }, + "collapse_document_chain": { + "type": "BaseCombineDocumentsChain", + "required": false, + "default": null, + "list": false, + "show": false + }, + "document_variable_name": { + "type": "str", + "required": true, + "list": false, + "show": true + }, + "return_intermediate_steps": { + "type": "bool", + "required": false, + "default": false, + "list": false, + "show": false + } + }, + "_type": "map_reduce_documents_chain" + }, + "MapRerankDocumentsChain": { + "template": { + "memory": { + "type": "Memory", + "required": false, + "default": null, + "list": false, + "show": false + }, + "verbose": { + "type": "bool", + "required": false, + "list": false, + "show": false + }, + "input_key": { + "type": "str", + "required": false, + "default": "input_documents", + "list": false, + "show": false + }, + "output_key": { + "type": "str", + "required": false, + "default": "output_text", + "list": false, + "show": false + }, + "llm_chain": { + "type": "LLMChain", + "required": true, + "list": false, + "show": true + }, + "document_variable_name": { + "type": "str", + "required": true, + "list": false, + "show": true + }, + "rank_key": { + "type": "str", + "required": true, + "list": false, + "show": true + }, + "answer_key": { + "type": "str", + "required": true, + "list": false, + "show": true + }, + "metadata_keys": { + "type": "str", + "required": false, + "default": null, + "list": true, + "show": false + }, + "return_intermediate_steps": { + "type": "bool", + "required": false, + "default": false, + "list": false, + "show": false + } + }, + "_type": "map_rerank_documents_chain" + }, + "RefineDocumentsChain": { + "template": { + "memory": { + "type": "Memory", + "required": false, + "default": null, + "list": false, + "show": false + }, + "verbose": { + "type": "bool", + "required": false, + "list": false, + "show": false + }, + "input_key": { + "type": "str", + "required": false, + "default": "input_documents", + "list": false, + "show": false + }, + "output_key": { + "type": "str", + "required": false, + "default": "output_text", + "list": false, + "show": false + }, + "initial_llm_chain": { + "type": "LLMChain", + "required": true, + "list": false, + "show": true + }, + "refine_llm_chain": { + "type": "LLMChain", + "required": true, + "list": false, + "show": true + }, + "document_variable_name": { + "type": "str", + "required": true, + "list": false, + "show": true + }, + "initial_response_name": { + "type": "str", + "required": true, + "list": false, + "show": true + }, + "document_prompt": { + "type": "BasePromptTemplate", + "required": false, + "list": false, + "show": false + }, + "return_intermediate_steps": { + "type": "bool", + "required": false, + "default": false, + "list": false, + "show": false + } + }, + "_type": "refine_documents_chain" + }, + "SQLDatabaseChain": { + "template": { + "memory": { + "type": "Memory", + "required": false, + "default": null, + "list": false, + "show": false + }, + "verbose": { + "type": "bool", + "required": false, + "list": false, + "show": false + }, + "llm": { + "type": "BaseLLM", + "required": true, + "list": false, + "show": true + }, + "database": { + "type": "SQLDatabase", + "required": true, + "list": false, + "show": true + }, + "prompt": { + "type": "BasePromptTemplate", + "required": false, + "default": { + "input_variables": [ + "input", + "table_info", + "dialect", + "top_k" + ], + "output_parser": null, + "template": "Given an input question, first create a syntactically correct {dialect} query to run, then look at the results of the query and return the answer. Unless the user specifies in his question a specific number of examples he wishes to obtain, always limit your query to at most {top_k} results using the LIMIT clause. You can order the results by a relevant column to return the most interesting examples in the database.\n\nNever query for all the columns from a specific table, only ask for a the few relevant columns given the question.\n\nPay attention to use only the column names that you can see in the schema description. Be careful to not query for columns that do not exist. Also, pay attention to which column is in which table.\n\nUse the following format:\n\nQuestion: \"Question here\"\nSQLQuery: \"SQL Query to run\"\nSQLResult: \"Result of the SQLQuery\"\nAnswer: \"Final answer here\"\n\nOnly use the tables listed below.\n\n{table_info}\n\nQuestion: {input}", + "template_format": "f-string", + "validate_template": true, + "_type": "prompt" + }, + "list": false, + "show": false + }, + "top_k": { + "type": "int", + "required": false, + "default": 5, + "list": false, + "show": false + }, + "input_key": { + "type": "str", + "required": false, + "default": "query", + "list": false, + "show": false + }, + "output_key": { + "type": "str", + "required": false, + "default": "result", + "list": false, + "show": false + }, + "return_intermediate_steps": { + "type": "bool", + "required": false, + "default": false, + "list": false, + "show": false + }, + "return_direct": { + "type": "bool", + "required": false, + "default": false, + "list": false, + "show": false + } + }, + "_type": "sql_database_chain" + }, + "VectorDBQAWithSourcesChain": { + "template": { + "memory": { + "type": "Memory", + "required": false, + "default": null, + "list": false, + "show": false + }, + "verbose": { + "type": "bool", + "required": false, + "list": false, + "show": false + }, + "combine_documents_chain": { + "type": "BaseCombineDocumentsChain", + "required": true, + "list": false, + "show": true + }, + "question_key": { + "type": "str", + "required": false, + "default": "question", + "list": false, + "show": false + }, + "input_docs_key": { + "type": "str", + "required": false, + "default": "docs", + "list": false, + "show": false + }, + "answer_key": { + "type": "str", + "required": false, + "default": "answer", + "list": false, + "show": false + }, + "sources_answer_key": { + "type": "str", + "required": false, + "default": "sources", + "list": false, + "show": false + }, + "vectorstore": { + "type": "VectorStore", + "required": true, + "list": false, + "show": true + }, + "k": { + "type": "int", + "required": false, + "default": 4, + "list": false, + "show": false + }, + "reduce_k_below_max_tokens": { + "type": "bool", + "required": false, + "default": false, + "list": false, + "show": false + }, + "max_tokens_limit": { + "type": "int", + "required": false, + "default": 3375, + "list": false, + "show": false + }, + "search_kwargs": { + "type": "dict[str, Any]", + "required": false, + "list": false, + "show": false + } + }, + "_type": "vector_db_qa_with_sources_chain" + }, + "VectorDBQA": { + "template": { + "memory": { + "type": "Memory", + "required": false, + "default": null, + "list": false, + "show": false + }, + "verbose": { + "type": "bool", + "required": false, + "list": false, + "show": false + }, + "vectorstore": { + "type": "VectorStore", + "required": true, + "list": false, + "show": true + }, + "k": { + "type": "int", + "required": false, + "default": 4, + "list": false, + "show": false + }, + "combine_documents_chain": { + "type": "BaseCombineDocumentsChain", + "required": true, + "list": false, + "show": true + }, + "input_key": { + "type": "str", + "required": false, + "default": "query", + "list": false, + "show": false + }, + "output_key": { + "type": "str", + "required": false, + "default": "result", + "list": false, + "show": false + }, + "return_source_documents": { + "type": "bool", + "required": false, + "default": false, + "list": false, + "show": false + }, + "search_kwargs": { + "type": "dict[str, Any]", + "required": false, + "list": false, + "show": false + }, + "search_type": { + "type": "str", + "required": false, + "default": "similarity", + "list": false, + "show": false + } + }, + "_type": "vector_db_qa" + } + }, + "agents": { + "ZeroShotAgent": { + "template": { + "llm_chain": { + "type": "LLMChain", + "required": true, + "list": false, + "show": true + }, + "allowed_tools": { + "type": "str", + "required": false, + "default": null, + "list": true, + "show": true + }, + "return_values": { + "type": "str", + "required": false, + "default": [ + "output" + ], + "list": true, + "show": false + } + }, + "_type": "zero-shot-react-description" + }, + "ReActDocstoreAgent": { + "template": { + "llm_chain": { + "type": "LLMChain", + "required": true, + "list": false, + "show": true + }, + "allowed_tools": { + "type": "str", + "required": false, + "default": null, + "list": true, + "show": true + }, + "return_values": { + "type": "str", + "required": false, + "default": [ + "output" + ], + "list": true, + "show": false + }, + "i": { + "type": "int", + "required": false, + "default": 1, + "list": false, + "show": false + } + }, + "_type": "react-docstore" + }, + "SelfAskWithSearchAgent": { + "template": { + "llm_chain": { + "type": "LLMChain", + "required": true, + "list": false, + "show": true + }, + "allowed_tools": { + "type": "str", + "required": false, + "default": null, + "list": true, + "show": true + }, + "return_values": { + "type": "str", + "required": false, + "default": [ + "output" + ], + "list": true, + "show": false + } + }, + "_type": "self-ask-with-search" + }, + "ConversationalAgent": { + "template": { + "llm_chain": { + "type": "LLMChain", + "required": true, + "list": false, + "show": true + }, + "allowed_tools": { + "type": "str", + "required": false, + "default": null, + "list": true, + "show": true + }, + "return_values": { + "type": "str", + "required": false, + "default": [ + "output" + ], + "list": true, + "show": false + }, + "ai_prefix": { + "type": "str", + "required": false, + "default": "AI", + "list": false, + "show": false + } + }, + "_type": "conversational-react-description" + } + }, + "prompts": { + "PromptTemplate": { + "template": { + "input_variables": { + "type": "str", + "required": true, + "list": true, + "show": true + }, + "output_parser": { + "type": "BaseOutputParser", + "required": false, + "default": null, + "list": false, + "show": false + }, + "template": { + "type": "str", + "required": true, + "list": false, + "show": true + }, + "template_format": { + "type": "str", + "required": false, + "default": "f-string", + "list": false, + "show": false + }, + "validate_template": { + "type": "bool", + "required": false, + "default": true, + "list": false, + "show": false + } + }, + "_type": "prompt" + }, + "FewShotPromptTemplate": { + "template": { + "input_variables": { + "type": "str", + "required": true, + "list": true, + "show": true + }, + "output_parser": { + "type": "BaseOutputParser", + "required": false, + "default": null, + "list": false, + "show": false + }, + "examples": { + "type": "dict", + "required": false, + "default": null, + "list": true, + "show": false + }, + "example_selector": { + "type": "BaseExampleSelector", + "required": false, + "default": null, + "list": false, + "show": false + }, + "example_prompt": { + "type": "PromptTemplate", + "required": true, + "list": false, + "show": true + }, + "suffix": { + "type": "str", + "required": true, + "list": false, + "show": true + }, + "example_separator": { + "type": "str", + "required": false, + "default": "\n\n", + "list": false, + "show": false + }, + "prefix": { + "type": "str", + "required": false, + "default": "", + "list": false, + "show": false + }, + "template_format": { + "type": "str", + "required": false, + "default": "f-string", + "list": false, + "show": false + }, + "validate_template": { + "type": "bool", + "required": false, + "default": true, + "list": false, + "show": false + } + }, + "_type": "few_shot" + } + }, + "llms": { + "AI21": { + "template": { + "cache": { + "type": "bool", + "required": false, + "default": null, + "list": false, + "show": false + }, + "verbose": { + "type": "bool", + "required": false, + "list": false, + "show": false + }, + "model": { + "type": "str", + "required": false, + "default": "j1-jumbo", + "list": false, + "show": false + }, + "temperature": { + "type": "float", + "required": false, + "default": 0.7, + "list": false, + "show": false + }, + "maxTokens": { + "type": "int", + "required": false, + "default": 256, + "list": false, + "show": false + }, + "minTokens": { + "type": "int", + "required": false, + "default": 0, + "list": false, + "show": false + }, + "topP": { + "type": "float", + "required": false, + "default": 1.0, + "list": false, + "show": false + }, + "presencePenalty": { + "type": "AI21PenaltyData", + "required": false, + "default": { + "scale": 0, + "applyToWhitespaces": true, + "applyToPunctuations": true, + "applyToNumbers": true, + "applyToStopwords": true, + "applyToEmojis": true + }, + "list": false, + "show": false + }, + "countPenalty": { + "type": "AI21PenaltyData", + "required": false, + "default": { + "scale": 0, + "applyToWhitespaces": true, + "applyToPunctuations": true, + "applyToNumbers": true, + "applyToStopwords": true, + "applyToEmojis": true + }, + "list": false, + "show": false + }, + "frequencyPenalty": { + "type": "AI21PenaltyData", + "required": false, + "default": { + "scale": 0, + "applyToWhitespaces": true, + "applyToPunctuations": true, + "applyToNumbers": true, + "applyToStopwords": true, + "applyToEmojis": true + }, + "list": false, + "show": false + }, + "numResults": { + "type": "int", + "required": false, + "default": 1, + "list": false, + "show": false + }, + "logitBias": { + "type": "dict[str, float]", + "required": false, + "default": null, + "list": false, + "show": false + }, + "ai21_api_key": { + "type": "str", + "required": false, + "default": null, + "list": false, + "show": false + }, + "base_url": { + "type": "str", + "required": false, + "default": null, + "list": false, + "show": false + } + }, + "_type": "ai21" + }, + "Anthropic": { + "template": { + "cache": { + "type": "bool", + "required": false, + "default": null, + "list": false, + "show": false + }, + "verbose": { + "type": "bool", + "required": false, + "list": false, + "show": false + }, + "client": { + "type": "Any", + "required": false, + "default": null, + "list": false, + "show": false + }, + "model": { + "type": "str", + "required": false, + "default": null, + "list": false, + "show": false + }, + "max_tokens_to_sample": { + "type": "int", + "required": false, + "default": 256, + "list": false, + "show": false + }, + "temperature": { + "type": "float", + "required": false, + "default": 1.0, + "list": false, + "show": false + }, + "top_k": { + "type": "int", + "required": false, + "default": 0, + "list": false, + "show": false + }, + "top_p": { + "type": "float", + "required": false, + "default": 1, + "list": false, + "show": false + }, + "anthropic_api_key": { + "type": "str", + "required": false, + "default": null, + "list": false, + "show": false + }, + "HUMAN_PROMPT": { + "type": "str", + "required": false, + "default": null, + "list": false, + "show": false + }, + "AI_PROMPT": { + "type": "str", + "required": false, + "default": null, + "list": false, + "show": false + } + }, + "_type": "anthropic" + }, + "CerebriumAI": { + "template": { + "cache": { + "type": "bool", + "required": false, + "default": null, + "list": false, + "show": false + }, + "verbose": { + "type": "bool", + "required": false, + "list": false, + "show": false + }, + "endpoint_url": { + "type": "str", + "required": false, + "default": "", + "list": false, + "show": false + }, + "model_kwargs": { + "type": "dict[str, Any]", + "required": false, + "list": false, + "show": false + }, + "cerebriumai_api_key": { + "type": "str", + "required": false, + "default": null, + "list": false, + "show": false + } + }, + "_type": "cerebriumai" + }, + "Cohere": { + "template": { + "cache": { + "type": "bool", + "required": false, + "default": null, + "list": false, + "show": false + }, + "verbose": { + "type": "bool", + "required": false, + "list": false, + "show": false + }, + "client": { + "type": "Any", + "required": false, + "default": null, + "list": false, + "show": false + }, + "model": { + "type": "str", + "required": false, + "default": null, + "list": false, + "show": false + }, + "max_tokens": { + "type": "int", + "required": false, + "default": 256, + "list": false, + "show": false + }, + "temperature": { + "type": "float", + "required": false, + "default": 0.75, + "list": false, + "show": false + }, + "k": { + "type": "int", + "required": false, + "default": 0, + "list": false, + "show": false + }, + "p": { + "type": "int", + "required": false, + "default": 1, + "list": false, + "show": false + }, + "frequency_penalty": { + "type": "int", + "required": false, + "default": 0, + "list": false, + "show": false + }, + "presence_penalty": { + "type": "int", + "required": false, + "default": 0, + "list": false, + "show": false + }, + "cohere_api_key": { + "type": "str", + "required": false, + "default": null, + "list": false, + "show": false + }, + "stop": { + "type": "str", + "required": false, + "default": null, + "list": true, + "show": false + } + }, + "_type": "cohere" + }, + "ForefrontAI": { + "template": { + "cache": { + "type": "bool", + "required": false, + "default": null, + "list": false, + "show": false + }, + "verbose": { + "type": "bool", + "required": false, + "list": false, + "show": false + }, + "endpoint_url": { + "type": "str", + "required": false, + "default": "", + "list": false, + "show": false + }, + "temperature": { + "type": "float", + "required": false, + "default": 0.7, + "list": false, + "show": false + }, + "length": { + "type": "int", + "required": false, + "default": 256, + "list": false, + "show": false + }, + "top_p": { + "type": "float", + "required": false, + "default": 1.0, + "list": false, + "show": false + }, + "top_k": { + "type": "int", + "required": false, + "default": 40, + "list": false, + "show": false + }, + "repetition_penalty": { + "type": "int", + "required": false, + "default": 1, + "list": false, + "show": false + }, + "forefrontai_api_key": { + "type": "str", + "required": false, + "default": null, + "list": false, + "show": false + }, + "base_url": { + "type": "str", + "required": false, + "default": null, + "list": false, + "show": false + } + }, + "_type": "forefrontai" + }, + "GooseAI": { + "template": { + "cache": { + "type": "bool", + "required": false, + "default": null, + "list": false, + "show": false + }, + "verbose": { + "type": "bool", + "required": false, + "list": false, + "show": false + }, + "client": { + "type": "Any", + "required": false, + "default": null, + "list": false, + "show": false + }, + "model_name": { + "type": "str", + "required": false, + "default": "gpt-neo-20b", + "list": false, + "show": false + }, + "temperature": { + "type": "float", + "required": false, + "default": 0.7, + "list": false, + "show": false + }, + "max_tokens": { + "type": "int", + "required": false, + "default": 256, + "list": false, + "show": false + }, + "top_p": { + "type": "float", + "required": false, + "default": 1, + "list": false, + "show": false + }, + "min_tokens": { + "type": "int", + "required": false, + "default": 1, + "list": false, + "show": false + }, + "frequency_penalty": { + "type": "float", + "required": false, + "default": 0, + "list": false, + "show": false + }, + "presence_penalty": { + "type": "float", + "required": false, + "default": 0, + "list": false, + "show": false + }, + "n": { + "type": "int", + "required": false, + "default": 1, + "list": false, + "show": false + }, + "model_kwargs": { + "type": "dict[str, Any]", + "required": false, + "list": false, + "show": false + }, + "logit_bias": { + "type": "dict[str, float]", + "required": false, + "list": false, + "show": false + }, + "gooseai_api_key": { + "type": "str", + "required": false, + "default": null, + "list": false, + "show": false + } + }, + "_type": "gooseai" + }, + "HuggingFaceHub": { + "template": { + "cache": { + "type": "bool", + "required": false, + "default": null, + "list": false, + "show": false + }, + "verbose": { + "type": "bool", + "required": false, + "list": false, + "show": false + }, + "client": { + "type": "Any", + "required": false, + "default": null, + "list": false, + "show": false + }, + "repo_id": { + "type": "str", + "required": false, + "default": "gpt2", + "list": false, + "show": false + }, + "task": { + "type": "str", + "required": false, + "default": null, + "list": false, + "show": false + }, + "model_kwargs": { + "type": "dict", + "required": false, + "default": null, + "list": false, + "show": false + }, + "huggingfacehub_api_token": { + "type": "str", + "required": false, + "default": null, + "list": false, + "show": false + } + }, + "_type": "huggingface_hub" + }, + "NLPCloud": { + "template": { + "cache": { + "type": "bool", + "required": false, + "default": null, + "list": false, + "show": false + }, + "verbose": { + "type": "bool", + "required": false, + "list": false, + "show": false + }, + "client": { + "type": "Any", + "required": false, + "default": null, + "list": false, + "show": false + }, + "model_name": { + "type": "str", + "required": false, + "default": "finetuned-gpt-neox-20b", + "list": false, + "show": false + }, + "temperature": { + "type": "float", + "required": false, + "default": 0.7, + "list": false, + "show": false + }, + "min_length": { + "type": "int", + "required": false, + "default": 1, + "list": false, + "show": false + }, + "max_length": { + "type": "int", + "required": false, + "default": 256, + "list": false, + "show": false + }, + "length_no_input": { + "type": "bool", + "required": false, + "default": true, + "list": false, + "show": false + }, + "remove_input": { + "type": "bool", + "required": false, + "default": true, + "list": false, + "show": false + }, + "remove_end_sequence": { + "type": "bool", + "required": false, + "default": true, + "list": false, + "show": false + }, + "bad_words": { + "type": "str", + "required": false, + "default": [], + "list": true, + "show": false + }, + "top_p": { + "type": "int", + "required": false, + "default": 1, + "list": false, + "show": false + }, + "top_k": { + "type": "int", + "required": false, + "default": 50, + "list": false, + "show": false + }, + "repetition_penalty": { + "type": "float", + "required": false, + "default": 1.0, + "list": false, + "show": false + }, + "length_penalty": { + "type": "float", + "required": false, + "default": 1.0, + "list": false, + "show": false + }, + "do_sample": { + "type": "bool", + "required": false, + "default": true, + "list": false, + "show": false + }, + "num_beams": { + "type": "int", + "required": false, + "default": 1, + "list": false, + "show": false + }, + "early_stopping": { + "type": "bool", + "required": false, + "default": false, + "list": false, + "show": false + }, + "num_return_sequences": { + "type": "int", + "required": false, + "default": 1, + "list": false, + "show": false + }, + "nlpcloud_api_key": { + "type": "str", + "required": false, + "default": null, + "list": false, + "show": false + } + }, + "_type": "nlpcloud" + }, + "OpenAI": { + "template": { + "cache": { + "type": "bool", + "required": false, + "default": null, + "list": false, + "show": false + }, + "verbose": { + "type": "bool", + "required": false, + "list": false, + "show": false + }, + "client": { + "type": "Any", + "required": false, + "default": null, + "list": false, + "show": false + }, + "model_name": { + "type": "str", + "required": false, + "default": "text-davinci-003", + "list": false, + "show": false + }, + "temperature": { + "type": "float", + "required": false, + "default": 0.7, + "list": false, + "show": false + }, + "max_tokens": { + "type": "int", + "required": false, + "default": 256, + "list": false, + "show": false + }, + "top_p": { + "type": "float", + "required": false, + "default": 1, + "list": false, + "show": false + }, + "frequency_penalty": { + "type": "float", + "required": false, + "default": 0, + "list": false, + "show": false + }, + "presence_penalty": { + "type": "float", + "required": false, + "default": 0, + "list": false, + "show": false + }, + "n": { + "type": "int", + "required": false, + "default": 1, + "list": false, + "show": false + }, + "best_of": { + "type": "int", + "required": false, + "default": 1, + "list": false, + "show": false + }, + "model_kwargs": { + "type": "dict[str, Any]", + "required": false, + "list": false, + "show": false + }, + "openai_api_key": { + "type": "str", + "required": false, + "default": null, + "list": false, + "show": false + }, + "batch_size": { + "type": "int", + "required": false, + "default": 20, + "list": false, + "show": false + }, + "request_timeout": { + "type": "Union[float, Tuple[float, float], NoneType]", + "required": false, + "default": null, + "list": false, + "show": false + }, + "logit_bias": { + "type": "dict[str, float]", + "required": false, + "list": false, + "show": false + }, + "max_retries": { + "type": "int", + "required": false, + "default": 6, + "list": false, + "show": false + } + }, + "_type": "openai" + }, + "Petals": { + "template": { + "cache": { + "type": "bool", + "required": false, + "default": null, + "list": false, + "show": false + }, + "verbose": { + "type": "bool", + "required": false, + "list": false, + "show": false + }, + "client": { + "type": "Any", + "required": false, + "default": null, + "list": false, + "show": false + }, + "tokenizer": { + "type": "Any", + "required": false, + "default": null, + "list": false, + "show": false + }, + "model_name": { + "type": "str", + "required": false, + "default": "bigscience/bloom-petals", + "list": false, + "show": false + }, + "temperature": { + "type": "float", + "required": false, + "default": 0.7, + "list": false, + "show": false + }, + "max_new_tokens": { + "type": "int", + "required": false, + "default": 256, + "list": false, + "show": false + }, + "top_p": { + "type": "float", + "required": false, + "default": 0.9, + "list": false, + "show": false + }, + "top_k": { + "type": "int", + "required": false, + "default": null, + "list": false, + "show": false + }, + "do_sample": { + "type": "bool", + "required": false, + "default": true, + "list": false, + "show": false + }, + "max_length": { + "type": "int", + "required": false, + "default": null, + "list": false, + "show": false + }, + "model_kwargs": { + "type": "dict[str, Any]", + "required": false, + "list": false, + "show": false + }, + "huggingface_api_key": { + "type": "str", + "required": false, + "default": null, + "list": false, + "show": false + } + }, + "_type": "petals" + }, + "HuggingFacePipeline": { + "template": { + "cache": { + "type": "bool", + "required": false, + "default": null, + "list": false, + "show": false + }, + "verbose": { + "type": "bool", + "required": false, + "list": false, + "show": false + }, + "pipeline": { + "type": "Any", + "required": false, + "default": null, + "list": false, + "show": false + }, + "model_id": { + "type": "str", + "required": false, + "default": "gpt2", + "list": false, + "show": false + }, + "model_kwargs": { + "type": "dict", + "required": false, + "default": null, + "list": false, + "show": false + } + }, + "_type": "huggingface_pipeline" + }, + "AzureOpenAI": { + "template": { + "cache": { + "type": "bool", + "required": false, + "default": null, + "list": false, + "show": false + }, + "verbose": { + "type": "bool", + "required": false, + "list": false, + "show": false + }, + "client": { + "type": "Any", + "required": false, + "default": null, + "list": false, + "show": false + }, + "model_name": { + "type": "str", + "required": false, + "default": "text-davinci-003", + "list": false, + "show": false + }, + "temperature": { + "type": "float", + "required": false, + "default": 0.7, + "list": false, + "show": false + }, + "max_tokens": { + "type": "int", + "required": false, + "default": 256, + "list": false, + "show": false + }, + "top_p": { + "type": "float", + "required": false, + "default": 1, + "list": false, + "show": false + }, + "frequency_penalty": { + "type": "float", + "required": false, + "default": 0, + "list": false, + "show": false + }, + "presence_penalty": { + "type": "float", + "required": false, + "default": 0, + "list": false, + "show": false + }, + "n": { + "type": "int", + "required": false, + "default": 1, + "list": false, + "show": false + }, + "best_of": { + "type": "int", + "required": false, + "default": 1, + "list": false, + "show": false + }, + "model_kwargs": { + "type": "dict[str, Any]", + "required": false, + "list": false, + "show": false + }, + "openai_api_key": { + "type": "str", + "required": false, + "default": null, + "list": false, + "show": false + }, + "batch_size": { + "type": "int", + "required": false, + "default": 20, + "list": false, + "show": false + }, + "request_timeout": { + "type": "Union[float, Tuple[float, float], NoneType]", + "required": false, + "default": null, + "list": false, + "show": false + }, + "logit_bias": { + "type": "dict[str, float]", + "required": false, + "list": false, + "show": false + }, + "max_retries": { + "type": "int", + "required": false, + "default": 6, + "list": false, + "show": false + }, + "deployment_name": { + "type": "str", + "required": false, + "default": "", + "list": false, + "show": false + } + }, + "_type": "azure" + } + }, + "memories": { + "CombinedMemory": { + "template": { + "memories": { + "type": "Memory", + "required": true, + "list": true, + "show": true + } + }, + "_type": "combined" + }, + "ConversationBufferMemory": { + "template": { + "human_prefix": { + "type": "str", + "required": false, + "default": "Human", + "list": false, + "show": false + }, + "ai_prefix": { + "type": "str", + "required": false, + "default": "AI", + "list": false, + "show": false + }, + "buffer": { + "type": "str", + "required": false, + "default": "", + "list": false, + "show": false + }, + "output_key": { + "type": "str", + "required": false, + "default": null, + "list": false, + "show": false + }, + "input_key": { + "type": "str", + "required": false, + "default": null, + "list": false, + "show": false + }, + "memory_key": { + "type": "str", + "required": false, + "default": "history", + "list": false, + "show": false + } + }, + "_type": "conversation_buffer" + }, + "ConversationBufferWindowMemory": { + "template": { + "human_prefix": { + "type": "str", + "required": false, + "default": "Human", + "list": false, + "show": false + }, + "ai_prefix": { + "type": "str", + "required": false, + "default": "AI", + "list": false, + "show": false + }, + "buffer": { + "type": "str", + "required": false, + "list": true, + "show": false + }, + "memory_key": { + "type": "str", + "required": false, + "default": "history", + "list": false, + "show": false + }, + "output_key": { + "type": "str", + "required": false, + "default": null, + "list": false, + "show": false + }, + "input_key": { + "type": "str", + "required": false, + "default": null, + "list": false, + "show": false + }, + "k": { + "type": "int", + "required": false, + "default": 5, + "list": false, + "show": false + } + }, + "_type": "conversation_buffer_window" + }, + "ConversationSummaryMemory": { + "template": { + "buffer": { + "type": "str", + "required": false, + "default": "", + "list": false, + "show": false + }, + "human_prefix": { + "type": "str", + "required": false, + "default": "Human", + "list": false, + "show": false + }, + "ai_prefix": { + "type": "str", + "required": false, + "default": "AI", + "list": false, + "show": false + }, + "llm": { + "type": "BaseLLM", + "required": true, + "list": false, + "show": true + }, + "prompt": { + "type": "BasePromptTemplate", + "required": false, + "default": { + "input_variables": [ + "summary", + "new_lines" + ], + "output_parser": null, + "template": "Progressively summarize the lines of conversation provided, adding onto the previous summary returning a new summary.\n\nEXAMPLE\nCurrent summary:\nThe human asks what the AI thinks of artificial intelligence. The AI thinks artificial intelligence is a force for good.\n\nNew lines of conversation:\nHuman: Why do you think artificial intelligence is a force for good?\nAI: Because artificial intelligence will help humans reach their full potential.\n\nNew summary:\nThe human asks what the AI thinks of artificial intelligence. The AI thinks artificial intelligence is a force for good because it will help humans reach their full potential.\nEND OF EXAMPLE\n\nCurrent summary:\n{summary}\n\nNew lines of conversation:\n{new_lines}\n\nNew summary:", + "template_format": "f-string", + "validate_template": true, + "_type": "prompt" + }, + "list": false, + "show": false + }, + "memory_key": { + "type": "str", + "required": false, + "default": "history", + "list": false, + "show": false + }, + "output_key": { + "type": "str", + "required": false, + "default": null, + "list": false, + "show": false + }, + "input_key": { + "type": "str", + "required": false, + "default": null, + "list": false, + "show": false + } + }, + "_type": "conversation_summary" + }, + "ConversationEntityMemory": { + "template": { + "buffer": { + "type": "str", + "required": false, + "default": [], + "list": true, + "show": false + }, + "human_prefix": { + "type": "str", + "required": false, + "default": "Human", + "list": false, + "show": false + }, + "ai_prefix": { + "type": "str", + "required": false, + "default": "AI", + "list": false, + "show": false + }, + "llm": { + "type": "BaseLLM", + "required": true, + "list": false, + "show": true + }, + "entity_extraction_prompt": { + "type": "BasePromptTemplate", + "required": false, + "default": { + "input_variables": [ + "history", + "input" + ], + "output_parser": null, + "template": "You are an AI assistant reading the transcript of a conversation between an AI and a human. Extract all of the proper nouns from the last line of conversation. As a guideline, a proper noun is generally capitalized. You should definitely extract all names and places.\n\nThe conversation history is provided just in case of a coreference (e.g. \"What do you know about him\" where \"him\" is defined in a previous line) -- ignore items mentioned there that are not in the last line.\n\nReturn the output as a single comma-separated list, or NONE if there is nothing of note to return (e.g. the user is just issuing a greeting or having a simple conversation).\n\nEXAMPLE\nConversation history:\nPerson #1: how's it going today?\nAI: \"It's going great! How about you?\"\nPerson #1: good! busy working on Langchain. lots to do.\nAI: \"That sounds like a lot of work! What kind of things are you doing to make Langchain better?\"\nLast line:\nPerson #1: i'm trying to improve Langchain's interfaces, the UX, its integrations with various products the user might want ... a lot of stuff.\nOutput: Langchain\nEND OF EXAMPLE\n\nEXAMPLE\nConversation history:\nPerson #1: how's it going today?\nAI: \"It's going great! How about you?\"\nPerson #1: good! busy working on Langchain. lots to do.\nAI: \"That sounds like a lot of work! What kind of things are you doing to make Langchain better?\"\nLast line:\nPerson #1: i'm trying to improve Langchain's interfaces, the UX, its integrations with various products the user might want ... a lot of stuff. I'm working with Person #2.\nOutput: Langchain, Person #2\nEND OF EXAMPLE\n\nConversation history (for reference only):\n{history}\nLast line of conversation (for extraction):\nHuman: {input}\n\nOutput:", + "template_format": "f-string", + "validate_template": true, + "_type": "prompt" + }, + "list": false, + "show": false + }, + "entity_summarization_prompt": { + "type": "BasePromptTemplate", + "required": false, + "default": { + "input_variables": [ + "entity", + "summary", + "history", + "input" + ], + "output_parser": null, + "template": "You are an AI assistant helping a human keep track of facts about relevant people, places, and concepts in their life. Update the summary of the provided entity in the \"Entity\" section based on the last line of your conversation with the human. If you are writing the summary for the first time, return a single sentence.\nThe update should only include facts that are relayed in the last line of conversation about the provided entity, and should only contain facts about the provided entity.\n\nIf there is no new information about the provided entity or the information is not worth noting (not an important or relevant fact to remember long-term), return the existing summary unchanged.\n\nFull conversation history (for context):\n{history}\n\nEntity to summarize:\n{entity}\n\nExisting summary of {entity}:\n{summary}\n\nLast line of conversation:\nHuman: {input}\nUpdated summary:", + "template_format": "f-string", + "validate_template": true, + "_type": "prompt" + }, + "list": false, + "show": false + }, + "output_key": { + "type": "str", + "required": false, + "default": null, + "list": false, + "show": false + }, + "input_key": { + "type": "str", + "required": false, + "default": null, + "list": false, + "show": false + }, + "store": { + "type": "dict[str, Union[str, NoneType]]", + "required": false, + "default": {}, + "list": false, + "show": false + }, + "entity_cache": { + "type": "str", + "required": false, + "default": [], + "list": true, + "show": false + }, + "k": { + "type": "int", + "required": false, + "default": 3, + "list": false, + "show": false + }, + "chat_history_key": { + "type": "str", + "required": false, + "default": "history", + "list": false, + "show": false + } + }, + "_type": "conversation_entity" + }, + "ConversationSummaryBufferMemory": { + "template": { + "buffer": { + "type": "str", + "required": false, + "list": true, + "show": false + }, + "max_token_limit": { + "type": "int", + "required": false, + "default": 2000, + "list": false, + "show": false + }, + "moving_summary_buffer": { + "type": "str", + "required": false, + "default": "", + "list": false, + "show": false + }, + "llm": { + "type": "BaseLLM", + "required": true, + "list": false, + "show": true + }, + "prompt": { + "type": "BasePromptTemplate", + "required": false, + "default": { + "input_variables": [ + "summary", + "new_lines" + ], + "output_parser": null, + "template": "Progressively summarize the lines of conversation provided, adding onto the previous summary returning a new summary.\n\nEXAMPLE\nCurrent summary:\nThe human asks what the AI thinks of artificial intelligence. The AI thinks artificial intelligence is a force for good.\n\nNew lines of conversation:\nHuman: Why do you think artificial intelligence is a force for good?\nAI: Because artificial intelligence will help humans reach their full potential.\n\nNew summary:\nThe human asks what the AI thinks of artificial intelligence. The AI thinks artificial intelligence is a force for good because it will help humans reach their full potential.\nEND OF EXAMPLE\n\nCurrent summary:\n{summary}\n\nNew lines of conversation:\n{new_lines}\n\nNew summary:", + "template_format": "f-string", + "validate_template": true, + "_type": "prompt" + }, + "list": false, + "show": false + }, + "memory_key": { + "type": "str", + "required": false, + "default": "history", + "list": false, + "show": false + }, + "human_prefix": { + "type": "str", + "required": false, + "default": "Human", + "list": false, + "show": false + }, + "ai_prefix": { + "type": "str", + "required": false, + "default": "AI", + "list": false, + "show": false + }, + "output_key": { + "type": "str", + "required": false, + "default": null, + "list": false, + "show": false + }, + "input_key": { + "type": "str", + "required": false, + "default": null, + "list": false, + "show": false + } + }, + "_type": "conversation_summary_buffer" + }, + "ConversationKGMemory": { + "template": { + "k": { + "type": "int", + "required": false, + "default": 2, + "list": false, + "show": false + }, + "buffer": { + "type": "str", + "required": false, + "list": true, + "show": false + }, + "kg": { + "type": "NetworkxEntityGraph", + "required": false, + "list": false, + "show": false + }, + "knowledge_extraction_prompt": { + "type": "BasePromptTemplate", + "required": false, + "default": { + "input_variables": [ + "history", + "input" + ], + "output_parser": null, + "template": "You are a networked intelligence helping a human track knowledge triples about all relevant people, things, concepts, etc. and integrating them with your knowledge stored within your weights as well as that stored in a knowledge graph. Extract all of the knowledge triples from the last line of conversation. A knowledge triple is a clause that contains a subject, a predicate, and an object. The subject is the entity being described, the predicate is the property of the subject that is being described, and the object is the value of the property.\n\nEXAMPLE\nConversation history:\nPerson #1: Did you hear aliens landed in Area 51?\nAI: No, I didn't hear that. What do you know about Area 51?\nPerson #1: It's a secret military base in Nevada.\nAI: What do you know about Nevada?\nLast line of conversation:\nPerson #1: It's a state in the US. It's also the number 1 producer of gold in the US.\n\nOutput: (Nevada, is a, state)<|>(Nevada, is in, US)<|>(Nevada, is the number 1 producer of, gold)\nEND OF EXAMPLE\n\nEXAMPLE\nConversation history:\nPerson #1: Hello.\nAI: Hi! How are you?\nPerson #1: I'm good. How are you?\nAI: I'm good too.\nLast line of conversation:\nPerson #1: I'm going to the store.\n\nOutput: NONE\nEND OF EXAMPLE\n\nEXAMPLE\nConversation history:\nPerson #1: What do you know about Descartes?\nAI: Descartes was a French philosopher, mathematician, and scientist who lived in the 17th century.\nPerson #1: The Descartes I'm referring to is a standup comedian and interior designer from Montreal.\nAI: Oh yes, He is a comedian and an interior designer. He has been in the industry for 30 years. His favorite food is baked bean pie.\nPerson #1: Oh huh. I know Descartes likes to drive antique scooters and play the mandolin.\nLast line of conversation:\nOutput: (Descartes, likes to drive, antique scooters)<|>(Descartes, plays, mandolin)\nEND OF EXAMPLE\n\nConversation history (for reference only):\n{history}\nLast line of conversation (for extraction):\nHuman: {input}\n\nOutput:", + "template_format": "f-string", + "validate_template": true, + "_type": "prompt" + }, + "list": false, + "show": false + }, + "entity_extraction_prompt": { + "type": "BasePromptTemplate", + "required": false, + "default": { + "input_variables": [ + "history", + "input" + ], + "output_parser": null, + "template": "You are an AI assistant reading the transcript of a conversation between an AI and a human. Extract all of the proper nouns from the last line of conversation. As a guideline, a proper noun is generally capitalized. You should definitely extract all names and places.\n\nThe conversation history is provided just in case of a coreference (e.g. \"What do you know about him\" where \"him\" is defined in a previous line) -- ignore items mentioned there that are not in the last line.\n\nReturn the output as a single comma-separated list, or NONE if there is nothing of note to return (e.g. the user is just issuing a greeting or having a simple conversation).\n\nEXAMPLE\nConversation history:\nPerson #1: how's it going today?\nAI: \"It's going great! How about you?\"\nPerson #1: good! busy working on Langchain. lots to do.\nAI: \"That sounds like a lot of work! What kind of things are you doing to make Langchain better?\"\nLast line:\nPerson #1: i'm trying to improve Langchain's interfaces, the UX, its integrations with various products the user might want ... a lot of stuff.\nOutput: Langchain\nEND OF EXAMPLE\n\nEXAMPLE\nConversation history:\nPerson #1: how's it going today?\nAI: \"It's going great! How about you?\"\nPerson #1: good! busy working on Langchain. lots to do.\nAI: \"That sounds like a lot of work! What kind of things are you doing to make Langchain better?\"\nLast line:\nPerson #1: i'm trying to improve Langchain's interfaces, the UX, its integrations with various products the user might want ... a lot of stuff. I'm working with Person #2.\nOutput: Langchain, Person #2\nEND OF EXAMPLE\n\nConversation history (for reference only):\n{history}\nLast line of conversation (for extraction):\nHuman: {input}\n\nOutput:", + "template_format": "f-string", + "validate_template": true, + "_type": "prompt" + }, + "list": false, + "show": false + }, + "llm": { + "type": "BaseLLM", + "required": true, + "list": false, + "show": true + }, + "human_prefix": { + "type": "str", + "required": false, + "default": "Human", + "list": false, + "show": false + }, + "ai_prefix": { + "type": "str", + "required": false, + "default": "AI", + "list": false, + "show": false + }, + "output_key": { + "type": "str", + "required": false, + "default": null, + "list": false, + "show": false + }, + "input_key": { + "type": "str", + "required": false, + "default": null, + "list": false, + "show": false + }, + "memory_key": { + "type": "str", + "required": false, + "default": "history", + "list": false, + "show": false + } + }, + "_type": "conversation_kg" + } + }, + "tools": { + "python_repl": { + "template": {}, + "name": "Python REPL", + "description": "A Python shell. Use this to execute python commands. Input should be a valid python command. If you expect output it should be printed out." + }, + "requests": { + "template": {}, + "name": "Requests", + "description": "A portal to the internet. Use this when you need to get specific content from a site. Input should be a specific url, and the output will be all the text on that page." + }, + "terminal": { + "template": {}, + "name": "Terminal", + "description": "Executes commands in a terminal. Input should be valid commands, and the output will be any output from running that command." + }, + "pal-math": { + "template": { + "llm": { + "type": "BaseLLM", + "required": true, + "list": false, + "show": true + } + }, + "name": "PAL-MATH", + "description": "A language model that is really good at solving complex word math problems. Input should be a fully worded hard word math problem." + }, + "pal-colored-objects": { + "template": { + "llm": { + "type": "BaseLLM", + "required": true, + "list": false, + "show": true + } + }, + "name": "PAL-COLOR-OBJ", + "description": "A language model that is really good at reasoning about position and the color attributes of objects. Input should be a fully worded hard reasoning problem. Make sure to include all information about the objects AND the final question you want to answer." + }, + "llm-math": { + "template": { + "llm": { + "type": "BaseLLM", + "required": true, + "list": false, + "show": true + } + }, + "name": "Calculator", + "description": "Useful for when you need to answer questions about math." + }, + "open-meteo-api": { + "template": { + "llm": { + "type": "BaseLLM", + "required": true, + "list": false, + "show": true + } + }, + "name": "Open Meteo API", + "description": "Useful for when you want to get weather information from the OpenMeteo API. The input should be a question in natural language that this API can answer." + }, + "news-api": { + "template": { + "llm": { + "type": "BaseLLM", + "required": true, + "list": false, + "show": true + }, + "news_api_key": { + "type": "str", + "required": true, + "list": false, + "show": true + } + }, + "name": "News API", + "description": "Use this when you want to get information about the top headlines of current news stories. The input should be a question in natural language that this API can answer." + }, + "tmdb-api": { + "template": { + "llm": { + "type": "BaseLLM", + "required": true, + "list": false, + "show": true + }, + "tmdb_bearer_token": { + "type": "str", + "required": true, + "list": false, + "show": true + } + }, + "name": "TMDB API", + "description": "Useful for when you want to get information from The Movie Database. The input should be a question in natural language that this API can answer." + }, + "wolfram-alpha": { + "template": { + "wolfram_alpha_appid": { + "type": "str", + "required": true, + "list": false, + "show": true + } + }, + "name": "Wolfram Alpha", + "description": "A wrapper around Wolfram Alpha. Useful for when you need to answer questions about Math, Science, Technology, Culture, Society and Everyday Life. Input should be a search query." + }, + "google-search": { + "template": { + "google_api_key": { + "type": "str", + "required": true, + "list": false, + "show": true + }, + "google_cse_id": { + "type": "str", + "required": true, + "list": false, + "show": true + } + }, + "name": "Google Search", + "description": "A wrapper around Google Search. Useful for when you need to answer questions about current events. Input should be a search query." + }, + "serpapi": { + "template": { + "serpapi_api_key": { + "type": "str", + "required": true, + "list": false, + "show": true + }, + "aiosession": { + "type": "str", + "required": true, + "list": false, + "show": true + } + }, + "name": "Search", + "description": "A search engine. Useful for when you need to answer questions about current events. Input should be a search query." + } + } + } \ No newline at end of file diff --git a/src/app.py b/src/app.py index 76f4974b9..65ea4f7f2 100644 --- a/src/app.py +++ b/src/app.py @@ -1,7 +1,7 @@ from fastapi import FastAPI from endpoints import router as endpoints_router from list import router as list_router -from templates import router as templates_router +from signature import router as signatures_router def create_app(): @@ -9,7 +9,7 @@ def create_app(): app = FastAPI() app.include_router(endpoints_router) app.include_router(list_router) - app.include_router(templates_router) + app.include_router(signatures_router) return app diff --git a/src/endpoints.py b/src/endpoints.py index d2d027e20..05d2af226 100644 --- a/src/endpoints.py +++ b/src/endpoints.py @@ -7,31 +7,66 @@ from interface import ( DictableMemory, DictableTool, ) +import signature +import list # build router router = APIRouter() AGENT_TYPE = "conversational-react-description" # define endpoints -> /chain, /agent, /memory, /prompt # return a dict -@router.get("/chain") -def get_chain(): - llm = OpenAI(temperature=0) - chain = DictableChain(llm=llm) - return chain.to_dict() -@router.get("/agent") -def get_agent(): - tools = [DictableTool(name="test", description="test", func=lambda x: x)] - llm = OpenAI(temperature=0) - return initialize_agent(llm=llm, tools=tools, memory=DictableMemory()).__dict__ +@router.get("/") +def get_all(): + tools = list.list_tools() + return { + "chains": {chain: signature.chain(chain) for chain in list.list_chains()}, + "agents": {agent: signature.agent(agent) for agent in list.list_agents()}, + "prompts": {prompt: signature.prompt(prompt) for prompt in list.list_prompts()}, + "llms": {llm: signature.llm(llm) for llm in list.list_llms()}, + # "utilities": { + # "template": { + # # utility: templates.utility(utility) for utility in list.list_utilities() + # } + # }, + "memories": { + memory: signature.memory(memory) for memory in list.list_memories() + }, + # "document_loaders": { + # "template": { + # # memory: templates.document_loader(memory) + # # for memory in list.list_document_loaders() + # } + # }, + # "vectorstores": {"template": {}}, + # "docstores": {"template": {}}, + "tools": { + tool: {"template": signature.tool(tool), **values} + for tool, values in tools.items() + }, + } -@router.get("/memory") -def get_memory(): - return DictableMemory().to_dict() +# @router.get("/chain") +# def get_chain(): +# llm = OpenAI(temperature=0) +# chain = DictableChain(llm=llm) +# return chain.to_dict() -@router.get("/prompt") -def get_prompt(): - return {"template": "template", "input_variables": "input_variables"} +# @router.get("/agent") +# def get_agent(): +# tools = [DictableTool(name="test", description="test", func=lambda x: x)] +# llm = OpenAI(temperature=0) +# return initialize_agent(llm=llm, tools=tools, memory=DictableMemory()).__dict__ + + +# @router.get("/memory") +# def get_memory(): +# return DictableMemory().to_dict() + + +# @router.get("/prompt") +# def get_prompt(): +# return {"template": "template", "input_variables": "input_variables"} diff --git a/src/list.py b/src/list.py index 40d9452be..8a3e6f807 100644 --- a/src/list.py +++ b/src/list.py @@ -32,11 +32,11 @@ def read_items(): "agents", "prompts", "llms", - "utilities", + # "utilities", "memories", - "document_loaders", - "vectorstores", - "docstores", + # "document_loaders", + # "vectorstores", + # "docstores", "tools", ] @@ -44,55 +44,62 @@ def read_items(): @router.get("/chains") def list_chains(): """List all chain types""" - return list(chains.loading.type_to_loader_dict.keys()) + return [ + chain.__annotations__["return"].__name__ + for chain in chains.loading.type_to_loader_dict.values() + ] @router.get("/agents") def list_agents(): """List all agent types""" - return list(agents.loading.AGENT_TO_CLASS.keys()) + # return list(agents.loading.AGENT_TO_CLASS.keys()) + return [agent.__name__ for agent in agents.loading.AGENT_TO_CLASS.values()] @router.get("/prompts") def list_prompts(): """List all prompt types""" - return list(prompts.loading.type_to_loader_dict.keys()) + return [ + prompt.__annotations__["return"].__name__ + for prompt in prompts.loading.type_to_loader_dict.values() + ] @router.get("/llms") def list_llms(): """List all llm types""" - return list(llms.type_to_cls_dict.keys()) + return [llm.__name__ for llm in llms.type_to_cls_dict.values()] @router.get("/memories") def list_memories(): """List all memory types""" - return list(memories.type_to_cls_dict.keys()) + return [memory.__name__ for memory in memories.type_to_cls_dict.values()] -@router.get("/utilities") -def list_utilities(): - """List all utility types""" - return list(utilities.__all__) +# @router.get("/utilities") +# def list_utilities(): +# """List all utility types""" +# return list(utilities.__all__) -@router.get("/document_loaders") -def list_document_loaders(): - """List all document loader types""" - return list(document_loaders.__all__) +# @router.get("/document_loaders") +# def list_document_loaders(): +# """List all document loader types""" +# return list(document_loaders.__all__) -@router.get("/vectorstores") -def list_vectorstores(): - """List all vector store types""" - return list(vectorstores.__all__) +# @router.get("/vectorstores") +# def list_vectorstores(): +# """List all vector store types""" +# return list(vectorstores.__all__) -@router.get("/docstores") -def list_docstores(): - """List all document store types""" - return list(docstore.__all__) +# @router.get("/docstores") +# def list_docstores(): +# """List all document store types""" +# return list(docstore.__all__) @router.get("/tools") diff --git a/src/signature.py b/src/signature.py new file mode 100644 index 000000000..e6fe1e23c --- /dev/null +++ b/src/signature.py @@ -0,0 +1,198 @@ +from fastapi import APIRouter + +from langchain import chains +from langchain import agents +from langchain import prompts +from langchain import llms +from langchain import utilities +from langchain.chains.conversation import memory as memories +from langchain import document_loaders +from langchain.agents.load_tools import ( + get_all_tool_names, + _BASE_TOOLS, + _LLM_TOOLS, + _EXTRA_LLM_TOOLS, + _EXTRA_OPTIONAL_TOOLS, +) +import util +import list +import inspect + +# build router +router = APIRouter( + prefix="/signatures", + tags=["signatures"], +) + +KEYS_TO_REMOVE = ["name", "default_factory"] + + +def build_template_from_function(name: str, dict: dict): + classes = [item.__annotations__["return"].__name__ for item in dict.values()] + + # Raise error if name is not in chains + if name not in classes: + raise Exception(f"{name} not found.") + + for k, v in dict.items(): + if v.__annotations__["return"].__name__ == name: + _type = k + _class = v.__annotations__["return"] + + docs = util.get_class_doc(_class) + + variables = {} + for name, value in _class.__fields__.items(): + variables[name] = {} + for name_, value_ in value.__repr_args__(): + if name_ not in KEYS_TO_REMOVE: + variables[name][name_] = value_ + variables[name]["placeholder"] = docs["Attributes"][name] if name in docs["Attributes"] else "" + return { + "template": util.format_dict(variables), + "_type": _type, + "description": docs["Description"], + } + + # return { + # "template": util.format_dict( + # { + # name: { + # name: value + # for (name, value) in value.__repr_args__() + # if name not in KEYS_TO_REMOVE + # } + # for name, value in _class.__fields__.items() + # } + # ), + # "_type": _type, + # "description": _class.__doc__, + # } + + +def build_template_from_class(name: str, dict: dict): + classes = [item.__name__ for item in dict.values()] + + # Raise error if name is not in chains + if name not in classes: + raise Exception(f"{name} not found.") + + for k, v in dict.items(): + if v.__name__ == name: + _type = k + _class = v + + docs = util.get_class_doc(_class) + + variables = {} + for name, value in _class.__fields__.items(): + variables[name] = {} + for name_, value_ in value.__repr_args__(): + if name_ not in KEYS_TO_REMOVE: + variables[name][name_] = value_ + variables[name]["placeholder"] = docs["Attributes"][name] if name in docs["Attributes"] else "" + + return { + "template": util.format_dict(variables), + "_type": _type, + "description": docs["Description"], + } + + # return { + # "template": util.format_dict( + # { + # name: { + # name: value + # for (name, value) in value.__repr_args__() + # if name not in KEYS_TO_REMOVE + # } + # for name, value in _class.__fields__.items() + # } + # ), + # "_type": _type, + # "description": _class.__doc__, + # } + + +@router.get("/chain") +def chain(name: str): + return build_template_from_function(name, chains.loading.type_to_loader_dict) + + +@router.get("/agent") +def agent(name: str): + return build_template_from_class(name, agents.loading.AGENT_TO_CLASS) + + +@router.get("/prompt") +def prompt(name: str): + return build_template_from_function(name, prompts.loading.type_to_loader_dict) + + +@router.get("/llm") +def llm(name: str): + return build_template_from_class(name, llms.type_to_cls_dict) + + +# @router.get("/utility") +# def utility(name: str): +# # Raise error if name is not in utilities +# if name not in utilities.__all__: +# raise Exception(f"Prompt {name} not found.") +# _class = getattr(utilities, name) +# return { +# name: {name: value for (name, value) in value.__repr_args__() if name != "name"} +# for name, value in _class.__fields__.items() +# } + + +@router.get("/memory") +def memory(name: str): + return build_template_from_class(name, memories.type_to_cls_dict) + + +# @router.get("/document_loader") +# def document_loader(name: str): +# # Raise error if name is not in document_loader +# if name not in document_loaders.__all__: +# raise Exception(f"Prompt {name} not found.") +# _class = getattr(document_loaders, name) +# return { +# name: {name: value for (name, value) in value.__repr_args__() if name != "name"} +# for name, value in _class.__fields__.items() +# } + + +@router.get("/tool") +def tool(name: str): + # Raise error if name is not in tools + if name not in get_all_tool_names(): + raise Exception(f"Tool {name} not found.") + + type_dict = { + "str": { + "type": "str", + "required": True, + "list": False, + "show": True, + "placeholder": "", + "default": "", + }, + "llm": {"type": "BaseLLM", "required": True, "list": False, "show": True}, + } + + if name in _BASE_TOOLS: + params = [] + elif name in _LLM_TOOLS: + params = ["llm"] + elif name in _EXTRA_LLM_TOOLS: + _, extra_keys = _EXTRA_LLM_TOOLS[name] + params = ["llm"] + extra_keys + elif name in _EXTRA_OPTIONAL_TOOLS: + _, extra_keys = _EXTRA_OPTIONAL_TOOLS[name] + params = extra_keys + + return { + param: (type_dict[param] if param == "llm" else type_dict["str"]) + for param in params + } diff --git a/src/templates.py b/src/templates.py deleted file mode 100644 index 8db140a6a..000000000 --- a/src/templates.py +++ /dev/null @@ -1,125 +0,0 @@ -from fastapi import APIRouter - -from langchain import chains -from langchain import agents -from langchain import prompts -from langchain import llms -from langchain import utilities -from langchain.chains.conversation import memory as memories -from langchain import document_loaders -from langchain.agents.load_tools import ( - get_all_tool_names, - _BASE_TOOLS, - _LLM_TOOLS, - _EXTRA_LLM_TOOLS, - _EXTRA_OPTIONAL_TOOLS, -) -import util - -# build router -router = APIRouter( - prefix="/templates", - tags=["templates"], -) - - -@router.get("/chain") -def chain(name: str): - # Raise error if name is not in chains - if name not in chains.loading.type_to_loader_dict.keys(): - raise Exception(f"Prompt {name} not found.") - _class = chains.loading.type_to_loader_dict[name].__annotations__["return"] - return { - name: {name: value for (name, value) in value.__repr_args__() if name != "name"} - for name, value in _class.__fields__.items() - } - - -@router.get("/agent") -def agent(name: str): - # Raise error if name is not in agents - if name not in agents.loading.AGENT_TO_CLASS.keys(): - raise Exception(f"Prompt {name} not found.") - _class = agents.loading.AGENT_TO_CLASS[name] - return { - name: {name: value for (name, value) in value.__repr_args__() if name != "name"} - for name, value in _class.__fields__.items() - } - - -@router.get("/prompt") -def prompt(name: str): - # Raise error if name is not in prompts - if name not in prompts.loading.type_to_loader_dict.keys(): - raise Exception(f"Prompt {name} not found.") - _class = prompts.loading.type_to_loader_dict[name].__annotations__["return"] - return { - name: {name: value for (name, value) in value.__repr_args__() if name != "name"} - for name, value in _class.__fields__.items() - } - - -@router.get("/llm") -def llm(name: str): - # Raise error if name is not in llms - if name not in llms.type_to_cls_dict.keys(): - raise Exception(f"Prompt {name} not found.") - _class = llms.type_to_cls_dict[name] - return { - name: {name: value for (name, value) in value.__repr_args__() if name != "name"} - for name, value in _class.__fields__.items() - } - - -@router.get("/utility") -def utility(name: str): - # Raise error if name is not in utilities - if name not in utilities.__all__: - raise Exception(f"Prompt {name} not found.") - _class = getattr(utilities, name) - return { - name: {name: value for (name, value) in value.__repr_args__() if name != "name"} - for name, value in _class.__dict__["__fields__"].items() - } - - -@router.get("/memory") -def memory(name: str): - # Raise error if name is not in memory - if name not in memories.type_to_cls_dict.keys(): - raise Exception(f"Prompt {name} not found.") - _class = memories.type_to_cls_dict[name] - return { - name: {name: value for (name, value) in value.__repr_args__() if name != "name"} - for name, value in _class.__dict__["__fields__"].items() - } - - -@router.get("/document_loader") -def document_loader(name: str): - # Raise error if name is not in document_loader - if name not in document_loaders.__all__: - raise Exception(f"Prompt {name} not found.") - _class = getattr(document_loaders, name) - return { - name: {name: value for (name, value) in value.__repr_args__() if name != "name"} - for name, value in _class.__fields__.items() - } - - -@router.get("/tool") -def tool(name: str): - # Raise error if name is not in tools - if name not in get_all_tool_names(): - raise Exception(f"Tool {name} not found.") - - if name in _BASE_TOOLS: - return {"parameters": []} - elif name in _LLM_TOOLS: - return {"parameters": ["llm"]} - elif name in _EXTRA_LLM_TOOLS: - _, extra_keys = _EXTRA_LLM_TOOLS[name] - return {"parameters": ["llm"] + extra_keys} - elif name in _EXTRA_OPTIONAL_TOOLS: - _, extra_keys = _EXTRA_OPTIONAL_TOOLS[name] - return {"parameters": extra_keys} diff --git a/src/util.py b/src/util.py index bb5184f3e..f1c1bd1fa 100644 --- a/src/util.py +++ b/src/util.py @@ -27,3 +27,148 @@ def get_tool_params(func): # Return None if no return statement was found return None + + +def get_class_doc(class_name): + """ + Extracts information from the docstring of a given class. + + Args: + class_name: the class to extract information from + + Returns: + A dictionary containing the extracted information, with keys + for 'Description', 'Parameters', 'Attributes', and 'Returns'. + """ + # Get the class docstring + docstring = class_name.__doc__ + + # Parse the docstring to extract information + lines = docstring.split("\n") + data = { + "Description": "", + "Parameters": {}, + "Attributes": {}, + "Example": [], + "Returns": {}, + } + + current_section = "Description" + + for line in lines: + line = line.strip() + + if not line: + continue + + if ( + line.startswith(tuple(data.keys())) + and len(line.split()) == 1 + and line.endswith(":") + ): + current_section = line[:-1] + continue + + if current_section == "Description": + data[current_section] += line + elif current_section == "Example": + data[current_section] += line + else: + try: + param, desc = line.split(":") + except: + param, desc = "", "" + data[current_section][param.strip()] = desc.strip() + + return data + + +# def format_dict(d): +# # Remove from keys +# keys_to_remove = ["callback_manager"] +# for key in keys_to_remove: +# if key in d: +# d.pop(key) + +# for key, value in d.items(): +# _type = value["type"] + +# # Add optional parameter +# if "Optional" in _type: +# _type = _type.replace("Optional[", "")[:-1] + +# # Add list parameter +# if "List" in _type: +# _type = _type.replace("List[", "")[:-1] +# value["list"] = True +# else: +# value["list"] = False + +# if "Mapping" in _type: +# _type = _type.replace("Mapping", "dict") + +# value["type"] = _type + +# # Show if required +# if value["required"] or key in ["allowed_tools", "verbose", "Memory"]: +# value["show"] = True +# else: +# value["show"] = False + +# # If default, change to value +# if value['type'] == 'str': +# value["value"] = value["default"] if 'default' in value else '' +# if 'default' in value: +# value.pop("default") + +# return {key: value for key, value in d.items() if value["show"]} + + +def format_dict(d): + """ + Formats a dictionary by removing certain keys and modifying the values of other keys. + + Args: + d: the dictionary to format + + Returns: + A new dictionary with the desired modifications applied. + """ + # Remove keys to exclude + keys_to_exclude = ["callback_manager"] + d = {key: value for key, value in d.items() if key not in keys_to_exclude} + + # Process remaining keys + for key, value in d.items(): + _type = value["type"] + + # Remove 'Optional' wrapper + if "Optional" in _type: + _type = _type.replace("Optional[", "")[:-1] + + # Check for list type + if "List" in _type: + _type = _type.replace("List[", "")[:-1] + value["list"] = True + else: + value["list"] = False + + # Replace 'Mapping' with 'dict' + if "Mapping" in _type: + _type = _type.replace("Mapping", "dict") + + value["type"] = _type + + # Show if required + value["show"] = bool( + value["required"] or key in ["allowed_tools", "verbose", "Memory"] + ) + + # Replace default value with actual value + if _type == "str": + value["value"] = value.get("default", "") + if "default" in value: + value.pop("default") + + # Filter out keys that should not be shown + return {key: value for key, value in d.items() if value["show"]}