From 7be3eb6fbd6070c0f67e1bfb728372c136a728ed Mon Sep 17 00:00:00 2001 From: Harrison Chase Date: Fri, 8 Dec 2023 09:33:35 -0800 Subject: [PATCH 1/8] fix imports from core (#14430) --- libs/langchain/langchain/agents/__init__.py | 6 +++- .../agents/agent_toolkits/csv/__init__.py | 28 +++++++++++-------- .../agents/agent_toolkits/pandas/__init__.py | 28 +++++++++++-------- .../agents/agent_toolkits/python/__init__.py | 28 +++++++++++-------- .../agents/agent_toolkits/spark/__init__.py | 28 +++++++++++-------- .../agents/agent_toolkits/xorbits/__init__.py | 28 +++++++++++-------- 6 files changed, 85 insertions(+), 61 deletions(-) diff --git a/libs/langchain/langchain/agents/__init__.py b/libs/langchain/langchain/agents/__init__.py index 5af4b9ed7c7..4925a913ba5 100644 --- a/libs/langchain/langchain/agents/__init__.py +++ b/libs/langchain/langchain/agents/__init__.py @@ -82,7 +82,11 @@ DEPRECATED_CODE = [ def __getattr__(name: str) -> Any: """Get attr name.""" if name in DEPRECATED_CODE: - relative_path = as_import_path(Path(__file__).parent, suffix=name) + # Get directory of langchain package + HERE = Path(__file__).parents[1] + relative_path = as_import_path( + Path(__file__).parent, suffix=name, relative_to=HERE + ) old_path = "langchain." + relative_path new_path = "langchain_experimental." + relative_path raise ImportError( diff --git a/libs/langchain/langchain/agents/agent_toolkits/csv/__init__.py b/libs/langchain/langchain/agents/agent_toolkits/csv/__init__.py index 1b4899a2d57..4b049802888 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/csv/__init__.py +++ b/libs/langchain/langchain/agents/agent_toolkits/csv/__init__.py @@ -7,16 +7,20 @@ from langchain_core._api.path import as_import_path def __getattr__(name: str) -> Any: """Get attr name.""" - here = as_import_path(Path(__file__).parent) + if name == "create_csv_agent": + # Get directory of langchain package + HERE = Path(__file__).parents[3] + here = as_import_path(Path(__file__).parent, relative_to=HERE) - old_path = "langchain." + here + "." + name - new_path = "langchain_experimental." + here + "." + name - raise AttributeError( - "This agent has been moved to langchain experiment. " - "This agent relies on python REPL tool under the hood, so to use it " - "safely please sandbox the python REPL. " - "Read https://github.com/langchain-ai/langchain/blob/master/SECURITY.md " - "and https://github.com/langchain-ai/langchain/discussions/11680" - "To keep using this code as is, install langchain experimental and " - f"update your import statement from:\n `{old_path}` to `{new_path}`." - ) + old_path = "langchain." + here + "." + name + new_path = "langchain_experimental." + here + "." + name + raise ImportError( + "This agent has been moved to langchain experiment. " + "This agent relies on python REPL tool under the hood, so to use it " + "safely please sandbox the python REPL. " + "Read https://github.com/langchain-ai/langchain/blob/master/SECURITY.md " + "and https://github.com/langchain-ai/langchain/discussions/11680" + "To keep using this code as is, install langchain experimental and " + f"update your import statement from:\n `{old_path}` to `{new_path}`." + ) + raise AttributeError(f"{name} does not exist") diff --git a/libs/langchain/langchain/agents/agent_toolkits/pandas/__init__.py b/libs/langchain/langchain/agents/agent_toolkits/pandas/__init__.py index 1b4899a2d57..a5cc6fc6664 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/pandas/__init__.py +++ b/libs/langchain/langchain/agents/agent_toolkits/pandas/__init__.py @@ -7,16 +7,20 @@ from langchain_core._api.path import as_import_path def __getattr__(name: str) -> Any: """Get attr name.""" - here = as_import_path(Path(__file__).parent) + if name == "create_pandas_dataframe_agent": + # Get directory of langchain package + HERE = Path(__file__).parents[3] + here = as_import_path(Path(__file__).parent, relative_to=HERE) - old_path = "langchain." + here + "." + name - new_path = "langchain_experimental." + here + "." + name - raise AttributeError( - "This agent has been moved to langchain experiment. " - "This agent relies on python REPL tool under the hood, so to use it " - "safely please sandbox the python REPL. " - "Read https://github.com/langchain-ai/langchain/blob/master/SECURITY.md " - "and https://github.com/langchain-ai/langchain/discussions/11680" - "To keep using this code as is, install langchain experimental and " - f"update your import statement from:\n `{old_path}` to `{new_path}`." - ) + old_path = "langchain." + here + "." + name + new_path = "langchain_experimental." + here + "." + name + raise ImportError( + "This agent has been moved to langchain experiment. " + "This agent relies on python REPL tool under the hood, so to use it " + "safely please sandbox the python REPL. " + "Read https://github.com/langchain-ai/langchain/blob/master/SECURITY.md " + "and https://github.com/langchain-ai/langchain/discussions/11680" + "To keep using this code as is, install langchain experimental and " + f"update your import statement from:\n `{old_path}` to `{new_path}`." + ) + raise AttributeError(f"{name} does not exist") diff --git a/libs/langchain/langchain/agents/agent_toolkits/python/__init__.py b/libs/langchain/langchain/agents/agent_toolkits/python/__init__.py index 1b4899a2d57..85d36eeb492 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/python/__init__.py +++ b/libs/langchain/langchain/agents/agent_toolkits/python/__init__.py @@ -7,16 +7,20 @@ from langchain_core._api.path import as_import_path def __getattr__(name: str) -> Any: """Get attr name.""" - here = as_import_path(Path(__file__).parent) + if name == "create_python_agent": + # Get directory of langchain package + HERE = Path(__file__).parents[3] + here = as_import_path(Path(__file__).parent, relative_to=HERE) - old_path = "langchain." + here + "." + name - new_path = "langchain_experimental." + here + "." + name - raise AttributeError( - "This agent has been moved to langchain experiment. " - "This agent relies on python REPL tool under the hood, so to use it " - "safely please sandbox the python REPL. " - "Read https://github.com/langchain-ai/langchain/blob/master/SECURITY.md " - "and https://github.com/langchain-ai/langchain/discussions/11680" - "To keep using this code as is, install langchain experimental and " - f"update your import statement from:\n `{old_path}` to `{new_path}`." - ) + old_path = "langchain." + here + "." + name + new_path = "langchain_experimental." + here + "." + name + raise ImportError( + "This agent has been moved to langchain experiment. " + "This agent relies on python REPL tool under the hood, so to use it " + "safely please sandbox the python REPL. " + "Read https://github.com/langchain-ai/langchain/blob/master/SECURITY.md " + "and https://github.com/langchain-ai/langchain/discussions/11680" + "To keep using this code as is, install langchain experimental and " + f"update your import statement from:\n `{old_path}` to `{new_path}`." + ) + raise AttributeError(f"{name} does not exist") diff --git a/libs/langchain/langchain/agents/agent_toolkits/spark/__init__.py b/libs/langchain/langchain/agents/agent_toolkits/spark/__init__.py index 1b4899a2d57..73ec5b97dee 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/spark/__init__.py +++ b/libs/langchain/langchain/agents/agent_toolkits/spark/__init__.py @@ -7,16 +7,20 @@ from langchain_core._api.path import as_import_path def __getattr__(name: str) -> Any: """Get attr name.""" - here = as_import_path(Path(__file__).parent) + if name == "create_spark_dataframe_agent": + # Get directory of langchain package + HERE = Path(__file__).parents[3] + here = as_import_path(Path(__file__).parent, relative_to=HERE) - old_path = "langchain." + here + "." + name - new_path = "langchain_experimental." + here + "." + name - raise AttributeError( - "This agent has been moved to langchain experiment. " - "This agent relies on python REPL tool under the hood, so to use it " - "safely please sandbox the python REPL. " - "Read https://github.com/langchain-ai/langchain/blob/master/SECURITY.md " - "and https://github.com/langchain-ai/langchain/discussions/11680" - "To keep using this code as is, install langchain experimental and " - f"update your import statement from:\n `{old_path}` to `{new_path}`." - ) + old_path = "langchain." + here + "." + name + new_path = "langchain_experimental." + here + "." + name + raise ImportError( + "This agent has been moved to langchain experiment. " + "This agent relies on python REPL tool under the hood, so to use it " + "safely please sandbox the python REPL. " + "Read https://github.com/langchain-ai/langchain/blob/master/SECURITY.md " + "and https://github.com/langchain-ai/langchain/discussions/11680" + "To keep using this code as is, install langchain experimental and " + f"update your import statement from:\n `{old_path}` to `{new_path}`." + ) + raise AttributeError(f"{name} does not exist") diff --git a/libs/langchain/langchain/agents/agent_toolkits/xorbits/__init__.py b/libs/langchain/langchain/agents/agent_toolkits/xorbits/__init__.py index 1b4899a2d57..fd8fc13ba0d 100644 --- a/libs/langchain/langchain/agents/agent_toolkits/xorbits/__init__.py +++ b/libs/langchain/langchain/agents/agent_toolkits/xorbits/__init__.py @@ -7,16 +7,20 @@ from langchain_core._api.path import as_import_path def __getattr__(name: str) -> Any: """Get attr name.""" - here = as_import_path(Path(__file__).parent) + if name == "create_xorbits_agent": + # Get directory of langchain package + HERE = Path(__file__).parents[3] + here = as_import_path(Path(__file__).parent, relative_to=HERE) - old_path = "langchain." + here + "." + name - new_path = "langchain_experimental." + here + "." + name - raise AttributeError( - "This agent has been moved to langchain experiment. " - "This agent relies on python REPL tool under the hood, so to use it " - "safely please sandbox the python REPL. " - "Read https://github.com/langchain-ai/langchain/blob/master/SECURITY.md " - "and https://github.com/langchain-ai/langchain/discussions/11680" - "To keep using this code as is, install langchain experimental and " - f"update your import statement from:\n `{old_path}` to `{new_path}`." - ) + old_path = "langchain." + here + "." + name + new_path = "langchain_experimental." + here + "." + name + raise ImportError( + "This agent has been moved to langchain experiment. " + "This agent relies on python REPL tool under the hood, so to use it " + "safely please sandbox the python REPL. " + "Read https://github.com/langchain-ai/langchain/blob/master/SECURITY.md " + "and https://github.com/langchain-ai/langchain/discussions/11680" + "To keep using this code as is, install langchain experimental and " + f"update your import statement from:\n `{old_path}` to `{new_path}`." + ) + raise AttributeError(f"{name} does not exist") From 1d725327ebbed1700a9a1e8bb5a0ec79e5e7aec9 Mon Sep 17 00:00:00 2001 From: Erick Friis Date: Fri, 8 Dec 2023 10:23:02 -0800 Subject: [PATCH 2/8] langchain[patch]: Fix scheduled testing (#14428) - integration tests in pyproject - integration test fixes --- .github/workflows/scheduled_test.yml | 6 - libs/langchain/poetry.lock | 377 +++++++++++++----- libs/langchain/pyproject.toml | 5 +- .../chat_models/test_azure_openai.py | 7 +- .../chat_models/test_fireworks.py | 21 +- .../chat_models/test_openai.py | 2 - .../embeddings/test_azure_openai.py | 21 +- .../llms/test_azure_openai.py | 6 +- .../integration_tests/llms/test_fireworks.py | 11 - 9 files changed, 316 insertions(+), 140 deletions(-) diff --git a/.github/workflows/scheduled_test.yml b/.github/workflows/scheduled_test.yml index 0469c080e4d..11c4008d28a 100644 --- a/.github/workflows/scheduled_test.yml +++ b/.github/workflows/scheduled_test.yml @@ -53,12 +53,6 @@ jobs: run: | echo "Running scheduled tests, installing dependencies with poetry..." poetry install --with=test_integration - poetry run pip install google-cloud-aiplatform - poetry run pip install "boto3>=1.28.57" - if [[ ${{ matrix.python-version }} != "3.8" ]] - then - poetry run pip install fireworks-ai - fi - name: Run tests shell: bash diff --git a/libs/langchain/poetry.lock b/libs/langchain/poetry.lock index e9bd308d7ba..f723963c37a 100644 --- a/libs/langchain/poetry.lock +++ b/libs/langchain/poetry.lock @@ -659,18 +659,13 @@ python-versions = ">=3.7" files = [ {file = "awadb-0.3.10-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:1149b1c6fee95bd6e0f7ff625de060db679ea3985cad2332028eb50a76b9726e"}, {file = "awadb-0.3.10-cp310-cp310-macosx_13_0_arm64.whl", hash = "sha256:a447894ed721184a680566ac8584154d6801d1f99e98996c1d4bd198c022aa07"}, - {file = "awadb-0.3.10-cp310-cp310-manylinux1_x86_64.whl", hash = "sha256:ab21a90930f58e666a6874618813cc32a93b1e2fd4e66901c9e5392844165034"}, {file = "awadb-0.3.10-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:bfa1b64dfb9b77710180be9b2971afa6e19608bad54460b819131c2d24efa4f4"}, {file = "awadb-0.3.10-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:45a3094119ca3ee1a04abf23a9c22a14bb06cd938a128b28de423031b471787f"}, - {file = "awadb-0.3.10-cp311-cp311-manylinux1_x86_64.whl", hash = "sha256:5a8f532621e4e551cdf4ccf0fcfb3a31d3be4d4fe262b26ba7bd7ff769722c9c"}, {file = "awadb-0.3.10-cp37-cp37m-macosx_10_13_x86_64.whl", hash = "sha256:52480a9589e564fb03f504fb2eb26a27fcf552129725fd25a458b0db7d56fde5"}, - {file = "awadb-0.3.10-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:d38a1fb571a6e708218c00ec08ffc2b136f9eba8d4308f3d8ed1a3dc89fcdef6"}, {file = "awadb-0.3.10-cp38-cp38-macosx_10_13_x86_64.whl", hash = "sha256:d0e9f2ecb943ea6ba3ccbb849ef79f814fd59efee7d4c698a5220bc3ce308457"}, {file = "awadb-0.3.10-cp38-cp38-macosx_13_0_arm64.whl", hash = "sha256:fb4ab07c75bc3a92be9db2241551f60d705b18bcd48af95d57977084477647d9"}, - {file = "awadb-0.3.10-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:157a1f64e8ad3a28cc7cc5a22d39d0703121b1088db46d02adae23ea41a0346c"}, {file = "awadb-0.3.10-cp39-cp39-macosx_10_13_x86_64.whl", hash = "sha256:afad9bec8a0b183de77210cff12fef7d61f8f524cdfd6c0f4c440f7fea763e30"}, {file = "awadb-0.3.10-cp39-cp39-macosx_13_0_arm64.whl", hash = "sha256:71c084197abff80addf3568457a561df54db4bcaf13244f98b68d5fb32d9c2b0"}, - {file = "awadb-0.3.10-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:cc9212d8ab743331329b225a594eaa64918e32a06046373bc07821f8e9aa423e"}, ] [package.extras] @@ -945,7 +940,7 @@ files = [ name = "boto3" version = "1.28.64" description = "The AWS SDK for Python" -optional = true +optional = false python-versions = ">= 3.7" files = [ {file = "boto3-1.28.64-py3-none-any.whl", hash = "sha256:a99150a30c038c73e89662836820a8cce914afab5ea377942a37c484b85f4438"}, @@ -964,7 +959,7 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] name = "botocore" version = "1.31.64" description = "Low-level, data-driven core of boto 3." -optional = true +optional = false python-versions = ">= 3.7" files = [ {file = "botocore-1.31.64-py3-none-any.whl", hash = "sha256:7b709310343a5b430ec9025b2e17c0bac6b16c05f1ac1d9521dece3f10c71bac"}, @@ -1141,7 +1136,7 @@ virtualenv = ["virtualenv (>=20.0.35)"] name = "cachetools" version = "5.3.2" description = "Extensible memoizing collections and decorators" -optional = true +optional = false python-versions = ">=3.7" files = [ {file = "cachetools-5.3.2-py3-none-any.whl", hash = "sha256:861f35a13a451f94e301ce2bec7cac63e881232ccce7ed67fab9b5df4d3beaa1"}, @@ -2527,13 +2522,13 @@ test = ["Fiona[s3]", "pytest (>=7)", "pytest-cov", "pytz"] [[package]] name = "fireworks-ai" -version = "0.6.0" +version = "0.9.0" description = "Python client library for the Fireworks.ai Generative AI Platform" -optional = true -python-versions = ">=3.9" +optional = false +python-versions = ">=3.7" files = [ - {file = "fireworks-ai-0.6.0.tar.gz", hash = "sha256:815b933f6236e3da9c85fea1c51a6b9dd3673110877f6c7f69ba978fdfb1f0f0"}, - {file = "fireworks_ai-0.6.0-py3-none-any.whl", hash = "sha256:f7f32ab10131a7897c5e78dd69531de30af21a6899c10f5a7e405f01b57b6432"}, + {file = "fireworks-ai-0.9.0.tar.gz", hash = "sha256:0aa8ec092d0b05e9b509e33c887142521251f89d8a709524529fff058ba1e09a"}, + {file = "fireworks_ai-0.9.0-py3-none-any.whl", hash = "sha256:bef6ef19423885316bc70ff0c967a2f1936070827ff0a5c3581f6a2059b11f68"}, ] [package.dependencies] @@ -2787,7 +2782,7 @@ test = ["black", "coverage[toml]", "ddt (>=1.1.1,!=1.4.3)", "mock", "mypy", "pre name = "google-api-core" version = "1.34.0" description = "Google API client core library" -optional = true +optional = false python-versions = ">=3.7" files = [ {file = "google-api-core-1.34.0.tar.gz", hash = "sha256:6fb380f49d19ee1d09a9722d0379042b7edb06c0112e4796c7a395078a043e71"}, @@ -2811,7 +2806,7 @@ grpcio-gcp = ["grpcio-gcp (>=0.2.2,<1.0dev)"] name = "google-api-core" version = "2.12.0" description = "Google API client core library" -optional = true +optional = false python-versions = ">=3.7" files = [ {file = "google-api-core-2.12.0.tar.gz", hash = "sha256:c22e01b1e3c4dcd90998494879612c38d0a3411d1f7b679eb89e2abe3ce1f553"}, @@ -2853,7 +2848,7 @@ uritemplate = ">=3.0.1,<5" name = "google-auth" version = "2.23.3" description = "Google Authentication Library" -optional = true +optional = false python-versions = ">=3.7" files = [ {file = "google-auth-2.23.3.tar.gz", hash = "sha256:6864247895eea5d13b9c57c9e03abb49cb94ce2dc7c58e91cba3248c7477c9e3"}, @@ -2905,6 +2900,99 @@ requests-oauthlib = ">=0.7.0" [package.extras] tool = ["click (>=6.0.0)"] +[[package]] +name = "google-cloud-aiplatform" +version = "1.37.0" +description = "Vertex AI API client library" +optional = false +python-versions = ">=3.8" +files = [ + {file = "google-cloud-aiplatform-1.37.0.tar.gz", hash = "sha256:51cac0334fc7274142b50363dd10cbb3d303ff6354e5c06a7fb51e1b7db02dfb"}, + {file = "google_cloud_aiplatform-1.37.0-py2.py3-none-any.whl", hash = "sha256:9b3d6e681084a60b7e4de7063d41ca2d354b3546a918609ddaf9d8d1f8b19c36"}, +] + +[package.dependencies] +google-api-core = {version = ">=1.32.0,<2.0.dev0 || >=2.8.dev0,<3.0.0dev", extras = ["grpc"]} +google-cloud-bigquery = ">=1.15.0,<4.0.0dev" +google-cloud-resource-manager = ">=1.3.3,<3.0.0dev" +google-cloud-storage = ">=1.32.0,<3.0.0dev" +packaging = ">=14.3" +proto-plus = ">=1.22.0,<2.0.0dev" +protobuf = ">=3.19.5,<3.20.0 || >3.20.0,<3.20.1 || >3.20.1,<4.21.0 || >4.21.0,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<5.0.0dev" +setuptools = {version = "*", markers = "python_version >= \"3.12\""} +shapely = "<3.0.0dev" + +[package.extras] +autologging = ["mlflow (>=1.27.0,<=2.1.1)"] +cloud-profiler = ["tensorboard-plugin-profile (>=2.4.0,<3.0.0dev)", "tensorflow (>=2.4.0,<3.0.0dev)", "werkzeug (>=2.0.0,<2.1.0dev)"] +datasets = ["pyarrow (>=10.0.1)", "pyarrow (>=3.0.0,<8.0dev)"] +endpoint = ["requests (>=2.28.1)"] +full = ["cloudpickle (<3.0)", "docker (>=5.0.3)", "explainable-ai-sdk (>=1.0.0)", "fastapi (>=0.71.0,<0.103.1)", "google-cloud-bigquery", "google-cloud-bigquery-storage", "google-cloud-logging (<4.0)", "google-vizier (==0.0.11)", "google-vizier (==0.0.4)", "google-vizier (>=0.0.14)", "google-vizier (>=0.1.6)", "httpx (>=0.23.0,<0.25.0)", "lit-nlp (==0.4.0)", "mlflow (>=1.27.0,<=2.1.1)", "numpy (>=1.15.0)", "pandas (>=1.0.0)", "pyarrow (>=10.0.1)", "pyarrow (>=3.0.0,<8.0dev)", "pyarrow (>=6.0.1)", "pydantic (<2)", "pyyaml (==5.3.1)", "ray[default] (>=2.4,<2.5)", "ray[default] (>=2.5,<2.5.1)", "requests (>=2.28.1)", "starlette (>=0.17.1)", "tensorflow (>=2.3.0,<3.0.0dev)", "urllib3 (>=1.21.1,<1.27)", "uvicorn[standard] (>=0.16.0)"] +lit = ["explainable-ai-sdk (>=1.0.0)", "lit-nlp (==0.4.0)", "pandas (>=1.0.0)", "tensorflow (>=2.3.0,<3.0.0dev)"] +metadata = ["numpy (>=1.15.0)", "pandas (>=1.0.0)"] +pipelines = ["pyyaml (==5.3.1)"] +prediction = ["docker (>=5.0.3)", "fastapi (>=0.71.0,<0.103.1)", "httpx (>=0.23.0,<0.25.0)", "starlette (>=0.17.1)", "uvicorn[standard] (>=0.16.0)"] +preview = ["cloudpickle (<3.0)", "google-cloud-logging (<4.0)"] +private-endpoints = ["requests (>=2.28.1)", "urllib3 (>=1.21.1,<1.27)"] +ray = ["google-cloud-bigquery", "google-cloud-bigquery-storage", "pandas (>=1.0.0)", "pyarrow (>=6.0.1)", "pydantic (<2)", "ray[default] (>=2.4,<2.5)", "ray[default] (>=2.5,<2.5.1)"] +tensorboard = ["tensorflow (>=2.3.0,<3.0.0dev)"] +testing = ["bigframes", "cloudpickle (<3.0)", "docker (>=5.0.3)", "explainable-ai-sdk (>=1.0.0)", "fastapi (>=0.71.0,<0.103.1)", "google-cloud-bigquery", "google-cloud-bigquery-storage", "google-cloud-logging (<4.0)", "google-vizier (==0.0.11)", "google-vizier (==0.0.4)", "google-vizier (>=0.0.14)", "google-vizier (>=0.1.6)", "grpcio-testing", "httpx (>=0.23.0,<0.25.0)", "ipython", "kfp", "lit-nlp (==0.4.0)", "mlflow (>=1.27.0,<=2.1.1)", "numpy (>=1.15.0)", "pandas (>=1.0.0)", "pyarrow (>=10.0.1)", "pyarrow (>=3.0.0,<8.0dev)", "pyarrow (>=6.0.1)", "pydantic (<2)", "pyfakefs", "pytest-asyncio", "pytest-xdist", "pyyaml (==5.3.1)", "ray[default] (>=2.4,<2.5)", "ray[default] (>=2.5,<2.5.1)", "requests (>=2.28.1)", "requests-toolbelt (<1.0.0)", "scikit-learn", "starlette (>=0.17.1)", "tensorboard-plugin-profile (>=2.4.0,<3.0.0dev)", "tensorflow (>=2.3.0,<3.0.0dev)", "tensorflow (>=2.3.0,<=2.12.0)", "tensorflow (>=2.4.0,<3.0.0dev)", "torch (>=2.0.0,<2.1.0)", "urllib3 (>=1.21.1,<1.27)", "uvicorn[standard] (>=0.16.0)", "werkzeug (>=2.0.0,<2.1.0dev)", "xgboost", "xgboost-ray"] +vizier = ["google-vizier (==0.0.11)", "google-vizier (==0.0.4)", "google-vizier (>=0.0.14)", "google-vizier (>=0.1.6)"] +xai = ["tensorflow (>=2.3.0,<3.0.0dev)"] + +[[package]] +name = "google-cloud-bigquery" +version = "3.13.0" +description = "Google BigQuery API client library" +optional = false +python-versions = ">=3.7" +files = [ + {file = "google-cloud-bigquery-3.13.0.tar.gz", hash = "sha256:794ccfc93ccb0e0ad689442f896f9c82de56da0fe18a195531bb37096c2657d6"}, + {file = "google_cloud_bigquery-3.13.0-py2.py3-none-any.whl", hash = "sha256:eda3dbcff676e17962c54e5224e415b55e4f6833a5c896c6c8902b69e7dba4b4"}, +] + +[package.dependencies] +google-api-core = {version = ">=1.31.5,<2.0.dev0 || >2.3.0,<3.0.0dev", extras = ["grpc"]} +google-cloud-core = ">=1.6.0,<3.0.0dev" +google-resumable-media = ">=0.6.0,<3.0dev" +grpcio = [ + {version = ">=1.49.1,<2.0dev", markers = "python_version >= \"3.11\""}, + {version = ">=1.47.0,<2.0dev", markers = "python_version < \"3.11\""}, +] +packaging = ">=20.0.0" +proto-plus = ">=1.15.0,<2.0.0dev" +protobuf = ">=3.19.5,<3.20.0 || >3.20.0,<3.20.1 || >3.20.1,<4.21.0 || >4.21.0,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<5.0.0dev" +python-dateutil = ">=2.7.2,<3.0dev" +requests = ">=2.21.0,<3.0.0dev" + +[package.extras] +all = ["Shapely (>=1.8.4,<3.0.0dev)", "db-dtypes (>=0.3.0,<2.0.0dev)", "geopandas (>=0.9.0,<1.0dev)", "google-cloud-bigquery-storage (>=2.6.0,<3.0.0dev)", "grpcio (>=1.47.0,<2.0dev)", "grpcio (>=1.49.1,<2.0dev)", "ipykernel (>=6.0.0)", "ipython (>=7.23.1,!=8.1.0)", "ipywidgets (>=7.7.0)", "opentelemetry-api (>=1.1.0)", "opentelemetry-instrumentation (>=0.20b0)", "opentelemetry-sdk (>=1.1.0)", "pandas (>=1.1.0)", "pyarrow (>=3.0.0)", "tqdm (>=4.7.4,<5.0.0dev)"] +bqstorage = ["google-cloud-bigquery-storage (>=2.6.0,<3.0.0dev)", "grpcio (>=1.47.0,<2.0dev)", "grpcio (>=1.49.1,<2.0dev)", "pyarrow (>=3.0.0)"] +geopandas = ["Shapely (>=1.8.4,<3.0.0dev)", "geopandas (>=0.9.0,<1.0dev)"] +ipython = ["ipykernel (>=6.0.0)", "ipython (>=7.23.1,!=8.1.0)"] +ipywidgets = ["ipykernel (>=6.0.0)", "ipywidgets (>=7.7.0)"] +opentelemetry = ["opentelemetry-api (>=1.1.0)", "opentelemetry-instrumentation (>=0.20b0)", "opentelemetry-sdk (>=1.1.0)"] +pandas = ["db-dtypes (>=0.3.0,<2.0.0dev)", "pandas (>=1.1.0)", "pyarrow (>=3.0.0)"] +tqdm = ["tqdm (>=4.7.4,<5.0.0dev)"] + +[[package]] +name = "google-cloud-core" +version = "2.4.1" +description = "Google Cloud API client core library" +optional = false +python-versions = ">=3.7" +files = [ + {file = "google-cloud-core-2.4.1.tar.gz", hash = "sha256:9b7749272a812bde58fff28868d0c5e2f585b82f37e09a1f6ed2d4d10f134073"}, + {file = "google_cloud_core-2.4.1-py2.py3-none-any.whl", hash = "sha256:a9e6a4422b9ac5c29f79a0ede9485473338e2ce78d91f2370c01e730eab22e61"}, +] + +[package.dependencies] +google-api-core = ">=1.31.6,<2.0.dev0 || >2.3.0,<3.0.0dev" +google-auth = ">=1.25.0,<3.0dev" + +[package.extras] +grpc = ["grpcio (>=1.38.0,<2.0dev)", "grpcio-status (>=1.38.0,<2.0.dev0)"] + [[package]] name = "google-cloud-documentai" version = "2.20.1" @@ -2924,6 +3012,125 @@ proto-plus = [ ] protobuf = ">=3.19.5,<3.20.0 || >3.20.0,<3.20.1 || >3.20.1,<4.21.0 || >4.21.0,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<5.0.0dev" +[[package]] +name = "google-cloud-resource-manager" +version = "1.11.0" +description = "Google Cloud Resource Manager API client library" +optional = false +python-versions = ">=3.7" +files = [ + {file = "google-cloud-resource-manager-1.11.0.tar.gz", hash = "sha256:a64ba6bb595634ecd2472b8b0322e8f012a76327756659a2dde9f392d7fa1af2"}, + {file = "google_cloud_resource_manager-1.11.0-py2.py3-none-any.whl", hash = "sha256:bafde909b1d434a620eefcd144b14fcccb72f268afcf158c5bcfcdce5e04a72b"}, +] + +[package.dependencies] +google-api-core = {version = ">=1.34.0,<2.0.dev0 || >=2.11.dev0,<3.0.0dev", extras = ["grpc"]} +grpc-google-iam-v1 = ">=0.12.4,<1.0.0dev" +proto-plus = ">=1.22.3,<2.0.0dev" +protobuf = ">=3.19.5,<3.20.0 || >3.20.0,<3.20.1 || >3.20.1,<4.21.0 || >4.21.0,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<5.0.0dev" + +[[package]] +name = "google-cloud-storage" +version = "2.13.0" +description = "Google Cloud Storage API client library" +optional = false +python-versions = ">=3.7" +files = [ + {file = "google-cloud-storage-2.13.0.tar.gz", hash = "sha256:f62dc4c7b6cd4360d072e3deb28035fbdad491ac3d9b0b1815a12daea10f37c7"}, + {file = "google_cloud_storage-2.13.0-py2.py3-none-any.whl", hash = "sha256:ab0bf2e1780a1b74cf17fccb13788070b729f50c252f0c94ada2aae0ca95437d"}, +] + +[package.dependencies] +google-api-core = ">=1.31.5,<2.0.dev0 || >2.3.0,<3.0.0dev" +google-auth = ">=2.23.3,<3.0dev" +google-cloud-core = ">=2.3.0,<3.0dev" +google-crc32c = ">=1.0,<2.0dev" +google-resumable-media = ">=2.6.0" +requests = ">=2.18.0,<3.0.0dev" + +[package.extras] +protobuf = ["protobuf (<5.0.0dev)"] + +[[package]] +name = "google-crc32c" +version = "1.5.0" +description = "A python wrapper of the C library 'Google CRC32C'" +optional = false +python-versions = ">=3.7" +files = [ + {file = "google-crc32c-1.5.0.tar.gz", hash = "sha256:89284716bc6a5a415d4eaa11b1726d2d60a0cd12aadf5439828353662ede9dd7"}, + {file = "google_crc32c-1.5.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:596d1f98fc70232fcb6590c439f43b350cb762fb5d61ce7b0e9db4539654cc13"}, + {file = "google_crc32c-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:be82c3c8cfb15b30f36768797a640e800513793d6ae1724aaaafe5bf86f8f346"}, + {file = "google_crc32c-1.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:461665ff58895f508e2866824a47bdee72497b091c730071f2b7575d5762ab65"}, + {file = "google_crc32c-1.5.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e2096eddb4e7c7bdae4bd69ad364e55e07b8316653234a56552d9c988bd2d61b"}, + {file = "google_crc32c-1.5.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:116a7c3c616dd14a3de8c64a965828b197e5f2d121fedd2f8c5585c547e87b02"}, + {file = "google_crc32c-1.5.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:5829b792bf5822fd0a6f6eb34c5f81dd074f01d570ed7f36aa101d6fc7a0a6e4"}, + {file = "google_crc32c-1.5.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:64e52e2b3970bd891309c113b54cf0e4384762c934d5ae56e283f9a0afcd953e"}, + {file = "google_crc32c-1.5.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:02ebb8bf46c13e36998aeaad1de9b48f4caf545e91d14041270d9dca767b780c"}, + {file = "google_crc32c-1.5.0-cp310-cp310-win32.whl", hash = "sha256:2e920d506ec85eb4ba50cd4228c2bec05642894d4c73c59b3a2fe20346bd00ee"}, + {file = "google_crc32c-1.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:07eb3c611ce363c51a933bf6bd7f8e3878a51d124acfc89452a75120bc436289"}, + {file = "google_crc32c-1.5.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:cae0274952c079886567f3f4f685bcaf5708f0a23a5f5216fdab71f81a6c0273"}, + {file = "google_crc32c-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1034d91442ead5a95b5aaef90dbfaca8633b0247d1e41621d1e9f9db88c36298"}, + {file = "google_crc32c-1.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7c42c70cd1d362284289c6273adda4c6af8039a8ae12dc451dcd61cdabb8ab57"}, + {file = "google_crc32c-1.5.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8485b340a6a9e76c62a7dce3c98e5f102c9219f4cfbf896a00cf48caf078d438"}, + {file = "google_crc32c-1.5.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77e2fd3057c9d78e225fa0a2160f96b64a824de17840351b26825b0848022906"}, + {file = "google_crc32c-1.5.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f583edb943cf2e09c60441b910d6a20b4d9d626c75a36c8fcac01a6c96c01183"}, + {file = "google_crc32c-1.5.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:a1fd716e7a01f8e717490fbe2e431d2905ab8aa598b9b12f8d10abebb36b04dd"}, + {file = "google_crc32c-1.5.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:72218785ce41b9cfd2fc1d6a017dc1ff7acfc4c17d01053265c41a2c0cc39b8c"}, + {file = "google_crc32c-1.5.0-cp311-cp311-win32.whl", hash = "sha256:66741ef4ee08ea0b2cc3c86916ab66b6aef03768525627fd6a1b34968b4e3709"}, + {file = "google_crc32c-1.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:ba1eb1843304b1e5537e1fca632fa894d6f6deca8d6389636ee5b4797affb968"}, + {file = "google_crc32c-1.5.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:98cb4d057f285bd80d8778ebc4fde6b4d509ac3f331758fb1528b733215443ae"}, + {file = "google_crc32c-1.5.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fd8536e902db7e365f49e7d9029283403974ccf29b13fc7028b97e2295b33556"}, + {file = "google_crc32c-1.5.0-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:19e0a019d2c4dcc5e598cd4a4bc7b008546b0358bd322537c74ad47a5386884f"}, + {file = "google_crc32c-1.5.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:02c65b9817512edc6a4ae7c7e987fea799d2e0ee40c53ec573a692bee24de876"}, + {file = "google_crc32c-1.5.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6ac08d24c1f16bd2bf5eca8eaf8304812f44af5cfe5062006ec676e7e1d50afc"}, + {file = "google_crc32c-1.5.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:3359fc442a743e870f4588fcf5dcbc1bf929df1fad8fb9905cd94e5edb02e84c"}, + {file = "google_crc32c-1.5.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:1e986b206dae4476f41bcec1faa057851f3889503a70e1bdb2378d406223994a"}, + {file = "google_crc32c-1.5.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:de06adc872bcd8c2a4e0dc51250e9e65ef2ca91be023b9d13ebd67c2ba552e1e"}, + {file = "google_crc32c-1.5.0-cp37-cp37m-win32.whl", hash = "sha256:d3515f198eaa2f0ed49f8819d5732d70698c3fa37384146079b3799b97667a94"}, + {file = "google_crc32c-1.5.0-cp37-cp37m-win_amd64.whl", hash = "sha256:67b741654b851abafb7bc625b6d1cdd520a379074e64b6a128e3b688c3c04740"}, + {file = "google_crc32c-1.5.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:c02ec1c5856179f171e032a31d6f8bf84e5a75c45c33b2e20a3de353b266ebd8"}, + {file = "google_crc32c-1.5.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:edfedb64740750e1a3b16152620220f51d58ff1b4abceb339ca92e934775c27a"}, + {file = "google_crc32c-1.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:84e6e8cd997930fc66d5bb4fde61e2b62ba19d62b7abd7a69920406f9ecca946"}, + {file = "google_crc32c-1.5.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:024894d9d3cfbc5943f8f230e23950cd4906b2fe004c72e29b209420a1e6b05a"}, + {file = "google_crc32c-1.5.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:998679bf62b7fb599d2878aa3ed06b9ce688b8974893e7223c60db155f26bd8d"}, + {file = "google_crc32c-1.5.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:83c681c526a3439b5cf94f7420471705bbf96262f49a6fe546a6db5f687a3d4a"}, + {file = "google_crc32c-1.5.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:4c6fdd4fccbec90cc8a01fc00773fcd5fa28db683c116ee3cb35cd5da9ef6c37"}, + {file = "google_crc32c-1.5.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:5ae44e10a8e3407dbe138984f21e536583f2bba1be9491239f942c2464ac0894"}, + {file = "google_crc32c-1.5.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:37933ec6e693e51a5b07505bd05de57eee12f3e8c32b07da7e73669398e6630a"}, + {file = "google_crc32c-1.5.0-cp38-cp38-win32.whl", hash = "sha256:fe70e325aa68fa4b5edf7d1a4b6f691eb04bbccac0ace68e34820d283b5f80d4"}, + {file = "google_crc32c-1.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:74dea7751d98034887dbd821b7aae3e1d36eda111d6ca36c206c44478035709c"}, + {file = "google_crc32c-1.5.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c6c777a480337ac14f38564ac88ae82d4cd238bf293f0a22295b66eb89ffced7"}, + {file = "google_crc32c-1.5.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:759ce4851a4bb15ecabae28f4d2e18983c244eddd767f560165563bf9aefbc8d"}, + {file = "google_crc32c-1.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f13cae8cc389a440def0c8c52057f37359014ccbc9dc1f0827936bcd367c6100"}, + {file = "google_crc32c-1.5.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e560628513ed34759456a416bf86b54b2476c59144a9138165c9a1575801d0d9"}, + {file = "google_crc32c-1.5.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1674e4307fa3024fc897ca774e9c7562c957af85df55efe2988ed9056dc4e57"}, + {file = "google_crc32c-1.5.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:278d2ed7c16cfc075c91378c4f47924c0625f5fc84b2d50d921b18b7975bd210"}, + {file = "google_crc32c-1.5.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d5280312b9af0976231f9e317c20e4a61cd2f9629b7bfea6a693d1878a264ebd"}, + {file = "google_crc32c-1.5.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:8b87e1a59c38f275c0e3676fc2ab6d59eccecfd460be267ac360cc31f7bcde96"}, + {file = "google_crc32c-1.5.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7c074fece789b5034b9b1404a1f8208fc2d4c6ce9decdd16e8220c5a793e6f61"}, + {file = "google_crc32c-1.5.0-cp39-cp39-win32.whl", hash = "sha256:7f57f14606cd1dd0f0de396e1e53824c371e9544a822648cd76c034d209b559c"}, + {file = "google_crc32c-1.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:a2355cba1f4ad8b6988a4ca3feed5bff33f6af2d7f134852cf279c2aebfde541"}, + {file = "google_crc32c-1.5.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:f314013e7dcd5cf45ab1945d92e713eec788166262ae8deb2cfacd53def27325"}, + {file = "google_crc32c-1.5.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3b747a674c20a67343cb61d43fdd9207ce5da6a99f629c6e2541aa0e89215bcd"}, + {file = "google_crc32c-1.5.0-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8f24ed114432de109aa9fd317278518a5af2d31ac2ea6b952b2f7782b43da091"}, + {file = "google_crc32c-1.5.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8667b48e7a7ef66afba2c81e1094ef526388d35b873966d8a9a447974ed9178"}, + {file = "google_crc32c-1.5.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:1c7abdac90433b09bad6c43a43af253e688c9cfc1c86d332aed13f9a7c7f65e2"}, + {file = "google_crc32c-1.5.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:6f998db4e71b645350b9ac28a2167e6632c239963ca9da411523bb439c5c514d"}, + {file = "google_crc32c-1.5.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c99616c853bb585301df6de07ca2cadad344fd1ada6d62bb30aec05219c45d2"}, + {file = "google_crc32c-1.5.0-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2ad40e31093a4af319dadf503b2467ccdc8f67c72e4bcba97f8c10cb078207b5"}, + {file = "google_crc32c-1.5.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cd67cf24a553339d5062eff51013780a00d6f97a39ca062781d06b3a73b15462"}, + {file = "google_crc32c-1.5.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:398af5e3ba9cf768787eef45c803ff9614cc3e22a5b2f7d7ae116df8b11e3314"}, + {file = "google_crc32c-1.5.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:b1f8133c9a275df5613a451e73f36c2aea4fe13c5c8997e22cf355ebd7bd0728"}, + {file = "google_crc32c-1.5.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9ba053c5f50430a3fcfd36f75aff9caeba0440b2d076afdb79a318d6ca245f88"}, + {file = "google_crc32c-1.5.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:272d3892a1e1a2dbc39cc5cde96834c236d5327e2122d3aaa19f6614531bb6eb"}, + {file = "google_crc32c-1.5.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:635f5d4dd18758a1fbd1049a8e8d2fee4ffed124462d837d1a02a0e009c3ab31"}, + {file = "google_crc32c-1.5.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:c672d99a345849301784604bfeaeba4db0c7aae50b95be04dd651fd2a7310b93"}, +] + +[package.extras] +testing = ["pytest"] + [[package]] name = "google-pasta" version = "0.2.0" @@ -2939,6 +3146,24 @@ files = [ [package.dependencies] six = "*" +[[package]] +name = "google-resumable-media" +version = "2.6.0" +description = "Utilities for Google Media Downloads and Resumable Uploads" +optional = false +python-versions = ">= 3.7" +files = [ + {file = "google-resumable-media-2.6.0.tar.gz", hash = "sha256:972852f6c65f933e15a4a210c2b96930763b47197cdf4aa5f5bea435efb626e7"}, + {file = "google_resumable_media-2.6.0-py2.py3-none-any.whl", hash = "sha256:fc03d344381970f79eebb632a3c18bb1828593a2dc5572b5f90115ef7d11e81b"}, +] + +[package.dependencies] +google-crc32c = ">=1.0,<2.0dev" + +[package.extras] +aiohttp = ["aiohttp (>=3.6.2,<4.0.0dev)", "google-auth (>=1.22.0,<2.0dev)"] +requests = ["requests (>=2.18.0,<3.0.0dev)"] + [[package]] name = "google-search-results" version = "2.4.2" @@ -2956,7 +3181,7 @@ requests = "*" name = "googleapis-common-protos" version = "1.61.0" description = "Common protobufs used in Google APIs" -optional = true +optional = false python-versions = ">=3.7" files = [ {file = "googleapis-common-protos-1.61.0.tar.gz", hash = "sha256:8a64866a97f6304a7179873a465d6eee97b7a24ec6cfd78e0f575e96b821240b"}, @@ -2964,6 +3189,7 @@ files = [ ] [package.dependencies] +grpcio = {version = ">=1.44.0,<2.0.0.dev0", optional = true, markers = "extra == \"grpc\""} protobuf = ">=3.19.5,<3.20.0 || >3.20.0,<3.20.1 || >3.20.1,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<5.0.0.dev0" [package.extras] @@ -3048,7 +3274,7 @@ files = [ {file = "greenlet-3.0.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0b72b802496cccbd9b31acea72b6f87e7771ccfd7f7927437d592e5c92ed703c"}, {file = "greenlet-3.0.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:527cd90ba3d8d7ae7dceb06fda619895768a46a1b4e423bdb24c1969823b8362"}, {file = "greenlet-3.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:37f60b3a42d8b5499be910d1267b24355c495064f271cfe74bf28b17b099133c"}, - {file = "greenlet-3.0.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:1482fba7fbed96ea7842b5a7fc11d61727e8be75a077e603e8ab49d24e234383"}, + {file = "greenlet-3.0.0-cp311-universal2-macosx_10_9_universal2.whl", hash = "sha256:c3692ecf3fe754c8c0f2c95ff19626584459eab110eaab66413b1e7425cd84e9"}, {file = "greenlet-3.0.0-cp312-cp312-macosx_13_0_arm64.whl", hash = "sha256:be557119bf467d37a8099d91fbf11b2de5eb1fd5fc5b91598407574848dc910f"}, {file = "greenlet-3.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:73b2f1922a39d5d59cc0e597987300df3396b148a9bd10b76a058a2f2772fc04"}, {file = "greenlet-3.0.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d1e22c22f7826096ad503e9bb681b05b8c1f5a8138469b255eb91f26a76634f2"}, @@ -3058,6 +3284,7 @@ files = [ {file = "greenlet-3.0.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:952256c2bc5b4ee8df8dfc54fc4de330970bf5d79253c863fb5e6761f00dda35"}, {file = "greenlet-3.0.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:269d06fa0f9624455ce08ae0179430eea61085e3cf6457f05982b37fd2cefe17"}, {file = "greenlet-3.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:9adbd8ecf097e34ada8efde9b6fec4dd2a903b1e98037adf72d12993a1c80b51"}, + {file = "greenlet-3.0.0-cp312-universal2-macosx_10_9_universal2.whl", hash = "sha256:553d6fb2324e7f4f0899e5ad2c427a4579ed4873f42124beba763f16032959af"}, {file = "greenlet-3.0.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c6b5ce7f40f0e2f8b88c28e6691ca6806814157ff05e794cdd161be928550f4c"}, {file = "greenlet-3.0.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ecf94aa539e97a8411b5ea52fc6ccd8371be9550c4041011a091eb8b3ca1d810"}, {file = "greenlet-3.0.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:80dcd3c938cbcac986c5c92779db8e8ce51a89a849c135172c88ecbdc8c056b7"}, @@ -3097,11 +3324,27 @@ files = [ docs = ["Sphinx"] test = ["objgraph", "psutil"] +[[package]] +name = "grpc-google-iam-v1" +version = "0.13.0" +description = "IAM API client library" +optional = false +python-versions = ">=3.7" +files = [ + {file = "grpc-google-iam-v1-0.13.0.tar.gz", hash = "sha256:fad318608b9e093258fbf12529180f400d1c44453698a33509cc6ecf005b294e"}, + {file = "grpc_google_iam_v1-0.13.0-py2.py3-none-any.whl", hash = "sha256:53902e2af7de8df8c1bd91373d9be55b0743ec267a7428ea638db3775becae89"}, +] + +[package.dependencies] +googleapis-common-protos = {version = ">=1.56.0,<2.0.0dev", extras = ["grpc"]} +grpcio = ">=1.44.0,<2.0.0dev" +protobuf = ">=3.19.5,<3.20.0 || >3.20.0,<3.20.1 || >3.20.1,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<5.0.0dev" + [[package]] name = "grpcio" version = "1.59.0" description = "HTTP/2-based RPC framework" -optional = true +optional = false python-versions = ">=3.7" files = [ {file = "grpcio-1.59.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:225e5fa61c35eeaebb4e7491cd2d768cd8eb6ed00f2664fa83a58f29418b39fd"}, @@ -3167,7 +3410,7 @@ protobuf = ["grpcio-tools (>=1.59.0)"] name = "grpcio-status" version = "1.48.2" description = "Status proto mapping for gRPC" -optional = true +optional = false python-versions = ">=3.6" files = [ {file = "grpcio-status-1.48.2.tar.gz", hash = "sha256:53695f45da07437b7c344ee4ef60d370fd2850179f5a28bb26d8e2aa1102ec11"}, @@ -3419,7 +3662,7 @@ socks = ["socksio (==1.*)"] name = "httpx-sse" version = "0.3.1" description = "Consume Server-Sent Event (SSE) messages with HTTPX." -optional = true +optional = false python-versions = ">=3.7" files = [ {file = "httpx-sse-0.3.1.tar.gz", hash = "sha256:3bb3289b2867f50cbdb2fee3eeeefecb1e86653122e164faac0023f1ffc88aea"}, @@ -3774,7 +4017,7 @@ i18n = ["Babel (>=2.7)"] name = "jmespath" version = "1.0.1" description = "JSON Matching Expressions" -optional = true +optional = false python-versions = ">=3.7" files = [ {file = "jmespath-1.0.1-py3-none-any.whl", hash = "sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980"}, @@ -4770,16 +5013,6 @@ files = [ {file = "MarkupSafe-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5bbe06f8eeafd38e5d0a4894ffec89378b6c6a625ff57e3028921f8ff59318ac"}, {file = "MarkupSafe-2.1.3-cp311-cp311-win32.whl", hash = "sha256:dd15ff04ffd7e05ffcb7fe79f1b98041b8ea30ae9234aed2a9168b5797c3effb"}, {file = "MarkupSafe-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:134da1eca9ec0ae528110ccc9e48041e0828d79f24121a1a146161103c76e686"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:f698de3fd0c4e6972b92290a45bd9b1536bffe8c6759c62471efaa8acb4c37bc"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aa57bd9cf8ae831a362185ee444e15a93ecb2e344c8e52e4d721ea3ab6ef1823"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffcc3f7c66b5f5b7931a5aa68fc9cecc51e685ef90282f4a82f0f5e9b704ad11"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47d4f1c5f80fc62fdd7777d0d40a2e9dda0a05883ab11374334f6c4de38adffd"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1f67c7038d560d92149c060157d623c542173016c4babc0c1913cca0564b9939"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:9aad3c1755095ce347e26488214ef77e0485a3c34a50c5a5e2471dff60b9dd9c"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:14ff806850827afd6b07a5f32bd917fb7f45b046ba40c57abdb636674a8b559c"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8f9293864fe09b8149f0cc42ce56e3f0e54de883a9de90cd427f191c346eb2e1"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-win32.whl", hash = "sha256:715d3562f79d540f251b99ebd6d8baa547118974341db04f5ad06d5ea3eb8007"}, - {file = "MarkupSafe-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:1b8dd8c3fd14349433c79fa8abeb573a55fc0fdd769133baac1f5e07abf54aeb"}, {file = "MarkupSafe-2.1.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8e254ae696c88d98da6555f5ace2279cf7cd5b3f52be2b5cf97feafe883b58d2"}, {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb0932dc158471523c9637e807d9bfb93e06a95cbf010f1a38b98623b929ef2b"}, {file = "MarkupSafe-2.1.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9402b03f1a1b4dc4c19845e5c749e3ab82d5078d16a2a4c2cd2df62d57bb0707"}, @@ -6349,7 +6582,7 @@ files = [ name = "pillow" version = "10.1.0" description = "Python Imaging Library (Fork)" -optional = true +optional = false python-versions = ">=3.8" files = [ {file = "Pillow-10.1.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:1ab05f3db77e98f93964697c8efc49c7954b08dd61cff526b7f2531a22410106"}, @@ -6658,7 +6891,7 @@ wcwidth = "*" name = "proto-plus" version = "1.22.3" description = "Beautiful, Pythonic protocol buffers." -optional = true +optional = false python-versions = ">=3.6" files = [ {file = "proto-plus-1.22.3.tar.gz", hash = "sha256:fdcd09713cbd42480740d2fe29c990f7fbd885a67efc328aa8be6ee3e9f76a6b"}, @@ -6986,7 +7219,7 @@ files = [ name = "pyasn1" version = "0.5.0" description = "Pure-Python implementation of ASN.1 types and DER/BER/CER codecs (X.208)" -optional = true +optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ {file = "pyasn1-0.5.0-py2.py3-none-any.whl", hash = "sha256:87a2121042a1ac9358cabcaf1d07680ff97ee6404333bacca15f76aa8ad01a57"}, @@ -6997,7 +7230,7 @@ files = [ name = "pyasn1-modules" version = "0.3.0" description = "A collection of ASN.1-based protocols modules" -optional = true +optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ {file = "pyasn1_modules-0.3.0-py2.py3-none-any.whl", hash = "sha256:d3ccd6ed470d9ffbc716be08bd90efbd44d0734bc9303818f7336070984a162d"}, @@ -7970,7 +8203,6 @@ files = [ {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, - {file = "PyYAML-6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290"}, {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, @@ -7978,15 +8210,8 @@ files = [ {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, - {file = "PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b"}, {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, - {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, - {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, - {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, - {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, - {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, - {file = "PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df"}, {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}, {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"}, {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"}, @@ -8003,7 +8228,6 @@ files = [ {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, - {file = "PyYAML-6.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6"}, {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, @@ -8011,7 +8235,6 @@ files = [ {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, - {file = "PyYAML-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5"}, {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, @@ -8789,7 +9012,7 @@ files = [ name = "rsa" version = "4.9" description = "Pure-Python RSA implementation" -optional = true +optional = false python-versions = ">=3.6,<4" files = [ {file = "rsa-4.9-py3-none-any.whl", hash = "sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7"}, @@ -8844,7 +9067,7 @@ files = [ name = "s3transfer" version = "0.7.0" description = "An Amazon S3 Transfer Manager" -optional = true +optional = false python-versions = ">= 3.7" files = [ {file = "s3transfer-0.7.0-py3-none-any.whl", hash = "sha256:10d6923c6359175f264811ef4bf6161a3156ce8e350e705396a7557d6293c33a"}, @@ -9194,7 +9417,7 @@ files = [ name = "shapely" version = "2.0.2" description = "Manipulation and analysis of geometric objects" -optional = true +optional = false python-versions = ">=3.7" files = [ {file = "shapely-2.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6ca8cffbe84ddde8f52b297b53f8e0687bd31141abb2c373fd8a9f032df415d6"}, @@ -9410,54 +9633,6 @@ description = "Database Abstraction Library" optional = false python-versions = ">=3.7" files = [ - {file = "SQLAlchemy-2.0.22-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f146c61ae128ab43ea3a0955de1af7e1633942c2b2b4985ac51cc292daf33222"}, - {file = "SQLAlchemy-2.0.22-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:875de9414393e778b655a3d97d60465eb3fae7c919e88b70cc10b40b9f56042d"}, - {file = "SQLAlchemy-2.0.22-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:13790cb42f917c45c9c850b39b9941539ca8ee7917dacf099cc0b569f3d40da7"}, - {file = "SQLAlchemy-2.0.22-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e04ab55cf49daf1aeb8c622c54d23fa4bec91cb051a43cc24351ba97e1dd09f5"}, - {file = "SQLAlchemy-2.0.22-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:a42c9fa3abcda0dcfad053e49c4f752eef71ecd8c155221e18b99d4224621176"}, - {file = "SQLAlchemy-2.0.22-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:14cd3bcbb853379fef2cd01e7c64a5d6f1d005406d877ed9509afb7a05ff40a5"}, - {file = "SQLAlchemy-2.0.22-cp310-cp310-win32.whl", hash = "sha256:d143c5a9dada696bcfdb96ba2de4a47d5a89168e71d05a076e88a01386872f97"}, - {file = "SQLAlchemy-2.0.22-cp310-cp310-win_amd64.whl", hash = "sha256:ccd87c25e4c8559e1b918d46b4fa90b37f459c9b4566f1dfbce0eb8122571547"}, - {file = "SQLAlchemy-2.0.22-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4f6ff392b27a743c1ad346d215655503cec64405d3b694228b3454878bf21590"}, - {file = "SQLAlchemy-2.0.22-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f776c2c30f0e5f4db45c3ee11a5f2a8d9de68e81eb73ec4237de1e32e04ae81c"}, - {file = "SQLAlchemy-2.0.22-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c8f1792d20d2f4e875ce7a113f43c3561ad12b34ff796b84002a256f37ce9437"}, - {file = "SQLAlchemy-2.0.22-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d80eeb5189d7d4b1af519fc3f148fe7521b9dfce8f4d6a0820e8f5769b005051"}, - {file = "SQLAlchemy-2.0.22-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:69fd9e41cf9368afa034e1c81f3570afb96f30fcd2eb1ef29cb4d9371c6eece2"}, - {file = "SQLAlchemy-2.0.22-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:54bcceaf4eebef07dadfde424f5c26b491e4a64e61761dea9459103ecd6ccc95"}, - {file = "SQLAlchemy-2.0.22-cp311-cp311-win32.whl", hash = "sha256:7ee7ccf47aa503033b6afd57efbac6b9e05180f492aeed9fcf70752556f95624"}, - {file = "SQLAlchemy-2.0.22-cp311-cp311-win_amd64.whl", hash = "sha256:b560f075c151900587ade06706b0c51d04b3277c111151997ea0813455378ae0"}, - {file = "SQLAlchemy-2.0.22-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:2c9bac865ee06d27a1533471405ad240a6f5d83195eca481f9fc4a71d8b87df8"}, - {file = "SQLAlchemy-2.0.22-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:625b72d77ac8ac23da3b1622e2da88c4aedaee14df47c8432bf8f6495e655de2"}, - {file = "SQLAlchemy-2.0.22-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b39a6e21110204a8c08d40ff56a73ba542ec60bab701c36ce721e7990df49fb9"}, - {file = "SQLAlchemy-2.0.22-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:53a766cb0b468223cafdf63e2d37f14a4757476157927b09300c8c5832d88560"}, - {file = "SQLAlchemy-2.0.22-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0e1ce8ebd2e040357dde01a3fb7d30d9b5736b3e54a94002641dfd0aa12ae6ce"}, - {file = "SQLAlchemy-2.0.22-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:505f503763a767556fa4deae5194b2be056b64ecca72ac65224381a0acab7ebe"}, - {file = "SQLAlchemy-2.0.22-cp312-cp312-win32.whl", hash = "sha256:154a32f3c7b00de3d090bc60ec8006a78149e221f1182e3edcf0376016be9396"}, - {file = "SQLAlchemy-2.0.22-cp312-cp312-win_amd64.whl", hash = "sha256:129415f89744b05741c6f0b04a84525f37fbabe5dc3774f7edf100e7458c48cd"}, - {file = "SQLAlchemy-2.0.22-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3940677d341f2b685a999bffe7078697b5848a40b5f6952794ffcf3af150c301"}, - {file = "SQLAlchemy-2.0.22-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55914d45a631b81a8a2cb1a54f03eea265cf1783241ac55396ec6d735be14883"}, - {file = "SQLAlchemy-2.0.22-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2096d6b018d242a2bcc9e451618166f860bb0304f590d205173d317b69986c95"}, - {file = "SQLAlchemy-2.0.22-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:19c6986cf2fb4bc8e0e846f97f4135a8e753b57d2aaaa87c50f9acbe606bd1db"}, - {file = "SQLAlchemy-2.0.22-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:6ac28bd6888fe3c81fbe97584eb0b96804bd7032d6100b9701255d9441373ec1"}, - {file = "SQLAlchemy-2.0.22-cp37-cp37m-win32.whl", hash = "sha256:cb9a758ad973e795267da334a92dd82bb7555cb36a0960dcabcf724d26299db8"}, - {file = "SQLAlchemy-2.0.22-cp37-cp37m-win_amd64.whl", hash = "sha256:40b1206a0d923e73aa54f0a6bd61419a96b914f1cd19900b6c8226899d9742ad"}, - {file = "SQLAlchemy-2.0.22-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:3aa1472bf44f61dd27987cd051f1c893b7d3b17238bff8c23fceaef4f1133868"}, - {file = "SQLAlchemy-2.0.22-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:56a7e2bb639df9263bf6418231bc2a92a773f57886d371ddb7a869a24919face"}, - {file = "SQLAlchemy-2.0.22-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ccca778c0737a773a1ad86b68bda52a71ad5950b25e120b6eb1330f0df54c3d0"}, - {file = "SQLAlchemy-2.0.22-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7c6c3e9350f9fb16de5b5e5fbf17b578811a52d71bb784cc5ff71acb7de2a7f9"}, - {file = "SQLAlchemy-2.0.22-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:564e9f9e4e6466273dbfab0e0a2e5fe819eec480c57b53a2cdee8e4fdae3ad5f"}, - {file = "SQLAlchemy-2.0.22-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:af66001d7b76a3fab0d5e4c1ec9339ac45748bc4a399cbc2baa48c1980d3c1f4"}, - {file = "SQLAlchemy-2.0.22-cp38-cp38-win32.whl", hash = "sha256:9e55dff5ec115316dd7a083cdc1a52de63693695aecf72bc53a8e1468ce429e5"}, - {file = "SQLAlchemy-2.0.22-cp38-cp38-win_amd64.whl", hash = "sha256:4e869a8ff7ee7a833b74868a0887e8462445ec462432d8cbeff5e85f475186da"}, - {file = "SQLAlchemy-2.0.22-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9886a72c8e6371280cb247c5d32c9c8fa141dc560124348762db8a8b236f8692"}, - {file = "SQLAlchemy-2.0.22-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a571bc8ac092a3175a1d994794a8e7a1f2f651e7c744de24a19b4f740fe95034"}, - {file = "SQLAlchemy-2.0.22-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8db5ba8b7da759b727faebc4289a9e6a51edadc7fc32207a30f7c6203a181592"}, - {file = "SQLAlchemy-2.0.22-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b0b3f2686c3f162123adba3cb8b626ed7e9b8433ab528e36ed270b4f70d1cdb"}, - {file = "SQLAlchemy-2.0.22-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0c1fea8c0abcb070ffe15311853abfda4e55bf7dc1d4889497b3403629f3bf00"}, - {file = "SQLAlchemy-2.0.22-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:4bb062784f37b2d75fd9b074c8ec360ad5df71f933f927e9e95c50eb8e05323c"}, - {file = "SQLAlchemy-2.0.22-cp39-cp39-win32.whl", hash = "sha256:58a3aba1bfb32ae7af68da3f277ed91d9f57620cf7ce651db96636790a78b736"}, - {file = "SQLAlchemy-2.0.22-cp39-cp39-win_amd64.whl", hash = "sha256:92e512a6af769e4725fa5b25981ba790335d42c5977e94ded07db7d641490a85"}, - {file = "SQLAlchemy-2.0.22-py3-none-any.whl", hash = "sha256:3076740335e4aaadd7deb3fe6dcb96b3015f1613bd190a4e1634e1b99b02ec86"}, {file = "SQLAlchemy-2.0.22.tar.gz", hash = "sha256:5434cc601aa17570d79e5377f5fd45ff92f9379e2abed0be5e8c2fba8d353d2b"}, ] @@ -9467,7 +9642,7 @@ typing-extensions = ">=4.2.0" [package.extras] aiomysql = ["aiomysql (>=0.2.0)", "greenlet (!=0.4.17)"] -aiosqlite = ["aiosqlite", "greenlet (!=0.4.17)", "typing-extensions (!=3.10.0.1)"] +aiosqlite = ["aiosqlite", "greenlet (!=0.4.17)", "typing_extensions (!=3.10.0.1)"] asyncio = ["greenlet (!=0.4.17)"] asyncmy = ["asyncmy (>=0.2.3,!=0.2.4,!=0.2.6)", "greenlet (!=0.4.17)"] mariadb-connector = ["mariadb (>=1.0.1,!=1.1.2,!=1.1.5)"] @@ -9477,7 +9652,7 @@ mssql-pyodbc = ["pyodbc"] mypy = ["mypy (>=0.910)"] mysql = ["mysqlclient (>=1.4.0)"] mysql-connector = ["mysql-connector-python"] -oracle = ["cx-oracle (>=7)"] +oracle = ["cx_oracle (>=7)"] oracle-oracledb = ["oracledb (>=1.0.1)"] postgresql = ["psycopg2 (>=2.7)"] postgresql-asyncpg = ["asyncpg", "greenlet (!=0.4.17)"] @@ -9487,7 +9662,7 @@ postgresql-psycopg2binary = ["psycopg2-binary"] postgresql-psycopg2cffi = ["psycopg2cffi"] postgresql-psycopgbinary = ["psycopg[binary] (>=3.0.7)"] pymysql = ["pymysql"] -sqlcipher = ["sqlcipher3-binary"] +sqlcipher = ["sqlcipher3_binary"] [[package]] name = "sqlite-vss" @@ -11526,4 +11701,4 @@ text-helpers = ["chardet"] [metadata] lock-version = "2.0" python-versions = ">=3.8.1,<4.0" -content-hash = "501d840abb5617ed14802ac7c4297c344950d5f423e52f0228d22cd6dd36c177" +content-hash = "42f9a84ddf54a73b6c61fbfa83bdb07865fe1cf9358d63471131c6d9d6fc4c7c" diff --git a/libs/langchain/pyproject.toml b/libs/langchain/pyproject.toml index 3f0e8b2a20e..ba13ac869fc 100644 --- a/libs/langchain/pyproject.toml +++ b/libs/langchain/pyproject.toml @@ -140,7 +140,7 @@ rspace_client = {version = "^2.5.0", optional = true} upstash-redis = {version = "^0.15.0", optional = true} azure-ai-textanalytics = {version = "^5.3.0", optional = true} google-cloud-documentai = {version = "^2.20.1", optional = true} -fireworks-ai = {version = "^0.6.0", optional = true, python = ">=3.9,<4.0"} +fireworks-ai = {version = "^0.9.0", optional = true} javelin-sdk = {version = "^0.1.8", optional = true} hologres-vector = {version = "^0.0.6", optional = true} praw = {version = "^7.7.1", optional = true} @@ -205,6 +205,9 @@ python-dotenv = "^1.0.0" cassio = "^0.1.0" tiktoken = "^0.3.2" anthropic = "^0.3.11" +fireworks-ai = "^0.9.0" +boto3 = ">=1.28.57,<2" +google-cloud-aiplatform = ">=1.37.0,<2" [tool.poetry.group.lint] optional = true diff --git a/libs/langchain/tests/integration_tests/chat_models/test_azure_openai.py b/libs/langchain/tests/integration_tests/chat_models/test_azure_openai.py index ef911dc00c8..9a69008f656 100644 --- a/libs/langchain/tests/integration_tests/chat_models/test_azure_openai.py +++ b/libs/langchain/tests/integration_tests/chat_models/test_azure_openai.py @@ -13,14 +13,17 @@ from tests.unit_tests.callbacks.fake_callback_handler import FakeCallbackHandler OPENAI_API_VERSION = os.environ.get("AZURE_OPENAI_API_VERSION", "") OPENAI_API_BASE = os.environ.get("AZURE_OPENAI_API_BASE", "") OPENAI_API_KEY = os.environ.get("AZURE_OPENAI_API_KEY", "") -DEPLOYMENT_NAME = os.environ.get("AZURE_OPENAI_DEPLOYMENT_NAME", "") +DEPLOYMENT_NAME = os.environ.get( + "AZURE_OPENAI_DEPLOYMENT_NAME", + os.environ.get("AZURE_OPENAI_CHAT_DEPLOYMENT_NAME", ""), +) def _get_llm(**kwargs: Any) -> AzureChatOpenAI: return AzureChatOpenAI( deployment_name=DEPLOYMENT_NAME, openai_api_version=OPENAI_API_VERSION, - openai_api_base=OPENAI_API_BASE, + azure_endpoint=OPENAI_API_BASE, openai_api_key=OPENAI_API_KEY, **kwargs, ) diff --git a/libs/langchain/tests/integration_tests/chat_models/test_fireworks.py b/libs/langchain/tests/integration_tests/chat_models/test_fireworks.py index fdffcddd018..fc25e7febcc 100644 --- a/libs/langchain/tests/integration_tests/chat_models/test_fireworks.py +++ b/libs/langchain/tests/integration_tests/chat_models/test_fireworks.py @@ -102,19 +102,16 @@ def test_fireworks_batch(chat: ChatFireworks) -> None: """Test batch tokens from ChatFireworks.""" result = chat.batch( [ - "What is the weather in Redwood City, CA today", - "What is the weather in Redwood City, CA today", - "What is the weather in Redwood City, CA today", - "What is the weather in Redwood City, CA today", - "What is the weather in Redwood City, CA today", - "What is the weather in Redwood City, CA today", + "What is the weather in Redwood City, CA today?", + "What is the weather in Redwood City, CA today?", + "What is the weather in Redwood City, CA today?", ], - config={"max_concurrency": 5}, + config={"max_concurrency": 2}, stop=[","], ) for token in result: assert isinstance(token.content, str) - assert token.content[-1] == "," + assert token.content[-1] == ",", token.content @pytest.mark.scheduled @@ -122,12 +119,8 @@ async def test_fireworks_abatch(chat: ChatFireworks) -> None: """Test batch tokens from ChatFireworks.""" result = await chat.abatch( [ - "What is the weather in Redwood City, CA today", - "What is the weather in Redwood City, CA today", - "What is the weather in Redwood City, CA today", - "What is the weather in Redwood City, CA today", - "What is the weather in Redwood City, CA today", - "What is the weather in Redwood City, CA today", + "What is the weather in Redwood City, CA today?", + "What is the weather in Redwood City, CA today?", ], config={"max_concurrency": 5}, stop=[","], diff --git a/libs/langchain/tests/integration_tests/chat_models/test_openai.py b/libs/langchain/tests/integration_tests/chat_models/test_openai.py index 55977937f30..8edf4f22c84 100644 --- a/libs/langchain/tests/integration_tests/chat_models/test_openai.py +++ b/libs/langchain/tests/integration_tests/chat_models/test_openai.py @@ -72,7 +72,6 @@ def test_chat_openai_generate() -> None: assert isinstance(response, LLMResult) assert len(response.generations) == 2 assert response.llm_output - assert "system_fingerprint" in response.llm_output for generations in response.generations: assert len(generations) == 2 for generation in generations: @@ -178,7 +177,6 @@ async def test_async_chat_openai() -> None: assert isinstance(response, LLMResult) assert len(response.generations) == 2 assert response.llm_output - assert "system_fingerprint" in response.llm_output for generations in response.generations: assert len(generations) == 2 for generation in generations: diff --git a/libs/langchain/tests/integration_tests/embeddings/test_azure_openai.py b/libs/langchain/tests/integration_tests/embeddings/test_azure_openai.py index 45f5b48d39a..2ab52ca7d63 100644 --- a/libs/langchain/tests/integration_tests/embeddings/test_azure_openai.py +++ b/libs/langchain/tests/integration_tests/embeddings/test_azure_openai.py @@ -7,14 +7,26 @@ import pytest from langchain.embeddings import AzureOpenAIEmbeddings +OPENAI_API_VERSION = os.environ.get("AZURE_OPENAI_API_VERSION", "") +OPENAI_API_BASE = os.environ.get("AZURE_OPENAI_API_BASE", "") +OPENAI_API_KEY = os.environ.get("AZURE_OPENAI_API_KEY", "") +DEPLOYMENT_NAME = os.environ.get( + "AZURE_OPENAI_DEPLOYMENT_NAME", + os.environ.get("AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT_NAME", ""), +) + def _get_embeddings(**kwargs: Any) -> AzureOpenAIEmbeddings: return AzureOpenAIEmbeddings( - openai_api_version=os.environ.get("AZURE_OPENAI_API_VERSION", ""), + azure_deployment=DEPLOYMENT_NAME, + api_version=OPENAI_API_VERSION, + openai_api_base=OPENAI_API_BASE, + openai_api_key=OPENAI_API_KEY, **kwargs, ) +@pytest.mark.scheduled def test_azure_openai_embedding_documents() -> None: """Test openai embeddings.""" documents = ["foo bar"] @@ -24,6 +36,7 @@ def test_azure_openai_embedding_documents() -> None: assert len(output[0]) == 1536 +@pytest.mark.scheduled def test_azure_openai_embedding_documents_multiple() -> None: """Test openai embeddings.""" documents = ["foo bar", "bar foo", "foo"] @@ -37,6 +50,7 @@ def test_azure_openai_embedding_documents_multiple() -> None: assert len(output[2]) == 1536 +@pytest.mark.scheduled def test_azure_openai_embedding_documents_chunk_size() -> None: """Test openai embeddings.""" documents = ["foo bar"] * 20 @@ -49,6 +63,7 @@ def test_azure_openai_embedding_documents_chunk_size() -> None: assert all([len(out) == 1536 for out in output]) +@pytest.mark.scheduled async def test_azure_openai_embedding_documents_async_multiple() -> None: """Test openai embeddings.""" documents = ["foo bar", "bar foo", "foo"] @@ -61,6 +76,7 @@ async def test_azure_openai_embedding_documents_async_multiple() -> None: assert len(output[2]) == 1536 +@pytest.mark.scheduled def test_azure_openai_embedding_query() -> None: """Test openai embeddings.""" document = "foo bar" @@ -69,6 +85,7 @@ def test_azure_openai_embedding_query() -> None: assert len(output) == 1536 +@pytest.mark.scheduled async def test_azure_openai_embedding_async_query() -> None: """Test openai embeddings.""" document = "foo bar" @@ -94,11 +111,13 @@ def test_azure_openai_embedding_with_empty_string() -> None: assert len(output[1]) == 1536 +@pytest.mark.scheduled def test_embed_documents_normalized() -> None: output = _get_embeddings().embed_documents(["foo walked to the market"]) assert np.isclose(np.linalg.norm(output[0]), 1.0) +@pytest.mark.scheduled def test_embed_query_normalized() -> None: output = _get_embeddings().embed_query("foo walked to the market") assert np.isclose(np.linalg.norm(output), 1.0) diff --git a/libs/langchain/tests/integration_tests/llms/test_azure_openai.py b/libs/langchain/tests/integration_tests/llms/test_azure_openai.py index 593d3a20b79..cdff07289c7 100644 --- a/libs/langchain/tests/integration_tests/llms/test_azure_openai.py +++ b/libs/langchain/tests/integration_tests/llms/test_azure_openai.py @@ -12,7 +12,10 @@ from tests.unit_tests.callbacks.fake_callback_handler import FakeCallbackHandler OPENAI_API_VERSION = os.environ.get("AZURE_OPENAI_API_VERSION", "") OPENAI_API_BASE = os.environ.get("AZURE_OPENAI_API_BASE", "") OPENAI_API_KEY = os.environ.get("AZURE_OPENAI_API_KEY", "") -DEPLOYMENT_NAME = os.environ.get("AZURE_OPENAI_DEPLOYMENT_NAME", "") +DEPLOYMENT_NAME = os.environ.get( + "AZURE_OPENAI_DEPLOYMENT_NAME", + os.environ.get("AZURE_OPENAI_LLM_DEPLOYMENT_NAME", ""), +) def _get_llm(**kwargs: Any) -> AzureOpenAI: @@ -25,7 +28,6 @@ def _get_llm(**kwargs: Any) -> AzureOpenAI: ) -@pytest.mark.scheduled @pytest.fixture def llm() -> AzureOpenAI: return _get_llm( diff --git a/libs/langchain/tests/integration_tests/llms/test_fireworks.py b/libs/langchain/tests/integration_tests/llms/test_fireworks.py index bf34e0cf950..10134eca1e9 100644 --- a/libs/langchain/tests/integration_tests/llms/test_fireworks.py +++ b/libs/langchain/tests/integration_tests/llms/test_fireworks.py @@ -1,5 +1,4 @@ """Test Fireworks AI API Wrapper.""" -import sys from typing import Generator import pytest @@ -13,9 +12,6 @@ from langchain_core.prompts.chat import ( from langchain.chains import LLMChain from langchain.llms.fireworks import Fireworks -if sys.version_info < (3, 9): - pytest.skip("fireworks-ai requires Python > 3.8", allow_module_level=True) - @pytest.fixture def llm() -> Fireworks: @@ -71,14 +67,10 @@ async def test_fireworks_ainvoke(llm: Fireworks) -> None: @pytest.mark.scheduled def test_fireworks_batch(llm: Fireworks) -> None: """Tests completion with invoke""" - llm = Fireworks() output = llm.batch( [ "How is the weather in New York today?", "How is the weather in New York today?", - "How is the weather in New York today?", - "How is the weather in New York today?", - "How is the weather in New York today?", ], stop=[","], ) @@ -94,9 +86,6 @@ async def test_fireworks_abatch(llm: Fireworks) -> None: [ "How is the weather in New York today?", "How is the weather in New York today?", - "How is the weather in New York today?", - "How is the weather in New York today?", - "How is the weather in New York today?", ], stop=[","], ) From ff0d5514c11aa0c9de7e8205cf8aa68f3518a61e Mon Sep 17 00:00:00 2001 From: Erick Friis Date: Fri, 8 Dec 2023 10:27:21 -0800 Subject: [PATCH 3/8] langchain[patch]: fix scheduled testing ci variables (#14459) --- .github/workflows/scheduled_test.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/scheduled_test.yml b/.github/workflows/scheduled_test.yml index 11c4008d28a..4b477ed64b2 100644 --- a/.github/workflows/scheduled_test.yml +++ b/.github/workflows/scheduled_test.yml @@ -62,7 +62,9 @@ jobs: AZURE_OPENAI_API_VERSION: ${{ secrets.AZURE_OPENAI_API_VERSION }} AZURE_OPENAI_API_BASE: ${{ secrets.AZURE_OPENAI_API_BASE }} AZURE_OPENAI_API_KEY: ${{ secrets.AZURE_OPENAI_API_KEY }} - AZURE_OPENAI_DEPLOYMENT_NAME: ${{ secrets.AZURE_OPENAI_DEPLOYMENT_NAME }} + AZURE_OPENAI_CHAT_DEPLOYMENT_NAME: ${{ secrets.AZURE_OPENAI_CHAT_DEPLOYMENT_NAME }} + AZURE_OPENAI_LLM_DEPLOYMENT_NAME: ${{ secrets.AZURE_OPENAI_LLM_DEPLOYMENT_NAME }} + AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT_NAME: ${{ secrets.AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT_NAME }} FIREWORKS_API_KEY: ${{ secrets.FIREWORKS_API_KEY }} run: | make scheduled_tests From 02ee0073cf0fc5b5cfbe0edad23fb96919f62ec8 Mon Sep 17 00:00:00 2001 From: Harrison Chase Date: Fri, 8 Dec 2023 10:31:05 -0800 Subject: [PATCH 4/8] revoke serialization (#14456) --- .../langchain/agents/openai_assistant/base.py | 8 ++++++++ libs/langchain/langchain/agents/schema.py | 4 ++++ .../langchain/chains/api/openapi/requests_chain.py | 4 ++++ .../langchain/chains/api/openapi/response_chain.py | 4 ++++ libs/langchain/langchain/chains/conversation/base.py | 4 ++++ libs/langchain/langchain/chains/flare/base.py | 8 ++++++++ libs/langchain/langchain/chat_models/anyscale.py | 4 ++++ libs/langchain/langchain/chat_models/everlyai.py | 4 ++++ libs/langchain/langchain/chat_models/jinachat.py | 2 +- libs/langchain/langchain/chat_models/konko.py | 2 +- libs/langchain/langchain/chat_models/ollama.py | 2 +- .../langchain/chat_models/promptlayer_openai.py | 4 ++++ .../langchain/chat_models/volcengine_maas.py | 2 +- .../embeddings_redundant_filter.py | 4 ++++ .../langchain/evaluation/comparison/eval_chain.py | 4 ++++ .../langchain/evaluation/criteria/eval_chain.py | 8 ++++++++ libs/langchain/langchain/evaluation/qa/eval_chain.py | 12 ++++++++++++ .../langchain/evaluation/qa/generate_chain.py | 4 ++++ .../langchain/evaluation/scoring/eval_chain.py | 4 ++++ libs/langchain/langchain/indexes/_api.py | 4 ++++ libs/langchain/langchain/llms/anyscale.py | 4 ++++ libs/langchain/langchain/llms/openlm.py | 4 ++++ libs/langchain/langchain/llms/promptlayer_openai.py | 4 ++++ libs/langchain/langchain/llms/tongyi.py | 2 +- libs/langchain/langchain/llms/vllm.py | 4 ++++ libs/langchain/langchain/llms/watsonxllm.py | 2 +- 26 files changed, 106 insertions(+), 6 deletions(-) diff --git a/libs/langchain/langchain/agents/openai_assistant/base.py b/libs/langchain/langchain/agents/openai_assistant/base.py index 79395428589..fa827adca5f 100644 --- a/libs/langchain/langchain/agents/openai_assistant/base.py +++ b/libs/langchain/langchain/agents/openai_assistant/base.py @@ -28,6 +28,10 @@ class OpenAIAssistantFinish(AgentFinish): run_id: str thread_id: str + @classmethod + def is_lc_serializable(cls) -> bool: + return False + class OpenAIAssistantAction(AgentAction): """AgentAction with info needed to submit custom tool output to existing run.""" @@ -36,6 +40,10 @@ class OpenAIAssistantAction(AgentAction): run_id: str thread_id: str + @classmethod + def is_lc_serializable(cls) -> bool: + return False + def _get_openai_client() -> openai.OpenAI: try: diff --git a/libs/langchain/langchain/agents/schema.py b/libs/langchain/langchain/agents/schema.py index 6c16cad9e6d..e0c00fb95e8 100644 --- a/libs/langchain/langchain/agents/schema.py +++ b/libs/langchain/langchain/agents/schema.py @@ -7,6 +7,10 @@ from langchain_core.prompts.chat import ChatPromptTemplate class AgentScratchPadChatPromptTemplate(ChatPromptTemplate): """Chat prompt template for the agent scratchpad.""" + @classmethod + def is_lc_serializable(cls) -> bool: + return False + def _construct_agent_scratchpad( self, intermediate_steps: List[Tuple[AgentAction, str]] ) -> str: diff --git a/libs/langchain/langchain/chains/api/openapi/requests_chain.py b/libs/langchain/langchain/chains/api/openapi/requests_chain.py index 50179cc9029..cca19165ee2 100644 --- a/libs/langchain/langchain/chains/api/openapi/requests_chain.py +++ b/libs/langchain/langchain/chains/api/openapi/requests_chain.py @@ -40,6 +40,10 @@ class APIRequesterOutputParser(BaseOutputParser): class APIRequesterChain(LLMChain): """Get the request parser.""" + @classmethod + def is_lc_serializable(cls) -> bool: + return False + @classmethod def from_llm_and_typescript( cls, diff --git a/libs/langchain/langchain/chains/api/openapi/response_chain.py b/libs/langchain/langchain/chains/api/openapi/response_chain.py index 1c6156091f2..06e7686b4a3 100644 --- a/libs/langchain/langchain/chains/api/openapi/response_chain.py +++ b/libs/langchain/langchain/chains/api/openapi/response_chain.py @@ -40,6 +40,10 @@ class APIResponderOutputParser(BaseOutputParser): class APIResponderChain(LLMChain): """Get the response parser.""" + @classmethod + def is_lc_serializable(cls) -> bool: + return False + @classmethod def from_llm( cls, llm: BaseLanguageModel, verbose: bool = True, **kwargs: Any diff --git a/libs/langchain/langchain/chains/conversation/base.py b/libs/langchain/langchain/chains/conversation/base.py index d05e7920b5e..f0c42217343 100644 --- a/libs/langchain/langchain/chains/conversation/base.py +++ b/libs/langchain/langchain/chains/conversation/base.py @@ -36,6 +36,10 @@ class ConversationChain(LLMChain): extra = Extra.forbid arbitrary_types_allowed = True + @classmethod + def is_lc_serializable(cls) -> bool: + return False + @property def input_keys(self) -> List[str]: """Use this since so some prompt vars come from history.""" diff --git a/libs/langchain/langchain/chains/flare/base.py b/libs/langchain/langchain/chains/flare/base.py index 638212d54ef..de673f6cb86 100644 --- a/libs/langchain/langchain/chains/flare/base.py +++ b/libs/langchain/langchain/chains/flare/base.py @@ -29,6 +29,10 @@ class _ResponseChain(LLMChain): prompt: BasePromptTemplate = PROMPT + @classmethod + def is_lc_serializable(cls) -> bool: + return False + @property def input_keys(self) -> List[str]: return self.prompt.input_variables @@ -77,6 +81,10 @@ class QuestionGeneratorChain(LLMChain): prompt: BasePromptTemplate = QUESTION_GENERATOR_PROMPT """Prompt template for the chain.""" + @classmethod + def is_lc_serializable(cls) -> bool: + return False + @property def input_keys(self) -> List[str]: """Input keys for the chain.""" diff --git a/libs/langchain/langchain/chat_models/anyscale.py b/libs/langchain/langchain/chat_models/anyscale.py index 27efc4a1abf..ff579d27f5f 100644 --- a/libs/langchain/langchain/chat_models/anyscale.py +++ b/libs/langchain/langchain/chat_models/anyscale.py @@ -57,6 +57,10 @@ class ChatAnyscale(ChatOpenAI): def lc_secrets(self) -> Dict[str, str]: return {"anyscale_api_key": "ANYSCALE_API_KEY"} + @classmethod + def is_lc_serializable(cls) -> bool: + return False + anyscale_api_key: SecretStr """AnyScale Endpoints API keys.""" model_name: str = Field(default=DEFAULT_MODEL, alias="model") diff --git a/libs/langchain/langchain/chat_models/everlyai.py b/libs/langchain/langchain/chat_models/everlyai.py index 95bddaba5b0..046f00f6e77 100644 --- a/libs/langchain/langchain/chat_models/everlyai.py +++ b/libs/langchain/langchain/chat_models/everlyai.py @@ -51,6 +51,10 @@ class ChatEverlyAI(ChatOpenAI): def lc_secrets(self) -> Dict[str, str]: return {"everlyai_api_key": "EVERLYAI_API_KEY"} + @classmethod + def is_lc_serializable(cls) -> bool: + return False + everlyai_api_key: Optional[str] = None """EverlyAI Endpoints API keys.""" model_name: str = Field(default=DEFAULT_MODEL, alias="model") diff --git a/libs/langchain/langchain/chat_models/jinachat.py b/libs/langchain/langchain/chat_models/jinachat.py index bdb77e25b20..abaf57b5ff3 100644 --- a/libs/langchain/langchain/chat_models/jinachat.py +++ b/libs/langchain/langchain/chat_models/jinachat.py @@ -165,7 +165,7 @@ class JinaChat(BaseChatModel): @classmethod def is_lc_serializable(cls) -> bool: """Return whether this model can be serialized by Langchain.""" - return True + return False client: Any #: :meta private: temperature: float = 0.7 diff --git a/libs/langchain/langchain/chat_models/konko.py b/libs/langchain/langchain/chat_models/konko.py index eaafb108105..8065c3cb107 100644 --- a/libs/langchain/langchain/chat_models/konko.py +++ b/libs/langchain/langchain/chat_models/konko.py @@ -57,7 +57,7 @@ class ChatKonko(BaseChatModel): @classmethod def is_lc_serializable(cls) -> bool: """Return whether this model can be serialized by Langchain.""" - return True + return False client: Any = None #: :meta private: model: str = Field(default=DEFAULT_MODEL, alias="model") diff --git a/libs/langchain/langchain/chat_models/ollama.py b/libs/langchain/langchain/chat_models/ollama.py index b356733566d..819f657fb96 100644 --- a/libs/langchain/langchain/chat_models/ollama.py +++ b/libs/langchain/langchain/chat_models/ollama.py @@ -50,7 +50,7 @@ class ChatOllama(BaseChatModel, _OllamaCommon): @classmethod def is_lc_serializable(cls) -> bool: """Return whether this model can be serialized by Langchain.""" - return True + return False def _format_message_as_text(self, message: BaseMessage) -> str: if isinstance(message, ChatMessage): diff --git a/libs/langchain/langchain/chat_models/promptlayer_openai.py b/libs/langchain/langchain/chat_models/promptlayer_openai.py index e7146b6ecaa..bab7a1ffdb0 100644 --- a/libs/langchain/langchain/chat_models/promptlayer_openai.py +++ b/libs/langchain/langchain/chat_models/promptlayer_openai.py @@ -39,6 +39,10 @@ class PromptLayerChatOpenAI(ChatOpenAI): pl_tags: Optional[List[str]] return_pl_id: Optional[bool] = False + @classmethod + def is_lc_serializable(cls) -> bool: + return False + def _generate( self, messages: List[BaseMessage], diff --git a/libs/langchain/langchain/chat_models/volcengine_maas.py b/libs/langchain/langchain/chat_models/volcengine_maas.py index 5ce8378d94f..2af47541793 100644 --- a/libs/langchain/langchain/chat_models/volcengine_maas.py +++ b/libs/langchain/langchain/chat_models/volcengine_maas.py @@ -76,7 +76,7 @@ class VolcEngineMaasChat(BaseChatModel, VolcEngineMaasBase): @classmethod def is_lc_serializable(cls) -> bool: """Return whether this model can be serialized by Langchain.""" - return True + return False @property def _identifying_params(self) -> Dict[str, Any]: diff --git a/libs/langchain/langchain/document_transformers/embeddings_redundant_filter.py b/libs/langchain/langchain/document_transformers/embeddings_redundant_filter.py index d7772a3092d..276ac2061f7 100644 --- a/libs/langchain/langchain/document_transformers/embeddings_redundant_filter.py +++ b/libs/langchain/langchain/document_transformers/embeddings_redundant_filter.py @@ -15,6 +15,10 @@ class _DocumentWithState(Document): state: dict = Field(default_factory=dict) """State associated with the document.""" + @classmethod + def is_lc_serializable(cls) -> bool: + return False + def to_document(self) -> Document: """Convert the DocumentWithState to a Document.""" return Document(page_content=self.page_content, metadata=self.metadata) diff --git a/libs/langchain/langchain/evaluation/comparison/eval_chain.py b/libs/langchain/langchain/evaluation/comparison/eval_chain.py index 65f8fc939a8..aaf97b22178 100644 --- a/libs/langchain/langchain/evaluation/comparison/eval_chain.py +++ b/libs/langchain/langchain/evaluation/comparison/eval_chain.py @@ -188,6 +188,10 @@ class PairwiseStringEvalChain(PairwiseStringEvaluator, LLMEvalChain, LLMChain): default_factory=PairwiseStringResultOutputParser ) + @classmethod + def is_lc_serializable(cls) -> bool: + return False + class Config: """Configuration for the PairwiseStringEvalChain.""" diff --git a/libs/langchain/langchain/evaluation/criteria/eval_chain.py b/libs/langchain/langchain/evaluation/criteria/eval_chain.py index ac3bb1211c8..ab167477c45 100644 --- a/libs/langchain/langchain/evaluation/criteria/eval_chain.py +++ b/libs/langchain/langchain/evaluation/criteria/eval_chain.py @@ -232,6 +232,10 @@ class CriteriaEvalChain(StringEvaluator, LLMEvalChain, LLMChain): """The name of the criterion being evaluated.""" output_key: str = "results" #: :meta private: + @classmethod + def is_lc_serializable(cls) -> bool: + return False + class Config: """Configuration for the QAEvalChain.""" @@ -508,6 +512,10 @@ class CriteriaEvalChain(StringEvaluator, LLMEvalChain, LLMChain): class LabeledCriteriaEvalChain(CriteriaEvalChain): """Criteria evaluation chain that requires references.""" + @classmethod + def is_lc_serializable(cls) -> bool: + return False + @property def requires_reference(self) -> bool: """Whether the evaluation requires a reference text.""" diff --git a/libs/langchain/langchain/evaluation/qa/eval_chain.py b/libs/langchain/langchain/evaluation/qa/eval_chain.py index ae63aa343f8..9a465d02554 100644 --- a/libs/langchain/langchain/evaluation/qa/eval_chain.py +++ b/libs/langchain/langchain/evaluation/qa/eval_chain.py @@ -77,6 +77,10 @@ class QAEvalChain(LLMChain, StringEvaluator, LLMEvalChain): extra = Extra.ignore + @classmethod + def is_lc_serializable(cls) -> bool: + return False + @property def evaluation_name(self) -> str: return "correctness" @@ -204,6 +208,10 @@ class QAEvalChain(LLMChain, StringEvaluator, LLMEvalChain): class ContextQAEvalChain(LLMChain, StringEvaluator, LLMEvalChain): """LLM Chain for evaluating QA w/o GT based on context""" + @classmethod + def is_lc_serializable(cls) -> bool: + return False + @property def requires_reference(self) -> bool: """Whether the chain requires a reference string.""" @@ -328,6 +336,10 @@ class ContextQAEvalChain(LLMChain, StringEvaluator, LLMEvalChain): class CotQAEvalChain(ContextQAEvalChain): """LLM Chain for evaluating QA using chain of thought reasoning.""" + @classmethod + def is_lc_serializable(cls) -> bool: + return False + @property def evaluation_name(self) -> str: return "COT Contextual Accuracy" diff --git a/libs/langchain/langchain/evaluation/qa/generate_chain.py b/libs/langchain/langchain/evaluation/qa/generate_chain.py index 46854fae006..219978f739d 100644 --- a/libs/langchain/langchain/evaluation/qa/generate_chain.py +++ b/libs/langchain/langchain/evaluation/qa/generate_chain.py @@ -22,6 +22,10 @@ class QAGenerateChain(LLMChain): output_parser: BaseLLMOutputParser = Field(default=_QA_OUTPUT_PARSER) output_key: str = "qa_pairs" + @classmethod + def is_lc_serializable(cls) -> bool: + return False + @classmethod def from_llm(cls, llm: BaseLanguageModel, **kwargs: Any) -> QAGenerateChain: """Load QA Generate Chain from LLM.""" diff --git a/libs/langchain/langchain/evaluation/scoring/eval_chain.py b/libs/langchain/langchain/evaluation/scoring/eval_chain.py index 3f7449bb0dc..dab0d4842f6 100644 --- a/libs/langchain/langchain/evaluation/scoring/eval_chain.py +++ b/libs/langchain/langchain/evaluation/scoring/eval_chain.py @@ -185,6 +185,10 @@ class ScoreStringEvalChain(StringEvaluator, LLMEvalChain, LLMChain): extra = Extra.ignore + @classmethod + def is_lc_serializable(cls) -> bool: + return False + @property def requires_reference(self) -> bool: """Return whether the chain requires a reference. diff --git a/libs/langchain/langchain/indexes/_api.py b/libs/langchain/langchain/indexes/_api.py index 5637a12511b..29bf6dfb5ea 100644 --- a/libs/langchain/langchain/indexes/_api.py +++ b/libs/langchain/langchain/indexes/_api.py @@ -58,6 +58,10 @@ class _HashedDocument(Document): metadata_hash: str """The hash of the document metadata.""" + @classmethod + def is_lc_serializable(cls) -> bool: + return False + @root_validator(pre=True) def calculate_hashes(cls, values: Dict[str, Any]) -> Dict[str, Any]: """Root validator to calculate content and metadata hash.""" diff --git a/libs/langchain/langchain/llms/anyscale.py b/libs/langchain/langchain/llms/anyscale.py index e2f26463ecd..a58bbb183df 100644 --- a/libs/langchain/langchain/llms/anyscale.py +++ b/libs/langchain/langchain/llms/anyscale.py @@ -90,6 +90,10 @@ class Anyscale(BaseOpenAI): prefix_messages: List = Field(default_factory=list) + @classmethod + def is_lc_serializable(cls) -> bool: + return False + @root_validator() def validate_environment(cls, values: Dict) -> Dict: """Validate that api key and python package exists in environment.""" diff --git a/libs/langchain/langchain/llms/openlm.py b/libs/langchain/langchain/llms/openlm.py index fcbf3af5842..13231e85641 100644 --- a/libs/langchain/langchain/llms/openlm.py +++ b/libs/langchain/langchain/llms/openlm.py @@ -8,6 +8,10 @@ from langchain.llms.openai import BaseOpenAI class OpenLM(BaseOpenAI): """OpenLM models.""" + @classmethod + def is_lc_serializable(cls) -> bool: + return False + @property def _invocation_params(self) -> Dict[str, Any]: return {**{"model": self.model_name}, **super()._invocation_params} diff --git a/libs/langchain/langchain/llms/promptlayer_openai.py b/libs/langchain/langchain/llms/promptlayer_openai.py index b8037cdbfbe..025347aabe1 100644 --- a/libs/langchain/langchain/llms/promptlayer_openai.py +++ b/libs/langchain/langchain/llms/promptlayer_openai.py @@ -37,6 +37,10 @@ class PromptLayerOpenAI(OpenAI): pl_tags: Optional[List[str]] return_pl_id: Optional[bool] = False + @classmethod + def is_lc_serializable(cls) -> bool: + return False + def _generate( self, prompts: List[str], diff --git a/libs/langchain/langchain/llms/tongyi.py b/libs/langchain/langchain/llms/tongyi.py index 1ecd238cd74..3606e6289f8 100644 --- a/libs/langchain/langchain/llms/tongyi.py +++ b/libs/langchain/langchain/llms/tongyi.py @@ -106,7 +106,7 @@ class Tongyi(LLM): @classmethod def is_lc_serializable(cls) -> bool: - return True + return False client: Any #: :meta private: model_name: str = "qwen-plus-v1" diff --git a/libs/langchain/langchain/llms/vllm.py b/libs/langchain/langchain/llms/vllm.py index 4ccb5a743be..0b86ac6947b 100644 --- a/libs/langchain/langchain/llms/vllm.py +++ b/libs/langchain/langchain/llms/vllm.py @@ -147,6 +147,10 @@ class VLLM(BaseLLM): class VLLMOpenAI(BaseOpenAI): """vLLM OpenAI-compatible API client""" + @classmethod + def is_lc_serializable(cls) -> bool: + return False + @property def _invocation_params(self) -> Dict[str, Any]: """Get the parameters used to invoke the model.""" diff --git a/libs/langchain/langchain/llms/watsonxllm.py b/libs/langchain/langchain/llms/watsonxllm.py index 40005437816..a316da2fb54 100644 --- a/libs/langchain/langchain/llms/watsonxllm.py +++ b/libs/langchain/langchain/llms/watsonxllm.py @@ -97,7 +97,7 @@ class WatsonxLLM(BaseLLM): @classmethod def is_lc_serializable(cls) -> bool: - return True + return False @property def lc_secrets(self) -> Dict[str, str]: From 477b274a62db42ae939fd163758a063e9097e0bc Mon Sep 17 00:00:00 2001 From: Erick Friis Date: Fri, 8 Dec 2023 10:37:44 -0800 Subject: [PATCH 5/8] langchain[patch]: fix scheduled testing ci dep install (#14460) --- .github/workflows/scheduled_test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/scheduled_test.yml b/.github/workflows/scheduled_test.yml index 4b477ed64b2..ffacc28a999 100644 --- a/.github/workflows/scheduled_test.yml +++ b/.github/workflows/scheduled_test.yml @@ -52,7 +52,7 @@ jobs: shell: bash run: | echo "Running scheduled tests, installing dependencies with poetry..." - poetry install --with=test_integration + poetry install --with=test_integration,test - name: Run tests shell: bash From 1d7e5c51aa39f0a01ca96fbb904d0d26cee3b694 Mon Sep 17 00:00:00 2001 From: Erick Friis Date: Fri, 8 Dec 2023 11:00:37 -0800 Subject: [PATCH 6/8] langchain[patch]: xfail unstable vertex test (#14462) --- .../tests/integration_tests/chat_models/test_vertexai.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libs/langchain/tests/integration_tests/chat_models/test_vertexai.py b/libs/langchain/tests/integration_tests/chat_models/test_vertexai.py index d8da1e31eb7..790fccd70a0 100644 --- a/libs/langchain/tests/integration_tests/chat_models/test_vertexai.py +++ b/libs/langchain/tests/integration_tests/chat_models/test_vertexai.py @@ -46,6 +46,9 @@ def test_vertexai_single_call(model_name: str) -> None: assert isinstance(response.content, str) +# mark xfail because Vertex API randomly doesn't respect +# the n/candidate_count parameter +@pytest.mark.xfail @pytest.mark.scheduled def test_candidates() -> None: model = ChatVertexAI(model_name="chat-bison@001", temperature=0.3, n=2) From 37bee92b8a211df98312c96039a2179bce15bf25 Mon Sep 17 00:00:00 2001 From: Eugene Yurtsev Date: Fri, 8 Dec 2023 14:09:36 -0500 Subject: [PATCH 7/8] Use deepcopy in RunLogPatch (#14244) This PR adds deepcopy usage in RunLogPatch. I included a unit-test that shows an issue that was caused in LangServe in the RemoteClient. ```python import jsonpatch s1 = {} s2 = {'value': []} s3 = {'value': ['a']} ops0 = list(jsonpatch.JsonPatch.from_diff(None, s1)) ops1 = list(jsonpatch.JsonPatch.from_diff(s1, s2)) ops2 = list(jsonpatch.JsonPatch.from_diff(s2, s3)) ops = ops0 + ops1 + ops2 jsonpatch.apply_patch(None, ops) {'value': ['a']} jsonpatch.apply_patch(None, ops) {'value': ['a', 'a']} jsonpatch.apply_patch(None, ops) {'value': ['a', 'a', 'a']} ``` --- .../core/langchain_core/tracers/log_stream.py | 3 +- .../unit_tests/runnables/test_runnable.py | 49 +++++++++++++++++++ 2 files changed, 51 insertions(+), 1 deletion(-) diff --git a/libs/core/langchain_core/tracers/log_stream.py b/libs/core/langchain_core/tracers/log_stream.py index 98189ad19c4..6d2b7e43a06 100644 --- a/libs/core/langchain_core/tracers/log_stream.py +++ b/libs/core/langchain_core/tracers/log_stream.py @@ -1,5 +1,6 @@ from __future__ import annotations +import copy import math import threading from collections import defaultdict @@ -82,7 +83,7 @@ class RunLogPatch: def __add__(self, other: Union[RunLogPatch, Any]) -> RunLog: if type(other) == RunLogPatch: ops = self.ops + other.ops - state = jsonpatch.apply_patch(None, ops) + state = jsonpatch.apply_patch(None, copy.deepcopy(ops)) return RunLog(*ops, state=state) raise TypeError( diff --git a/libs/core/tests/unit_tests/runnables/test_runnable.py b/libs/core/tests/unit_tests/runnables/test_runnable.py index 9d0bc740bdb..bca88f7572e 100644 --- a/libs/core/tests/unit_tests/runnables/test_runnable.py +++ b/libs/core/tests/unit_tests/runnables/test_runnable.py @@ -4187,3 +4187,52 @@ async def test_ainvoke_astream_passthrough_assign_trace() -> None: assert tracer.runs[0].name == "RunnableAssign" assert tracer.runs[0].child_runs[0].name == "RunnableParallel" + + +async def test_astream_log_deep_copies() -> None: + """Verify that deep copies are used when using jsonpatch in astream log. + + jsonpatch re-uses objects in its API; e.g., + + import jsonpatch + obj1 = { "a": 1 } + value = { "b": 2 } + obj2 = { "a": 1, "value": value } + + ops = list(jsonpatch.JsonPatch.from_diff(obj1, obj2)) + assert id(ops[0]['value']) == id(value) + + This can create unexpected consequences for downstream code. + """ + + def _get_run_log(run_log_patches: Sequence[RunLogPatch]) -> RunLog: + """Get run log""" + run_log = RunLog(state=None) # type: ignore + for log_patch in run_log_patches: + run_log = run_log + log_patch + return run_log + + def add_one(x: int) -> int: + """Add one.""" + return x + 1 + + chain = RunnableLambda(add_one) + chunks = [] + final_output = None + async for chunk in chain.astream_log(1): + chunks.append(chunk) + if final_output is None: + final_output = chunk + else: + final_output = final_output + chunk + + run_log = _get_run_log(chunks) + state = run_log.state.copy() + # Ignoring type here since we know that the state is a dict + # so we can delete `id` for testing purposes + state.pop("id") # type: ignore + assert state == { + "final_output": 2, + "logs": {}, + "streamed_output": [2], + } From ba083887e5d9c78f45b4cd8783aada9d6eced821 Mon Sep 17 00:00:00 2001 From: Leonid Ganeline Date: Fri, 8 Dec 2023 11:14:41 -0800 Subject: [PATCH 8/8] docs `Dependents` updated statistics (#14461) Updated statistics for the dependents (packages dependent on `langchain` package). Only packages with 100+ starts --- docs/docs/additional_resources/dependents.mdx | 983 ++++++++++-------- 1 file changed, 537 insertions(+), 446 deletions(-) diff --git a/docs/docs/additional_resources/dependents.mdx b/docs/docs/additional_resources/dependents.mdx index 4b332ee58ac..b19e05a85a3 100644 --- a/docs/docs/additional_resources/dependents.mdx +++ b/docs/docs/additional_resources/dependents.mdx @@ -2,464 +2,555 @@ Dependents stats for `langchain-ai/langchain` -[![](https://img.shields.io/static/v1?label=Used%20by&message=30534&color=informational&logo=slickpic)](https://github.com/langchain-ai/langchain/network/dependents) -[![](https://img.shields.io/static/v1?label=Used%20by%20(public)&message=451&color=informational&logo=slickpic)](https://github.com/langchain-ai/langchain/network/dependents) -[![](https://img.shields.io/static/v1?label=Used%20by%20(private)&message=30083&color=informational&logo=slickpic)](https://github.com/langchain-ai/langchain/network/dependents) -[![](https://img.shields.io/static/v1?label=Used%20by%20(stars)&message=37822&color=informational&logo=slickpic)](https://github.com/langchain-ai/langchain/network/dependents) +[![](https://img.shields.io/static/v1?label=Used%20by&message=41717&color=informational&logo=slickpic)](https://github.com/langchain-ai/langchain/network/dependents) +[![](https://img.shields.io/static/v1?label=Used%20by%20(public)&message=538&color=informational&logo=slickpic)](https://github.com/langchain-ai/langchain/network/dependents) +[![](https://img.shields.io/static/v1?label=Used%20by%20(private)&message=41179&color=informational&logo=slickpic)](https://github.com/langchain-ai/langchain/network/dependents) -[update: `2023-10-06`; only dependent repositories with Stars > 100] +[update: `2023-12-08`; only dependent repositories with Stars > 100] | Repository | Stars | | :-------- | -----: | -|[openai/openai-cookbook](https://github.com/openai/openai-cookbook) | 49006 | -|[AntonOsika/gpt-engineer](https://github.com/AntonOsika/gpt-engineer) | 44368 | -|[imartinez/privateGPT](https://github.com/imartinez/privateGPT) | 38300 | -|[LAION-AI/Open-Assistant](https://github.com/LAION-AI/Open-Assistant) | 35327 | -|[hpcaitech/ColossalAI](https://github.com/hpcaitech/ColossalAI) | 34799 | -|[microsoft/TaskMatrix](https://github.com/microsoft/TaskMatrix) | 34161 | -|[streamlit/streamlit](https://github.com/streamlit/streamlit) | 27697 | -|[geekan/MetaGPT](https://github.com/geekan/MetaGPT) | 27302 | -|[reworkd/AgentGPT](https://github.com/reworkd/AgentGPT) | 26805 | -|[OpenBB-finance/OpenBBTerminal](https://github.com/OpenBB-finance/OpenBBTerminal) | 24473 | -|[StanGirard/quivr](https://github.com/StanGirard/quivr) | 23323 | -|[run-llama/llama_index](https://github.com/run-llama/llama_index) | 22151 | -|[openai/chatgpt-retrieval-plugin](https://github.com/openai/chatgpt-retrieval-plugin) | 19741 | -|[mindsdb/mindsdb](https://github.com/mindsdb/mindsdb) | 18062 | -|[PromtEngineer/localGPT](https://github.com/PromtEngineer/localGPT) | 16413 | -|[chatchat-space/Langchain-Chatchat](https://github.com/chatchat-space/Langchain-Chatchat) | 16300 | -|[cube-js/cube](https://github.com/cube-js/cube) | 16261 | -|[mlflow/mlflow](https://github.com/mlflow/mlflow) | 15487 | -|[logspace-ai/langflow](https://github.com/logspace-ai/langflow) | 12599 | -|[GaiZhenbiao/ChuanhuChatGPT](https://github.com/GaiZhenbiao/ChuanhuChatGPT) | 12501 | -|[openai/evals](https://github.com/openai/evals) | 12056 | -|[airbytehq/airbyte](https://github.com/airbytehq/airbyte) | 11919 | -|[go-skynet/LocalAI](https://github.com/go-skynet/LocalAI) | 11767 | -|[databrickslabs/dolly](https://github.com/databrickslabs/dolly) | 10609 | -|[AIGC-Audio/AudioGPT](https://github.com/AIGC-Audio/AudioGPT) | 9240 | -|[aws/amazon-sagemaker-examples](https://github.com/aws/amazon-sagemaker-examples) | 8892 | -|[langgenius/dify](https://github.com/langgenius/dify) | 8764 | -|[gventuri/pandas-ai](https://github.com/gventuri/pandas-ai) | 8687 | -|[jmorganca/ollama](https://github.com/jmorganca/ollama) | 8628 | -|[langchain-ai/langchainjs](https://github.com/langchain-ai/langchainjs) | 8392 | -|[h2oai/h2ogpt](https://github.com/h2oai/h2ogpt) | 7953 | -|[arc53/DocsGPT](https://github.com/arc53/DocsGPT) | 7730 | -|[PipedreamHQ/pipedream](https://github.com/PipedreamHQ/pipedream) | 7261 | -|[joshpxyne/gpt-migrate](https://github.com/joshpxyne/gpt-migrate) | 6349 | -|[bentoml/OpenLLM](https://github.com/bentoml/OpenLLM) | 6213 | -|[mage-ai/mage-ai](https://github.com/mage-ai/mage-ai) | 5600 | -|[zauberzeug/nicegui](https://github.com/zauberzeug/nicegui) | 5499 | -|[wenda-LLM/wenda](https://github.com/wenda-LLM/wenda) | 5497 | -|[sweepai/sweep](https://github.com/sweepai/sweep) | 5489 | -|[embedchain/embedchain](https://github.com/embedchain/embedchain) | 5428 | -|[zilliztech/GPTCache](https://github.com/zilliztech/GPTCache) | 5311 | -|[Shaunwei/RealChar](https://github.com/Shaunwei/RealChar) | 5264 | -|[GreyDGL/PentestGPT](https://github.com/GreyDGL/PentestGPT) | 5146 | -|[gkamradt/langchain-tutorials](https://github.com/gkamradt/langchain-tutorials) | 5134 | -|[serge-chat/serge](https://github.com/serge-chat/serge) | 5009 | -|[assafelovic/gpt-researcher](https://github.com/assafelovic/gpt-researcher) | 4836 | -|[openchatai/OpenChat](https://github.com/openchatai/OpenChat) | 4697 | -|[intel-analytics/BigDL](https://github.com/intel-analytics/BigDL) | 4412 | -|[continuedev/continue](https://github.com/continuedev/continue) | 4324 | -|[postgresml/postgresml](https://github.com/postgresml/postgresml) | 4267 | -|[madawei2699/myGPTReader](https://github.com/madawei2699/myGPTReader) | 4214 | -|[MineDojo/Voyager](https://github.com/MineDojo/Voyager) | 4204 | -|[danswer-ai/danswer](https://github.com/danswer-ai/danswer) | 3973 | -|[RayVentura/ShortGPT](https://github.com/RayVentura/ShortGPT) | 3922 | -|[Azure/azure-sdk-for-python](https://github.com/Azure/azure-sdk-for-python) | 3849 | -|[khoj-ai/khoj](https://github.com/khoj-ai/khoj) | 3817 | -|[langchain-ai/chat-langchain](https://github.com/langchain-ai/chat-langchain) | 3742 | -|[Azure-Samples/azure-search-openai-demo](https://github.com/Azure-Samples/azure-search-openai-demo) | 3731 | -|[marqo-ai/marqo](https://github.com/marqo-ai/marqo) | 3627 | -|[kyegomez/tree-of-thoughts](https://github.com/kyegomez/tree-of-thoughts) | 3553 | -|[llm-workflow-engine/llm-workflow-engine](https://github.com/llm-workflow-engine/llm-workflow-engine) | 3483 | -|[PrefectHQ/marvin](https://github.com/PrefectHQ/marvin) | 3460 | -|[aiwaves-cn/agents](https://github.com/aiwaves-cn/agents) | 3413 | -|[OpenBMB/ToolBench](https://github.com/OpenBMB/ToolBench) | 3388 | -|[shroominic/codeinterpreter-api](https://github.com/shroominic/codeinterpreter-api) | 3218 | -|[whitead/paper-qa](https://github.com/whitead/paper-qa) | 3085 | -|[project-baize/baize-chatbot](https://github.com/project-baize/baize-chatbot) | 3039 | -|[OpenGVLab/InternGPT](https://github.com/OpenGVLab/InternGPT) | 2911 | -|[ParisNeo/lollms-webui](https://github.com/ParisNeo/lollms-webui) | 2907 | -|[Unstructured-IO/unstructured](https://github.com/Unstructured-IO/unstructured) | 2874 | -|[openchatai/OpenCopilot](https://github.com/openchatai/OpenCopilot) | 2759 | -|[OpenBMB/BMTools](https://github.com/OpenBMB/BMTools) | 2657 | -|[homanp/superagent](https://github.com/homanp/superagent) | 2624 | -|[SamurAIGPT/EmbedAI](https://github.com/SamurAIGPT/EmbedAI) | 2575 | -|[GerevAI/gerev](https://github.com/GerevAI/gerev) | 2488 | -|[microsoft/promptflow](https://github.com/microsoft/promptflow) | 2475 | -|[OpenBMB/AgentVerse](https://github.com/OpenBMB/AgentVerse) | 2445 | -|[Mintplex-Labs/anything-llm](https://github.com/Mintplex-Labs/anything-llm) | 2434 | -|[emptycrown/llama-hub](https://github.com/emptycrown/llama-hub) | 2432 | -|[NVIDIA/NeMo-Guardrails](https://github.com/NVIDIA/NeMo-Guardrails) | 2327 | -|[ShreyaR/guardrails](https://github.com/ShreyaR/guardrails) | 2307 | -|[thomas-yanxin/LangChain-ChatGLM-Webui](https://github.com/thomas-yanxin/LangChain-ChatGLM-Webui) | 2305 | -|[yanqiangmiffy/Chinese-LangChain](https://github.com/yanqiangmiffy/Chinese-LangChain) | 2291 | -|[keephq/keep](https://github.com/keephq/keep) | 2252 | -|[OpenGVLab/Ask-Anything](https://github.com/OpenGVLab/Ask-Anything) | 2194 | -|[IntelligenzaArtificiale/Free-Auto-GPT](https://github.com/IntelligenzaArtificiale/Free-Auto-GPT) | 2169 | -|[Farama-Foundation/PettingZoo](https://github.com/Farama-Foundation/PettingZoo) | 2031 | -|[YiVal/YiVal](https://github.com/YiVal/YiVal) | 2014 | -|[hwchase17/notion-qa](https://github.com/hwchase17/notion-qa) | 2014 | -|[jupyterlab/jupyter-ai](https://github.com/jupyterlab/jupyter-ai) | 1977 | -|[paulpierre/RasaGPT](https://github.com/paulpierre/RasaGPT) | 1887 | -|[dot-agent/dotagent-WIP](https://github.com/dot-agent/dotagent-WIP) | 1812 | -|[hegelai/prompttools](https://github.com/hegelai/prompttools) | 1775 | -|[vocodedev/vocode-python](https://github.com/vocodedev/vocode-python) | 1734 | -|[Vonng/pigsty](https://github.com/Vonng/pigsty) | 1693 | -|[psychic-api/psychic](https://github.com/psychic-api/psychic) | 1597 | -|[avinashkranjan/Amazing-Python-Scripts](https://github.com/avinashkranjan/Amazing-Python-Scripts) | 1546 | -|[pinterest/querybook](https://github.com/pinterest/querybook) | 1539 | -|[Forethought-Technologies/AutoChain](https://github.com/Forethought-Technologies/AutoChain) | 1531 | -|[Kav-K/GPTDiscord](https://github.com/Kav-K/GPTDiscord) | 1503 | -|[jina-ai/langchain-serve](https://github.com/jina-ai/langchain-serve) | 1487 | -|[noahshinn024/reflexion](https://github.com/noahshinn024/reflexion) | 1481 | -|[jina-ai/dev-gpt](https://github.com/jina-ai/dev-gpt) | 1436 | -|[ttengwang/Caption-Anything](https://github.com/ttengwang/Caption-Anything) | 1425 | -|[milvus-io/bootcamp](https://github.com/milvus-io/bootcamp) | 1420 | -|[agiresearch/OpenAGI](https://github.com/agiresearch/OpenAGI) | 1401 | -|[greshake/llm-security](https://github.com/greshake/llm-security) | 1381 | -|[jina-ai/thinkgpt](https://github.com/jina-ai/thinkgpt) | 1366 | -|[lunasec-io/lunasec](https://github.com/lunasec-io/lunasec) | 1352 | -|[101dotxyz/GPTeam](https://github.com/101dotxyz/GPTeam) | 1339 | -|[refuel-ai/autolabel](https://github.com/refuel-ai/autolabel) | 1320 | -|[melih-unsal/DemoGPT](https://github.com/melih-unsal/DemoGPT) | 1320 | -|[mmz-001/knowledge_gpt](https://github.com/mmz-001/knowledge_gpt) | 1320 | -|[richardyc/Chrome-GPT](https://github.com/richardyc/Chrome-GPT) | 1315 | -|[run-llama/sec-insights](https://github.com/run-llama/sec-insights) | 1312 | -|[Azure/azureml-examples](https://github.com/Azure/azureml-examples) | 1305 | -|[cofactoryai/textbase](https://github.com/cofactoryai/textbase) | 1286 | -|[dataelement/bisheng](https://github.com/dataelement/bisheng) | 1273 | -|[eyurtsev/kor](https://github.com/eyurtsev/kor) | 1263 | -|[pluralsh/plural](https://github.com/pluralsh/plural) | 1188 | -|[FlagOpen/FlagEmbedding](https://github.com/FlagOpen/FlagEmbedding) | 1184 | -|[juncongmoo/chatllama](https://github.com/juncongmoo/chatllama) | 1144 | -|[poe-platform/server-bot-quick-start](https://github.com/poe-platform/server-bot-quick-start) | 1139 | -|[visual-openllm/visual-openllm](https://github.com/visual-openllm/visual-openllm) | 1137 | -|[griptape-ai/griptape](https://github.com/griptape-ai/griptape) | 1124 | -|[microsoft/X-Decoder](https://github.com/microsoft/X-Decoder) | 1119 | -|[ThousandBirdsInc/chidori](https://github.com/ThousandBirdsInc/chidori) | 1116 | -|[filip-michalsky/SalesGPT](https://github.com/filip-michalsky/SalesGPT) | 1112 | -|[psychic-api/rag-stack](https://github.com/psychic-api/rag-stack) | 1110 | -|[irgolic/AutoPR](https://github.com/irgolic/AutoPR) | 1100 | -|[promptfoo/promptfoo](https://github.com/promptfoo/promptfoo) | 1099 | -|[nod-ai/SHARK](https://github.com/nod-ai/SHARK) | 1062 | -|[SamurAIGPT/Camel-AutoGPT](https://github.com/SamurAIGPT/Camel-AutoGPT) | 1036 | -|[Farama-Foundation/chatarena](https://github.com/Farama-Foundation/chatarena) | 1020 | -|[peterw/Chat-with-Github-Repo](https://github.com/peterw/Chat-with-Github-Repo) | 993 | -|[jiran214/GPT-vup](https://github.com/jiran214/GPT-vup) | 967 | -|[alejandro-ao/ask-multiple-pdfs](https://github.com/alejandro-ao/ask-multiple-pdfs) | 958 | -|[run-llama/llama-lab](https://github.com/run-llama/llama-lab) | 953 | -|[LC1332/Chat-Haruhi-Suzumiya](https://github.com/LC1332/Chat-Haruhi-Suzumiya) | 950 | -|[rlancemartin/auto-evaluator](https://github.com/rlancemartin/auto-evaluator) | 927 | -|[cheshire-cat-ai/core](https://github.com/cheshire-cat-ai/core) | 902 | -|[Anil-matcha/ChatPDF](https://github.com/Anil-matcha/ChatPDF) | 894 | -|[cirediatpl/FigmaChain](https://github.com/cirediatpl/FigmaChain) | 881 | -|[seanpixel/Teenage-AGI](https://github.com/seanpixel/Teenage-AGI) | 876 | -|[xusenlinzy/api-for-open-llm](https://github.com/xusenlinzy/api-for-open-llm) | 865 | -|[ricklamers/shell-ai](https://github.com/ricklamers/shell-ai) | 864 | -|[codeacme17/examor](https://github.com/codeacme17/examor) | 856 | -|[corca-ai/EVAL](https://github.com/corca-ai/EVAL) | 836 | -|[microsoft/Llama-2-Onnx](https://github.com/microsoft/Llama-2-Onnx) | 835 | -|[explodinggradients/ragas](https://github.com/explodinggradients/ragas) | 833 | -|[ajndkr/lanarky](https://github.com/ajndkr/lanarky) | 817 | -|[kennethleungty/Llama-2-Open-Source-LLM-CPU-Inference](https://github.com/kennethleungty/Llama-2-Open-Source-LLM-CPU-Inference) | 814 | -|[ray-project/llm-applications](https://github.com/ray-project/llm-applications) | 804 | -|[hwchase17/chat-your-data](https://github.com/hwchase17/chat-your-data) | 801 | -|[LambdaLabsML/examples](https://github.com/LambdaLabsML/examples) | 759 | -|[kreneskyp/ix](https://github.com/kreneskyp/ix) | 758 | -|[pyspark-ai/pyspark-ai](https://github.com/pyspark-ai/pyspark-ai) | 750 | -|[billxbf/ReWOO](https://github.com/billxbf/ReWOO) | 746 | -|[e-johnstonn/BriefGPT](https://github.com/e-johnstonn/BriefGPT) | 738 | -|[akshata29/entaoai](https://github.com/akshata29/entaoai) | 733 | -|[getmetal/motorhead](https://github.com/getmetal/motorhead) | 717 | -|[ruoccofabrizio/azure-open-ai-embeddings-qna](https://github.com/ruoccofabrizio/azure-open-ai-embeddings-qna) | 712 | -|[msoedov/langcorn](https://github.com/msoedov/langcorn) | 698 | -|[Dataherald/dataherald](https://github.com/Dataherald/dataherald) | 684 | -|[jondurbin/airoboros](https://github.com/jondurbin/airoboros) | 657 | -|[Ikaros-521/AI-Vtuber](https://github.com/Ikaros-521/AI-Vtuber) | 651 | -|[whyiyhw/chatgpt-wechat](https://github.com/whyiyhw/chatgpt-wechat) | 644 | -|[langchain-ai/streamlit-agent](https://github.com/langchain-ai/streamlit-agent) | 637 | -|[SamurAIGPT/ChatGPT-Developer-Plugins](https://github.com/SamurAIGPT/ChatGPT-Developer-Plugins) | 637 | -|[OpenGenerativeAI/GenossGPT](https://github.com/OpenGenerativeAI/GenossGPT) | 632 | -|[AILab-CVC/GPT4Tools](https://github.com/AILab-CVC/GPT4Tools) | 629 | -|[langchain-ai/auto-evaluator](https://github.com/langchain-ai/auto-evaluator) | 614 | -|[explosion/spacy-llm](https://github.com/explosion/spacy-llm) | 613 | -|[alexanderatallah/window.ai](https://github.com/alexanderatallah/window.ai) | 607 | -|[MiuLab/Taiwan-LLaMa](https://github.com/MiuLab/Taiwan-LLaMa) | 601 | -|[microsoft/PodcastCopilot](https://github.com/microsoft/PodcastCopilot) | 600 | -|[Dicklesworthstone/swiss_army_llama](https://github.com/Dicklesworthstone/swiss_army_llama) | 596 | -|[NoDataFound/hackGPT](https://github.com/NoDataFound/hackGPT) | 596 | -|[namuan/dr-doc-search](https://github.com/namuan/dr-doc-search) | 593 | -|[amosjyng/langchain-visualizer](https://github.com/amosjyng/langchain-visualizer) | 582 | -|[microsoft/sample-app-aoai-chatGPT](https://github.com/microsoft/sample-app-aoai-chatGPT) | 581 | -|[yvann-hub/Robby-chatbot](https://github.com/yvann-hub/Robby-chatbot) | 581 | -|[yeagerai/yeagerai-agent](https://github.com/yeagerai/yeagerai-agent) | 547 | -|[tgscan-dev/tgscan](https://github.com/tgscan-dev/tgscan) | 533 | -|[Azure-Samples/openai](https://github.com/Azure-Samples/openai) | 531 | -|[plastic-labs/tutor-gpt](https://github.com/plastic-labs/tutor-gpt) | 531 | -|[xuwenhao/geektime-ai-course](https://github.com/xuwenhao/geektime-ai-course) | 526 | -|[michaelthwan/searchGPT](https://github.com/michaelthwan/searchGPT) | 526 | -|[jonra1993/fastapi-alembic-sqlmodel-async](https://github.com/jonra1993/fastapi-alembic-sqlmodel-async) | 522 | -|[jina-ai/agentchain](https://github.com/jina-ai/agentchain) | 519 | -|[mckaywrigley/repo-chat](https://github.com/mckaywrigley/repo-chat) | 518 | -|[modelscope/modelscope-agent](https://github.com/modelscope/modelscope-agent) | 512 | -|[daveebbelaar/langchain-experiments](https://github.com/daveebbelaar/langchain-experiments) | 504 | -|[freddyaboulton/gradio-tools](https://github.com/freddyaboulton/gradio-tools) | 497 | -|[sidhq/Multi-GPT](https://github.com/sidhq/Multi-GPT) | 494 | -|[continuum-llms/chatgpt-memory](https://github.com/continuum-llms/chatgpt-memory) | 489 | -|[langchain-ai/langchain-aiplugin](https://github.com/langchain-ai/langchain-aiplugin) | 487 | -|[mpaepper/content-chatbot](https://github.com/mpaepper/content-chatbot) | 483 | -|[steamship-core/steamship-langchain](https://github.com/steamship-core/steamship-langchain) | 481 | -|[alejandro-ao/langchain-ask-pdf](https://github.com/alejandro-ao/langchain-ask-pdf) | 474 | -|[truera/trulens](https://github.com/truera/trulens) | 464 | -|[marella/chatdocs](https://github.com/marella/chatdocs) | 459 | -|[opencopilotdev/opencopilot](https://github.com/opencopilotdev/opencopilot) | 453 | -|[poe-platform/poe-protocol](https://github.com/poe-platform/poe-protocol) | 444 | -|[DataDog/dd-trace-py](https://github.com/DataDog/dd-trace-py) | 441 | -|[logan-markewich/llama_index_starter_pack](https://github.com/logan-markewich/llama_index_starter_pack) | 441 | -|[opentensor/bittensor](https://github.com/opentensor/bittensor) | 433 | -|[DjangoPeng/openai-quickstart](https://github.com/DjangoPeng/openai-quickstart) | 425 | -|[CarperAI/OpenELM](https://github.com/CarperAI/OpenELM) | 424 | -|[daodao97/chatdoc](https://github.com/daodao97/chatdoc) | 423 | -|[showlab/VLog](https://github.com/showlab/VLog) | 411 | -|[Anil-matcha/Chatbase](https://github.com/Anil-matcha/Chatbase) | 402 | -|[yakami129/VirtualWife](https://github.com/yakami129/VirtualWife) | 399 | -|[wandb/weave](https://github.com/wandb/weave) | 399 | +|[AntonOsika/gpt-engineer](https://github.com/AntonOsika/gpt-engineer) | 46514 | +|[imartinez/privateGPT](https://github.com/imartinez/privateGPT) | 44439 | +|[LAION-AI/Open-Assistant](https://github.com/LAION-AI/Open-Assistant) | 35906 | +|[hpcaitech/ColossalAI](https://github.com/hpcaitech/ColossalAI) | 35528 | +|[moymix/TaskMatrix](https://github.com/moymix/TaskMatrix) | 34342 | +|[geekan/MetaGPT](https://github.com/geekan/MetaGPT) | 31126 | +|[streamlit/streamlit](https://github.com/streamlit/streamlit) | 28911 | +|[reworkd/AgentGPT](https://github.com/reworkd/AgentGPT) | 27833 | +|[StanGirard/quivr](https://github.com/StanGirard/quivr) | 26032 | +|[OpenBB-finance/OpenBBTerminal](https://github.com/OpenBB-finance/OpenBBTerminal) | 24946 | +|[run-llama/llama_index](https://github.com/run-llama/llama_index) | 24859 | +|[jmorganca/ollama](https://github.com/jmorganca/ollama) | 20849 | +|[openai/chatgpt-retrieval-plugin](https://github.com/openai/chatgpt-retrieval-plugin) | 20249 | +|[chatchat-space/Langchain-Chatchat](https://github.com/chatchat-space/Langchain-Chatchat) | 19305 | +|[mindsdb/mindsdb](https://github.com/mindsdb/mindsdb) | 19172 | +|[PromtEngineer/localGPT](https://github.com/PromtEngineer/localGPT) | 17528 | +|[cube-js/cube](https://github.com/cube-js/cube) | 16575 | +|[mlflow/mlflow](https://github.com/mlflow/mlflow) | 16000 | +|[mudler/LocalAI](https://github.com/mudler/LocalAI) | 14067 | +|[logspace-ai/langflow](https://github.com/logspace-ai/langflow) | 13679 | +|[GaiZhenbiao/ChuanhuChatGPT](https://github.com/GaiZhenbiao/ChuanhuChatGPT) | 13648 | +|[arc53/DocsGPT](https://github.com/arc53/DocsGPT) | 13423 | +|[openai/evals](https://github.com/openai/evals) | 12649 | +|[airbytehq/airbyte](https://github.com/airbytehq/airbyte) | 12460 | +|[langgenius/dify](https://github.com/langgenius/dify) | 11859 | +|[databrickslabs/dolly](https://github.com/databrickslabs/dolly) | 10672 | +|[AIGC-Audio/AudioGPT](https://github.com/AIGC-Audio/AudioGPT) | 9437 | +|[langchain-ai/langchainjs](https://github.com/langchain-ai/langchainjs) | 9227 | +|[gventuri/pandas-ai](https://github.com/gventuri/pandas-ai) | 9203 | +|[aws/amazon-sagemaker-examples](https://github.com/aws/amazon-sagemaker-examples) | 9079 | +|[h2oai/h2ogpt](https://github.com/h2oai/h2ogpt) | 8945 | +|[PipedreamHQ/pipedream](https://github.com/PipedreamHQ/pipedream) | 7550 | +|[bentoml/OpenLLM](https://github.com/bentoml/OpenLLM) | 6957 | +|[THUDM/ChatGLM3](https://github.com/THUDM/ChatGLM3) | 6801 | +|[microsoft/promptflow](https://github.com/microsoft/promptflow) | 6776 | +|[cpacker/MemGPT](https://github.com/cpacker/MemGPT) | 6642 | +|[joshpxyne/gpt-migrate](https://github.com/joshpxyne/gpt-migrate) | 6482 | +|[zauberzeug/nicegui](https://github.com/zauberzeug/nicegui) | 6037 | +|[embedchain/embedchain](https://github.com/embedchain/embedchain) | 6023 | +|[mage-ai/mage-ai](https://github.com/mage-ai/mage-ai) | 6019 | +|[assafelovic/gpt-researcher](https://github.com/assafelovic/gpt-researcher) | 5936 | +|[sweepai/sweep](https://github.com/sweepai/sweep) | 5855 | +|[wenda-LLM/wenda](https://github.com/wenda-LLM/wenda) | 5766 | +|[zilliztech/GPTCache](https://github.com/zilliztech/GPTCache) | 5710 | +|[pdm-project/pdm](https://github.com/pdm-project/pdm) | 5665 | +|[GreyDGL/PentestGPT](https://github.com/GreyDGL/PentestGPT) | 5568 | +|[gkamradt/langchain-tutorials](https://github.com/gkamradt/langchain-tutorials) | 5507 | +|[Shaunwei/RealChar](https://github.com/Shaunwei/RealChar) | 5501 | +|[facebookresearch/llama-recipes](https://github.com/facebookresearch/llama-recipes) | 5477 | +|[serge-chat/serge](https://github.com/serge-chat/serge) | 5221 | +|[run-llama/rags](https://github.com/run-llama/rags) | 4916 | +|[openchatai/OpenChat](https://github.com/openchatai/OpenChat) | 4870 | +|[danswer-ai/danswer](https://github.com/danswer-ai/danswer) | 4774 | +|[langchain-ai/opengpts](https://github.com/langchain-ai/opengpts) | 4709 | +|[postgresml/postgresml](https://github.com/postgresml/postgresml) | 4639 | +|[MineDojo/Voyager](https://github.com/MineDojo/Voyager) | 4582 | +|[intel-analytics/BigDL](https://github.com/intel-analytics/BigDL) | 4581 | +|[yihong0618/xiaogpt](https://github.com/yihong0618/xiaogpt) | 4359 | +|[RayVentura/ShortGPT](https://github.com/RayVentura/ShortGPT) | 4357 | +|[Azure-Samples/azure-search-openai-demo](https://github.com/Azure-Samples/azure-search-openai-demo) | 4317 | +|[madawei2699/myGPTReader](https://github.com/madawei2699/myGPTReader) | 4289 | +|[apache/nifi](https://github.com/apache/nifi) | 4098 | +|[langchain-ai/chat-langchain](https://github.com/langchain-ai/chat-langchain) | 4091 | +|[aiwaves-cn/agents](https://github.com/aiwaves-cn/agents) | 4073 | +|[krishnaik06/The-Grand-Complete-Data-Science-Materials](https://github.com/krishnaik06/The-Grand-Complete-Data-Science-Materials) | 4065 | +|[khoj-ai/khoj](https://github.com/khoj-ai/khoj) | 4016 | +|[Azure/azure-sdk-for-python](https://github.com/Azure/azure-sdk-for-python) | 3941 | +|[PrefectHQ/marvin](https://github.com/PrefectHQ/marvin) | 3915 | +|[OpenBMB/ToolBench](https://github.com/OpenBMB/ToolBench) | 3799 | +|[marqo-ai/marqo](https://github.com/marqo-ai/marqo) | 3771 | +|[kyegomez/tree-of-thoughts](https://github.com/kyegomez/tree-of-thoughts) | 3688 | +|[Unstructured-IO/unstructured](https://github.com/Unstructured-IO/unstructured) | 3543 | +|[llm-workflow-engine/llm-workflow-engine](https://github.com/llm-workflow-engine/llm-workflow-engine) | 3515 | +|[shroominic/codeinterpreter-api](https://github.com/shroominic/codeinterpreter-api) | 3425 | +|[openchatai/OpenCopilot](https://github.com/openchatai/OpenCopilot) | 3418 | +|[josStorer/RWKV-Runner](https://github.com/josStorer/RWKV-Runner) | 3297 | +|[whitead/paper-qa](https://github.com/whitead/paper-qa) | 3280 | +|[homanp/superagent](https://github.com/homanp/superagent) | 3258 | +|[ParisNeo/lollms-webui](https://github.com/ParisNeo/lollms-webui) | 3199 | +|[OpenBMB/AgentVerse](https://github.com/OpenBMB/AgentVerse) | 3099 | +|[project-baize/baize-chatbot](https://github.com/project-baize/baize-chatbot) | 3090 | +|[OpenGVLab/InternGPT](https://github.com/OpenGVLab/InternGPT) | 2989 | +|[xlang-ai/OpenAgents](https://github.com/xlang-ai/OpenAgents) | 2825 | +|[dataelement/bisheng](https://github.com/dataelement/bisheng) | 2797 | +|[Mintplex-Labs/anything-llm](https://github.com/Mintplex-Labs/anything-llm) | 2784 | +|[OpenBMB/BMTools](https://github.com/OpenBMB/BMTools) | 2734 | +|[run-llama/llama-hub](https://github.com/run-llama/llama-hub) | 2721 | +|[SamurAIGPT/EmbedAI](https://github.com/SamurAIGPT/EmbedAI) | 2647 | +|[NVIDIA/NeMo-Guardrails](https://github.com/NVIDIA/NeMo-Guardrails) | 2637 | +|[X-D-Lab/LangChain-ChatGLM-Webui](https://github.com/X-D-Lab/LangChain-ChatGLM-Webui) | 2532 | +|[GerevAI/gerev](https://github.com/GerevAI/gerev) | 2517 | +|[keephq/keep](https://github.com/keephq/keep) | 2448 | +|[yanqiangmiffy/Chinese-LangChain](https://github.com/yanqiangmiffy/Chinese-LangChain) | 2397 | +|[OpenGVLab/Ask-Anything](https://github.com/OpenGVLab/Ask-Anything) | 2324 | +|[IntelligenzaArtificiale/Free-Auto-GPT](https://github.com/IntelligenzaArtificiale/Free-Auto-GPT) | 2241 | +|[YiVal/YiVal](https://github.com/YiVal/YiVal) | 2232 | +|[jupyterlab/jupyter-ai](https://github.com/jupyterlab/jupyter-ai) | 2189 | +|[Farama-Foundation/PettingZoo](https://github.com/Farama-Foundation/PettingZoo) | 2136 | +|[microsoft/TaskWeaver](https://github.com/microsoft/TaskWeaver) | 2126 | +|[hwchase17/notion-qa](https://github.com/hwchase17/notion-qa) | 2083 | +|[FlagOpen/FlagEmbedding](https://github.com/FlagOpen/FlagEmbedding) | 2053 | +|[paulpierre/RasaGPT](https://github.com/paulpierre/RasaGPT) | 1999 | +|[hegelai/prompttools](https://github.com/hegelai/prompttools) | 1984 | +|[mckinsey/vizro](https://github.com/mckinsey/vizro) | 1951 | +|[vocodedev/vocode-python](https://github.com/vocodedev/vocode-python) | 1868 | +|[dot-agent/openAMS](https://github.com/dot-agent/openAMS) | 1796 | +|[explodinggradients/ragas](https://github.com/explodinggradients/ragas) | 1766 | +|[AI-Citizen/SolidGPT](https://github.com/AI-Citizen/SolidGPT) | 1761 | +|[Kav-K/GPTDiscord](https://github.com/Kav-K/GPTDiscord) | 1696 | +|[run-llama/sec-insights](https://github.com/run-llama/sec-insights) | 1654 | +|[avinashkranjan/Amazing-Python-Scripts](https://github.com/avinashkranjan/Amazing-Python-Scripts) | 1635 | +|[microsoft/WhatTheHack](https://github.com/microsoft/WhatTheHack) | 1629 | +|[noahshinn/reflexion](https://github.com/noahshinn/reflexion) | 1625 | +|[psychic-api/psychic](https://github.com/psychic-api/psychic) | 1618 | +|[Forethought-Technologies/AutoChain](https://github.com/Forethought-Technologies/AutoChain) | 1611 | +|[pinterest/querybook](https://github.com/pinterest/querybook) | 1586 | +|[refuel-ai/autolabel](https://github.com/refuel-ai/autolabel) | 1553 | +|[jina-ai/langchain-serve](https://github.com/jina-ai/langchain-serve) | 1537 | +|[jina-ai/dev-gpt](https://github.com/jina-ai/dev-gpt) | 1522 | +|[agiresearch/OpenAGI](https://github.com/agiresearch/OpenAGI) | 1493 | +|[ttengwang/Caption-Anything](https://github.com/ttengwang/Caption-Anything) | 1484 | +|[greshake/llm-security](https://github.com/greshake/llm-security) | 1483 | +|[promptfoo/promptfoo](https://github.com/promptfoo/promptfoo) | 1480 | +|[milvus-io/bootcamp](https://github.com/milvus-io/bootcamp) | 1477 | +|[richardyc/Chrome-GPT](https://github.com/richardyc/Chrome-GPT) | 1475 | +|[melih-unsal/DemoGPT](https://github.com/melih-unsal/DemoGPT) | 1428 | +|[YORG-AI/Open-Assistant](https://github.com/YORG-AI/Open-Assistant) | 1419 | +|[101dotxyz/GPTeam](https://github.com/101dotxyz/GPTeam) | 1416 | +|[jina-ai/thinkgpt](https://github.com/jina-ai/thinkgpt) | 1408 | +|[mmz-001/knowledge_gpt](https://github.com/mmz-001/knowledge_gpt) | 1398 | +|[intel/intel-extension-for-transformers](https://github.com/intel/intel-extension-for-transformers) | 1387 | +|[Azure/azureml-examples](https://github.com/Azure/azureml-examples) | 1385 | +|[lunasec-io/lunasec](https://github.com/lunasec-io/lunasec) | 1367 | +|[eyurtsev/kor](https://github.com/eyurtsev/kor) | 1355 | +|[xusenlinzy/api-for-open-llm](https://github.com/xusenlinzy/api-for-open-llm) | 1325 | +|[griptape-ai/griptape](https://github.com/griptape-ai/griptape) | 1323 | +|[SuperDuperDB/superduperdb](https://github.com/SuperDuperDB/superduperdb) | 1290 | +|[cofactoryai/textbase](https://github.com/cofactoryai/textbase) | 1284 | +|[psychic-api/rag-stack](https://github.com/psychic-api/rag-stack) | 1260 | +|[filip-michalsky/SalesGPT](https://github.com/filip-michalsky/SalesGPT) | 1250 | +|[nod-ai/SHARK](https://github.com/nod-ai/SHARK) | 1237 | +|[pluralsh/plural](https://github.com/pluralsh/plural) | 1234 | +|[cheshire-cat-ai/core](https://github.com/cheshire-cat-ai/core) | 1194 | +|[LC1332/Chat-Haruhi-Suzumiya](https://github.com/LC1332/Chat-Haruhi-Suzumiya) | 1184 | +|[poe-platform/server-bot-quick-start](https://github.com/poe-platform/server-bot-quick-start) | 1182 | +|[microsoft/X-Decoder](https://github.com/microsoft/X-Decoder) | 1180 | +|[juncongmoo/chatllama](https://github.com/juncongmoo/chatllama) | 1171 | +|[visual-openllm/visual-openllm](https://github.com/visual-openllm/visual-openllm) | 1156 | +|[alejandro-ao/ask-multiple-pdfs](https://github.com/alejandro-ao/ask-multiple-pdfs) | 1153 | +|[ThousandBirdsInc/chidori](https://github.com/ThousandBirdsInc/chidori) | 1152 | +|[irgolic/AutoPR](https://github.com/irgolic/AutoPR) | 1137 | +|[SamurAIGPT/Camel-AutoGPT](https://github.com/SamurAIGPT/Camel-AutoGPT) | 1083 | +|[ray-project/llm-applications](https://github.com/ray-project/llm-applications) | 1080 | +|[run-llama/llama-lab](https://github.com/run-llama/llama-lab) | 1072 | +|[jiran214/GPT-vup](https://github.com/jiran214/GPT-vup) | 1041 | +|[MetaGLM/FinGLM](https://github.com/MetaGLM/FinGLM) | 1035 | +|[peterw/Chat-with-Github-Repo](https://github.com/peterw/Chat-with-Github-Repo) | 1020 | +|[Anil-matcha/ChatPDF](https://github.com/Anil-matcha/ChatPDF) | 991 | +|[langchain-ai/langserve](https://github.com/langchain-ai/langserve) | 983 | +|[THUDM/AgentTuning](https://github.com/THUDM/AgentTuning) | 976 | +|[rlancemartin/auto-evaluator](https://github.com/rlancemartin/auto-evaluator) | 975 | +|[codeacme17/examor](https://github.com/codeacme17/examor) | 964 | +|[all-in-aigc/gpts-works](https://github.com/all-in-aigc/gpts-works) | 946 | +|[Ikaros-521/AI-Vtuber](https://github.com/Ikaros-521/AI-Vtuber) | 946 | +|[microsoft/Llama-2-Onnx](https://github.com/microsoft/Llama-2-Onnx) | 898 | +|[cirediatpl/FigmaChain](https://github.com/cirediatpl/FigmaChain) | 895 | +|[ricklamers/shell-ai](https://github.com/ricklamers/shell-ai) | 893 | +|[modelscope/modelscope-agent](https://github.com/modelscope/modelscope-agent) | 893 | +|[seanpixel/Teenage-AGI](https://github.com/seanpixel/Teenage-AGI) | 886 | +|[ajndkr/lanarky](https://github.com/ajndkr/lanarky) | 880 | +|[kennethleungty/Llama-2-Open-Source-LLM-CPU-Inference](https://github.com/kennethleungty/Llama-2-Open-Source-LLM-CPU-Inference) | 872 | +|[corca-ai/EVAL](https://github.com/corca-ai/EVAL) | 846 | +|[hwchase17/chat-your-data](https://github.com/hwchase17/chat-your-data) | 841 | +|[kreneskyp/ix](https://github.com/kreneskyp/ix) | 821 | +|[Link-AGI/AutoAgents](https://github.com/Link-AGI/AutoAgents) | 820 | +|[truera/trulens](https://github.com/truera/trulens) | 794 | +|[Dataherald/dataherald](https://github.com/Dataherald/dataherald) | 788 | +|[sunlabuiuc/PyHealth](https://github.com/sunlabuiuc/PyHealth) | 783 | +|[jondurbin/airoboros](https://github.com/jondurbin/airoboros) | 783 | +|[pyspark-ai/pyspark-ai](https://github.com/pyspark-ai/pyspark-ai) | 782 | +|[confident-ai/deepeval](https://github.com/confident-ai/deepeval) | 780 | +|[billxbf/ReWOO](https://github.com/billxbf/ReWOO) | 777 | +|[langchain-ai/streamlit-agent](https://github.com/langchain-ai/streamlit-agent) | 776 | +|[akshata29/entaoai](https://github.com/akshata29/entaoai) | 771 | +|[LambdaLabsML/examples](https://github.com/LambdaLabsML/examples) | 770 | +|[getmetal/motorhead](https://github.com/getmetal/motorhead) | 768 | +|[Dicklesworthstone/swiss_army_llama](https://github.com/Dicklesworthstone/swiss_army_llama) | 757 | +|[ruoccofabrizio/azure-open-ai-embeddings-qna](https://github.com/ruoccofabrizio/azure-open-ai-embeddings-qna) | 757 | +|[msoedov/langcorn](https://github.com/msoedov/langcorn) | 754 | +|[e-johnstonn/BriefGPT](https://github.com/e-johnstonn/BriefGPT) | 753 | +|[microsoft/sample-app-aoai-chatGPT](https://github.com/microsoft/sample-app-aoai-chatGPT) | 749 | +|[explosion/spacy-llm](https://github.com/explosion/spacy-llm) | 731 | +|[MiuLab/Taiwan-LLM](https://github.com/MiuLab/Taiwan-LLM) | 716 | +|[whyiyhw/chatgpt-wechat](https://github.com/whyiyhw/chatgpt-wechat) | 702 | +|[Azure-Samples/openai](https://github.com/Azure-Samples/openai) | 692 | +|[iusztinpaul/hands-on-llms](https://github.com/iusztinpaul/hands-on-llms) | 687 | +|[safevideo/autollm](https://github.com/safevideo/autollm) | 682 | +|[OpenGenerativeAI/GenossGPT](https://github.com/OpenGenerativeAI/GenossGPT) | 669 | +|[NoDataFound/hackGPT](https://github.com/NoDataFound/hackGPT) | 663 | +|[AILab-CVC/GPT4Tools](https://github.com/AILab-CVC/GPT4Tools) | 662 | +|[langchain-ai/auto-evaluator](https://github.com/langchain-ai/auto-evaluator) | 657 | +|[yvann-ba/Robby-chatbot](https://github.com/yvann-ba/Robby-chatbot) | 639 | +|[alexanderatallah/window.ai](https://github.com/alexanderatallah/window.ai) | 635 | +|[amosjyng/langchain-visualizer](https://github.com/amosjyng/langchain-visualizer) | 630 | +|[microsoft/PodcastCopilot](https://github.com/microsoft/PodcastCopilot) | 621 | +|[aws-samples/aws-genai-llm-chatbot](https://github.com/aws-samples/aws-genai-llm-chatbot) | 616 | +|[NeumTry/NeumAI](https://github.com/NeumTry/NeumAI) | 605 | +|[namuan/dr-doc-search](https://github.com/namuan/dr-doc-search) | 599 | +|[plastic-labs/tutor-gpt](https://github.com/plastic-labs/tutor-gpt) | 595 | +|[marimo-team/marimo](https://github.com/marimo-team/marimo) | 591 | +|[yakami129/VirtualWife](https://github.com/yakami129/VirtualWife) | 586 | +|[xuwenhao/geektime-ai-course](https://github.com/xuwenhao/geektime-ai-course) | 584 | +|[jonra1993/fastapi-alembic-sqlmodel-async](https://github.com/jonra1993/fastapi-alembic-sqlmodel-async) | 573 | +|[dgarnitz/vectorflow](https://github.com/dgarnitz/vectorflow) | 568 | +|[yeagerai/yeagerai-agent](https://github.com/yeagerai/yeagerai-agent) | 564 | +|[daveebbelaar/langchain-experiments](https://github.com/daveebbelaar/langchain-experiments) | 563 | +|[traceloop/openllmetry](https://github.com/traceloop/openllmetry) | 559 | +|[Agenta-AI/agenta](https://github.com/Agenta-AI/agenta) | 546 | +|[michaelthwan/searchGPT](https://github.com/michaelthwan/searchGPT) | 545 | +|[jina-ai/agentchain](https://github.com/jina-ai/agentchain) | 544 | +|[mckaywrigley/repo-chat](https://github.com/mckaywrigley/repo-chat) | 533 | +|[marella/chatdocs](https://github.com/marella/chatdocs) | 532 | +|[opentensor/bittensor](https://github.com/opentensor/bittensor) | 532 | +|[DjangoPeng/openai-quickstart](https://github.com/DjangoPeng/openai-quickstart) | 527 | +|[freddyaboulton/gradio-tools](https://github.com/freddyaboulton/gradio-tools) | 517 | +|[sidhq/Multi-GPT](https://github.com/sidhq/Multi-GPT) | 515 | +|[alejandro-ao/langchain-ask-pdf](https://github.com/alejandro-ao/langchain-ask-pdf) | 514 | +|[sajjadium/ctf-archives](https://github.com/sajjadium/ctf-archives) | 507 | +|[continuum-llms/chatgpt-memory](https://github.com/continuum-llms/chatgpt-memory) | 502 | +|[llmOS/opencopilot](https://github.com/llmOS/opencopilot) | 495 | +|[steamship-core/steamship-langchain](https://github.com/steamship-core/steamship-langchain) | 494 | +|[mpaepper/content-chatbot](https://github.com/mpaepper/content-chatbot) | 493 | +|[langchain-ai/langchain-aiplugin](https://github.com/langchain-ai/langchain-aiplugin) | 492 | +|[logan-markewich/llama_index_starter_pack](https://github.com/logan-markewich/llama_index_starter_pack) | 483 | +|[datawhalechina/llm-universe](https://github.com/datawhalechina/llm-universe) | 475 | +|[leondz/garak](https://github.com/leondz/garak) | 464 | +|[RedisVentures/ArXivChatGuru](https://github.com/RedisVentures/ArXivChatGuru) | 461 | +|[Anil-matcha/Chatbase](https://github.com/Anil-matcha/Chatbase) | 455 | +|[Aiyu-awa/luna-ai](https://github.com/Aiyu-awa/luna-ai) | 450 | +|[DataDog/dd-trace-py](https://github.com/DataDog/dd-trace-py) | 450 | +|[Azure-Samples/miyagi](https://github.com/Azure-Samples/miyagi) | 449 | +|[poe-platform/poe-protocol](https://github.com/poe-platform/poe-protocol) | 447 | +|[onlyphantom/llm-python](https://github.com/onlyphantom/llm-python) | 446 | +|[junruxiong/IncarnaMind](https://github.com/junruxiong/IncarnaMind) | 441 | +|[CarperAI/OpenELM](https://github.com/CarperAI/OpenELM) | 441 | +|[daodao97/chatdoc](https://github.com/daodao97/chatdoc) | 437 | +|[showlab/VLog](https://github.com/showlab/VLog) | 436 | +|[wandb/weave](https://github.com/wandb/weave) | 420 | +|[QwenLM/Qwen-Agent](https://github.com/QwenLM/Qwen-Agent) | 419 | +|[huchenxucs/ChatDB](https://github.com/huchenxucs/ChatDB) | 416 | +|[jerlendds/osintbuddy](https://github.com/jerlendds/osintbuddy) | 411 | +|[monarch-initiative/ontogpt](https://github.com/monarch-initiative/ontogpt) | 408 | +|[mallorbc/Finetune_LLMs](https://github.com/mallorbc/Finetune_LLMs) | 406 | +|[JayZeeDesign/researcher-gpt](https://github.com/JayZeeDesign/researcher-gpt) | 405 | +|[rsaryev/talk-codebase](https://github.com/rsaryev/talk-codebase) | 401 | +|[langchain-ai/langsmith-cookbook](https://github.com/langchain-ai/langsmith-cookbook) | 398 | |[mtenenholtz/chat-twitter](https://github.com/mtenenholtz/chat-twitter) | 398 | -|[LinkSoul-AI/AutoAgents](https://github.com/LinkSoul-AI/AutoAgents) | 397 | -|[Agenta-AI/agenta](https://github.com/Agenta-AI/agenta) | 389 | -|[huchenxucs/ChatDB](https://github.com/huchenxucs/ChatDB) | 386 | -|[mallorbc/Finetune_LLMs](https://github.com/mallorbc/Finetune_LLMs) | 379 | -|[junruxiong/IncarnaMind](https://github.com/junruxiong/IncarnaMind) | 372 | -|[MagnivOrg/prompt-layer-library](https://github.com/MagnivOrg/prompt-layer-library) | 368 | -|[mosaicml/examples](https://github.com/mosaicml/examples) | 366 | -|[rsaryev/talk-codebase](https://github.com/rsaryev/talk-codebase) | 364 | -|[morpheuslord/GPT_Vuln-analyzer](https://github.com/morpheuslord/GPT_Vuln-analyzer) | 362 | -|[monarch-initiative/ontogpt](https://github.com/monarch-initiative/ontogpt) | 362 | -|[JayZeeDesign/researcher-gpt](https://github.com/JayZeeDesign/researcher-gpt) | 361 | -|[personoids/personoids-lite](https://github.com/personoids/personoids-lite) | 361 | -|[intel/intel-extension-for-transformers](https://github.com/intel/intel-extension-for-transformers) | 357 | -|[jerlendds/osintbuddy](https://github.com/jerlendds/osintbuddy) | 357 | -|[steamship-packages/langchain-production-starter](https://github.com/steamship-packages/langchain-production-starter) | 356 | -|[onlyphantom/llm-python](https://github.com/onlyphantom/llm-python) | 354 | -|[Azure-Samples/miyagi](https://github.com/Azure-Samples/miyagi) | 340 | -|[mrwadams/attackgen](https://github.com/mrwadams/attackgen) | 338 | -|[rgomezcasas/dotfiles](https://github.com/rgomezcasas/dotfiles) | 337 | -|[eosphoros-ai/DB-GPT-Hub](https://github.com/eosphoros-ai/DB-GPT-Hub) | 336 | -|[andylokandy/gpt-4-search](https://github.com/andylokandy/gpt-4-search) | 335 | -|[NimbleBoxAI/ChainFury](https://github.com/NimbleBoxAI/ChainFury) | 330 | -|[momegas/megabots](https://github.com/momegas/megabots) | 329 | -|[Nuggt-dev/Nuggt](https://github.com/Nuggt-dev/Nuggt) | 315 | -|[itamargol/openai](https://github.com/itamargol/openai) | 315 | -|[BlackHC/llm-strategy](https://github.com/BlackHC/llm-strategy) | 315 | -|[aws-samples/aws-genai-llm-chatbot](https://github.com/aws-samples/aws-genai-llm-chatbot) | 312 | -|[Cheems-Seminar/grounded-segment-any-parts](https://github.com/Cheems-Seminar/grounded-segment-any-parts) | 312 | -|[preset-io/promptimize](https://github.com/preset-io/promptimize) | 311 | -|[dgarnitz/vectorflow](https://github.com/dgarnitz/vectorflow) | 309 | -|[langchain-ai/langsmith-cookbook](https://github.com/langchain-ai/langsmith-cookbook) | 309 | -|[CambioML/pykoi](https://github.com/CambioML/pykoi) | 309 | -|[wandb/edu](https://github.com/wandb/edu) | 301 | -|[XzaiCloud/luna-ai](https://github.com/XzaiCloud/luna-ai) | 300 | -|[liangwq/Chatglm_lora_multi-gpu](https://github.com/liangwq/Chatglm_lora_multi-gpu) | 294 | -|[Haste171/langchain-chatbot](https://github.com/Haste171/langchain-chatbot) | 291 | -|[sullivan-sean/chat-langchainjs](https://github.com/sullivan-sean/chat-langchainjs) | 286 | -|[sugarforever/LangChain-Tutorials](https://github.com/sugarforever/LangChain-Tutorials) | 285 | -|[facebookresearch/personal-timeline](https://github.com/facebookresearch/personal-timeline) | 283 | -|[hnawaz007/pythondataanalysis](https://github.com/hnawaz007/pythondataanalysis) | 282 | -|[yuanjie-ai/ChatLLM](https://github.com/yuanjie-ai/ChatLLM) | 280 | -|[MetaGLM/FinGLM](https://github.com/MetaGLM/FinGLM) | 279 | -|[JohnSnowLabs/langtest](https://github.com/JohnSnowLabs/langtest) | 277 | -|[Em1tSan/NeuroGPT](https://github.com/Em1tSan/NeuroGPT) | 274 | -|[Safiullah-Rahu/CSV-AI](https://github.com/Safiullah-Rahu/CSV-AI) | 274 | -|[conceptofmind/toolformer](https://github.com/conceptofmind/toolformer) | 274 | -|[airobotlab/KoChatGPT](https://github.com/airobotlab/KoChatGPT) | 266 | -|[gia-guar/JARVIS-ChatGPT](https://github.com/gia-guar/JARVIS-ChatGPT) | 263 | -|[Mintplex-Labs/vector-admin](https://github.com/Mintplex-Labs/vector-admin) | 262 | -|[artitw/text2text](https://github.com/artitw/text2text) | 262 | -|[kaarthik108/snowChat](https://github.com/kaarthik108/snowChat) | 261 | -|[paolorechia/learn-langchain](https://github.com/paolorechia/learn-langchain) | 260 | -|[shamspias/customizable-gpt-chatbot](https://github.com/shamspias/customizable-gpt-chatbot) | 260 | -|[ur-whitelab/exmol](https://github.com/ur-whitelab/exmol) | 258 | -|[hwchase17/chroma-langchain](https://github.com/hwchase17/chroma-langchain) | 257 | -|[bborn/howdoi.ai](https://github.com/bborn/howdoi.ai) | 255 | -|[ur-whitelab/chemcrow-public](https://github.com/ur-whitelab/chemcrow-public) | 253 | -|[pablomarin/GPT-Azure-Search-Engine](https://github.com/pablomarin/GPT-Azure-Search-Engine) | 251 | -|[gustavz/DataChad](https://github.com/gustavz/DataChad) | 249 | -|[radi-cho/datasetGPT](https://github.com/radi-cho/datasetGPT) | 249 | -|[ennucore/clippinator](https://github.com/ennucore/clippinator) | 247 | -|[recalign/RecAlign](https://github.com/recalign/RecAlign) | 244 | -|[lilacai/lilac](https://github.com/lilacai/lilac) | 243 | -|[kaleido-lab/dolphin](https://github.com/kaleido-lab/dolphin) | 236 | -|[iusztinpaul/hands-on-llms](https://github.com/iusztinpaul/hands-on-llms) | 233 | -|[PradipNichite/Youtube-Tutorials](https://github.com/PradipNichite/Youtube-Tutorials) | 231 | -|[shaman-ai/agent-actors](https://github.com/shaman-ai/agent-actors) | 231 | -|[hwchase17/langchain-streamlit-template](https://github.com/hwchase17/langchain-streamlit-template) | 231 | -|[yym68686/ChatGPT-Telegram-Bot](https://github.com/yym68686/ChatGPT-Telegram-Bot) | 226 | -|[grumpyp/aixplora](https://github.com/grumpyp/aixplora) | 222 | -|[su77ungr/CASALIOY](https://github.com/su77ungr/CASALIOY) | 222 | -|[alvarosevilla95/autolang](https://github.com/alvarosevilla95/autolang) | 222 | -|[arthur-ai/bench](https://github.com/arthur-ai/bench) | 220 | -|[miaoshouai/miaoshouai-assistant](https://github.com/miaoshouai/miaoshouai-assistant) | 219 | -|[AutoPackAI/beebot](https://github.com/AutoPackAI/beebot) | 217 | -|[edreisMD/plugnplai](https://github.com/edreisMD/plugnplai) | 216 | -|[nicknochnack/LangchainDocuments](https://github.com/nicknochnack/LangchainDocuments) | 214 | -|[AkshitIreddy/Interactive-LLM-Powered-NPCs](https://github.com/AkshitIreddy/Interactive-LLM-Powered-NPCs) | 213 | -|[SpecterOps/Nemesis](https://github.com/SpecterOps/Nemesis) | 210 | -|[kyegomez/swarms](https://github.com/kyegomez/swarms) | 210 | -|[wpydcr/LLM-Kit](https://github.com/wpydcr/LLM-Kit) | 208 | -|[orgexyz/BlockAGI](https://github.com/orgexyz/BlockAGI) | 204 | -|[Chainlit/cookbook](https://github.com/Chainlit/cookbook) | 202 | -|[WongSaang/chatgpt-ui-server](https://github.com/WongSaang/chatgpt-ui-server) | 202 | -|[jbrukh/gpt-jargon](https://github.com/jbrukh/gpt-jargon) | 202 | -|[handrew/browserpilot](https://github.com/handrew/browserpilot) | 202 | -|[langchain-ai/web-explorer](https://github.com/langchain-ai/web-explorer) | 200 | -|[plchld/InsightFlow](https://github.com/plchld/InsightFlow) | 200 | -|[alphasecio/langchain-examples](https://github.com/alphasecio/langchain-examples) | 199 | -|[Gentopia-AI/Gentopia](https://github.com/Gentopia-AI/Gentopia) | 198 | -|[SamPink/dev-gpt](https://github.com/SamPink/dev-gpt) | 196 | -|[yasyf/compress-gpt](https://github.com/yasyf/compress-gpt) | 196 | -|[benthecoder/ClassGPT](https://github.com/benthecoder/ClassGPT) | 195 | -|[voxel51/voxelgpt](https://github.com/voxel51/voxelgpt) | 193 | -|[CL-lau/SQL-GPT](https://github.com/CL-lau/SQL-GPT) | 192 | -|[blob42/Instrukt](https://github.com/blob42/Instrukt) | 191 | -|[streamlit/llm-examples](https://github.com/streamlit/llm-examples) | 191 | -|[stepanogil/autonomous-hr-chatbot](https://github.com/stepanogil/autonomous-hr-chatbot) | 190 | -|[TsinghuaDatabaseGroup/DB-GPT](https://github.com/TsinghuaDatabaseGroup/DB-GPT) | 189 | -|[PJLab-ADG/DriveLikeAHuman](https://github.com/PJLab-ADG/DriveLikeAHuman) | 187 | -|[Azure-Samples/azure-search-power-skills](https://github.com/Azure-Samples/azure-search-power-skills) | 187 | -|[microsoft/azure-openai-in-a-day-workshop](https://github.com/microsoft/azure-openai-in-a-day-workshop) | 187 | -|[ju-bezdek/langchain-decorators](https://github.com/ju-bezdek/langchain-decorators) | 182 | -|[hardbyte/qabot](https://github.com/hardbyte/qabot) | 181 | -|[hongbo-miao/hongbomiao.com](https://github.com/hongbo-miao/hongbomiao.com) | 180 | -|[QwenLM/Qwen-Agent](https://github.com/QwenLM/Qwen-Agent) | 179 | -|[showlab/UniVTG](https://github.com/showlab/UniVTG) | 179 | -|[Azure-Samples/jp-azureopenai-samples](https://github.com/Azure-Samples/jp-azureopenai-samples) | 176 | -|[afaqueumer/DocQA](https://github.com/afaqueumer/DocQA) | 174 | -|[ethanyanjiali/minChatGPT](https://github.com/ethanyanjiali/minChatGPT) | 174 | -|[shauryr/S2QA](https://github.com/shauryr/S2QA) | 174 | -|[RoboCoachTechnologies/GPT-Synthesizer](https://github.com/RoboCoachTechnologies/GPT-Synthesizer) | 173 | -|[chakkaradeep/pyCodeAGI](https://github.com/chakkaradeep/pyCodeAGI) | 172 | -|[vaibkumr/prompt-optimizer](https://github.com/vaibkumr/prompt-optimizer) | 171 | -|[ccurme/yolopandas](https://github.com/ccurme/yolopandas) | 170 | -|[anarchy-ai/LLM-VM](https://github.com/anarchy-ai/LLM-VM) | 169 | -|[ray-project/langchain-ray](https://github.com/ray-project/langchain-ray) | 169 | -|[fengyuli-dev/multimedia-gpt](https://github.com/fengyuli-dev/multimedia-gpt) | 169 | -|[ibiscp/LLM-IMDB](https://github.com/ibiscp/LLM-IMDB) | 168 | -|[mayooear/private-chatbot-mpt30b-langchain](https://github.com/mayooear/private-chatbot-mpt30b-langchain) | 167 | -|[OpenPluginACI/openplugin](https://github.com/OpenPluginACI/openplugin) | 165 | -|[jmpaz/promptlib](https://github.com/jmpaz/promptlib) | 165 | -|[kjappelbaum/gptchem](https://github.com/kjappelbaum/gptchem) | 162 | -|[JorisdeJong123/7-Days-of-LangChain](https://github.com/JorisdeJong123/7-Days-of-LangChain) | 161 | -|[retr0reg/Ret2GPT](https://github.com/retr0reg/Ret2GPT) | 161 | -|[menloparklab/falcon-langchain](https://github.com/menloparklab/falcon-langchain) | 159 | -|[summarizepaper/summarizepaper](https://github.com/summarizepaper/summarizepaper) | 158 | -|[emarco177/ice_breaker](https://github.com/emarco177/ice_breaker) | 157 | -|[AmineDiro/cria](https://github.com/AmineDiro/cria) | 156 | -|[morpheuslord/HackBot](https://github.com/morpheuslord/HackBot) | 156 | -|[homanp/vercel-langchain](https://github.com/homanp/vercel-langchain) | 156 | -|[mlops-for-all/mlops-for-all.github.io](https://github.com/mlops-for-all/mlops-for-all.github.io) | 155 | -|[positive666/Prompt-Can-Anything](https://github.com/positive666/Prompt-Can-Anything) | 154 | -|[deeppavlov/dream](https://github.com/deeppavlov/dream) | 153 | -|[flurb18/AgentOoba](https://github.com/flurb18/AgentOoba) | 151 | -|[Open-Swarm-Net/GPT-Swarm](https://github.com/Open-Swarm-Net/GPT-Swarm) | 151 | -|[v7labs/benchllm](https://github.com/v7labs/benchllm) | 150 | -|[Klingefjord/chatgpt-telegram](https://github.com/Klingefjord/chatgpt-telegram) | 150 | -|[Aggregate-Intellect/sherpa](https://github.com/Aggregate-Intellect/sherpa) | 148 | -|[Coding-Crashkurse/Langchain-Full-Course](https://github.com/Coding-Crashkurse/Langchain-Full-Course) | 148 | -|[SuperDuperDB/superduperdb](https://github.com/SuperDuperDB/superduperdb) | 147 | -|[defenseunicorns/leapfrogai](https://github.com/defenseunicorns/leapfrogai) | 147 | -|[menloparklab/langchain-cohere-qdrant-doc-retrieval](https://github.com/menloparklab/langchain-cohere-qdrant-doc-retrieval) | 147 | +|[morpheuslord/GPT_Vuln-analyzer](https://github.com/morpheuslord/GPT_Vuln-analyzer) | 391 | +|[MagnivOrg/prompt-layer-library](https://github.com/MagnivOrg/prompt-layer-library) | 387 | +|[JohnSnowLabs/langtest](https://github.com/JohnSnowLabs/langtest) | 384 | +|[mrwadams/attackgen](https://github.com/mrwadams/attackgen) | 381 | +|[codefuse-ai/Test-Agent](https://github.com/codefuse-ai/Test-Agent) | 380 | +|[personoids/personoids-lite](https://github.com/personoids/personoids-lite) | 379 | +|[mosaicml/examples](https://github.com/mosaicml/examples) | 378 | +|[steamship-packages/langchain-production-starter](https://github.com/steamship-packages/langchain-production-starter) | 370 | +|[FlagAI-Open/Aquila2](https://github.com/FlagAI-Open/Aquila2) | 365 | +|[Mintplex-Labs/vector-admin](https://github.com/Mintplex-Labs/vector-admin) | 365 | +|[NimbleBoxAI/ChainFury](https://github.com/NimbleBoxAI/ChainFury) | 357 | +|[BlackHC/llm-strategy](https://github.com/BlackHC/llm-strategy) | 354 | +|[lilacai/lilac](https://github.com/lilacai/lilac) | 352 | +|[preset-io/promptimize](https://github.com/preset-io/promptimize) | 351 | +|[yuanjie-ai/ChatLLM](https://github.com/yuanjie-ai/ChatLLM) | 347 | +|[andylokandy/gpt-4-search](https://github.com/andylokandy/gpt-4-search) | 346 | +|[zhoudaquan/ChatAnything](https://github.com/zhoudaquan/ChatAnything) | 343 | +|[rgomezcasas/dotfiles](https://github.com/rgomezcasas/dotfiles) | 343 | +|[tigerlab-ai/tiger](https://github.com/tigerlab-ai/tiger) | 342 | +|[HumanSignal/label-studio-ml-backend](https://github.com/HumanSignal/label-studio-ml-backend) | 334 | +|[nasa-petal/bidara](https://github.com/nasa-petal/bidara) | 334 | +|[momegas/megabots](https://github.com/momegas/megabots) | 334 | +|[Cheems-Seminar/grounded-segment-any-parts](https://github.com/Cheems-Seminar/grounded-segment-any-parts) | 330 | +|[CambioML/pykoi](https://github.com/CambioML/pykoi) | 326 | +|[Nuggt-dev/Nuggt](https://github.com/Nuggt-dev/Nuggt) | 326 | +|[wandb/edu](https://github.com/wandb/edu) | 326 | +|[Haste171/langchain-chatbot](https://github.com/Haste171/langchain-chatbot) | 324 | +|[sugarforever/LangChain-Tutorials](https://github.com/sugarforever/LangChain-Tutorials) | 322 | +|[liangwq/Chatglm_lora_multi-gpu](https://github.com/liangwq/Chatglm_lora_multi-gpu) | 321 | +|[ur-whitelab/chemcrow-public](https://github.com/ur-whitelab/chemcrow-public) | 320 | +|[itamargol/openai](https://github.com/itamargol/openai) | 318 | +|[gia-guar/JARVIS-ChatGPT](https://github.com/gia-guar/JARVIS-ChatGPT) | 304 | +|[SpecterOps/Nemesis](https://github.com/SpecterOps/Nemesis) | 302 | +|[facebookresearch/personal-timeline](https://github.com/facebookresearch/personal-timeline) | 302 | +|[hnawaz007/pythondataanalysis](https://github.com/hnawaz007/pythondataanalysis) | 301 | +|[Chainlit/cookbook](https://github.com/Chainlit/cookbook) | 300 | +|[airobotlab/KoChatGPT](https://github.com/airobotlab/KoChatGPT) | 300 | +|[GPT-Fathom/GPT-Fathom](https://github.com/GPT-Fathom/GPT-Fathom) | 299 | +|[kaarthik108/snowChat](https://github.com/kaarthik108/snowChat) | 299 | +|[kyegomez/swarms](https://github.com/kyegomez/swarms) | 296 | +|[LangStream/langstream](https://github.com/LangStream/langstream) | 295 | +|[genia-dev/GeniA](https://github.com/genia-dev/GeniA) | 294 | +|[shamspias/customizable-gpt-chatbot](https://github.com/shamspias/customizable-gpt-chatbot) | 291 | +|[TsinghuaDatabaseGroup/DB-GPT](https://github.com/TsinghuaDatabaseGroup/DB-GPT) | 290 | +|[conceptofmind/toolformer](https://github.com/conceptofmind/toolformer) | 283 | +|[sullivan-sean/chat-langchainjs](https://github.com/sullivan-sean/chat-langchainjs) | 283 | +|[AutoPackAI/beebot](https://github.com/AutoPackAI/beebot) | 282 | +|[pablomarin/GPT-Azure-Search-Engine](https://github.com/pablomarin/GPT-Azure-Search-Engine) | 282 | +|[gkamradt/LLMTest_NeedleInAHaystack](https://github.com/gkamradt/LLMTest_NeedleInAHaystack) | 280 | +|[gustavz/DataChad](https://github.com/gustavz/DataChad) | 280 | +|[Safiullah-Rahu/CSV-AI](https://github.com/Safiullah-Rahu/CSV-AI) | 278 | +|[hwchase17/chroma-langchain](https://github.com/hwchase17/chroma-langchain) | 275 | +|[AkshitIreddy/Interactive-LLM-Powered-NPCs](https://github.com/AkshitIreddy/Interactive-LLM-Powered-NPCs) | 268 | +|[ennucore/clippinator](https://github.com/ennucore/clippinator) | 267 | +|[artitw/text2text](https://github.com/artitw/text2text) | 264 | +|[anarchy-ai/LLM-VM](https://github.com/anarchy-ai/LLM-VM) | 263 | +|[wpydcr/LLM-Kit](https://github.com/wpydcr/LLM-Kit) | 262 | +|[streamlit/llm-examples](https://github.com/streamlit/llm-examples) | 262 | +|[paolorechia/learn-langchain](https://github.com/paolorechia/learn-langchain) | 262 | +|[yym68686/ChatGPT-Telegram-Bot](https://github.com/yym68686/ChatGPT-Telegram-Bot) | 261 | +|[PradipNichite/Youtube-Tutorials](https://github.com/PradipNichite/Youtube-Tutorials) | 259 | +|[radi-cho/datasetGPT](https://github.com/radi-cho/datasetGPT) | 259 | +|[ur-whitelab/exmol](https://github.com/ur-whitelab/exmol) | 259 | +|[ml6team/fondant](https://github.com/ml6team/fondant) | 254 | +|[bborn/howdoi.ai](https://github.com/bborn/howdoi.ai) | 254 | +|[rahulnyk/knowledge_graph](https://github.com/rahulnyk/knowledge_graph) | 253 | +|[recalign/RecAlign](https://github.com/recalign/RecAlign) | 248 | +|[hwchase17/langchain-streamlit-template](https://github.com/hwchase17/langchain-streamlit-template) | 248 | +|[fetchai/uAgents](https://github.com/fetchai/uAgents) | 247 | +|[arthur-ai/bench](https://github.com/arthur-ai/bench) | 247 | +|[miaoshouai/miaoshouai-assistant](https://github.com/miaoshouai/miaoshouai-assistant) | 246 | +|[RoboCoachTechnologies/GPT-Synthesizer](https://github.com/RoboCoachTechnologies/GPT-Synthesizer) | 244 | +|[langchain-ai/web-explorer](https://github.com/langchain-ai/web-explorer) | 242 | +|[kaleido-lab/dolphin](https://github.com/kaleido-lab/dolphin) | 242 | +|[PJLab-ADG/DriveLikeAHuman](https://github.com/PJLab-ADG/DriveLikeAHuman) | 241 | +|[stepanogil/autonomous-hr-chatbot](https://github.com/stepanogil/autonomous-hr-chatbot) | 238 | +|[WongSaang/chatgpt-ui-server](https://github.com/WongSaang/chatgpt-ui-server) | 236 | +|[nexus-stc/stc](https://github.com/nexus-stc/stc) | 235 | +|[yeagerai/genworlds](https://github.com/yeagerai/genworlds) | 235 | +|[Gentopia-AI/Gentopia](https://github.com/Gentopia-AI/Gentopia) | 235 | +|[alphasecio/langchain-examples](https://github.com/alphasecio/langchain-examples) | 235 | +|[grumpyp/aixplora](https://github.com/grumpyp/aixplora) | 232 | +|[shaman-ai/agent-actors](https://github.com/shaman-ai/agent-actors) | 232 | +|[darrenburns/elia](https://github.com/darrenburns/elia) | 231 | +|[orgexyz/BlockAGI](https://github.com/orgexyz/BlockAGI) | 231 | +|[handrew/browserpilot](https://github.com/handrew/browserpilot) | 226 | +|[su77ungr/CASALIOY](https://github.com/su77ungr/CASALIOY) | 225 | +|[nicknochnack/LangchainDocuments](https://github.com/nicknochnack/LangchainDocuments) | 225 | +|[dbpunk-labs/octogen](https://github.com/dbpunk-labs/octogen) | 224 | +|[langchain-ai/weblangchain](https://github.com/langchain-ai/weblangchain) | 222 | +|[CL-lau/SQL-GPT](https://github.com/CL-lau/SQL-GPT) | 222 | +|[alvarosevilla95/autolang](https://github.com/alvarosevilla95/autolang) | 221 | +|[showlab/UniVTG](https://github.com/showlab/UniVTG) | 220 | +|[edreisMD/plugnplai](https://github.com/edreisMD/plugnplai) | 219 | +|[hardbyte/qabot](https://github.com/hardbyte/qabot) | 216 | +|[microsoft/azure-openai-in-a-day-workshop](https://github.com/microsoft/azure-openai-in-a-day-workshop) | 215 | +|[Azure-Samples/chat-with-your-data-solution-accelerator](https://github.com/Azure-Samples/chat-with-your-data-solution-accelerator) | 214 | +|[amadad/agentcy](https://github.com/amadad/agentcy) | 213 | +|[snexus/llm-search](https://github.com/snexus/llm-search) | 212 | +|[afaqueumer/DocQA](https://github.com/afaqueumer/DocQA) | 206 | +|[plchld/InsightFlow](https://github.com/plchld/InsightFlow) | 205 | +|[yasyf/compress-gpt](https://github.com/yasyf/compress-gpt) | 205 | +|[benthecoder/ClassGPT](https://github.com/benthecoder/ClassGPT) | 205 | +|[voxel51/voxelgpt](https://github.com/voxel51/voxelgpt) | 204 | +|[jbrukh/gpt-jargon](https://github.com/jbrukh/gpt-jargon) | 204 | +|[emarco177/ice_breaker](https://github.com/emarco177/ice_breaker) | 204 | +|[tencentmusic/supersonic](https://github.com/tencentmusic/supersonic) | 202 | +|[Azure-Samples/azure-search-power-skills](https://github.com/Azure-Samples/azure-search-power-skills) | 202 | +|[blob42/Instrukt](https://github.com/blob42/Instrukt) | 201 | +|[langchain-ai/langsmith-sdk](https://github.com/langchain-ai/langsmith-sdk) | 200 | +|[SamPink/dev-gpt](https://github.com/SamPink/dev-gpt) | 200 | +|[ju-bezdek/langchain-decorators](https://github.com/ju-bezdek/langchain-decorators) | 198 | +|[KMnO4-zx/huanhuan-chat](https://github.com/KMnO4-zx/huanhuan-chat) | 196 | +|[Azure-Samples/jp-azureopenai-samples](https://github.com/Azure-Samples/jp-azureopenai-samples) | 192 | +|[hongbo-miao/hongbomiao.com](https://github.com/hongbo-miao/hongbomiao.com) | 190 | +|[CakeCrusher/openplugin](https://github.com/CakeCrusher/openplugin) | 190 | +|[PaddlePaddle/ERNIE-Bot-SDK](https://github.com/PaddlePaddle/ERNIE-Bot-SDK) | 189 | +|[retr0reg/Ret2GPT](https://github.com/retr0reg/Ret2GPT) | 189 | +|[AmineDiro/cria](https://github.com/AmineDiro/cria) | 187 | +|[lancedb/vectordb-recipes](https://github.com/lancedb/vectordb-recipes) | 186 | +|[vaibkumr/prompt-optimizer](https://github.com/vaibkumr/prompt-optimizer) | 185 | +|[aws-ia/ecs-blueprints](https://github.com/aws-ia/ecs-blueprints) | 184 | +|[ethanyanjiali/minChatGPT](https://github.com/ethanyanjiali/minChatGPT) | 183 | +|[MuhammadMoinFaisal/LargeLanguageModelsProjects](https://github.com/MuhammadMoinFaisal/LargeLanguageModelsProjects) | 182 | +|[shauryr/S2QA](https://github.com/shauryr/S2QA) | 181 | +|[summarizepaper/summarizepaper](https://github.com/summarizepaper/summarizepaper) | 180 | +|[NomaDamas/RAGchain](https://github.com/NomaDamas/RAGchain) | 179 | +|[pnkvalavala/repochat](https://github.com/pnkvalavala/repochat) | 179 | +|[ibiscp/LLM-IMDB](https://github.com/ibiscp/LLM-IMDB) | 177 | +|[fengyuli-dev/multimedia-gpt](https://github.com/fengyuli-dev/multimedia-gpt) | 177 | +|[langchain-ai/text-split-explorer](https://github.com/langchain-ai/text-split-explorer) | 175 | +|[iMagist486/ElasticSearch-Langchain-Chatglm2](https://github.com/iMagist486/ElasticSearch-Langchain-Chatglm2) | 175 | +|[limaoyi1/Auto-PPT](https://github.com/limaoyi1/Auto-PPT) | 175 | +|[Open-Swarm-Net/GPT-Swarm](https://github.com/Open-Swarm-Net/GPT-Swarm) | 175 | +|[morpheuslord/HackBot](https://github.com/morpheuslord/HackBot) | 174 | +|[v7labs/benchllm](https://github.com/v7labs/benchllm) | 174 | +|[Coding-Crashkurse/Langchain-Full-Course](https://github.com/Coding-Crashkurse/Langchain-Full-Course) | 174 | +|[dongyh20/Octopus](https://github.com/dongyh20/Octopus) | 173 | +|[kimtth/azure-openai-llm-vector-langchain](https://github.com/kimtth/azure-openai-llm-vector-langchain) | 173 | +|[mayooear/private-chatbot-mpt30b-langchain](https://github.com/mayooear/private-chatbot-mpt30b-langchain) | 173 | +|[zilliztech/akcio](https://github.com/zilliztech/akcio) | 172 | +|[jmpaz/promptlib](https://github.com/jmpaz/promptlib) | 172 | +|[ccurme/yolopandas](https://github.com/ccurme/yolopandas) | 172 | +|[joaomdmoura/CrewAI](https://github.com/joaomdmoura/CrewAI) | 170 | +|[katanaml/llm-mistral-invoice-cpu](https://github.com/katanaml/llm-mistral-invoice-cpu) | 170 | +|[chakkaradeep/pyCodeAGI](https://github.com/chakkaradeep/pyCodeAGI) | 170 | +|[mudler/LocalAGI](https://github.com/mudler/LocalAGI) | 167 | +|[dssjon/biblos](https://github.com/dssjon/biblos) | 165 | +|[kjappelbaum/gptchem](https://github.com/kjappelbaum/gptchem) | 165 | +|[xxw1995/chatglm3-finetune](https://github.com/xxw1995/chatglm3-finetune) | 164 | +|[ArjanCodes/examples](https://github.com/ArjanCodes/examples) | 163 | +|[AIAnytime/Llama2-Medical-Chatbot](https://github.com/AIAnytime/Llama2-Medical-Chatbot) | 163 | +|[RCGAI/SimplyRetrieve](https://github.com/RCGAI/SimplyRetrieve) | 162 | +|[langchain-ai/langchain-teacher](https://github.com/langchain-ai/langchain-teacher) | 162 | +|[menloparklab/falcon-langchain](https://github.com/menloparklab/falcon-langchain) | 162 | +|[flurb18/AgentOoba](https://github.com/flurb18/AgentOoba) | 162 | +|[homanp/vercel-langchain](https://github.com/homanp/vercel-langchain) | 161 | +|[jiran214/langup-ai](https://github.com/jiran214/langup-ai) | 160 | +|[JorisdeJong123/7-Days-of-LangChain](https://github.com/JorisdeJong123/7-Days-of-LangChain) | 160 | +|[GoogleCloudPlatform/data-analytics-golden-demo](https://github.com/GoogleCloudPlatform/data-analytics-golden-demo) | 159 | +|[positive666/Prompt-Can-Anything](https://github.com/positive666/Prompt-Can-Anything) | 159 | +|[luisroque/large_laguage_models](https://github.com/luisroque/large_laguage_models) | 159 | +|[mlops-for-all/mlops-for-all.github.io](https://github.com/mlops-for-all/mlops-for-all.github.io) | 158 | +|[wandb/wandbot](https://github.com/wandb/wandbot) | 158 | +|[elastic/elasticsearch-labs](https://github.com/elastic/elasticsearch-labs) | 157 | +|[shroominic/funcchain](https://github.com/shroominic/funcchain) | 157 | +|[deeppavlov/dream](https://github.com/deeppavlov/dream) | 156 | +|[mluogh/eastworld](https://github.com/mluogh/eastworld) | 154 | +|[georgesung/llm_qlora](https://github.com/georgesung/llm_qlora) | 154 | +|[RUC-GSAI/YuLan-Rec](https://github.com/RUC-GSAI/YuLan-Rec) | 153 | +|[KylinC/ChatFinance](https://github.com/KylinC/ChatFinance) | 152 | +|[Dicklesworthstone/llama2_aided_tesseract](https://github.com/Dicklesworthstone/llama2_aided_tesseract) | 152 | +|[c0sogi/LLMChat](https://github.com/c0sogi/LLMChat) | 152 | +|[eunomia-bpf/GPTtrace](https://github.com/eunomia-bpf/GPTtrace) | 152 | +|[ErikBjare/gptme](https://github.com/ErikBjare/gptme) | 152 | +|[Klingefjord/chatgpt-telegram](https://github.com/Klingefjord/chatgpt-telegram) | 152 | +|[RoboCoachTechnologies/ROScribe](https://github.com/RoboCoachTechnologies/ROScribe) | 151 | +|[Aggregate-Intellect/sherpa](https://github.com/Aggregate-Intellect/sherpa) | 151 | +|[3Alan/DocsMind](https://github.com/3Alan/DocsMind) | 151 | +|[tangqiaoyu/ToolAlpaca](https://github.com/tangqiaoyu/ToolAlpaca) | 150 | +|[kulltc/chatgpt-sql](https://github.com/kulltc/chatgpt-sql) | 150 | +|[mallahyari/drqa](https://github.com/mallahyari/drqa) | 150 | +|[MedalCollector/Orator](https://github.com/MedalCollector/Orator) | 149 | +|[Teahouse-Studios/akari-bot](https://github.com/Teahouse-Studios/akari-bot) | 149 | +|[realminchoi/babyagi-ui](https://github.com/realminchoi/babyagi-ui) | 148 | +|[ssheng/BentoChain](https://github.com/ssheng/BentoChain) | 148 | +|[lmstudio-ai/examples](https://github.com/lmstudio-ai/examples) | 147 | +|[solana-labs/chatgpt-plugin](https://github.com/solana-labs/chatgpt-plugin) | 147 | +|[aurelio-labs/arxiv-bot](https://github.com/aurelio-labs/arxiv-bot) | 147 | |[Jaseci-Labs/jaseci](https://github.com/Jaseci-Labs/jaseci) | 146 | -|[realminchoi/babyagi-ui](https://github.com/realminchoi/babyagi-ui) | 146 | -|[iMagist486/ElasticSearch-Langchain-Chatglm2](https://github.com/iMagist486/ElasticSearch-Langchain-Chatglm2) | 144 | -|[peterw/StoryStorm](https://github.com/peterw/StoryStorm) | 143 | -|[kulltc/chatgpt-sql](https://github.com/kulltc/chatgpt-sql) | 142 | -|[Teahouse-Studios/akari-bot](https://github.com/Teahouse-Studios/akari-bot) | 142 | -|[hirokidaichi/wanna](https://github.com/hirokidaichi/wanna) | 141 | +|[menloparklab/langchain-cohere-qdrant-doc-retrieval](https://github.com/menloparklab/langchain-cohere-qdrant-doc-retrieval) | 146 | +|[trancethehuman/entities-extraction-web-scraper](https://github.com/trancethehuman/entities-extraction-web-scraper) | 144 | +|[peterw/StoryStorm](https://github.com/peterw/StoryStorm) | 144 | +|[grumpyp/chroma-langchain-tutorial](https://github.com/grumpyp/chroma-langchain-tutorial) | 144 | +|[gh18l/CrawlGPT](https://github.com/gh18l/CrawlGPT) | 142 | +|[langchain-ai/langchain-aws-template](https://github.com/langchain-ai/langchain-aws-template) | 142 | |[yasyf/summ](https://github.com/yasyf/summ) | 141 | -|[solana-labs/chatgpt-plugin](https://github.com/solana-labs/chatgpt-plugin) | 140 | -|[ssheng/BentoChain](https://github.com/ssheng/BentoChain) | 139 | -|[mallahyari/drqa](https://github.com/mallahyari/drqa) | 139 | -|[petehunt/langchain-github-bot](https://github.com/petehunt/langchain-github-bot) | 139 | -|[dbpunk-labs/octogen](https://github.com/dbpunk-labs/octogen) | 138 | -|[RedisVentures/redis-openai-qna](https://github.com/RedisVentures/redis-openai-qna) | 138 | -|[eunomia-bpf/GPTtrace](https://github.com/eunomia-bpf/GPTtrace) | 138 | -|[langchain-ai/langsmith-sdk](https://github.com/langchain-ai/langsmith-sdk) | 137 | -|[jina-ai/fastapi-serve](https://github.com/jina-ai/fastapi-serve) | 137 | -|[yeagerai/genworlds](https://github.com/yeagerai/genworlds) | 137 | -|[aurelio-labs/arxiv-bot](https://github.com/aurelio-labs/arxiv-bot) | 137 | -|[luisroque/large_laguage_models](https://github.com/luisroque/large_laguage_models) | 136 | -|[ChuloAI/BrainChulo](https://github.com/ChuloAI/BrainChulo) | 136 | -|[3Alan/DocsMind](https://github.com/3Alan/DocsMind) | 136 | -|[KylinC/ChatFinance](https://github.com/KylinC/ChatFinance) | 133 | -|[langchain-ai/text-split-explorer](https://github.com/langchain-ai/text-split-explorer) | 133 | -|[davila7/file-gpt](https://github.com/davila7/file-gpt) | 133 | -|[tencentmusic/supersonic](https://github.com/tencentmusic/supersonic) | 132 | -|[kimtth/azure-openai-llm-vector-langchain](https://github.com/kimtth/azure-openai-llm-vector-langchain) | 131 | -|[ciare-robotics/world-creator](https://github.com/ciare-robotics/world-creator) | 129 | -|[zenml-io/zenml-projects](https://github.com/zenml-io/zenml-projects) | 129 | -|[log1stics/voice-generator-webui](https://github.com/log1stics/voice-generator-webui) | 129 | -|[snexus/llm-search](https://github.com/snexus/llm-search) | 129 | -|[fixie-ai/fixie-examples](https://github.com/fixie-ai/fixie-examples) | 128 | -|[MedalCollector/Orator](https://github.com/MedalCollector/Orator) | 127 | -|[grumpyp/chroma-langchain-tutorial](https://github.com/grumpyp/chroma-langchain-tutorial) | 127 | -|[langchain-ai/langchain-aws-template](https://github.com/langchain-ai/langchain-aws-template) | 127 | +|[petehunt/langchain-github-bot](https://github.com/petehunt/langchain-github-bot) | 141 | +|[hirokidaichi/wanna](https://github.com/hirokidaichi/wanna) | 140 | +|[jina-ai/fastapi-serve](https://github.com/jina-ai/fastapi-serve) | 139 | +|[zenml-io/zenml-projects](https://github.com/zenml-io/zenml-projects) | 139 | +|[jlonge4/local_llama](https://github.com/jlonge4/local_llama) | 139 | +|[smyja/blackmaria](https://github.com/smyja/blackmaria) | 138 | +|[ChuloAI/BrainChulo](https://github.com/ChuloAI/BrainChulo) | 137 | +|[log1stics/voice-generator-webui](https://github.com/log1stics/voice-generator-webui) | 137 | +|[davila7/file-gpt](https://github.com/davila7/file-gpt) | 137 | +|[dcaribou/transfermarkt-datasets](https://github.com/dcaribou/transfermarkt-datasets) | 136 | +|[ciare-robotics/world-creator](https://github.com/ciare-robotics/world-creator) | 135 | +|[Undertone0809/promptulate](https://github.com/Undertone0809/promptulate) | 134 | +|[fixie-ai/fixie-examples](https://github.com/fixie-ai/fixie-examples) | 134 | +|[run-llama/ai-engineer-workshop](https://github.com/run-llama/ai-engineer-workshop) | 133 | +|[definitive-io/code-indexer-loop](https://github.com/definitive-io/code-indexer-loop) | 131 | +|[mortium91/langchain-assistant](https://github.com/mortium91/langchain-assistant) | 131 | +|[baidubce/bce-qianfan-sdk](https://github.com/baidubce/bce-qianfan-sdk) | 130 | +|[Ngonie-x/langchain_csv](https://github.com/Ngonie-x/langchain_csv) | 130 | +|[IvanIsCoding/ResuLLMe](https://github.com/IvanIsCoding/ResuLLMe) | 130 | +|[AnchoringAI/anchoring-ai](https://github.com/AnchoringAI/anchoring-ai) | 129 | +|[Azure/business-process-automation](https://github.com/Azure/business-process-automation) | 128 | +|[athina-ai/athina-sdk](https://github.com/athina-ai/athina-sdk) | 126 | +|[thunlp/ChatEval](https://github.com/thunlp/ChatEval) | 126 | |[prof-frink-lab/slangchain](https://github.com/prof-frink-lab/slangchain) | 126 | -|[KMnO4-zx/huanhuan-chat](https://github.com/KMnO4-zx/huanhuan-chat) | 124 | -|[RCGAI/SimplyRetrieve](https://github.com/RCGAI/SimplyRetrieve) | 124 | -|[Dicklesworthstone/llama2_aided_tesseract](https://github.com/Dicklesworthstone/llama2_aided_tesseract) | 123 | -|[sdaaron/QueryGPT](https://github.com/sdaaron/QueryGPT) | 122 | -|[athina-ai/athina-sdk](https://github.com/athina-ai/athina-sdk) | 121 | -|[AIAnytime/Llama2-Medical-Chatbot](https://github.com/AIAnytime/Llama2-Medical-Chatbot) | 121 | -|[MuhammadMoinFaisal/LargeLanguageModelsProjects](https://github.com/MuhammadMoinFaisal/LargeLanguageModelsProjects) | 121 | -|[Azure/business-process-automation](https://github.com/Azure/business-process-automation) | 121 | -|[definitive-io/code-indexer-loop](https://github.com/definitive-io/code-indexer-loop) | 119 | -|[nrl-ai/pautobot](https://github.com/nrl-ai/pautobot) | 119 | -|[Azure/app-service-linux-docs](https://github.com/Azure/app-service-linux-docs) | 118 | -|[zilliztech/akcio](https://github.com/zilliztech/akcio) | 118 | +|[vietanhdev/pautobot](https://github.com/vietanhdev/pautobot) | 125 | +|[awslabs/generative-ai-cdk-constructs](https://github.com/awslabs/generative-ai-cdk-constructs) | 124 | +|[sdaaron/QueryGPT](https://github.com/sdaaron/QueryGPT) | 124 | +|[rabbitmetrics/langchain-13-min](https://github.com/rabbitmetrics/langchain-13-min) | 124 | +|[AutoLLM/AutoAgents](https://github.com/AutoLLM/AutoAgents) | 122 | +|[nicknochnack/Nopenai](https://github.com/nicknochnack/Nopenai) | 122 | +|[wombyz/HormoziGPT](https://github.com/wombyz/HormoziGPT) | 122 | +|[dotvignesh/PDFChat](https://github.com/dotvignesh/PDFChat) | 122 | +|[topoteretes/PromethAI-Backend](https://github.com/topoteretes/PromethAI-Backend) | 121 | +|[nftblackmagic/flask-langchain](https://github.com/nftblackmagic/flask-langchain) | 121 | +|[vishwasg217/finsight](https://github.com/vishwasg217/finsight) | 120 | +|[snap-stanford/MLAgentBench](https://github.com/snap-stanford/MLAgentBench) | 120 | +|[Azure/app-service-linux-docs](https://github.com/Azure/app-service-linux-docs) | 120 | +|[nyanp/chat2plot](https://github.com/nyanp/chat2plot) | 120 | +|[ant4g0nist/polar](https://github.com/ant4g0nist/polar) | 119 | +|[aws-samples/cdk-eks-blueprints-patterns](https://github.com/aws-samples/cdk-eks-blueprints-patterns) | 119 | +|[aws-samples/amazon-kendra-langchain-extensions](https://github.com/aws-samples/amazon-kendra-langchain-extensions) | 119 | +|[Xueheng-Li/SynologyChatbotGPT](https://github.com/Xueheng-Li/SynologyChatbotGPT) | 119 | |[CodeAlchemyAI/ViLT-GPT](https://github.com/CodeAlchemyAI/ViLT-GPT) | 117 | -|[georgesung/llm_qlora](https://github.com/georgesung/llm_qlora) | 117 | -|[nicknochnack/Nopenai](https://github.com/nicknochnack/Nopenai) | 115 | -|[nftblackmagic/flask-langchain](https://github.com/nftblackmagic/flask-langchain) | 115 | -|[mortium91/langchain-assistant](https://github.com/mortium91/langchain-assistant) | 115 | -|[Ngonie-x/langchain_csv](https://github.com/Ngonie-x/langchain_csv) | 114 | -|[wombyz/HormoziGPT](https://github.com/wombyz/HormoziGPT) | 114 | -|[langchain-ai/langchain-teacher](https://github.com/langchain-ai/langchain-teacher) | 113 | -|[mluogh/eastworld](https://github.com/mluogh/eastworld) | 112 | -|[mudler/LocalAGI](https://github.com/mudler/LocalAGI) | 112 | -|[marimo-team/marimo](https://github.com/marimo-team/marimo) | 111 | -|[trancethehuman/entities-extraction-web-scraper](https://github.com/trancethehuman/entities-extraction-web-scraper) | 111 | -|[xuwenhao/mactalk-ai-course](https://github.com/xuwenhao/mactalk-ai-course) | 111 | -|[dcaribou/transfermarkt-datasets](https://github.com/dcaribou/transfermarkt-datasets) | 111 | -|[rabbitmetrics/langchain-13-min](https://github.com/rabbitmetrics/langchain-13-min) | 111 | -|[dotvignesh/PDFChat](https://github.com/dotvignesh/PDFChat) | 111 | -|[aws-samples/cdk-eks-blueprints-patterns](https://github.com/aws-samples/cdk-eks-blueprints-patterns) | 110 | -|[topoteretes/PromethAI-Backend](https://github.com/topoteretes/PromethAI-Backend) | 110 | -|[jlonge4/local_llama](https://github.com/jlonge4/local_llama) | 110 | -|[RUC-GSAI/YuLan-Rec](https://github.com/RUC-GSAI/YuLan-Rec) | 108 | -|[gh18l/CrawlGPT](https://github.com/gh18l/CrawlGPT) | 107 | -|[c0sogi/LLMChat](https://github.com/c0sogi/LLMChat) | 107 | -|[hwchase17/langchain-gradio-template](https://github.com/hwchase17/langchain-gradio-template) | 107 | -|[ArjanCodes/examples](https://github.com/ArjanCodes/examples) | 106 | -|[genia-dev/GeniA](https://github.com/genia-dev/GeniA) | 105 | -|[nexus-stc/stc](https://github.com/nexus-stc/stc) | 105 | -|[mbchang/data-driven-characters](https://github.com/mbchang/data-driven-characters) | 105 | -|[ademakdogan/ChatSQL](https://github.com/ademakdogan/ChatSQL) | 104 | -|[crosleythomas/MirrorGPT](https://github.com/crosleythomas/MirrorGPT) | 104 | -|[IvanIsCoding/ResuLLMe](https://github.com/IvanIsCoding/ResuLLMe) | 104 | -|[avrabyt/MemoryBot](https://github.com/avrabyt/MemoryBot) | 104 | -|[Azure/azure-sdk-tools](https://github.com/Azure/azure-sdk-tools) | 103 | -|[aniketmaurya/llm-inference](https://github.com/aniketmaurya/llm-inference) | 103 | -|[Anil-matcha/Youtube-to-chatbot](https://github.com/Anil-matcha/Youtube-to-chatbot) | 103 | -|[nyanp/chat2plot](https://github.com/nyanp/chat2plot) | 102 | -|[aws-samples/amazon-kendra-langchain-extensions](https://github.com/aws-samples/amazon-kendra-langchain-extensions) | 101 | -|[atisharma/llama_farm](https://github.com/atisharma/llama_farm) | 100 | -|[Xueheng-Li/SynologyChatbotGPT](https://github.com/Xueheng-Li/SynologyChatbotGPT) | 100 | - +|[Lin-jun-xiang/docGPT-langchain](https://github.com/Lin-jun-xiang/docGPT-langchain) | 117 | +|[ademakdogan/ChatSQL](https://github.com/ademakdogan/ChatSQL) | 116 | +|[aniketmaurya/llm-inference](https://github.com/aniketmaurya/llm-inference) | 115 | +|[xuwenhao/mactalk-ai-course](https://github.com/xuwenhao/mactalk-ai-course) | 115 | +|[cmooredev/RepoReader](https://github.com/cmooredev/RepoReader) | 115 | +|[abi/autocommit](https://github.com/abi/autocommit) | 115 | +|[MIDORIBIN/langchain-gpt4free](https://github.com/MIDORIBIN/langchain-gpt4free) | 114 | +|[finaldie/auto-news](https://github.com/finaldie/auto-news) | 114 | +|[Anil-matcha/Youtube-to-chatbot](https://github.com/Anil-matcha/Youtube-to-chatbot) | 114 | +|[avrabyt/MemoryBot](https://github.com/avrabyt/MemoryBot) | 114 | +|[Capsize-Games/airunner](https://github.com/Capsize-Games/airunner) | 113 | +|[atisharma/llama_farm](https://github.com/atisharma/llama_farm) | 113 | +|[mbchang/data-driven-characters](https://github.com/mbchang/data-driven-characters) | 112 | +|[fiddler-labs/fiddler-auditor](https://github.com/fiddler-labs/fiddler-auditor) | 112 | +|[dirkjbreeuwer/gpt-automated-web-scraper](https://github.com/dirkjbreeuwer/gpt-automated-web-scraper) | 111 | +|[Appointat/Chat-with-Document-s-using-ChatGPT-API-and-Text-Embedding](https://github.com/Appointat/Chat-with-Document-s-using-ChatGPT-API-and-Text-Embedding) | 111 | +|[hwchase17/langchain-gradio-template](https://github.com/hwchase17/langchain-gradio-template) | 111 | +|[artas728/spelltest](https://github.com/artas728/spelltest) | 110 | +|[NVIDIA/GenerativeAIExamples](https://github.com/NVIDIA/GenerativeAIExamples) | 109 | +|[Azure/aistudio-copilot-sample](https://github.com/Azure/aistudio-copilot-sample) | 108 | +|[codefuse-ai/codefuse-chatbot](https://github.com/codefuse-ai/codefuse-chatbot) | 108 | +|[apirrone/Memento](https://github.com/apirrone/Memento) | 108 | +|[e-johnstonn/GPT-Doc-Summarizer](https://github.com/e-johnstonn/GPT-Doc-Summarizer) | 108 | +|[salesforce/BOLAA](https://github.com/salesforce/BOLAA) | 107 | +|[Erol444/gpt4-openai-api](https://github.com/Erol444/gpt4-openai-api) | 106 | +|[linjungz/chat-with-your-doc](https://github.com/linjungz/chat-with-your-doc) | 106 | +|[crosleythomas/MirrorGPT](https://github.com/crosleythomas/MirrorGPT) | 106 | +|[panaverse/learn-generative-ai](https://github.com/panaverse/learn-generative-ai) | 105 | +|[Azure/azure-sdk-tools](https://github.com/Azure/azure-sdk-tools) | 105 | +|[malywut/gpt_examples](https://github.com/malywut/gpt_examples) | 105 | +|[ritun16/chain-of-verification](https://github.com/ritun16/chain-of-verification) | 104 | +|[langchain-ai/langchain-benchmarks](https://github.com/langchain-ai/langchain-benchmarks) | 104 | +|[lightninglabs/LangChainBitcoin](https://github.com/lightninglabs/LangChainBitcoin) | 104 | +|[flepied/second-brain-agent](https://github.com/flepied/second-brain-agent) | 103 | +|[llmapp/openai.mini](https://github.com/llmapp/openai.mini) | 102 | +|[gimlet-ai/tddGPT](https://github.com/gimlet-ai/tddGPT) | 102 | +|[jlonge4/gpt_chatwithPDF](https://github.com/jlonge4/gpt_chatwithPDF) | 102 | +|[agentification/RAFA_code](https://github.com/agentification/RAFA_code) | 101 | +|[pacman100/DHS-LLM-Workshop](https://github.com/pacman100/DHS-LLM-Workshop) | 101 | +|[aws-samples/private-llm-qa-bot](https://github.com/aws-samples/private-llm-qa-bot) | 101 | _Generated by [github-dependents-info](https://github.com/nvuillam/github-dependents-info)_ -`github-dependents-info --repo langchain-ai/langchain --markdownfile dependents.md --minstars 100 --sort stars` +`github-dependents-info --repo "langchain-ai/langchain" --markdownfile dependents.md --minstars 100 --sort stars`