From 52093240b1bbfd8e51b922547d3de761c3f82446 Mon Sep 17 00:00:00 2001 From: Deepankar Mahapatro Date: Mon, 15 May 2023 17:48:02 +0530 Subject: [PATCH 01/19] feat: deploy langflow using langchain-serve --- Makefile | 11 +++++++++++ jcloud.yml | 2 ++ lcserve.Dockerfile | 16 ++++++++++++++++ src/backend/langflow/__main__.py | 14 ++++++++++++++ src/backend/langflow/lcserve.py | 14 ++++++++++++++ 5 files changed, 57 insertions(+) create mode 100644 jcloud.yml create mode 100644 lcserve.Dockerfile create mode 100644 src/backend/langflow/lcserve.py diff --git a/Makefile b/Makefile index a2e49ee98..be87989ef 100644 --- a/Makefile +++ b/Makefile @@ -46,6 +46,17 @@ build: poetry build --format sdist rm -rf src/backend/langflow/frontend +lcserve_push: + make build_frontend + @version=$$(poetry version --short); \ + lc-serve push --app langflow.lcserve:app --app-dir . \ + --image-name langflow --image-tag $${version} \ + --version deep-0.0.1 --verbose + +lcserve_deploy: + @:$(if $(uses),,$(error `uses` is not set. Please run `make uses=... lcserve_deploy`)) + lc-serve deploy jcloud --app langflow.lcserve:app --app-dir . --uses $(uses) --verbose + dev: make install_frontend ifeq ($(build),1) diff --git a/jcloud.yml b/jcloud.yml new file mode 100644 index 000000000..ffc1c9b8a --- /dev/null +++ b/jcloud.yml @@ -0,0 +1,2 @@ +instance: C4 +autoscale_min: 1 \ No newline at end of file diff --git a/lcserve.Dockerfile b/lcserve.Dockerfile new file mode 100644 index 000000000..883a2c040 --- /dev/null +++ b/lcserve.Dockerfile @@ -0,0 +1,16 @@ +# This file is used by `lc-serve` to build the image. +# Don't change the name of this file. + +FROM jinawolf/serving-gateway:${version} + +RUN apt-get update \ + && apt-get install --no-install-recommends -y build-essential libpq-dev + +COPY . /appdir/ + +RUN pip install poetry==1.4.0 && cd /appdir && pip install . && \ + pip uninstall -y poetry && \ + apt-get remove --auto-remove -y build-essential libpq-dev && \ + apt-get autoremove && apt-get clean && rm -rf /var/lib/apt/lists/* && rm -rf /tmp/* + +ENTRYPOINT [ "jina", "gateway", "--uses", "config.yml" ] \ No newline at end of file diff --git a/src/backend/langflow/__main__.py b/src/backend/langflow/__main__.py index 1f16744ae..8da0062bf 100644 --- a/src/backend/langflow/__main__.py +++ b/src/backend/langflow/__main__.py @@ -69,6 +69,20 @@ def serve( LangflowApplication(app, options).run() +@app.command() +def jcloud(): + """ + Deploy Langflow server on Jina AI Cloud + """ + import os + from importlib.metadata import version as mod_version + + app_name = "langflow.lcserve:app" + version = mod_version("langflow") + uses = f"jinaai+docker://langflow:{version}" + os.system(f"lc-serve deploy jcloud --app {app_name} --app-dir . --uses {uses}") + + def main(): app() diff --git a/src/backend/langflow/lcserve.py b/src/backend/langflow/lcserve.py new file mode 100644 index 000000000..8b84d7fef --- /dev/null +++ b/src/backend/langflow/lcserve.py @@ -0,0 +1,14 @@ +# This file is used by lc-serve to load the mounted app and serve it. + +from pathlib import Path +from fastapi.staticfiles import StaticFiles +from langflow.main import create_app + +app = create_app() +path = Path(__file__).parent +static_files_dir = path / "frontend" +app.mount( + "/", + StaticFiles(directory=static_files_dir, html=True), + name="static", +) \ No newline at end of file From e4f99b797189ee0f5b68e27b7222e5477103e102 Mon Sep 17 00:00:00 2001 From: Deepankar Mahapatro Date: Mon, 15 May 2023 17:56:26 +0530 Subject: [PATCH 02/19] feat: deploy langflow using langchain-serve --- Makefile | 3 +-- pyproject.toml | 1 + src/backend/langflow/__main__.py | 5 +++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index be87989ef..4b634e90c 100644 --- a/Makefile +++ b/Makefile @@ -50,8 +50,7 @@ lcserve_push: make build_frontend @version=$$(poetry version --short); \ lc-serve push --app langflow.lcserve:app --app-dir . \ - --image-name langflow --image-tag $${version} \ - --version deep-0.0.1 --verbose + --image-name langflow --image-tag $${version} --verbose lcserve_deploy: @:$(if $(uses),,$(error `uses` is not set. Please run `make uses=... lcserve_deploy`)) diff --git a/pyproject.toml b/pyproject.toml index 0cc181617..0e97c56cf 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -51,6 +51,7 @@ websockets = "^11.0.2" tiktoken = "^0.3.3" wikipedia = "^1.4.0" gptcache = "^0.1.23" +langchain-serve = "^0.0.28" [tool.poetry.group.dev.dependencies] black = "^23.1.0" diff --git a/src/backend/langflow/__main__.py b/src/backend/langflow/__main__.py index 8da0062bf..46225e977 100644 --- a/src/backend/langflow/__main__.py +++ b/src/backend/langflow/__main__.py @@ -78,9 +78,10 @@ def jcloud(): from importlib.metadata import version as mod_version app_name = "langflow.lcserve:app" + app_dir = str(Path(__file__).parent) version = mod_version("langflow") - uses = f"jinaai+docker://langflow:{version}" - os.system(f"lc-serve deploy jcloud --app {app_name} --app-dir . --uses {uses}") + base_image = "jinaai+docker://deepankarm/langflow" + os.system(f"lc-serve deploy jcloud --app {app_name} --app-dir {app_dir} --uses {base_image}:{version}") def main(): From 5d8f18f046ec213fb0fc639966ba0aa234821c9b Mon Sep 17 00:00:00 2001 From: Deepankar Mahapatro Date: Mon, 15 May 2023 18:17:14 +0530 Subject: [PATCH 03/19] feat: deploy langflow using langchain-serve --- Makefile | 3 ++- jcloud.yml => src/backend/langflow/jcloud.yml | 0 2 files changed, 2 insertions(+), 1 deletion(-) rename jcloud.yml => src/backend/langflow/jcloud.yml (100%) diff --git a/Makefile b/Makefile index 4b634e90c..0d8556e47 100644 --- a/Makefile +++ b/Makefile @@ -54,7 +54,8 @@ lcserve_push: lcserve_deploy: @:$(if $(uses),,$(error `uses` is not set. Please run `make uses=... lcserve_deploy`)) - lc-serve deploy jcloud --app langflow.lcserve:app --app-dir . --uses $(uses) --verbose + lc-serve deploy jcloud --app langflow.lcserve:app --app-dir . \ + --uses $(uses) --config src/backend/langflow/jcloud.yml --verbose dev: make install_frontend diff --git a/jcloud.yml b/src/backend/langflow/jcloud.yml similarity index 100% rename from jcloud.yml rename to src/backend/langflow/jcloud.yml From 916e4dfa80ecd651a24f35956cf45ab9c5b7ed18 Mon Sep 17 00:00:00 2001 From: Deepankar Mahapatro Date: Mon, 15 May 2023 19:57:48 +0530 Subject: [PATCH 04/19] feat: deploy langflow using langchain-serve --- pyproject.toml | 2 +- src/backend/langflow/__main__.py | 27 +++++++++++++++++++++++++-- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 0e97c56cf..e58e759ba 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -51,7 +51,7 @@ websockets = "^11.0.2" tiktoken = "^0.3.3" wikipedia = "^1.4.0" gptcache = "^0.1.23" -langchain-serve = "^0.0.28" +langchain-serve = "^0.0.29" [tool.poetry.group.dev.dependencies] black = "^23.1.0" diff --git a/src/backend/langflow/__main__.py b/src/backend/langflow/__main__.py index 46225e977..bed6ad435 100644 --- a/src/backend/langflow/__main__.py +++ b/src/backend/langflow/__main__.py @@ -74,14 +74,37 @@ def jcloud(): """ Deploy Langflow server on Jina AI Cloud """ - import os + import asyncio + + import click + from lcserve.__main__ import serve_on_jcloud from importlib.metadata import version as mod_version app_name = "langflow.lcserve:app" app_dir = str(Path(__file__).parent) version = mod_version("langflow") base_image = "jinaai+docker://deepankarm/langflow" - os.system(f"lc-serve deploy jcloud --app {app_name} --app-dir {app_dir} --uses {base_image}:{version}") + + click.echo("๐Ÿš€ Deploying Langflow server on Jina AI Cloud") + app_id = asyncio.run( + serve_on_jcloud( + fastapi_app_str=app_name, + app_dir=app_dir, + uses=f"{base_image}:{version}", + name="langflow", + ) + ) + click.secho( + "๐ŸŽ‰ Langflow server successfully deployed on Jina AI Cloud ๐ŸŽ‰", fg="green" + ) + click.secho( + "๐Ÿ”— Click on the link to open the server (please allow ~1-2 minutes for the server to startup): ", + nl=False, + fg="green", + ) + click.secho(f"https://{app_id}.wolf.jina.ai/", fg="blue") + click.secho("๐Ÿ“– Read more about managing the server: ", nl=False, fg="green") + click.secho("https://github.com/jina-ai/langchain-serve", fg="blue") def main(): From 1ba8d775c175ab13d09d1a015e32f9e241e18027 Mon Sep 17 00:00:00 2001 From: Deepankar Mahapatro Date: Mon, 15 May 2023 22:07:17 +0530 Subject: [PATCH 05/19] feat: deploy langflow using langchain-serve --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index e58e759ba..7a72f9663 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -51,7 +51,7 @@ websockets = "^11.0.2" tiktoken = "^0.3.3" wikipedia = "^1.4.0" gptcache = "^0.1.23" -langchain-serve = "^0.0.29" +langchain-serve = "^0.0.30" [tool.poetry.group.dev.dependencies] black = "^23.1.0" From 8e4e627451609d767678e4ab9fd5385e12cf8f7d Mon Sep 17 00:00:00 2001 From: Deepankar Mahapatro Date: Tue, 16 May 2023 11:23:39 +0530 Subject: [PATCH 06/19] build: make langchain-serve optional --- pyproject.toml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 7a72f9663..6d01456fa 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -51,7 +51,7 @@ websockets = "^11.0.2" tiktoken = "^0.3.3" wikipedia = "^1.4.0" gptcache = "^0.1.23" -langchain-serve = "^0.0.30" +langchain-serve = { version = "^0.0.31", optional = true } [tool.poetry.group.dev.dependencies] black = "^23.1.0" @@ -67,6 +67,9 @@ pandas-stubs = "^2.0.0.230412" types-pillow = "^9.5.0.2" +[tool.poetry.extras] +production = ["langchain-serve"] + [tool.ruff] line-length = 120 From 54da71cc0afcda0ddbf3444aa16cba04531145a8 Mon Sep 17 00:00:00 2001 From: Deepankar Mahapatro Date: Tue, 16 May 2023 13:34:34 +0530 Subject: [PATCH 07/19] build: make langchain-serve optional --- src/backend/langflow/__main__.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/backend/langflow/__main__.py b/src/backend/langflow/__main__.py index bed6ad435..685c9cbe0 100644 --- a/src/backend/langflow/__main__.py +++ b/src/backend/langflow/__main__.py @@ -75,10 +75,18 @@ def jcloud(): Deploy Langflow server on Jina AI Cloud """ import asyncio + from importlib.metadata import version as mod_version import click - from lcserve.__main__ import serve_on_jcloud - from importlib.metadata import version as mod_version + + try: + from lcserve.__main__ import serve_on_jcloud + except ImportError: + click.secho( + "๐Ÿšจ Please install langchain-serve to deploy Langflow server on Jina AI Cloud using `pip install langchain-serve`", + fg="red", + ) + return app_name = "langflow.lcserve:app" app_dir = str(Path(__file__).parent) From dd4a9f50b6ceac1a5fa6a8c7380d3fdffa08c5a2 Mon Sep 17 00:00:00 2001 From: Deepankar Mahapatro Date: Tue, 16 May 2023 14:45:23 +0530 Subject: [PATCH 08/19] build: make langchain-serve optional --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 6d01456fa..1fd786902 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -51,7 +51,7 @@ websockets = "^11.0.2" tiktoken = "^0.3.3" wikipedia = "^1.4.0" gptcache = "^0.1.23" -langchain-serve = { version = "^0.0.31", optional = true } +langchain-serve = {version = "^0.0.31", optional = true} [tool.poetry.group.dev.dependencies] black = "^23.1.0" From dc9121c8436805f58ed0e794cf42c477b798c263 Mon Sep 17 00:00:00 2001 From: Deepankar Mahapatro Date: Tue, 16 May 2023 14:52:22 +0530 Subject: [PATCH 09/19] build: make langchain-serve optional --- poetry.lock | 965 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 950 insertions(+), 15 deletions(-) diff --git a/poetry.lock b/poetry.lock index be596cd0a..c2f718c86 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,5 +1,17 @@ # This file is automatically @generated by Poetry 1.4.0 and should not be changed by hand. +[[package]] +name = "aiofiles" +version = "23.1.0" +description = "File support for asyncio." +category = "main" +optional = true +python-versions = ">=3.7,<4.0" +files = [ + {file = "aiofiles-23.1.0-py3-none-any.whl", hash = "sha256:9312414ae06472eb6f1d163f555e466a23aed1c8f60c30cccf7121dba2e53eb2"}, + {file = "aiofiles-23.1.0.tar.gz", hash = "sha256:edd247df9a19e0db16534d4baaf536d6609a43e1de5401d7a4c1c148753a1635"}, +] + [[package]] name = "aiohttp" version = "3.8.4" @@ -124,6 +136,18 @@ files = [ [package.dependencies] frozenlist = ">=1.1.0" +[[package]] +name = "aiostream" +version = "0.4.5" +description = "Generator-based operators for asynchronous iteration" +category = "main" +optional = true +python-versions = "*" +files = [ + {file = "aiostream-0.4.5-py3-none-any.whl", hash = "sha256:25b7c2d9c83570d78c0ef5a20e949b7d0b8ea3b0b0a4f22c49d3f721105a6057"}, + {file = "aiostream-0.4.5.tar.gz", hash = "sha256:3ecbf87085230fbcd9605c32ca20c4fb41af02c71d076eab246ea22e35947d88"}, +] + [[package]] name = "anyio" version = "3.6.2" @@ -169,6 +193,21 @@ files = [ {file = "argilla-0.0.1.tar.gz", hash = "sha256:5017854754e89f573b31af25b25b803f51cea9ca1fa0bcf00505dee1f45cf7c9"}, ] +[[package]] +name = "asgiref" +version = "3.6.0" +description = "ASGI specs, helper code, and adapters" +category = "main" +optional = true +python-versions = ">=3.7" +files = [ + {file = "asgiref-3.6.0-py3-none-any.whl", hash = "sha256:71e68008da809b957b7ee4b43dbccff33d1b23519fb8344e33f049897077afac"}, + {file = "asgiref-3.6.0.tar.gz", hash = "sha256:9567dfe7bd8d3c8c892227827c41cce860b368104c3431da67a0c5a65a949506"}, +] + +[package.extras] +tests = ["mypy (>=0.800)", "pytest", "pytest-asyncio"] + [[package]] name = "asttokens" version = "2.2.1" @@ -799,6 +838,24 @@ files = [ {file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"}, ] +[[package]] +name = "deprecated" +version = "1.2.13" +description = "Python @deprecated decorator to deprecate old python classes, functions or methods." +category = "main" +optional = true +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "Deprecated-1.2.13-py2.py3-none-any.whl", hash = "sha256:64756e3e14c8c5eea9795d93c524551432a0be75629f8f29e67ab8caf076c76d"}, + {file = "Deprecated-1.2.13.tar.gz", hash = "sha256:43ac5335da90c31c24ba028af536a91d41d53f9e6901ddb021bcc572ce44e38d"}, +] + +[package.dependencies] +wrapt = ">=1.10,<2" + +[package.extras] +dev = ["PyTest", "PyTest (<5)", "PyTest-Cov", "PyTest-Cov (<2.6)", "bump2version (<1)", "configparser (<5)", "importlib-metadata (<3)", "importlib-resources (<4)", "sphinx (<2)", "sphinxcontrib-websupport (<2)", "tox", "zipp (<2)"] + [[package]] name = "dill" version = "0.3.6" @@ -814,6 +871,57 @@ files = [ [package.extras] graph = ["objgraph (>=1.7.2)"] +[[package]] +name = "docarray" +version = "0.21.0" +description = "The data structure for unstructured data" +category = "main" +optional = true +python-versions = "*" +files = [ + {file = "docarray-0.21.0.tar.gz", hash = "sha256:3c9f605123800c1b0cdf8c458be3fb19c05e9a81f723e51200ef531b02e689ee"}, +] + +[package.dependencies] +jina-hubble-sdk = ">=0.24.0" +numpy = "*" +rich = ">=12.0.0" + +[package.extras] +annlite = ["annlite"] +benchmark = ["h5py", "matplotlib", "pandas", "seaborn"] +common = ["Pillow", "fastapi", "lz4", "matplotlib", "protobuf (>=3.13.0)", "pydantic (>=1.9.0)", "requests", "uvicorn"] +elasticsearch = ["elasticsearch (>=8.2.0)"] +full = ["Pillow", "av", "fastapi", "grpcio (>=1.46.0,<1.48.1)", "grpcio-health-checking (>=1.46.0,<1.48.1)", "grpcio-reflection (>=1.46.0,<1.48.1)", "ipython", "lz4", "matplotlib", "protobuf (>=3.13.0)", "pydantic (>=1.9.0)", "requests", "scipy", "strawberry-graphql", "trimesh[easy]", "uvicorn"] +milvus = ["pymilvus (>=2.1.0,<2.2.0)"] +opensearch = ["opensearch-py (==2.0.1)"] +qdrant = ["qdrant-client (>=0.10.3,<0.11.0)"] +redis = ["redis (>=4.3.0)"] +test = ["annlite", "black (==22.3.0)", "datasets", "elasticsearch (>=8.2.0)", "jina", "jupyterlab", "mock", "onnx", "onnxruntime", "opensearch-py (==2.0.1)", "paddlepaddle", "protobuf (>=3.13.0,<=3.20.0)", "pymilvus (==2.1.3)", "pytest", "pytest-cov (==3.0.0)", "pytest-custom_exit_code", "pytest-mock", "pytest-mock", "pytest-repeat", "pytest-reraise", "pytest-timeout", "redis (>=4.3.0)", "tensorflow (==2.7.0)", "torch (==1.9.0)", "torchvision (==0.10.0)", "transformers (>=4.16.2)", "weaviate-client (>=3.9.0,<3.10.0)"] +weaviate = ["weaviate-client (>=3.9.0,<3.10.0)"] + +[[package]] +name = "docker" +version = "6.1.2" +description = "A Python library for the Docker Engine API." +category = "main" +optional = true +python-versions = ">=3.7" +files = [ + {file = "docker-6.1.2-py3-none-any.whl", hash = "sha256:134cd828f84543cbf8e594ff81ca90c38288df3c0a559794c12f2e4b634ea19e"}, + {file = "docker-6.1.2.tar.gz", hash = "sha256:dcc088adc2ec4e7cfc594e275d8bd2c9738c56c808de97476939ef67db5af8c2"}, +] + +[package.dependencies] +packaging = ">=14.0" +pywin32 = {version = ">=304", markers = "sys_platform == \"win32\""} +requests = ">=2.26.0" +urllib3 = ">=1.26.0" +websocket-client = ">=0.32.0" + +[package.extras] +ssh = ["paramiko (>=2.4.3)"] + [[package]] name = "docstring-parser" version = "0.15" @@ -883,6 +991,25 @@ files = [ {file = "duckdb-0.7.1.tar.gz", hash = "sha256:a7db6da0366b239ea1e4541fcc19556b286872f5015c9a54c2e347146e25a2ad"}, ] +[[package]] +name = "ecdsa" +version = "0.18.0" +description = "ECDSA cryptographic signature library (pure python)" +category = "main" +optional = true +python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "ecdsa-0.18.0-py2.py3-none-any.whl", hash = "sha256:80600258e7ed2f16b9aa1d7c295bd70194109ad5a30fdee0eaeefef1d4c559dd"}, + {file = "ecdsa-0.18.0.tar.gz", hash = "sha256:190348041559e21b22a1d65cee485282ca11a6f81d503fddb84d5017e9ed1e49"}, +] + +[package.dependencies] +six = ">=1.9.0" + +[package.extras] +gmpy = ["gmpy"] +gmpy2 = ["gmpy2"] + [[package]] name = "et-xmlfile" version = "1.1.0" @@ -1269,6 +1396,100 @@ files = [ docs = ["Sphinx", "docutils (<0.18)"] test = ["objgraph", "psutil"] +[[package]] +name = "grpcio" +version = "1.47.5" +description = "HTTP/2-based RPC framework" +category = "main" +optional = true +python-versions = ">=3.6" +files = [ + {file = "grpcio-1.47.5-cp310-cp310-linux_armv7l.whl", hash = "sha256:acc73289d0c44650aa1f21eccfa967f5623b01c3b5e2b4596fe5f9c5bf10956d"}, + {file = "grpcio-1.47.5-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:f3174c798959998876d546944523a558f78a9b9feb22a2cbaaa3822f2e158653"}, + {file = "grpcio-1.47.5-cp310-cp310-manylinux_2_17_aarch64.whl", hash = "sha256:64401ee6d54b4d5869bcba4be3cae9f2e335c44a39ba1e29991ad22cfe2abacb"}, + {file = "grpcio-1.47.5-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:39a07eb5e7ec9277e5d124fb0e2d4f51ddbaadc2abdd27e8bbf1716dcf45e581"}, + {file = "grpcio-1.47.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:874b138ca95a6375ae6f6a12c10a348827c9aa8fbd05d025b87b5e050ab55b46"}, + {file = "grpcio-1.47.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:90539369afba42fc921cdda9d5f697a421f05a2e82ba58342ffbe88aa586019e"}, + {file = "grpcio-1.47.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2b18f970514bbc76547928e26d0cec06996ce3f947a3634b3adbe79d0e48e980"}, + {file = "grpcio-1.47.5-cp310-cp310-win32.whl", hash = "sha256:44c52923be0c4a0f662de43644679c6356960c38c4edf44864c23b998693c7cc"}, + {file = "grpcio-1.47.5-cp310-cp310-win_amd64.whl", hash = "sha256:07761f427551fced386db8c78701d6a167b2a682aa8df808303dd0a0d44bf6c9"}, + {file = "grpcio-1.47.5-cp36-cp36m-linux_armv7l.whl", hash = "sha256:10eb026bf75568de06933366f0340d2b4b207425c74a5640aa1812b8b69e7d9d"}, + {file = "grpcio-1.47.5-cp36-cp36m-macosx_10_10_universal2.whl", hash = "sha256:4f8e7fba6b1150a63aebd04d03be779de4ea4c4a8b28869e7a3c8f0b3ec59edc"}, + {file = "grpcio-1.47.5-cp36-cp36m-manylinux_2_17_aarch64.whl", hash = "sha256:36d93b19c214bc654fc50ae65cce84b8f7698159191b9d3f21f9ad92ae7bc325"}, + {file = "grpcio-1.47.5-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4e59f916bf58528e55893743151c6bd9f0a393fddfe411a6fffd29a300e6acf2"}, + {file = "grpcio-1.47.5-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18f8b2d316a3be464eb2a20afa7026a235a07a0094be879876611206d8026679"}, + {file = "grpcio-1.47.5-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:0c3076957cd2aea34fe69384453315fd765948eb6cb73a12f332277308d04b76"}, + {file = "grpcio-1.47.5-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:007f5ad07d2f3a4a422c1df589a0d25e918b96d8f6069cb6f0254386a5f09262"}, + {file = "grpcio-1.47.5-cp36-cp36m-win32.whl", hash = "sha256:01ac149a5ca9512277b1d2fe85687099f3e442c6f9f924eae003a6700735e23e"}, + {file = "grpcio-1.47.5-cp36-cp36m-win_amd64.whl", hash = "sha256:a32ccc88950f2be619157201161e70a5e5ed9e2427662bb2e60f1a8cea7d0db6"}, + {file = "grpcio-1.47.5-cp37-cp37m-linux_armv7l.whl", hash = "sha256:ec71f15258e086acadb13ec06e4e4c54eb0f5455cd4c618997f847874d5ff9ea"}, + {file = "grpcio-1.47.5-cp37-cp37m-macosx_10_10_universal2.whl", hash = "sha256:4bbf5a63497dbd5e44c4335cab153796a4274be17ca40ec971a7749c3f4fef6a"}, + {file = "grpcio-1.47.5-cp37-cp37m-manylinux_2_17_aarch64.whl", hash = "sha256:11e1bc97e88232201256b718c63a8a1fd86ec6fca3a501293be5c5e423de9d56"}, + {file = "grpcio-1.47.5-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e568d84fed80713d2fa3221552beee27ed8034f7eff52bb7871bf5ffe4d4ca78"}, + {file = "grpcio-1.47.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cb4c838de8e1e7194d3f9a679fd76cc44a1dbe81f18bd39ee233c72347d772bf"}, + {file = "grpcio-1.47.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:a74c19baf2f8127b44b3f58e2a5801a17992dae9a20197b4a8fa26e2ea79742b"}, + {file = "grpcio-1.47.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e369ed5ecff11ef85666cabbb5736495604e052c8dc2c03a2104f99dfd0a59e3"}, + {file = "grpcio-1.47.5-cp37-cp37m-win32.whl", hash = "sha256:ccb741fab5117aea981d4ac341d2ce1e588f515f83091807d4e2bb388ed59edd"}, + {file = "grpcio-1.47.5-cp37-cp37m-win_amd64.whl", hash = "sha256:af9d3b075dfcbc343d44b0e98725ba6d56dc0669e61905a4e71e8f4409cfefbd"}, + {file = "grpcio-1.47.5-cp38-cp38-linux_armv7l.whl", hash = "sha256:cac6847a4b9a7e7a1f270a71fef1c17c2e8a6b411c0ca48080ce1e08d284aded"}, + {file = "grpcio-1.47.5-cp38-cp38-macosx_10_10_universal2.whl", hash = "sha256:54a3e17d155b6fb141e1fbb7c47d30556bec4c940b66ff4d9513536e2e214d4a"}, + {file = "grpcio-1.47.5-cp38-cp38-manylinux_2_17_aarch64.whl", hash = "sha256:d1873c0b84a0ffb129f75e7c8be45d2cae427baf0b090d15b9ff46c1841c3f53"}, + {file = "grpcio-1.47.5-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e209df91cf8dfb335c2e26784702b0e12c20dc4de7b9b6d2cccd968146155f06"}, + {file = "grpcio-1.47.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:350e2627684f93f8b59af9c76a03eeb4aa145ecc589569137d4518486f4f1727"}, + {file = "grpcio-1.47.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:23754807314c5aa4c26eb1c50aaf506801a2f7825951100280d2c013b127436f"}, + {file = "grpcio-1.47.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:503c3fa0045f3ef80aa1ad082eac6a888081da2e1cd793f281ed499831e4c498"}, + {file = "grpcio-1.47.5-cp38-cp38-win32.whl", hash = "sha256:a4eecfbe994c88996461bd1459e43ea460952d4147f53e8c18e089764e6808f5"}, + {file = "grpcio-1.47.5-cp38-cp38-win_amd64.whl", hash = "sha256:941927ae4d589a2fef5c22b9c47df9e5e613c737bd750bafc3a9547cc506017c"}, + {file = "grpcio-1.47.5-cp39-cp39-linux_armv7l.whl", hash = "sha256:9891c77e69bd4109c25c1bea51d78fbc5ba2fcd9445bf99225bb8fb03d849913"}, + {file = "grpcio-1.47.5-cp39-cp39-macosx_10_10_universal2.whl", hash = "sha256:61e83778d85dbbbd7446451ec28b7261e9ebba489cc8c262dfe8fedc119f769b"}, + {file = "grpcio-1.47.5-cp39-cp39-manylinux_2_17_aarch64.whl", hash = "sha256:21ccfc0e989531cbdc93c54a7581ea5f7c46bf585016d9320b4be042f1e02374"}, + {file = "grpcio-1.47.5-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bea35a0114a39827ffe59f73950d242f95d59a9ac2009ae8da7b065c06f0a57f"}, + {file = "grpcio-1.47.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:97e75b9e52eeb9d1335aaeecf581cb3cea7fc4bafd7bd675c83f208a386a42a8"}, + {file = "grpcio-1.47.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:1fb86f95228827b55e860278d142326af4489c0f4220975780daff325fc87172"}, + {file = "grpcio-1.47.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c9b83183525afe58dd9e7bb249f9e55df326e3c3834d09ea476c7a6bb12f73ee"}, + {file = "grpcio-1.47.5-cp39-cp39-win32.whl", hash = "sha256:00bff7492875ab04ec5ed3d92550d8f8aa423151e187b79684c8a22c7a6f1670"}, + {file = "grpcio-1.47.5-cp39-cp39-win_amd64.whl", hash = "sha256:2b32adae820cc0347e5e44efe91b661b436dbca73f25c5763cadb1cafd1dca10"}, + {file = "grpcio-1.47.5.tar.gz", hash = "sha256:b62b8bea0c94b4603bb4c8332d8a814375120bea3c2dbeb71397213bde5ea832"}, +] + +[package.dependencies] +six = ">=1.5.2" + +[package.extras] +protobuf = ["grpcio-tools (>=1.47.5)"] + +[[package]] +name = "grpcio-health-checking" +version = "1.47.5" +description = "Standard Health Checking Service for gRPC" +category = "main" +optional = true +python-versions = ">=3.6" +files = [ + {file = "grpcio-health-checking-1.47.5.tar.gz", hash = "sha256:74f36ef2ff704c46965bd74cdea51afc0bbcde641134c9d09ecb5063391db516"}, + {file = "grpcio_health_checking-1.47.5-py3-none-any.whl", hash = "sha256:659b83138cb2b7db71777044d0caf58bab4f958fce972900f8577ebb4edca29d"}, +] + +[package.dependencies] +grpcio = ">=1.47.5" +protobuf = ">=3.12.0" + +[[package]] +name = "grpcio-reflection" +version = "1.47.5" +description = "Standard Protobuf Reflection Service for gRPC" +category = "main" +optional = true +python-versions = ">=3.6" +files = [ + {file = "grpcio-reflection-1.47.5.tar.gz", hash = "sha256:ac391ec327861f16bc870638101fee80799eccf39c5b09e9ddd776d6854b9873"}, + {file = "grpcio_reflection-1.47.5-py3-none-any.whl", hash = "sha256:8cfd222f2116b7e1bcd55bd2a1fcb168c5a9cd20310151d6278563f516e8ae1e"}, +] + +[package.dependencies] +grpcio = ">=1.47.5" +protobuf = ">=3.12.0" + [[package]] name = "gunicorn" version = "20.1.0" @@ -1476,14 +1697,14 @@ files = [ [[package]] name = "importlib-metadata" -version = "6.6.0" +version = "6.0.1" description = "Read metadata from Python packages" category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "importlib_metadata-6.6.0-py3-none-any.whl", hash = "sha256:43dd286a2cd8995d5eaef7fee2066340423b818ed3fd70adf0bad5f1fac53fed"}, - {file = "importlib_metadata-6.6.0.tar.gz", hash = "sha256:92501cdf9cc66ebd3e612f1b4f0c0765dfa42f0fa38ffb319b6bd84dd675d705"}, + {file = "importlib_metadata-6.0.1-py3-none-any.whl", hash = "sha256:1543daade821c89b1c4a55986c326f36e54f2e6ca3bad96be4563d0acb74dcd4"}, + {file = "importlib_metadata-6.0.1.tar.gz", hash = "sha256:950127d57e35a806d520817d3e92eec3f19fdae9f0cd99da77a407c5aabefba3"}, ] [package.dependencies] @@ -1599,6 +1820,29 @@ 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 = "jcloud" +version = "0.2.8" +description = "Simplify deploying and managing Jina projects on Jina Cloud" +category = "main" +optional = true +python-versions = "*" +files = [ + {file = "jcloud-0.2.8.tar.gz", hash = "sha256:cdd30c85c0a857573651ebc329f52a8de9e43c3e0f276dc85975914006295639"}, +] + +[package.dependencies] +aiohttp = ">=3.8.0" +jina-hubble-sdk = ">=0.26.10" +packaging = "*" +python-dateutil = "*" +python-dotenv = "*" +pyyaml = "*" +rich = ">=12.0.0" + +[package.extras] +test = ["black (==22.3.0)", "jina (>=3.7.0)", "mock", "pytest", "pytest-asyncio", "pytest-cov", "pytest-custom_exit_code", "pytest-env", "pytest-mock", "pytest-repeat", "pytest-reraise", "pytest-timeout"] + [[package]] name = "jedi" version = "0.18.2" @@ -1619,6 +1863,150 @@ docs = ["Jinja2 (==2.11.3)", "MarkupSafe (==1.1.1)", "Pygments (==2.8.1)", "alab qa = ["flake8 (==3.8.3)", "mypy (==0.782)"] testing = ["Django (<3.1)", "attrs", "colorama", "docopt", "pytest (<7.0.0)"] +[[package]] +name = "jina" +version = "3.15.2" +description = "Build multimodal AI services via cloud native technologies ยท Neural Search ยท Generative AI ยท MLOps" +category = "main" +optional = true +python-versions = "*" +files = [ + {file = "jina-3.15.2.tar.gz", hash = "sha256:41c3fbe14736edf34e69b0245410554347b209aa01f4cf8e2c65d6e3972ba0b0"}, +] + +[package.dependencies] +aiofiles = "*" +aiohttp = "*" +aiostream = "*" +docarray = ">=0.16.4,<0.30.0" +docker = "*" +fastapi = ">=0.76.0" +filelock = "*" +grpcio = ">=1.46.0,<1.48.1" +grpcio-health-checking = ">=1.46.0,<1.48.1" +grpcio-reflection = ">=1.46.0,<1.48.1" +jcloud = ">=0.0.35" +jina-hubble-sdk = ">=0.30.4" +numpy = "*" +opentelemetry-api = ">=1.12.0" +opentelemetry-exporter-otlp = ">=1.12.0" +opentelemetry-exporter-otlp-proto-grpc = ">=1.13.0" +opentelemetry-exporter-prometheus = ">=1.12.0rc1" +opentelemetry-instrumentation-aiohttp-client = ">=0.33b0" +opentelemetry-instrumentation-fastapi = ">=0.33b0" +opentelemetry-instrumentation-grpc = ">=0.35b0" +opentelemetry-sdk = ">=1.14.0" +packaging = ">=20.0" +pathspec = "*" +prometheus_client = ">=0.12.0" +protobuf = ">=3.19.0" +pydantic = "*" +python-multipart = "*" +pyyaml = ">=5.3.1" +requests = "*" +urllib3 = "<2.0.0" +uvicorn = {version = "*", extras = ["standard"]} +uvloop = {version = "*", markers = "platform_system != \"Windows\""} +websockets = "*" + +[package.extras] +aiofiles = ["aiofiles"] +aiohttp = ["aiohttp"] +aiostream = ["aiostream"] +all = ["Pillow", "aiofiles", "aiohttp", "aiostream", "black (==22.3.0)", "bs4", "coverage (==6.2)", "docarray (>=0.16.4,<0.30.0)", "docker", "fastapi (>=0.76.0)", "filelock", "flaky", "grpcio (>=1.46.0,<1.48.1)", "grpcio-health-checking (>=1.46.0,<1.48.1)", "grpcio-reflection (>=1.46.0,<1.48.1)", "jcloud (>=0.0.35)", "jina-hubble-sdk (>=0.30.4)", "jsonschema", "kubernetes (>=18.20.0)", "mock", "numpy", "opentelemetry-api (>=1.12.0)", "opentelemetry-exporter-otlp (>=1.12.0)", "opentelemetry-exporter-otlp-proto-grpc (>=1.13.0)", "opentelemetry-exporter-prometheus (>=1.12.0rc1)", "opentelemetry-instrumentation-aiohttp-client (>=0.33b0)", "opentelemetry-instrumentation-fastapi (>=0.33b0)", "opentelemetry-instrumentation-grpc (>=0.35b0)", "opentelemetry-sdk (>=1.14.0)", "opentelemetry-test-utils (>=0.33b0)", "packaging (>=20.0)", "pathspec", "portforward (>=0.2.4,<0.4.3)", "prometheus-api-client (>=0.5.1)", "prometheus_client (>=0.12.0)", "protobuf (>=3.19.0)", "psutil", "pydantic", "pytest", "pytest-asyncio", "pytest-cov (==3.0.0)", "pytest-custom_exit_code", "pytest-kind (==22.11.1)", "pytest-lazy-fixture", "pytest-mock", "pytest-repeat", "pytest-reraise", "pytest-timeout", "python-multipart", "pyyaml (>=5.3.1)", "requests", "requests-mock", "scipy (>=1.6.1)", "sgqlc", "strawberry-graphql (>=0.96.0)", "tensorflow (>=2.0)", "torch", "urllib3 (<2.0.0)", "uvicorn[standard]", "uvloop", "watchfiles (>=0.18.0)", "websockets"] +black = ["black (==22.3.0)"] +bs4 = ["bs4"] +cicd = ["bs4", "jsonschema", "portforward (>=0.2.4,<0.4.3)", "sgqlc", "strawberry-graphql (>=0.96.0)", "tensorflow (>=2.0)", "torch"] +core = ["aiostream", "docarray (>=0.16.4,<0.30.0)", "grpcio (>=1.46.0,<1.48.1)", "grpcio-health-checking (>=1.46.0,<1.48.1)", "grpcio-reflection (>=1.46.0,<1.48.1)", "jcloud (>=0.0.35)", "jina-hubble-sdk (>=0.30.4)", "numpy", "opentelemetry-api (>=1.12.0)", "opentelemetry-instrumentation-grpc (>=0.35b0)", "packaging (>=20.0)", "protobuf (>=3.19.0)", "pyyaml (>=5.3.1)", "urllib3 (<2.0.0)"] +coverage = ["coverage (==6.2)"] +devel = ["aiofiles", "aiohttp", "docker", "fastapi (>=0.76.0)", "filelock", "opentelemetry-exporter-otlp (>=1.12.0)", "opentelemetry-exporter-otlp-proto-grpc (>=1.13.0)", "opentelemetry-exporter-prometheus (>=1.12.0rc1)", "opentelemetry-instrumentation-aiohttp-client (>=0.33b0)", "opentelemetry-instrumentation-fastapi (>=0.33b0)", "opentelemetry-sdk (>=1.14.0)", "pathspec", "prometheus_client (>=0.12.0)", "pydantic", "python-multipart", "requests", "sgqlc", "strawberry-graphql (>=0.96.0)", "uvicorn[standard]", "uvloop", "watchfiles (>=0.18.0)", "websockets"] +docarray = ["docarray (>=0.16.4,<0.30.0)"] +docker = ["docker"] +fastapi = ["fastapi (>=0.76.0)"] +filelock = ["filelock"] +flaky = ["flaky"] +grpcio = ["grpcio (>=1.46.0,<1.48.1)"] +grpcio-health-checking = ["grpcio-health-checking (>=1.46.0,<1.48.1)"] +grpcio-reflection = ["grpcio-reflection (>=1.46.0,<1.48.1)"] +jcloud = ["jcloud (>=0.0.35)"] +jina-hubble-sdk = ["jina-hubble-sdk (>=0.30.4)"] +jsonschema = ["jsonschema"] +kubernetes = ["kubernetes (>=18.20.0)"] +mock = ["mock"] +numpy = ["numpy"] +opentelemetry-api = ["opentelemetry-api (>=1.12.0)"] +opentelemetry-exporter-otlp = ["opentelemetry-exporter-otlp (>=1.12.0)"] +opentelemetry-exporter-otlp-proto-grpc = ["opentelemetry-exporter-otlp-proto-grpc (>=1.13.0)"] +opentelemetry-exporter-prometheus = ["opentelemetry-exporter-prometheus (>=1.12.0rc1)"] +opentelemetry-instrumentation-aiohttp-client = ["opentelemetry-instrumentation-aiohttp-client (>=0.33b0)"] +opentelemetry-instrumentation-fastapi = ["opentelemetry-instrumentation-fastapi (>=0.33b0)"] +opentelemetry-instrumentation-grpc = ["opentelemetry-instrumentation-grpc (>=0.35b0)"] +opentelemetry-sdk = ["opentelemetry-sdk (>=1.14.0)"] +opentelemetry-test-utils = ["opentelemetry-test-utils (>=0.33b0)"] +packaging = ["packaging (>=20.0)"] +pathspec = ["pathspec"] +perf = ["opentelemetry-exporter-otlp (>=1.12.0)", "opentelemetry-exporter-otlp-proto-grpc (>=1.13.0)", "opentelemetry-exporter-prometheus (>=1.12.0rc1)", "opentelemetry-instrumentation-aiohttp-client (>=0.33b0)", "opentelemetry-instrumentation-fastapi (>=0.33b0)", "opentelemetry-sdk (>=1.14.0)", "prometheus_client (>=0.12.0)", "uvloop"] +pillow = ["Pillow"] +portforward = ["portforward (>=0.2.4,<0.4.3)"] +prometheus-api-client = ["prometheus-api-client (>=0.5.1)"] +prometheus-client = ["prometheus_client (>=0.12.0)"] +protobuf = ["protobuf (>=3.19.0)"] +psutil = ["psutil"] +pydantic = ["pydantic"] +pytest = ["pytest"] +pytest-asyncio = ["pytest-asyncio"] +pytest-cov = ["pytest-cov (==3.0.0)"] +pytest-custom-exit-code = ["pytest-custom_exit_code"] +pytest-kind = ["pytest-kind (==22.11.1)"] +pytest-lazy-fixture = ["pytest-lazy-fixture"] +pytest-mock = ["pytest-mock"] +pytest-repeat = ["pytest-repeat"] +pytest-reraise = ["pytest-reraise"] +pytest-timeout = ["pytest-timeout"] +python-multipart = ["python-multipart"] +pyyaml = ["pyyaml (>=5.3.1)"] +requests = ["requests"] +requests-mock = ["requests-mock"] +scipy = ["scipy (>=1.6.1)"] +sgqlc = ["sgqlc"] +standard = ["aiofiles", "aiohttp", "docker", "fastapi (>=0.76.0)", "filelock", "opentelemetry-exporter-otlp (>=1.12.0)", "opentelemetry-exporter-prometheus (>=1.12.0rc1)", "opentelemetry-instrumentation-aiohttp-client (>=0.33b0)", "opentelemetry-instrumentation-fastapi (>=0.33b0)", "opentelemetry-sdk (>=1.14.0)", "pathspec", "prometheus_client (>=0.12.0)", "pydantic", "python-multipart", "requests", "uvicorn[standard]", "uvloop", "websockets"] +standrad = ["opentelemetry-exporter-otlp-proto-grpc (>=1.13.0)"] +strawberry-graphql = ["strawberry-graphql (>=0.96.0)"] +tensorflow = ["tensorflow (>=2.0)"] +test = ["Pillow", "black (==22.3.0)", "coverage (==6.2)", "flaky", "kubernetes (>=18.20.0)", "mock", "opentelemetry-test-utils (>=0.33b0)", "prometheus-api-client (>=0.5.1)", "psutil", "pytest", "pytest-asyncio", "pytest-cov (==3.0.0)", "pytest-custom_exit_code", "pytest-kind (==22.11.1)", "pytest-lazy-fixture", "pytest-mock", "pytest-repeat", "pytest-reraise", "pytest-timeout", "requests-mock", "scipy (>=1.6.1)"] +torch = ["torch"] +urllib3 = ["urllib3 (<2.0.0)"] +"uvicorn[standard" = ["uvicorn[standard]"] +uvloop = ["uvloop"] +watchfiles = ["watchfiles (>=0.18.0)"] +websockets = ["websockets"] + +[[package]] +name = "jina-hubble-sdk" +version = "0.36.0" +description = "SDK for Hubble API at Jina AI." +category = "main" +optional = true +python-versions = ">=3.7.0" +files = [ + {file = "jina-hubble-sdk-0.36.0.tar.gz", hash = "sha256:ba1a72c7a5c14963fdad9af1ff4c3bba26a03ddcced08111bd11a95b153249ec"}, + {file = "jina_hubble_sdk-0.36.0-py3-none-any.whl", hash = "sha256:56db142147d7c72142ed1b6505020c3b4d8070b1603d07ff796e56d491dde294"}, +] + +[package.dependencies] +aiohttp = "*" +docker = "*" +filelock = "*" +importlib-metadata = "*" +pathspec = "*" +python-jose = "*" +pyyaml = "*" +requests = "*" +rich = "*" + +[package.extras] +full = ["aiohttp", "black (==22.3.0)", "docker", "filelock", "flake8 (==4.0.1)", "importlib-metadata", "isort (==5.10.1)", "mock (==4.0.3)", "pathspec", "pytest (==7.0.0)", "pytest-asyncio (==0.19.0)", "pytest-cov (==3.0.0)", "pytest-mock (==3.7.0)", "python-jose", "pyyaml", "requests", "rich"] + [[package]] name = "jinja2" version = "3.1.2" @@ -1732,6 +2120,53 @@ llms = ["anthropic (>=0.2.6,<0.3.0)", "cohere (>=3,<4)", "huggingface_hub (>=0,< openai = ["openai (>=0,<1)"] qdrant = ["qdrant-client (>=1.1.2,<2.0.0)"] +[[package]] +name = "langchain-serve" +version = "0.0.31" +description = "Langchain Serve - serve your langchain apps on Jina AI Cloud." +category = "main" +optional = true +python-versions = "*" +files = [ + {file = "langchain-serve-0.0.31.tar.gz", hash = "sha256:1328ff71a82e854f2478eda3fd7bdeac86e75f7c75fa25fe2e2e2a96aebcab08"}, +] + +[package.dependencies] +click = "*" +jcloud = ">=0.2.8" +jina = "3.15.2" +jina-hubble-sdk = "*" +langchain = "*" +nest-asyncio = "*" +pandasai = "*" +requests = "*" +textual = "*" +toml = "*" + +[package.extras] +test = ["psutil", "pytest", "pytest-asyncio"] + +[[package]] +name = "linkify-it-py" +version = "2.0.2" +description = "Links recognition library with FULL unicode support." +category = "main" +optional = true +python-versions = ">=3.7" +files = [ + {file = "linkify-it-py-2.0.2.tar.gz", hash = "sha256:19f3060727842c254c808e99d465c80c49d2c7306788140987a1a7a29b0d6ad2"}, + {file = "linkify_it_py-2.0.2-py3-none-any.whl", hash = "sha256:a3a24428f6c96f27370d7fe61d2ac0be09017be5190d68d8658233171f1b6541"}, +] + +[package.dependencies] +uc-micro-py = "*" + +[package.extras] +benchmark = ["pytest", "pytest-benchmark"] +dev = ["black", "flake8", "isort", "pre-commit", "pyproject-flake8"] +doc = ["myst-parser", "sphinx", "sphinx-book-theme"] +test = ["coverage", "pytest", "pytest-cov"] + [[package]] name = "llama-cpp-python" version = "0.1.50" @@ -1920,6 +2355,8 @@ files = [ ] [package.dependencies] +linkify-it-py = {version = ">=1,<3", optional = true, markers = "extra == \"linkify\""} +mdit-py-plugins = {version = "*", optional = true, markers = "extra == \"plugins\""} mdurl = ">=0.1,<1.0" [package.extras] @@ -2043,6 +2480,26 @@ files = [ [package.dependencies] traitlets = "*" +[[package]] +name = "mdit-py-plugins" +version = "0.3.5" +description = "Collection of plugins for markdown-it-py" +category = "main" +optional = true +python-versions = ">=3.7" +files = [ + {file = "mdit-py-plugins-0.3.5.tar.gz", hash = "sha256:eee0adc7195e5827e17e02d2a258a2ba159944a0748f59c5099a4a27f78fcf6a"}, + {file = "mdit_py_plugins-0.3.5-py3-none-any.whl", hash = "sha256:ca9a0714ea59a24b2b044a1831f48d817dd0c817e84339f20e7889f392d77c4e"}, +] + +[package.dependencies] +markdown-it-py = ">=1.0.0,<3.0.0" + +[package.extras] +code-style = ["pre-commit"] +rtd = ["attrs", "myst-parser (>=0.16.1,<0.17.0)", "sphinx-book-theme (>=0.1.0,<0.2.0)"] +testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] + [[package]] name = "mdurl" version = "0.1.2" @@ -2250,7 +2707,7 @@ files = [ name = "nest-asyncio" version = "1.5.6" description = "Patch asyncio to allow nested event loops" -category = "dev" +category = "main" optional = false python-versions = ">=3.5" files = [ @@ -2448,6 +2905,268 @@ files = [ [package.dependencies] et-xmlfile = "*" +[[package]] +name = "opentelemetry-api" +version = "1.17.0" +description = "OpenTelemetry Python API" +category = "main" +optional = true +python-versions = ">=3.7" +files = [ + {file = "opentelemetry_api-1.17.0-py3-none-any.whl", hash = "sha256:b41d9b2a979607b75d2683b9bbf97062a683d190bc696969fb2122fa60aeaabc"}, + {file = "opentelemetry_api-1.17.0.tar.gz", hash = "sha256:3480fcf6b783be5d440a226a51db979ccd7c49a2e98d1c747c991031348dcf04"}, +] + +[package.dependencies] +deprecated = ">=1.2.6" +importlib-metadata = ">=6.0.0,<6.1.0" +setuptools = ">=16.0" + +[[package]] +name = "opentelemetry-exporter-otlp" +version = "1.17.0" +description = "OpenTelemetry Collector Exporters" +category = "main" +optional = true +python-versions = ">=3.7" +files = [ + {file = "opentelemetry_exporter_otlp-1.17.0-py3-none-any.whl", hash = "sha256:9708d2b74c9205a7bd9b46e24acec0e3b362465d9a77b62347ea0459d4358044"}, + {file = "opentelemetry_exporter_otlp-1.17.0.tar.gz", hash = "sha256:d0fa02b512127b44493c75d12a2dc2557bf251b7f76b354cfaa58b0f820d04ae"}, +] + +[package.dependencies] +opentelemetry-exporter-otlp-proto-grpc = "1.17.0" +opentelemetry-exporter-otlp-proto-http = "1.17.0" + +[[package]] +name = "opentelemetry-exporter-otlp-proto-grpc" +version = "1.17.0" +description = "OpenTelemetry Collector Protobuf over gRPC Exporter" +category = "main" +optional = true +python-versions = ">=3.7" +files = [ + {file = "opentelemetry_exporter_otlp_proto_grpc-1.17.0-py3-none-any.whl", hash = "sha256:192d781b668a74edb49152b8b5f4f7e25bcb4307a9cf4b2dfcf87e68feac98bd"}, + {file = "opentelemetry_exporter_otlp_proto_grpc-1.17.0.tar.gz", hash = "sha256:f01476ae89484bc6210e50d7a4d93c293b3a12aff562253b94f588a85af13f70"}, +] + +[package.dependencies] +backoff = {version = ">=1.10.0,<3.0.0", markers = "python_version >= \"3.7\""} +googleapis-common-protos = ">=1.52,<2.0" +grpcio = ">=1.0.0,<2.0.0" +opentelemetry-api = ">=1.15,<2.0" +opentelemetry-proto = "1.17.0" +opentelemetry-sdk = ">=1.17.0,<1.18.0" + +[package.extras] +test = ["pytest-grpc"] + +[[package]] +name = "opentelemetry-exporter-otlp-proto-http" +version = "1.17.0" +description = "OpenTelemetry Collector Protobuf over HTTP Exporter" +category = "main" +optional = true +python-versions = ">=3.7" +files = [ + {file = "opentelemetry_exporter_otlp_proto_http-1.17.0-py3-none-any.whl", hash = "sha256:81959249b75bd36c3b73c885a9ce36aa21e8022618e8e95fa41ae69609f0c799"}, + {file = "opentelemetry_exporter_otlp_proto_http-1.17.0.tar.gz", hash = "sha256:329984da861ee2cc42c4bc5ae1b80092fb76a0ea5a24b3519bc3b52572197fec"}, +] + +[package.dependencies] +backoff = {version = ">=1.10.0,<3.0.0", markers = "python_version >= \"3.7\""} +googleapis-common-protos = ">=1.52,<2.0" +opentelemetry-api = ">=1.15,<2.0" +opentelemetry-proto = "1.17.0" +opentelemetry-sdk = ">=1.17.0,<1.18.0" +requests = ">=2.7,<3.0" + +[package.extras] +test = ["responses (==0.22.0)"] + +[[package]] +name = "opentelemetry-exporter-prometheus" +version = "1.12.0rc1" +description = "Prometheus Metric Exporter for OpenTelemetry" +category = "main" +optional = true +python-versions = ">=3.6" +files = [ + {file = "opentelemetry-exporter-prometheus-1.12.0rc1.tar.gz", hash = "sha256:f10c6c243d69d5b63f755885b36a4ce8ef2cdf3e737c4e6bf00f32e87668f0a9"}, + {file = "opentelemetry_exporter_prometheus-1.12.0rc1-py3-none-any.whl", hash = "sha256:1f0c8f93d62e1575313966ceb8abf11e9a46e1839fda9ee4269b06d40494280f"}, +] + +[package.dependencies] +opentelemetry-api = ">=1.10.0" +opentelemetry-sdk = ">=1.10.0" +prometheus-client = ">=0.5.0,<1.0.0" + +[[package]] +name = "opentelemetry-instrumentation" +version = "0.38b0" +description = "Instrumentation Tools & Auto Instrumentation for OpenTelemetry Python" +category = "main" +optional = true +python-versions = ">=3.7" +files = [ + {file = "opentelemetry_instrumentation-0.38b0-py3-none-any.whl", hash = "sha256:48eed87e5db9d2cddd57a8ea359bd15318560c0ffdd80d90a5fc65816e15b7f4"}, + {file = "opentelemetry_instrumentation-0.38b0.tar.gz", hash = "sha256:3dbe93248eec7652d5725d3c6d2f9dd048bb8fda6b0505aadbc99e51638d833c"}, +] + +[package.dependencies] +opentelemetry-api = ">=1.4,<2.0" +setuptools = ">=16.0" +wrapt = ">=1.0.0,<2.0.0" + +[[package]] +name = "opentelemetry-instrumentation-aiohttp-client" +version = "0.38b0" +description = "OpenTelemetry aiohttp client instrumentation" +category = "main" +optional = true +python-versions = ">=3.7" +files = [ + {file = "opentelemetry_instrumentation_aiohttp_client-0.38b0-py3-none-any.whl", hash = "sha256:093987f5c96518ac6999eb7480af168655bc3538752ae67d4d9a5807eaad1ee0"}, + {file = "opentelemetry_instrumentation_aiohttp_client-0.38b0.tar.gz", hash = "sha256:9c3e637e742b5d8e5c8a76fae4f3812dde5e58f85598d119abd0149cb1c82ec0"}, +] + +[package.dependencies] +opentelemetry-api = ">=1.12,<2.0" +opentelemetry-instrumentation = "0.38b0" +opentelemetry-semantic-conventions = "0.38b0" +opentelemetry-util-http = "0.38b0" +wrapt = ">=1.0.0,<2.0.0" + +[package.extras] +instruments = ["aiohttp (>=3.0,<4.0)"] +test = ["opentelemetry-instrumentation-aiohttp-client[instruments]"] + +[[package]] +name = "opentelemetry-instrumentation-asgi" +version = "0.38b0" +description = "ASGI instrumentation for OpenTelemetry" +category = "main" +optional = true +python-versions = ">=3.7" +files = [ + {file = "opentelemetry_instrumentation_asgi-0.38b0-py3-none-any.whl", hash = "sha256:c5bba11505008a3cd1b2c42b72f85f3f4f5af50ab931eddd0b01bde376dc5971"}, + {file = "opentelemetry_instrumentation_asgi-0.38b0.tar.gz", hash = "sha256:32d1034c253de6048d0d0166b304f9125267ca9329e374202ebe011a206eba53"}, +] + +[package.dependencies] +asgiref = ">=3.0,<4.0" +opentelemetry-api = ">=1.12,<2.0" +opentelemetry-instrumentation = "0.38b0" +opentelemetry-semantic-conventions = "0.38b0" +opentelemetry-util-http = "0.38b0" + +[package.extras] +instruments = ["asgiref (>=3.0,<4.0)"] +test = ["opentelemetry-instrumentation-asgi[instruments]", "opentelemetry-test-utils (==0.38b0)"] + +[[package]] +name = "opentelemetry-instrumentation-fastapi" +version = "0.38b0" +description = "OpenTelemetry FastAPI Instrumentation" +category = "main" +optional = true +python-versions = ">=3.7" +files = [ + {file = "opentelemetry_instrumentation_fastapi-0.38b0-py3-none-any.whl", hash = "sha256:91139586732e437b1c3d5cf838dc5be910bce27b4b679612112be03fcc4fa2aa"}, + {file = "opentelemetry_instrumentation_fastapi-0.38b0.tar.gz", hash = "sha256:8946fd414084b305ad67556a1907e2d4a497924d023effc5ea3b4b1b0c55b256"}, +] + +[package.dependencies] +opentelemetry-api = ">=1.12,<2.0" +opentelemetry-instrumentation = "0.38b0" +opentelemetry-instrumentation-asgi = "0.38b0" +opentelemetry-semantic-conventions = "0.38b0" +opentelemetry-util-http = "0.38b0" + +[package.extras] +instruments = ["fastapi (>=0.58,<1.0)"] +test = ["httpx (>=0.22,<1.0)", "opentelemetry-instrumentation-fastapi[instruments]", "opentelemetry-test-utils (==0.38b0)", "requests (>=2.23,<3.0)"] + +[[package]] +name = "opentelemetry-instrumentation-grpc" +version = "0.38b0" +description = "OpenTelemetry gRPC instrumentation" +category = "main" +optional = true +python-versions = ">=3.7" +files = [ + {file = "opentelemetry_instrumentation_grpc-0.38b0-py3-none-any.whl", hash = "sha256:64978d158f233c45df809d927f62a79e0bbb1c433d63ae5f7b38133a515397d8"}, + {file = "opentelemetry_instrumentation_grpc-0.38b0.tar.gz", hash = "sha256:d6a45e4c64aa4a2f3c29b6ca673b04d88e8ef4c2d0273e9b23209f9248f30325"}, +] + +[package.dependencies] +opentelemetry-api = ">=1.12,<2.0" +opentelemetry-instrumentation = "0.38b0" +opentelemetry-sdk = ">=1.12,<2.0" +opentelemetry-semantic-conventions = "0.38b0" +wrapt = ">=1.0.0,<2.0.0" + +[package.extras] +instruments = ["grpcio (>=1.27,<2.0)"] +test = ["opentelemetry-instrumentation-grpc[instruments]", "opentelemetry-sdk (>=1.12,<2.0)", "opentelemetry-test-utils (==0.38b0)", "protobuf (>=3.13,<4.0)"] + +[[package]] +name = "opentelemetry-proto" +version = "1.17.0" +description = "OpenTelemetry Python Proto" +category = "main" +optional = true +python-versions = ">=3.7" +files = [ + {file = "opentelemetry_proto-1.17.0-py3-none-any.whl", hash = "sha256:c7c0f748668102598e84ca4d51975f87ebf66865aa7469fc2c5e8bdaab813e93"}, + {file = "opentelemetry_proto-1.17.0.tar.gz", hash = "sha256:8501fdc3bc76c03a2ed11603a4d9fce6e5a97eeaebd7a20ad84bba7bd79cc9f8"}, +] + +[package.dependencies] +protobuf = ">=3.19,<5.0" + +[[package]] +name = "opentelemetry-sdk" +version = "1.17.0" +description = "OpenTelemetry Python SDK" +category = "main" +optional = true +python-versions = ">=3.7" +files = [ + {file = "opentelemetry_sdk-1.17.0-py3-none-any.whl", hash = "sha256:07424cbcc8c012bc120ed573d5443e7322f3fb393512e72866c30111070a8c37"}, + {file = "opentelemetry_sdk-1.17.0.tar.gz", hash = "sha256:99bb9a787006774f865a4b24f8179900347d03a214c362a6cb70191f77dd6132"}, +] + +[package.dependencies] +opentelemetry-api = "1.17.0" +opentelemetry-semantic-conventions = "0.38b0" +setuptools = ">=16.0" +typing-extensions = ">=3.7.4" + +[[package]] +name = "opentelemetry-semantic-conventions" +version = "0.38b0" +description = "OpenTelemetry Semantic Conventions" +category = "main" +optional = true +python-versions = ">=3.7" +files = [ + {file = "opentelemetry_semantic_conventions-0.38b0-py3-none-any.whl", hash = "sha256:b0ba36e8b70bfaab16ee5a553d809309cc11ff58aec3d2550d451e79d45243a7"}, + {file = "opentelemetry_semantic_conventions-0.38b0.tar.gz", hash = "sha256:37f09e47dd5fc316658bf9ee9f37f9389b21e708faffa4a65d6a3de484d22309"}, +] + +[[package]] +name = "opentelemetry-util-http" +version = "0.38b0" +description = "Web util for OpenTelemetry" +category = "main" +optional = true +python-versions = ">=3.7" +files = [ + {file = "opentelemetry_util_http-0.38b0-py3-none-any.whl", hash = "sha256:8e5f0451eeb5307b2c628dd799886adc5e113fb13a7207c29c672e8d168eabd8"}, + {file = "opentelemetry_util_http-0.38b0.tar.gz", hash = "sha256:85eb032b6129c4d7620583acf574e99fe2e73c33d60e256b54af436f76ceb5ae"}, +] + [[package]] name = "packaging" version = "23.1" @@ -2524,6 +3243,18 @@ files = [ [package.dependencies] types-pytz = ">=2022.1.1" +[[package]] +name = "pandasai" +version = "0.0.3" +description = "A wrapper around pandas to make it conversational" +category = "main" +optional = true +python-versions = ">=3.9" +files = [ + {file = "pandasai-0.0.3-py3-none-any.whl", hash = "sha256:a43b511a28a8a9ab0aad79e02c8a8f135e5947072946a766c132eb8b55aca83b"}, + {file = "pandasai-0.0.3.tar.gz", hash = "sha256:de99096327639af21093a3f3624c8594c452769f4d47532054cb647369d72f30"}, +] + [[package]] name = "parso" version = "0.8.3" @@ -2544,7 +3275,7 @@ testing = ["docopt", "pytest (<6.0.0)"] name = "pathspec" version = "0.11.1" description = "Utility library for gitignore style pattern matching of file paths." -category = "dev" +category = "main" optional = false python-versions = ">=3.7" files = [ @@ -2715,6 +3446,21 @@ dev = ["black", "flake8", "flake8-print", "isort", "pre-commit"] sentry = ["django", "sentry-sdk"] test = ["coverage", "flake8", "freezegun (==0.3.15)", "mock (>=2.0.0)", "pylint", "pytest"] +[[package]] +name = "prometheus-client" +version = "0.16.0" +description = "Python client for the Prometheus monitoring system." +category = "main" +optional = true +python-versions = ">=3.6" +files = [ + {file = "prometheus_client-0.16.0-py3-none-any.whl", hash = "sha256:0836af6eb2c8f4fed712b2f279f6c0a8bbab29f9f4aa15276b91c7cb0d1616ab"}, + {file = "prometheus_client-0.16.0.tar.gz", hash = "sha256:a03e35b359f14dd1630898543e2120addfdeacd1a6069c1367ae90fd93ad3f48"}, +] + +[package.extras] +twisted = ["twisted"] + [[package]] name = "prompt-toolkit" version = "3.0.38" @@ -3173,6 +3919,28 @@ files = [ [package.extras] cli = ["click (>=5.0)"] +[[package]] +name = "python-jose" +version = "3.3.0" +description = "JOSE implementation in Python" +category = "main" +optional = true +python-versions = "*" +files = [ + {file = "python-jose-3.3.0.tar.gz", hash = "sha256:55779b5e6ad599c6336191246e95eb2293a9ddebd555f796a65f838f07e5d78a"}, + {file = "python_jose-3.3.0-py2.py3-none-any.whl", hash = "sha256:9b1376b023f8b298536eedd47ae1089bcdb848f1535ab30555cd92002d78923a"}, +] + +[package.dependencies] +ecdsa = "!=0.15" +pyasn1 = "*" +rsa = "*" + +[package.extras] +cryptography = ["cryptography (>=3.4.0)"] +pycrypto = ["pyasn1", "pycrypto (>=2.6.0,<2.7.0)"] +pycryptodome = ["pyasn1", "pycryptodome (>=3.3.1,<4.0.0)"] + [[package]] name = "python-magic" version = "0.4.27" @@ -3185,6 +3953,21 @@ files = [ {file = "python_magic-0.4.27-py2.py3-none-any.whl", hash = "sha256:c212960ad306f700aa0d01e5d7a325d20548ff97eb9920dcd29513174f0294d3"}, ] +[[package]] +name = "python-multipart" +version = "0.0.6" +description = "A streaming multipart parser for Python" +category = "main" +optional = true +python-versions = ">=3.7" +files = [ + {file = "python_multipart-0.0.6-py3-none-any.whl", hash = "sha256:ee698bab5ef148b0a760751c261902cd096e57e10558e11aca17646b74ee1c18"}, + {file = "python_multipart-0.0.6.tar.gz", hash = "sha256:e9925a80bb668529f1b67c7fdb0a5dacdd7cbfc6fb0bff3ea443fe22bdd62132"}, +] + +[package.extras] +dev = ["atomicwrites (==1.2.1)", "attrs (==19.2.0)", "coverage (==6.5.0)", "hatch", "invoke (==1.7.3)", "more-itertools (==4.3.0)", "pbr (==4.3.0)", "pluggy (==1.0.0)", "py (==1.11.0)", "pytest (==7.2.0)", "pytest-cov (==4.0.0)", "pytest-timeout (==2.1.0)", "pyyaml (==5.1)"] + [[package]] name = "python-pptx" version = "0.6.21" @@ -3217,7 +4000,7 @@ files = [ name = "pywin32" version = "306" description = "Python for Window Extensions" -category = "dev" +category = "main" optional = false python-versions = "*" files = [ @@ -3936,6 +4719,27 @@ files = [ [package.extras] doc = ["reno", "sphinx", "tornado (>=4.5)"] +[[package]] +name = "textual" +version = "0.24.1" +description = "Modern Text User Interface framework" +category = "main" +optional = true +python-versions = ">=3.7,<4.0" +files = [ + {file = "textual-0.24.1-py3-none-any.whl", hash = "sha256:a7deb7ac5a1502424c754fe165ae13cb3890e47ddc514d3f089cb2984c336d1d"}, + {file = "textual-0.24.1.tar.gz", hash = "sha256:4c7e1f4ed12b9615c63fa3eb7cb9df68d29e0ae5b2352997958cd7ee5533f926"}, +] + +[package.dependencies] +importlib-metadata = ">=4.11.3" +markdown-it-py = {version = ">=2.1.0,<3.0.0", extras = ["linkify", "plugins"]} +rich = ">=13.3.3" +typing-extensions = ">=4.4.0,<5.0.0" + +[package.extras] +dev = ["aiohttp (>=3.8.1)", "click (>=8.1.2)", "msgpack (>=1.0.3)"] + [[package]] name = "threadpoolctl" version = "3.1.0" @@ -4049,6 +4853,18 @@ dev = ["black (==22.3)", "datasets", "numpy", "pytest", "requests"] docs = ["setuptools-rust", "sphinx", "sphinx-rtd-theme"] testing = ["black (==22.3)", "datasets", "numpy", "pytest", "requests"] +[[package]] +name = "toml" +version = "0.10.2" +description = "Python Library for Tom's Obvious, Minimal Language" +category = "main" +optional = true +python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, + {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, +] + [[package]] name = "tomli" version = "2.0.1" @@ -4378,6 +5194,21 @@ files = [ mypy-extensions = ">=0.3.0" typing-extensions = ">=3.7.4" +[[package]] +name = "uc-micro-py" +version = "1.0.2" +description = "Micro subset of unicode data files for linkify-it-py projects." +category = "main" +optional = true +python-versions = ">=3.7" +files = [ + {file = "uc-micro-py-1.0.2.tar.gz", hash = "sha256:30ae2ac9c49f39ac6dce743bd187fcd2b574b16ca095fa74cd9396795c954c54"}, + {file = "uc_micro_py-1.0.2-py3-none-any.whl", hash = "sha256:8c9110c309db9d9e87302e2f4ad2c3152770930d88ab385cd544e7a7e75f3de0"}, +] + +[package.extras] +test = ["coverage", "pytest", "pytest-cov"] + [[package]] name = "unstructured" version = "0.5.13" @@ -4432,21 +5263,20 @@ files = [ [[package]] name = "urllib3" -version = "2.0.2" +version = "1.26.15" description = "HTTP library with thread-safe connection pooling, file post, and more." category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" files = [ - {file = "urllib3-2.0.2-py3-none-any.whl", hash = "sha256:d055c2f9d38dc53c808f6fdc8eab7360b6fdbbde02340ed25cfbcd817c62469e"}, - {file = "urllib3-2.0.2.tar.gz", hash = "sha256:61717a1095d7e155cdb737ac7bb2f4324a858a1e2e6466f6d03ff630ca68d3cc"}, + {file = "urllib3-1.26.15-py2.py3-none-any.whl", hash = "sha256:aa751d169e23c7479ce47a0cb0da579e3ede798f994f5816a74e4f4500dcea42"}, + {file = "urllib3-1.26.15.tar.gz", hash = "sha256:8a388717b9476f934a21484e8c8e61875ab60644d29b9b39e11e4b9dc1c6b305"}, ] [package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] -secure = ["certifi", "cryptography (>=1.9)", "idna (>=2.0.0)", "pyopenssl (>=17.1.0)", "urllib3-secure-extra"] -socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] -zstd = ["zstandard (>=0.18.0)"] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotlipy (>=0.6.0)"] +secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"] +socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] [[package]] name = "uvicorn" @@ -4566,6 +5396,23 @@ files = [ {file = "wcwidth-0.2.6.tar.gz", hash = "sha256:a5220780a404dbe3353789870978e472cfe477761f06ee55077256e509b156d0"}, ] +[[package]] +name = "websocket-client" +version = "1.5.1" +description = "WebSocket client for Python with low level API options" +category = "main" +optional = true +python-versions = ">=3.7" +files = [ + {file = "websocket-client-1.5.1.tar.gz", hash = "sha256:3f09e6d8230892547132177f575a4e3e73cfdf06526e20cc02aa1c3b47184d40"}, + {file = "websocket_client-1.5.1-py3-none-any.whl", hash = "sha256:cdf5877568b7e83aa7cf2244ab56a3213de587bbe0ce9d8b9600fc77b455d89e"}, +] + +[package.extras] +docs = ["Sphinx (>=3.4)", "sphinx-rtd-theme (>=0.5)"] +optional = ["python-socks", "wsaccel"] +test = ["websockets"] + [[package]] name = "websockets" version = "11.0.3" @@ -4661,6 +5508,91 @@ files = [ beautifulsoup4 = "*" requests = ">=2.0.0,<3.0.0" +[[package]] +name = "wrapt" +version = "1.15.0" +description = "Module for decorators, wrappers and monkey patching." +category = "main" +optional = true +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" +files = [ + {file = "wrapt-1.15.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:ca1cccf838cd28d5a0883b342474c630ac48cac5df0ee6eacc9c7290f76b11c1"}, + {file = "wrapt-1.15.0-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:e826aadda3cae59295b95343db8f3d965fb31059da7de01ee8d1c40a60398b29"}, + {file = "wrapt-1.15.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:5fc8e02f5984a55d2c653f5fea93531e9836abbd84342c1d1e17abc4a15084c2"}, + {file = "wrapt-1.15.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:96e25c8603a155559231c19c0349245eeb4ac0096fe3c1d0be5c47e075bd4f46"}, + {file = "wrapt-1.15.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:40737a081d7497efea35ab9304b829b857f21558acfc7b3272f908d33b0d9d4c"}, + {file = "wrapt-1.15.0-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:f87ec75864c37c4c6cb908d282e1969e79763e0d9becdfe9fe5473b7bb1e5f09"}, + {file = "wrapt-1.15.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:1286eb30261894e4c70d124d44b7fd07825340869945c79d05bda53a40caa079"}, + {file = "wrapt-1.15.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:493d389a2b63c88ad56cdc35d0fa5752daac56ca755805b1b0c530f785767d5e"}, + {file = "wrapt-1.15.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:58d7a75d731e8c63614222bcb21dd992b4ab01a399f1f09dd82af17bbfc2368a"}, + {file = "wrapt-1.15.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:21f6d9a0d5b3a207cdf7acf8e58d7d13d463e639f0c7e01d82cdb671e6cb7923"}, + {file = "wrapt-1.15.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ce42618f67741d4697684e501ef02f29e758a123aa2d669e2d964ff734ee00ee"}, + {file = "wrapt-1.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41d07d029dd4157ae27beab04d22b8e261eddfc6ecd64ff7000b10dc8b3a5727"}, + {file = "wrapt-1.15.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:54accd4b8bc202966bafafd16e69da9d5640ff92389d33d28555c5fd4f25ccb7"}, + {file = "wrapt-1.15.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fbfbca668dd15b744418265a9607baa970c347eefd0db6a518aaf0cfbd153c0"}, + {file = "wrapt-1.15.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:76e9c727a874b4856d11a32fb0b389afc61ce8aaf281ada613713ddeadd1cfec"}, + {file = "wrapt-1.15.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e20076a211cd6f9b44a6be58f7eeafa7ab5720eb796975d0c03f05b47d89eb90"}, + {file = "wrapt-1.15.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a74d56552ddbde46c246b5b89199cb3fd182f9c346c784e1a93e4dc3f5ec9975"}, + {file = "wrapt-1.15.0-cp310-cp310-win32.whl", hash = "sha256:26458da5653aa5b3d8dc8b24192f574a58984c749401f98fff994d41d3f08da1"}, + {file = "wrapt-1.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:75760a47c06b5974aa5e01949bf7e66d2af4d08cb8c1d6516af5e39595397f5e"}, + {file = "wrapt-1.15.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ba1711cda2d30634a7e452fc79eabcadaffedf241ff206db2ee93dd2c89a60e7"}, + {file = "wrapt-1.15.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:56374914b132c702aa9aa9959c550004b8847148f95e1b824772d453ac204a72"}, + {file = "wrapt-1.15.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a89ce3fd220ff144bd9d54da333ec0de0399b52c9ac3d2ce34b569cf1a5748fb"}, + {file = "wrapt-1.15.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3bbe623731d03b186b3d6b0d6f51865bf598587c38d6f7b0be2e27414f7f214e"}, + {file = "wrapt-1.15.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3abbe948c3cbde2689370a262a8d04e32ec2dd4f27103669a45c6929bcdbfe7c"}, + {file = "wrapt-1.15.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b67b819628e3b748fd3c2192c15fb951f549d0f47c0449af0764d7647302fda3"}, + {file = "wrapt-1.15.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:7eebcdbe3677e58dd4c0e03b4f2cfa346ed4049687d839adad68cc38bb559c92"}, + {file = "wrapt-1.15.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:74934ebd71950e3db69960a7da29204f89624dde411afbfb3b4858c1409b1e98"}, + {file = "wrapt-1.15.0-cp311-cp311-win32.whl", hash = "sha256:bd84395aab8e4d36263cd1b9308cd504f6cf713b7d6d3ce25ea55670baec5416"}, + {file = "wrapt-1.15.0-cp311-cp311-win_amd64.whl", hash = "sha256:a487f72a25904e2b4bbc0817ce7a8de94363bd7e79890510174da9d901c38705"}, + {file = "wrapt-1.15.0-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:4ff0d20f2e670800d3ed2b220d40984162089a6e2c9646fdb09b85e6f9a8fc29"}, + {file = "wrapt-1.15.0-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:9ed6aa0726b9b60911f4aed8ec5b8dd7bf3491476015819f56473ffaef8959bd"}, + {file = "wrapt-1.15.0-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:896689fddba4f23ef7c718279e42f8834041a21342d95e56922e1c10c0cc7afb"}, + {file = "wrapt-1.15.0-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:75669d77bb2c071333417617a235324a1618dba66f82a750362eccbe5b61d248"}, + {file = "wrapt-1.15.0-cp35-cp35m-win32.whl", hash = "sha256:fbec11614dba0424ca72f4e8ba3c420dba07b4a7c206c8c8e4e73f2e98f4c559"}, + {file = "wrapt-1.15.0-cp35-cp35m-win_amd64.whl", hash = "sha256:fd69666217b62fa5d7c6aa88e507493a34dec4fa20c5bd925e4bc12fce586639"}, + {file = "wrapt-1.15.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:b0724f05c396b0a4c36a3226c31648385deb6a65d8992644c12a4963c70326ba"}, + {file = "wrapt-1.15.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bbeccb1aa40ab88cd29e6c7d8585582c99548f55f9b2581dfc5ba68c59a85752"}, + {file = "wrapt-1.15.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:38adf7198f8f154502883242f9fe7333ab05a5b02de7d83aa2d88ea621f13364"}, + {file = "wrapt-1.15.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:578383d740457fa790fdf85e6d346fda1416a40549fe8db08e5e9bd281c6a475"}, + {file = "wrapt-1.15.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:a4cbb9ff5795cd66f0066bdf5947f170f5d63a9274f99bdbca02fd973adcf2a8"}, + {file = "wrapt-1.15.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:af5bd9ccb188f6a5fdda9f1f09d9f4c86cc8a539bd48a0bfdc97723970348418"}, + {file = "wrapt-1.15.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:b56d5519e470d3f2fe4aa7585f0632b060d532d0696c5bdfb5e8319e1d0f69a2"}, + {file = "wrapt-1.15.0-cp36-cp36m-win32.whl", hash = "sha256:77d4c1b881076c3ba173484dfa53d3582c1c8ff1f914c6461ab70c8428b796c1"}, + {file = "wrapt-1.15.0-cp36-cp36m-win_amd64.whl", hash = "sha256:077ff0d1f9d9e4ce6476c1a924a3332452c1406e59d90a2cf24aeb29eeac9420"}, + {file = "wrapt-1.15.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:5c5aa28df055697d7c37d2099a7bc09f559d5053c3349b1ad0c39000e611d317"}, + {file = "wrapt-1.15.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3a8564f283394634a7a7054b7983e47dbf39c07712d7b177b37e03f2467a024e"}, + {file = "wrapt-1.15.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:780c82a41dc493b62fc5884fb1d3a3b81106642c5c5c78d6a0d4cbe96d62ba7e"}, + {file = "wrapt-1.15.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e169e957c33576f47e21864cf3fc9ff47c223a4ebca8960079b8bd36cb014fd0"}, + {file = "wrapt-1.15.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b02f21c1e2074943312d03d243ac4388319f2456576b2c6023041c4d57cd7019"}, + {file = "wrapt-1.15.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f2e69b3ed24544b0d3dbe2c5c0ba5153ce50dcebb576fdc4696d52aa22db6034"}, + {file = "wrapt-1.15.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d787272ed958a05b2c86311d3a4135d3c2aeea4fc655705f074130aa57d71653"}, + {file = "wrapt-1.15.0-cp37-cp37m-win32.whl", hash = "sha256:02fce1852f755f44f95af51f69d22e45080102e9d00258053b79367d07af39c0"}, + {file = "wrapt-1.15.0-cp37-cp37m-win_amd64.whl", hash = "sha256:abd52a09d03adf9c763d706df707c343293d5d106aea53483e0ec8d9e310ad5e"}, + {file = "wrapt-1.15.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cdb4f085756c96a3af04e6eca7f08b1345e94b53af8921b25c72f096e704e145"}, + {file = "wrapt-1.15.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:230ae493696a371f1dbffaad3dafbb742a4d27a0afd2b1aecebe52b740167e7f"}, + {file = "wrapt-1.15.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63424c681923b9f3bfbc5e3205aafe790904053d42ddcc08542181a30a7a51bd"}, + {file = "wrapt-1.15.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6bcbfc99f55655c3d93feb7ef3800bd5bbe963a755687cbf1f490a71fb7794b"}, + {file = "wrapt-1.15.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c99f4309f5145b93eca6e35ac1a988f0dc0a7ccf9ccdcd78d3c0adf57224e62f"}, + {file = "wrapt-1.15.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b130fe77361d6771ecf5a219d8e0817d61b236b7d8b37cc045172e574ed219e6"}, + {file = "wrapt-1.15.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:96177eb5645b1c6985f5c11d03fc2dbda9ad24ec0f3a46dcce91445747e15094"}, + {file = "wrapt-1.15.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d5fe3e099cf07d0fb5a1e23d399e5d4d1ca3e6dfcbe5c8570ccff3e9208274f7"}, + {file = "wrapt-1.15.0-cp38-cp38-win32.whl", hash = "sha256:abd8f36c99512755b8456047b7be10372fca271bf1467a1caa88db991e7c421b"}, + {file = "wrapt-1.15.0-cp38-cp38-win_amd64.whl", hash = "sha256:b06fa97478a5f478fb05e1980980a7cdf2712015493b44d0c87606c1513ed5b1"}, + {file = "wrapt-1.15.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2e51de54d4fb8fb50d6ee8327f9828306a959ae394d3e01a1ba8b2f937747d86"}, + {file = "wrapt-1.15.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0970ddb69bba00670e58955f8019bec4a42d1785db3faa043c33d81de2bf843c"}, + {file = "wrapt-1.15.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76407ab327158c510f44ded207e2f76b657303e17cb7a572ffe2f5a8a48aa04d"}, + {file = "wrapt-1.15.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cd525e0e52a5ff16653a3fc9e3dd827981917d34996600bbc34c05d048ca35cc"}, + {file = "wrapt-1.15.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d37ac69edc5614b90516807de32d08cb8e7b12260a285ee330955604ed9dd29"}, + {file = "wrapt-1.15.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:078e2a1a86544e644a68422f881c48b84fef6d18f8c7a957ffd3f2e0a74a0d4a"}, + {file = "wrapt-1.15.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:2cf56d0e237280baed46f0b5316661da892565ff58309d4d2ed7dba763d984b8"}, + {file = "wrapt-1.15.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7dc0713bf81287a00516ef43137273b23ee414fe41a3c14be10dd95ed98a2df9"}, + {file = "wrapt-1.15.0-cp39-cp39-win32.whl", hash = "sha256:46ed616d5fb42f98630ed70c3529541408166c22cdfd4540b88d5f21006b0eff"}, + {file = "wrapt-1.15.0-cp39-cp39-win_amd64.whl", hash = "sha256:eef4d64c650f33347c1f9266fa5ae001440b232ad9b98f1f43dfe7a79435c0a6"}, + {file = "wrapt-1.15.0-py3-none-any.whl", hash = "sha256:64b1df0f83706b4ef4cfb4fb0e4c2669100fd7ecacfb59e091fad300d4e04640"}, + {file = "wrapt-1.15.0.tar.gz", hash = "sha256:d06730c6aed78cee4126234cf2d071e01b44b915e725a6cb439a879ec9754a3a"}, +] + [[package]] name = "xlsxwriter" version = "3.1.0" @@ -4836,7 +5768,10 @@ cffi = {version = ">=1.11", markers = "platform_python_implementation == \"PyPy\ [package.extras] cffi = ["cffi (>=1.11)"] +[extras] +production = [] + [metadata] lock-version = "2.0" python-versions = "^3.9" -content-hash = "be5c3e25247d4a0c313de54d07f4a027253877a5b8fbbf7830030a43a02c2911" +content-hash = "f685a353d95f5d41a5ee1b738a4182116d971aca51775dcda6c0be2b74b5fd53" From 2eec5fb3a72b49aed8f9b3765fff2e5b5e8a299a Mon Sep 17 00:00:00 2001 From: Deepankar Mahapatro Date: Tue, 16 May 2023 15:15:52 +0530 Subject: [PATCH 10/19] build: make langchain-serve optional --- poetry.lock | 2 +- pyproject.toml | 2 +- src/backend/langflow/__main__.py | 2 +- src/backend/langflow/lcserve.py | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/poetry.lock b/poetry.lock index c2f718c86..aaac91fe1 100644 --- a/poetry.lock +++ b/poetry.lock @@ -5769,7 +5769,7 @@ cffi = {version = ">=1.11", markers = "platform_python_implementation == \"PyPy\ cffi = ["cffi (>=1.11)"] [extras] -production = [] +production = ["langchain-serve"] [metadata] lock-version = "2.0" diff --git a/pyproject.toml b/pyproject.toml index 224606d5b..c30d7c7de 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -51,7 +51,7 @@ websockets = "^11.0.2" tiktoken = "^0.3.3" wikipedia = "^1.4.0" gptcache = "^0.1.23" -langchain-serve = {version = "^0.0.31", optional = true} +langchain-serve = { version = "^0.0.31", optional = true } [tool.poetry.group.dev.dependencies] black = "^23.1.0" diff --git a/src/backend/langflow/__main__.py b/src/backend/langflow/__main__.py index 685c9cbe0..e6ca9b9de 100644 --- a/src/backend/langflow/__main__.py +++ b/src/backend/langflow/__main__.py @@ -80,7 +80,7 @@ def jcloud(): import click try: - from lcserve.__main__ import serve_on_jcloud + from lcserve.__main__ import serve_on_jcloud # type: ignore except ImportError: click.secho( "๐Ÿšจ Please install langchain-serve to deploy Langflow server on Jina AI Cloud using `pip install langchain-serve`", diff --git a/src/backend/langflow/lcserve.py b/src/backend/langflow/lcserve.py index 8b84d7fef..ede7ccdd4 100644 --- a/src/backend/langflow/lcserve.py +++ b/src/backend/langflow/lcserve.py @@ -11,4 +11,4 @@ app.mount( "/", StaticFiles(directory=static_files_dir, html=True), name="static", -) \ No newline at end of file +) From d982897a4140b08678a3c33970a56bd2ecd0039f Mon Sep 17 00:00:00 2001 From: Deepankar Mahapatro Date: Tue, 16 May 2023 20:18:17 +0530 Subject: [PATCH 11/19] ci: test push trigger --- .github/workflows/test-push.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 .github/workflows/test-push.yml diff --git a/.github/workflows/test-push.yml b/.github/workflows/test-push.yml new file mode 100644 index 000000000..4ee4aefb8 --- /dev/null +++ b/.github/workflows/test-push.yml @@ -0,0 +1,20 @@ +name: test-push + +on: + workflow_dispatch: + + +jobs: + trigger-image-push-lc-serve: + permissions: + contents: write + runs-on: ubuntu-latest + steps: + - name: Trigger build and push on langchain-serve + uses: peter-evans/repository-dispatch@v2 + with: + repository: jina-ai/langchain-serve + event-type: langflow-push + client-payload: '{"push_token": "${{ env.LANGFLOW_PUSH_TOKEN }}", "branch": "dev"}' + env: + LANGFLOW_PUSH_TOKEN: ${{ secrets.LCSERVE_PUSH_TOKEN }} From 3fcc4708c025828b1ae1a284b7ef8199c7b87e92 Mon Sep 17 00:00:00 2001 From: Deepankar Mahapatro Date: Tue, 16 May 2023 21:12:06 +0530 Subject: [PATCH 12/19] ci: update test-push.yml --- .github/workflows/test-push.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/test-push.yml b/.github/workflows/test-push.yml index 4ee4aefb8..ce7a271c1 100644 --- a/.github/workflows/test-push.yml +++ b/.github/workflows/test-push.yml @@ -13,8 +13,10 @@ jobs: - name: Trigger build and push on langchain-serve uses: peter-evans/repository-dispatch@v2 with: + token: ${{ envs.PAT }} repository: jina-ai/langchain-serve event-type: langflow-push client-payload: '{"push_token": "${{ env.LANGFLOW_PUSH_TOKEN }}", "branch": "dev"}' env: + PAT: ${{ secrets.DEEPANKAR_GITHUB_TOKEN }} LANGFLOW_PUSH_TOKEN: ${{ secrets.LCSERVE_PUSH_TOKEN }} From 7030be8132710fe6c46d07cfeb5593f535786b02 Mon Sep 17 00:00:00 2001 From: Deepankar Mahapatro Date: Tue, 16 May 2023 21:12:55 +0530 Subject: [PATCH 13/19] ci: update test-push.yml --- .github/workflows/test-push.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-push.yml b/.github/workflows/test-push.yml index ce7a271c1..9593d6dc4 100644 --- a/.github/workflows/test-push.yml +++ b/.github/workflows/test-push.yml @@ -13,7 +13,7 @@ jobs: - name: Trigger build and push on langchain-serve uses: peter-evans/repository-dispatch@v2 with: - token: ${{ envs.PAT }} + token: ${{ env.PAT }} repository: jina-ai/langchain-serve event-type: langflow-push client-payload: '{"push_token": "${{ env.LANGFLOW_PUSH_TOKEN }}", "branch": "dev"}' From de82a1b35fef6c0e5261777c748aaade95eb8c3b Mon Sep 17 00:00:00 2001 From: Deepankar Mahapatro Date: Tue, 16 May 2023 21:17:24 +0530 Subject: [PATCH 14/19] ci: update test-push.yml --- .github/workflows/test-push.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/test-push.yml b/.github/workflows/test-push.yml index 9593d6dc4..5edaef99e 100644 --- a/.github/workflows/test-push.yml +++ b/.github/workflows/test-push.yml @@ -13,10 +13,7 @@ jobs: - name: Trigger build and push on langchain-serve uses: peter-evans/repository-dispatch@v2 with: - token: ${{ env.PAT }} + token: ${{ secrets.DEEPANKAR_GITHUB_TOKEN }} repository: jina-ai/langchain-serve event-type: langflow-push - client-payload: '{"push_token": "${{ env.LANGFLOW_PUSH_TOKEN }}", "branch": "dev"}' - env: - PAT: ${{ secrets.DEEPANKAR_GITHUB_TOKEN }} - LANGFLOW_PUSH_TOKEN: ${{ secrets.LCSERVE_PUSH_TOKEN }} + client-payload: '{"push_token": "${{ secrets.LCSERVE_PUSH_TOKEN }}", "branch": "dev"}' From 1614c6f24b596e3d4699437dec0a68f214f11efb Mon Sep 17 00:00:00 2001 From: Deepankar Mahapatro Date: Tue, 16 May 2023 21:21:06 +0530 Subject: [PATCH 15/19] ci: trigger workflow during release --- .github/workflows/release.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3955f2bb5..9c39e91c9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -47,3 +47,11 @@ jobs: POETRY_PYPI_TOKEN_PYPI: ${{ secrets.PYPI_API_TOKEN }} run: | poetry publish + + - name: Trigger build and push on langchain-serve + uses: peter-evans/repository-dispatch@v2 + with: + token: ${{ secrets.DEEPANKAR_GITHUB_TOKEN }} # TODO: repo authors need to create a PAT and add it to secrets + repository: jina-ai/langchain-serve + event-type: langflow-push + client-payload: '{"push_token": "${{ secrets.LCSERVE_PUSH_TOKEN }}", "branch": "dev"}' # TODO: repo authors need to store `LCSERVE_PUSH_TOKEN` in secrets From 4abc2cac74f1fb52b40a5d7f7684ed0d0a4dd3f9 Mon Sep 17 00:00:00 2001 From: Deepankar Mahapatro Date: Tue, 16 May 2023 21:23:51 +0530 Subject: [PATCH 16/19] ci: trigger workflow during release --- .github/workflows/test-push.yml | 19 ------------------- poetry.lock | 3 +-- 2 files changed, 1 insertion(+), 21 deletions(-) delete mode 100644 .github/workflows/test-push.yml diff --git a/.github/workflows/test-push.yml b/.github/workflows/test-push.yml deleted file mode 100644 index 5edaef99e..000000000 --- a/.github/workflows/test-push.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: test-push - -on: - workflow_dispatch: - - -jobs: - trigger-image-push-lc-serve: - permissions: - contents: write - runs-on: ubuntu-latest - steps: - - name: Trigger build and push on langchain-serve - uses: peter-evans/repository-dispatch@v2 - with: - token: ${{ secrets.DEEPANKAR_GITHUB_TOKEN }} - repository: jina-ai/langchain-serve - event-type: langflow-push - client-payload: '{"push_token": "${{ secrets.LCSERVE_PUSH_TOKEN }}", "branch": "dev"}' diff --git a/poetry.lock b/poetry.lock index d7ede53c9..b5469390b 100644 --- a/poetry.lock +++ b/poetry.lock @@ -5773,5 +5773,4 @@ production = ["langchain-serve"] [metadata] lock-version = "2.0" python-versions = "^3.9" - -content-hash = "0524829f482c4eab8c25205d68dcec64084a28823de82cd3c3737e6bb74439c7" \ No newline at end of file +content-hash = "a6fa5f8b36994c9b7dfa3de4979099f2e76cb534697823b49a949c661efa3fba" From f01a2942089914ace263ffc6555e095657c6cefd Mon Sep 17 00:00:00 2001 From: Deepankar Mahapatro Date: Tue, 16 May 2023 21:44:22 +0530 Subject: [PATCH 17/19] docs: update readme about jcloud deployment --- README.md | 51 +++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 47 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index de98f87a1..ecf851422 100644 --- a/README.md +++ b/README.md @@ -46,13 +46,56 @@ Alternatively, click the **"Open in Cloud Shell"** button below to launch Google [![Open in Cloud Shell](https://gstatic.com/cloudssh/images/open-btn.svg)](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/logspace-ai/langflow&working_dir=scripts&shellonly=true&tutorial=walkthroughtutorial_spot.md) -### Deploy Langflow on Google Cloud Platform +### Deploy Langflow on [Jina AI Cloud](https://github.com/jina-ai/langchain-serve) -Follow our step-by-step guide to deploy Langflow on Google Cloud Platform (GCP) using Google Cloud Shell. The guide is available in the [**Langflow in Google Cloud Platform**](GCP_DEPLOYMENT.md) document. +Langflow integrates with langchain-serve to provide a one-command deployment to Jina AI Cloud. -Alternatively, click the **"Open in Cloud Shell"** button below to launch Google Cloud Shell, clone the Langflow repository, and start an **interactive tutorial** that will guide you through the process of setting up the necessary resources and deploying Langflow on your GCP project. +Start by installing `langchain-serve` with `pip install -U langchain-serve`. Then, run: -[![Open in Cloud Shell](https://gstatic.com/cloudssh/images/open-btn.svg)](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/genome21/langflow&working_dir=scripts&shellonly=true&tutorial=walkthroughtutorial_spot.md) +```bash +langflow jcloud +``` + +```text +๐ŸŽ‰ Langflow server successfully deployed on Jina AI Cloud ๐ŸŽ‰ +๐Ÿ”— Click on the link to open the server (please allow ~1-2 minutes for the server to startup): https://.wolf.jina.ai/ +๐Ÿ“– Read more about managing the server: https://github.com/jina-ai/langchain-serve +``` + +
+ Show complete (example) output + + ```text + ๐Ÿš€ Deploying Langflow server on Jina AI Cloud + โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ๐ŸŽ‰ Flow is available! โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ + โ”‚ โ”‚ + โ”‚ ID langflow-e3dd8820ec โ”‚ + โ”‚ Gateway (Websocket) wss://langflow-e3dd8820ec.wolf.jina.ai โ”‚ + โ”‚ Dashboard https://dashboard.wolf.jina.ai/flow/e3dd8820ec โ”‚ + โ”‚ โ”‚ + โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ + โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ + โ”‚ App ID โ”‚ langflow-e3dd8820ec โ”‚ + โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค + โ”‚ Phase โ”‚ Serving โ”‚ + โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค + โ”‚ Endpoint โ”‚ wss://langflow-e3dd8820ec.wolf.jina.ai โ”‚ + โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค + โ”‚ App logs โ”‚ dashboards.wolf.jina.ai โ”‚ + โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค + โ”‚ Swagger UI โ”‚ https://langflow-e3dd8820ec.wolf.jina.ai/docs โ”‚ + โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค + โ”‚ OpenAPI JSON โ”‚ https://langflow-e3dd8820ec.wolf.jina.ai/openapi.json โ”‚ + โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ + + ๐ŸŽ‰ Langflow server successfully deployed on Jina AI Cloud ๐ŸŽ‰ + ๐Ÿ”— Click on the link to open the server (please allow ~1-2 minutes for the server to startup): https://langflow-e3dd8820ec.wolf.jina.ai/ + ๐Ÿ“– Read more about managing the server: https://github.com/jina-ai/langchain-serve + ``` + +
+ +> Read more about customization, cost, and management of Langflow on Jina AI Cloud in the **[langchain-serve](https://github.com/jina-ai/langchain-serve)** repository. ## ๐ŸŽจ Creating Flows From a2e5fab6376b0d848dcd4874c9b67b3ca43f76e8 Mon Sep 17 00:00:00 2001 From: Deepankar Mahapatro Date: Wed, 17 May 2023 10:24:19 +0530 Subject: [PATCH 18/19] ci: trigger workflow during release --- .github/workflows/release.yml | 4 +-- README.md | 48 ++++++++++++++++++++++++++++++-- poetry.lock | 4 +-- pyproject.toml | 2 +- src/backend/langflow/__main__.py | 7 +++-- 5 files changed, 55 insertions(+), 10 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9c39e91c9..cc9e15761 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -51,7 +51,7 @@ jobs: - name: Trigger build and push on langchain-serve uses: peter-evans/repository-dispatch@v2 with: - token: ${{ secrets.DEEPANKAR_GITHUB_TOKEN }} # TODO: repo authors need to create a PAT and add it to secrets + token: ${{ secrets.SERVE_GITHUB_TOKEN }} repository: jina-ai/langchain-serve event-type: langflow-push - client-payload: '{"push_token": "${{ secrets.LCSERVE_PUSH_TOKEN }}", "branch": "dev"}' # TODO: repo authors need to store `LCSERVE_PUSH_TOKEN` in secrets + client-payload: '{"push_token": "${{ secrets.LCSERVE_PUSH_TOKEN }}", "branch": "dev"}' diff --git a/README.md b/README.md index ecf851422..bd377896c 100644 --- a/README.md +++ b/README.md @@ -50,10 +50,16 @@ Alternatively, click the **"Open in Cloud Shell"** button below to launch Google Langflow integrates with langchain-serve to provide a one-command deployment to Jina AI Cloud. -Start by installing `langchain-serve` with `pip install -U langchain-serve`. Then, run: +Start by installing `langchain-serve` with ```bash -langflow jcloud +pip install -U langchain-serve +``` + +Then, run: + +```bash +langflow --jcloud ``` ```text @@ -95,7 +101,43 @@ langflow jcloud -> Read more about customization, cost, and management of Langflow on Jina AI Cloud in the **[langchain-serve](https://github.com/jina-ai/langchain-serve)** repository. +#### API Usage + +You can use Langflow directly on your browser, or use the API endpoints on Jina AI Cloud to interact with the server. + +
+ Show API usage (with python) + + ```python + import json + import requests + + FLOW_PATH = "Time_traveller.json" + + # HOST = 'http://localhost:7860' + HOST = 'https://langflow-f1ed20e309.wolf.jina.ai' + API_URL = f'{HOST}/predict' + + def predict(message): + with open(FLOW_PATH, "r") as f: + json_data = json.load(f) + payload = {'exported_flow': json_data, 'message': message} + response = requests.post(API_URL, json=payload) + return response.json() + + + predict('Take me to 1920s Bangalore') + ``` + + ```json + { + "result": "Great choice! Bangalore in the 1920s was a vibrant city with a rich cultural and political scene. Here are some suggestions for things to see and do:\n\n1. Visit the Bangalore Palace - built in 1887, this stunning palace is a perfect example of Tudor-style architecture. It was home to the Maharaja of Mysore and is now open to the public.\n\n2. Attend a performance at the Ravindra Kalakshetra - this cultural center was built in the 1920s and is still a popular venue for music and dance performances.\n\n3. Explore the neighborhoods of Basavanagudi and Malleswaram - both of these areas have retained much of their old-world charm and are great places to walk around and soak up the atmosphere.\n\n4. Check out the Bangalore Club - founded in 1868, this exclusive social club was a favorite haunt of the British expat community in the 1920s.\n\n5. Attend a meeting of the Indian National Congress - founded in 1885, the INC was a major force in the Indian independence movement and held many meetings and rallies in Bangalore in the 1920s.\n\nHope you enjoy your trip to 1920s Bangalore!" + } + ``` + +
+ +> Read more about resource customization, cost, and management of Langflow apps on Jina AI Cloud in the **[langchain-serve](https://github.com/jina-ai/langchain-serve)** repository. ## ๐ŸŽจ Creating Flows diff --git a/poetry.lock b/poetry.lock index b5469390b..165eba2dd 100644 --- a/poetry.lock +++ b/poetry.lock @@ -5768,9 +5768,9 @@ cffi = {version = ">=1.11", markers = "platform_python_implementation == \"PyPy\ cffi = ["cffi (>=1.11)"] [extras] -production = ["langchain-serve"] +deploy = ["langchain-serve"] [metadata] lock-version = "2.0" python-versions = "^3.9" -content-hash = "a6fa5f8b36994c9b7dfa3de4979099f2e76cb534697823b49a949c661efa3fba" +content-hash = "bca5ed5cd32c5ad8d80faf99e9d988703202dd52001d2cbadaf61968a7cdebcc" diff --git a/pyproject.toml b/pyproject.toml index 972bcc229..9389b9661 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -68,7 +68,7 @@ types-pillow = "^9.5.0.2" [tool.poetry.extras] -production = ["langchain-serve"] +deploy = ["langchain-serve"] [tool.ruff] line-length = 120 diff --git a/src/backend/langflow/__main__.py b/src/backend/langflow/__main__.py index e6ca9b9de..89645aefc 100644 --- a/src/backend/langflow/__main__.py +++ b/src/backend/langflow/__main__.py @@ -33,11 +33,15 @@ def serve( config: str = typer.Option("config.yaml", help="Path to the configuration file."), log_level: str = typer.Option("info", help="Logging level."), log_file: Path = typer.Option("logs/langflow.log", help="Path to the log file."), + jcloud: bool = typer.Option(False, help="Deploy on Jina AI Cloud"), ): """ Run the Langflow server. """ + if jcloud: + return serve_on_jcloud() + configure(log_level=log_level, log_file=log_file) update_settings(config) app = create_app() @@ -69,8 +73,7 @@ def serve( LangflowApplication(app, options).run() -@app.command() -def jcloud(): +def serve_on_jcloud(): """ Deploy Langflow server on Jina AI Cloud """ From 601dd6d5604a8fbd58da46d948d4d09024f89a8f Mon Sep 17 00:00:00 2001 From: Deepankar Mahapatro Date: Thu, 18 May 2023 12:07:57 +0530 Subject: [PATCH 19/19] chore: update to latest lc-serve --- poetry.lock | 21 +++++---------------- pyproject.toml | 2 +- 2 files changed, 6 insertions(+), 17 deletions(-) diff --git a/poetry.lock b/poetry.lock index f24c630f4..1f6cbda4e 100644 --- a/poetry.lock +++ b/poetry.lock @@ -954,7 +954,9 @@ files = [ {file = "duckdb-0.8.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:b2707096d6df4321044fcde2c9f04da632d11a8be60957fd09d49a42fae71a29"}, {file = "duckdb-0.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b27df1b70ae74d2c88efb5ffca8490954fdc678099509a9c4404ca30acc53426"}, {file = "duckdb-0.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:75a97c800271b52dd0f37696d074c50576dcb4b2750b6115932a98696a268070"}, + {file = "duckdb-0.8.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:804cac261a5e016506a6d67838a65d19b06a237f7949f1704f0e800eb708286a"}, {file = "duckdb-0.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c6b9abca7fa6713e1d031c18485343b4de99742c7e1b85c10718aa2f31a4e2c6"}, + {file = "duckdb-0.8.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:51aa6d606d49072abcfeb3be209eb559ac94c1b5e70f58ac3adbb94aca9cd69f"}, {file = "duckdb-0.8.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:7c8dc769aaf2be0a1c57995ca657e5b92c1c56fc8437edb720ca6cab571adf14"}, {file = "duckdb-0.8.0-cp311-cp311-win32.whl", hash = "sha256:c4207d18b42387c4a035846d8878eb967070198be8ac26fd77797ce320d1a400"}, {file = "duckdb-0.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:0c392257547c20794c3072fcbca99a49ef0a49974005d755e93893e2b4875267"}, @@ -2119,13 +2121,13 @@ qdrant = ["qdrant-client (>=1.1.2,<2.0.0)"] [[package]] name = "langchain-serve" -version = "0.0.31" +version = "0.0.33" description = "Langchain Serve - serve your langchain apps on Jina AI Cloud." category = "main" optional = true python-versions = "*" files = [ - {file = "langchain-serve-0.0.31.tar.gz", hash = "sha256:1328ff71a82e854f2478eda3fd7bdeac86e75f7c75fa25fe2e2e2a96aebcab08"}, + {file = "langchain-serve-0.0.33.tar.gz", hash = "sha256:89396d932c75230ddd7c802824fc766df1ac95872c1a8f2da68d0ec8a54f761a"}, ] [package.dependencies] @@ -2135,7 +2137,6 @@ jina = "3.15.2" jina-hubble-sdk = "*" langchain = "*" nest-asyncio = "*" -pandasai = "*" requests = "*" textual = "*" toml = "*" @@ -3240,18 +3241,6 @@ files = [ [package.dependencies] types-pytz = ">=2022.1.1" -[[package]] -name = "pandasai" -version = "0.0.3" -description = "A wrapper around pandas to make it conversational" -category = "main" -optional = true -python-versions = ">=3.9" -files = [ - {file = "pandasai-0.0.3-py3-none-any.whl", hash = "sha256:a43b511a28a8a9ab0aad79e02c8a8f135e5947072946a766c132eb8b55aca83b"}, - {file = "pandasai-0.0.3.tar.gz", hash = "sha256:de99096327639af21093a3f3624c8594c452769f4d47532054cb647369d72f30"}, -] - [[package]] name = "parso" version = "0.8.3" @@ -5771,4 +5760,4 @@ deploy = ["langchain-serve"] [metadata] lock-version = "2.0" python-versions = "^3.9" -content-hash = "bca5ed5cd32c5ad8d80faf99e9d988703202dd52001d2cbadaf61968a7cdebcc" +content-hash = "ddf4cbde95a8fba8be8376cc2de300a375b0eb16c72226df795acf7d36b53737" diff --git a/pyproject.toml b/pyproject.toml index 2e7bf6272..d2a9ddfc7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -51,7 +51,7 @@ websockets = "^11.0.2" tiktoken = "^0.3.3" wikipedia = "^1.4.0" gptcache = "^0.1.23" -langchain-serve = { version = "^0.0.31", optional = true } +langchain-serve = { version = "^0.0.33", optional = true } [tool.poetry.group.dev.dependencies] black = "^23.1.0"