diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index f468f34e6..4f66b1242 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -83,5 +83,6 @@ In general, follow the [Google Developer Documentation Style Guide](https://deve - Do not review code blocks (denoted by ```), as they are often not full snippets - Do not include untested code examples - Do not make assumptions - always ask for clarification +- Do not include localization in relative links (e.g., `/python/` or `/javascript/`) - these are resolved automatically by the build pipeline For questions, refer to the Mintlify docs (either via MCP, if available), or at the [Mintlify documentation](https://docs.mintlify.com/docs/introduction). diff --git a/AGENTS.md b/AGENTS.md index f468f34e6..4f66b1242 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -83,5 +83,6 @@ In general, follow the [Google Developer Documentation Style Guide](https://deve - Do not review code blocks (denoted by ```), as they are often not full snippets - Do not include untested code examples - Do not make assumptions - always ask for clarification +- Do not include localization in relative links (e.g., `/python/` or `/javascript/`) - these are resolved automatically by the build pipeline For questions, refer to the Mintlify docs (either via MCP, if available), or at the [Mintlify documentation](https://docs.mintlify.com/docs/introduction). diff --git a/CLAUDE.md b/CLAUDE.md index f468f34e6..4f66b1242 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -83,5 +83,6 @@ In general, follow the [Google Developer Documentation Style Guide](https://deve - Do not review code blocks (denoted by ```), as they are often not full snippets - Do not include untested code examples - Do not make assumptions - always ask for clarification +- Do not include localization in relative links (e.g., `/python/` or `/javascript/`) - these are resolved automatically by the build pipeline For questions, refer to the Mintlify docs (either via MCP, if available), or at the [Mintlify documentation](https://docs.mintlify.com/docs/introduction). diff --git a/reference/python/pyproject.toml b/reference/python/pyproject.toml index e9ab2c334..f0f597d95 100644 --- a/reference/python/pyproject.toml +++ b/reference/python/pyproject.toml @@ -94,94 +94,103 @@ dependencies = [ [tool.uv] package = false -# Use copy mode instead of hardlink to avoid filesystem compatibility issues -# This is necessary for CI/CD environments like Vercel where cache and target -# directories may be on different filesystems -link-mode = "copy" override-dependencies = [ "pytest-codspeed>=3.1.0,<4.0.0", ] [tool.uv.sources] -# Remote installs for prod +# Local installs for development +# NOTE: ensure you are on the correct branch for each repo when doing local installs +# +# The paths assume you have a folder structure like: +# /some-parent-folder +# /docs <-- this repo +# /python +# /reference +# /langchain +# /libs +# langchain +# core +# ... +# /external-repos-here ## LangChain monorepo packages (alphabetical) ### Top level -#langchain-cli = { git = "https://github.com/langchain-ai/langchain.git", subdirectory = "libs/cli" } -langchain-core = { git = "https://github.com/langchain-ai/langchain.git", subdirectory = "libs/core" } -langchain = { git = "https://github.com/langchain-ai/langchain.git", subdirectory = "libs/langchain_v1" } -langchain-classic = { git = "https://github.com/langchain-ai/langchain.git", subdirectory = "libs/langchain" } -#langchain-tests = { git = "https://github.com/langchain-ai/langchain.git", subdirectory = "libs/standard-tests" } -#langchain-text-splitters = { git = "https://github.com/langchain-ai/langchain.git", subdirectory = "libs/text-splitters" } +## TODO: re-map langchain-v1 on release, add legacy/classic +langchain-cli = { path = "../../../langchain/libs/cli", editable = true } +langchain-core = { path = "../../../langchain/libs/core", editable = true } +langchain = { path = "../../../langchain/libs/langchain_v1", editable = true } +langchain-classic = { path = "../../../langchain/libs/langchain", editable = true } +langchain-tests = { path = "../../../langchain/libs/standard-tests", editable = true } +langchain-text-splitters = { path = "../../../langchain/libs/text-splitters", editable = true } ### Partners -langchain-anthropic = { git = "https://github.com/langchain-ai/langchain.git", subdirectory = "libs/partners/anthropic" } -langchain-chroma = { git = "https://github.com/langchain-ai/langchain.git", subdirectory = "libs/partners/chroma" } -langchain-deepseek = { git = "https://github.com/langchain-ai/langchain.git", subdirectory = "libs/partners/deepseek" } -langchain-exa = { git = "https://github.com/langchain-ai/langchain.git", subdirectory = "libs/partners/exa" } -langchain-fireworks = { git = "https://github.com/langchain-ai/langchain.git", subdirectory = "libs/partners/fireworks" } -langchain-groq = { git = "https://github.com/langchain-ai/langchain.git", subdirectory = "libs/partners/groq" } -langchain-huggingface = { git = "https://github.com/langchain-ai/langchain.git", subdirectory = "libs/partners/huggingface" } -langchain-mistralai = { git = "https://github.com/langchain-ai/langchain.git", subdirectory = "libs/partners/mistralai" } -langchain-nomic = { git = "https://github.com/langchain-ai/langchain.git", subdirectory = "libs/partners/nomic" } -langchain-ollama = { git = "https://github.com/langchain-ai/langchain.git", subdirectory = "libs/partners/ollama" } -langchain-openai = { git = "https://github.com/langchain-ai/langchain.git", subdirectory = "libs/partners/openai" } -langchain-perplexity = { git = "https://github.com/langchain-ai/langchain.git", subdirectory = "libs/partners/perplexity" } -langchain-prompty = { git = "https://github.com/langchain-ai/langchain.git", subdirectory = "libs/partners/prompty" } -langchain-qdrant = { git = "https://github.com/langchain-ai/langchain.git", subdirectory = "libs/partners/qdrant" } -langchain-xai = { git = "https://github.com/langchain-ai/langchain.git", subdirectory = "libs/partners/xai" } +langchain-anthropic = { path = "../../../langchain/libs/partners/anthropic", editable = true } +langchain-chroma = { path = "../../../langchain/libs/partners/chroma", editable = true } +langchain-deepseek = { path = "../../../langchain/libs/partners/deepseek", editable = true } +langchain-exa = { path = "../../../langchain/libs/partners/exa", editable = true } +langchain-fireworks = { path = "../../../langchain/libs/partners/fireworks", editable = true } +langchain-groq = { path = "../../../langchain/libs/partners/groq", editable = true } +langchain-huggingface = { path = "../../../langchain/libs/partners/huggingface", editable = true } +langchain-mistralai = { path = "../../../langchain/libs/partners/mistralai", editable = true } +langchain-nomic = { path = "../../../langchain/libs/partners/nomic", editable = true } +langchain-ollama = { path = "../../../langchain/libs/partners/ollama", editable = true } +langchain-openai = { path = "../../../langchain/libs/partners/openai", editable = true } +langchain-perplexity = { path = "../../../langchain/libs/partners/perplexity", editable = true } +langchain-prompty = { path = "../../../langchain/libs/partners/prompty", editable = true } +langchain-qdrant = { path = "../../../langchain/libs/partners/qdrant", editable = true } +langchain-xai = { path = "../../../langchain/libs/partners/xai", editable = true } ## Experimental -#langchain-experimental = { git = "https://github.com/langchain-ai/langchain-experimental.git", subdirectory = "libs/experimental" } +#langchain-experimental = { path = "../../../langchain-experimental/libs/experimental", editable = true } ## Community -langchain-community = { git = "https://github.com/langchain-ai/langchain-community.git", subdirectory = "libs/community" } +langchain-community = { path = "../../../langchain-community/libs/community", editable = true } ## MCP -langchain-mcp-adapters = { git = "https://github.com/langchain-ai/langchain-mcp-adapters.git" } +langchain-mcp-adapters = { path = "../../../langchain-mcp-adapters", editable = true } ## Other langchain-ai org packages (alphabetical) -langchain-astradb = { git = "https://github.com/langchain-ai/langchain-datastax.git", subdirectory = "libs/astradb" } -langchain-ai21 = { git = "https://github.com/langchain-ai/langchain-ai21.git", subdirectory = "libs/ai21" } -langchain-aws = { git = "https://github.com/langchain-ai/langchain-aws.git", subdirectory = "libs/aws" } -langchain-azure-ai = { git = "https://github.com/langchain-ai/langchain-azure.git", subdirectory = "libs/azure-ai" } -langchain-azure-dynamic-sessions = { git = "https://github.com/langchain-ai/langchain-azure.git", subdirectory = "libs/azure-dynamic-sessions" } -langchain-cerebras = { git = "https://github.com/langchain-ai/langchain-cerebras.git", subdirectory = "libs/cerebras" } -langchain-cohere = { git = "https://github.com/langchain-ai/langchain-cohere.git", subdirectory = "libs/cohere" } -langchain-db2 = { git = "https://github.com/langchain-ai/langchain-ibm.git", subdirectory = "libs/langchain-db2" } -langchain-elasticsearch = { git = "https://github.com/langchain-ai/langchain-elastic.git", subdirectory = "libs/elasticsearch" } -langchain-google-community = { git = "https://github.com/langchain-ai/langchain-google.git", subdirectory = "libs/community" } -langchain-google-genai = { git = "https://github.com/langchain-ai/langchain-google.git", subdirectory = "libs/genai" } -langchain-google-vertexai = { git = "https://github.com/langchain-ai/langchain-google.git", subdirectory = "libs/vertexai" } -langchain-ibm = { git = "https://github.com/langchain-ai/langchain-ibm.git", subdirectory = "libs/ibm" } -langchain-milvus = { git = "https://github.com/langchain-ai/langchain-milvus.git", subdirectory = "libs/milvus" } -langchain-mongodb = { git = "https://github.com/langchain-ai/langchain-mongodb.git", subdirectory = "libs/langchain-mongodb" } -langchain-neo4j = { git = "https://github.com/langchain-ai/langchain-neo4j.git", subdirectory = "libs/neo4j" } -langchain-nvidia-ai-endpoints = { git = "https://github.com/langchain-ai/langchain-nvidia.git", subdirectory = "libs/ai-endpoints" } -langchain-pinecone = { git = "https://github.com/langchain-ai/langchain-pinecone.git", subdirectory = "libs/pinecone" } -langchain-postgres = { git = "https://github.com/langchain-ai/langchain-postgres.git" } -langchain-redis = { git = "https://github.com/langchain-ai/langchain-redis.git", subdirectory = "libs/redis" } -langchain-sema4 = { git = "https://github.com/langchain-ai/langchain-sema4.git", subdirectory = "libs/sema4" } -langchain-snowflake = { git = "https://github.com/langchain-ai/langchain-snowflake.git", subdirectory = "libs/snowflake" } -langchain-sqlserver = { git = "https://github.com/langchain-ai/langchain-azure.git", subdirectory = "libs/sqlserver" } -langchain-together = { git = "https://github.com/langchain-ai/langchain-together.git", subdirectory = "libs/together" } -langchain-unstructured = { git = "https://github.com/langchain-ai/langchain-unstructured.git", subdirectory = "libs/unstructured" } -langchain-upstage = { git = "https://github.com/langchain-ai/langchain-upstage.git", subdirectory = "libs/upstage" } -langchain-weaviate = { git = "https://github.com/langchain-ai/langchain-weaviate.git", subdirectory = "libs/weaviate", branch = "v1.0" } +langchain-astradb = { path = "../../../langchain-datastax/libs/astradb", editable = true } +langchain-ai21 = { path = "../../../langchain-ai21/libs/ai21", editable = true } +langchain-aws = { path = "../../../langchain-aws/libs/aws", editable = true } +langchain-azure-ai = { path = "../../../langchain-azure/libs/azure-ai", editable = true } +langchain-azure-dynamic-sessions = { path = "../../../langchain-azure/libs/azure-dynamic-sessions", editable = true } +langchain-cerebras = { path = "../../../langchain-cerebras/libs/cerebras", editable = true } +langchain-cohere = { path = "../../../langchain-cohere/libs/cohere", editable = true } +langchain-db2 = { path = "../../../langchain-ibm/libs/langchain-db2", editable = true } +langchain-elasticsearch = { path = "../../../langchain-elastic/libs/elasticsearch", editable = true } +langchain-google-community = { path = "../../../langchain-google/libs/community", editable = true } +langchain-google-genai = { path = "../../../langchain-google/libs/genai", editable = true } +langchain-google-vertexai = { path = "../../../langchain-google/libs/vertexai", editable = true } +langchain-ibm = { path = "../../../langchain-ibm/libs/ibm", editable = true } +langchain-milvus = { path = "../../../langchain-milvus/libs/milvus", editable = true } +langchain-mongodb = { path = "../../../langchain-mongodb/libs/langchain-mongodb", editable = true } +langchain-neo4j = { path = "../../../langchain-neo4j/libs/neo4j", editable = true } +langchain-nvidia-ai-endpoints = { path = "../../../langchain-nvidia/libs/ai-endpoints", editable = true } +langchain-pinecone = { path = "../../../langchain-pinecone/libs/pinecone", editable = true } +langchain-postgres = { path = "../../../langchain-postgres", editable = true } +langchain-redis = { path = "../../../langchain-redis/libs/redis", editable = true } +langchain-sema4 = { path = "../../../langchain-sema4/libs/sema4", editable = true } +langchain-snowflake = { path = "../../../langchain-snowflake/libs/snowflake", editable = true } +langchain-sqlserver = { path = "../../../langchain-azure/libs/sqlserver", editable = true } +langchain-together = { path = "../../../langchain-together/libs/together", editable = true } +langchain-unstructured = { path = "../../../langchain-unstructured/libs/unstructured", editable = true } +langchain-upstage = { path = "../../../langchain-upstage/libs/upstage", editable = true } +langchain-weaviate = { path = "../../../langchain-weaviate/libs/weaviate", editable = true } ## Non-langchain-ai org packages (alphabetical) -langchain-tavily = { git = "https://github.com/tavily-ai/langchain-tavily.git" } +langchain-tavily = { path = "../../../langchain-tavily", editable = true } ## LangGraph monorepo packages (alphabetical) -langgraph = { git = "https://github.com/langchain-ai/langgraph", subdirectory = "libs/langgraph" } -langgraph-prebuilt = { git = "https://github.com/langchain-ai/langgraph", subdirectory = "libs/prebuilt" } -langgraph-checkpoint = { git = "https://github.com/langchain-ai/langgraph", subdirectory = "libs/checkpoint" } -langgraph-checkpoint-sqlite = { git = "https://github.com/langchain-ai/langgraph", subdirectory = "libs/checkpoint-sqlite" } -langgraph-checkpoint-postgres = { git = "https://github.com/langchain-ai/langgraph", subdirectory = "libs/checkpoint-postgres" } -langgraph-sdk = { git = "https://github.com/langchain-ai/langgraph", subdirectory = "libs/sdk-py" } +langgraph = { path = "../../../langgraph/libs/langgraph", editable = true } +langgraph-prebuilt = { path = "../../../langgraph/libs/prebuilt", editable = true } +langgraph-checkpoint = { path = "../../../langgraph/libs/checkpoint", editable = true } +langgraph-checkpoint-sqlite = { path = "../../../langgraph/libs/checkpoint-sqlite", editable = true } +langgraph-checkpoint-postgres = { path = "../../../langgraph/libs/checkpoint-postgres", editable = true } +langgraph-sdk = { path = "../../../langgraph/libs/sdk-py", editable = true } # External repos (alphabetical) -langgraph-supervisor = { git = "https://github.com/langchain-ai/langgraph-supervisor-py" } -langgraph-swarm = { git = "https://github.com/langchain-ai/langgraph-swarm-py" } -langgraph-checkpoint-aws = { git = "https://github.com/langchain-ai/langchain-aws.git", subdirectory = "libs/langgraph-checkpoint-aws" } - +langgraph-supervisor = { path = "../../../langgraph-supervisor-py", editable = true } +langgraph-swarm = { path = "../../../langgraph-swarm-py", editable = true } +langgraph-checkpoint-aws = { path = "../../../langchain-aws/libs/langgraph-checkpoint-aws", editable = true } diff --git a/reference/python/uv.lock b/reference/python/uv.lock index 74228e053..dd642877f 100644 --- a/reference/python/uv.lock +++ b/reference/python/uv.lock @@ -1615,37 +1615,156 @@ wheels = [ [[package]] name = "langchain" version = "1.0.0" -source = { git = "https://github.com/langchain-ai/langchain.git?subdirectory=libs%2Flangchain_v1#a47386f6dce4552ccf3fce3b838f3f239c658298" } +source = { editable = "../../../langchain/libs/langchain_v1" } dependencies = [ { name = "langchain-core" }, { name = "langgraph" }, { name = "pydantic" }, ] +[package.metadata] +requires-dist = [ + { name = "langchain-anthropic", marker = "extra == 'anthropic'" }, + { name = "langchain-aws", marker = "extra == 'aws'" }, + { name = "langchain-community", marker = "extra == 'community'" }, + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "langchain-deepseek", marker = "extra == 'deepseek'" }, + { name = "langchain-fireworks", marker = "extra == 'fireworks'" }, + { name = "langchain-google-genai", marker = "extra == 'google-genai'" }, + { name = "langchain-google-vertexai", marker = "extra == 'google-vertexai'" }, + { name = "langchain-groq", marker = "extra == 'groq'" }, + { name = "langchain-huggingface", marker = "extra == 'huggingface'" }, + { name = "langchain-mistralai", marker = "extra == 'mistralai'" }, + { name = "langchain-ollama", marker = "extra == 'ollama'" }, + { name = "langchain-openai", marker = "extra == 'openai'", editable = "../../../langchain/libs/partners/openai" }, + { name = "langchain-perplexity", marker = "extra == 'perplexity'" }, + { name = "langchain-together", marker = "extra == 'together'" }, + { name = "langchain-xai", marker = "extra == 'xai'" }, + { name = "langgraph", specifier = ">=1.0.0,<1.1.0" }, + { name = "pydantic", specifier = ">=2.7.4,<3.0.0" }, +] +provides-extras = ["community", "anthropic", "openai", "google-vertexai", "google-genai", "fireworks", "ollama", "together", "mistralai", "huggingface", "groq", "aws", "deepseek", "xai", "perplexity"] + +[package.metadata.requires-dev] +lint = [{ name = "ruff", specifier = ">=0.12.2,<0.13.0" }] +test = [ + { name = "langchain-openai", editable = "../../../langchain/libs/partners/openai" }, + { name = "langchain-tests", editable = "../../../langchain/libs/standard-tests" }, + { name = "pytest", specifier = ">=8.0.0,<9.0.0" }, + { name = "pytest-asyncio", specifier = ">=0.23.2,<2.0.0" }, + { name = "pytest-cov", specifier = ">=4.0.0,<8.0.0" }, + { name = "pytest-mock" }, + { name = "pytest-socket", specifier = ">=0.6.0,<1.0.0" }, + { name = "pytest-watcher", specifier = ">=0.2.6,<1.0.0" }, + { name = "pytest-xdist", specifier = ">=3.6.1,<4.0.0" }, + { name = "syrupy", specifier = ">=4.0.2,<5.0.0" }, + { name = "toml", specifier = ">=0.10.2,<1.0.0" }, +] +test-integration = [ + { name = "cassio", specifier = ">=0.1.0,<1.0.0" }, + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "langchain-text-splitters", editable = "../../../langchain/libs/text-splitters" }, + { name = "langchainhub", specifier = ">=0.1.16,<1.0.0" }, + { name = "python-dotenv", specifier = ">=1.0.0,<2.0.0" }, + { name = "vcrpy", specifier = ">=7.0.0,<8.0.0" }, + { name = "wrapt", specifier = ">=1.15.0,<2.0.0" }, +] +typing = [ + { name = "mypy", specifier = ">=1.18.1,<1.19.0" }, + { name = "types-toml", specifier = ">=0.10.8.20240310,<1.0.0.0" }, +] + [[package]] name = "langchain-anthropic" version = "1.0.0" -source = { git = "https://github.com/langchain-ai/langchain.git?subdirectory=libs%2Fpartners%2Fanthropic#a47386f6dce4552ccf3fce3b838f3f239c658298" } +source = { editable = "../../../langchain/libs/partners/anthropic" } dependencies = [ { name = "anthropic" }, { name = "langchain-core" }, { name = "pydantic" }, ] +[package.metadata] +requires-dist = [ + { name = "anthropic", specifier = ">=0.69.0,<1.0.0" }, + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "pydantic", specifier = ">=2.7.4,<3.0.0" }, +] + +[package.metadata.requires-dev] +dev = [{ name = "langchain-core", editable = "../../../langchain/libs/core" }] +lint = [{ name = "ruff", specifier = ">=0.13.1,<0.14.0" }] +test = [ + { name = "defusedxml", specifier = ">=0.7.1,<1.0.0" }, + { name = "freezegun", specifier = ">=1.2.2,<2.0.0" }, + { name = "langchain", editable = "../../../langchain/libs/langchain_v1" }, + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "langchain-tests", editable = "../../../langchain/libs/standard-tests" }, + { name = "langgraph-prebuilt", specifier = ">=0.7.0a2" }, + { name = "pytest", specifier = ">=7.3.0,<8.0.0" }, + { name = "pytest-asyncio", specifier = ">=0.21.1,<1.0.0" }, + { name = "pytest-mock", specifier = ">=3.10.0,<4.0.0" }, + { name = "pytest-retry", specifier = ">=1.7.0,<1.8.0" }, + { name = "pytest-socket", specifier = ">=0.7.0,<1.0.0" }, + { name = "pytest-timeout", specifier = ">=2.3.1,<3.0.0" }, + { name = "pytest-watcher", specifier = ">=0.3.4,<1.0.0" }, + { name = "pytest-xdist", specifier = ">=3.8.0,<4.0.0" }, + { name = "syrupy", specifier = ">=4.0.2,<5.0.0" }, + { name = "vcrpy", specifier = ">=7.0.0,<8.0.0" }, +] +test-integration = [ + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "requests", specifier = ">=2.32.3,<3.0.0" }, +] +typing = [ + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "mypy", specifier = ">=1.17.1,<2.0.0" }, + { name = "types-requests", specifier = ">=2.31.0,<3.0.0" }, +] + [[package]] name = "langchain-astradb" version = "0.6.1" -source = { git = "https://github.com/langchain-ai/langchain-datastax.git?subdirectory=libs%2Fastradb#662fe43b54c3e38f21927368ef33e1cad214f32c" } +source = { editable = "../../../langchain-datastax/libs/astradb" } dependencies = [ { name = "astrapy" }, { name = "langchain-core" }, { name = "numpy" }, ] +[package.metadata] +requires-dist = [ + { name = "astrapy", specifier = ">=2.0.1,<3.0.0" }, + { name = "langchain-core", specifier = ">=0.3.74,<2.0.0" }, + { name = "numpy", specifier = ">=1.21" }, + { name = "numpy", marker = "python_full_version >= '3.12'", specifier = ">=1.26" }, + { name = "numpy", marker = "python_full_version >= '3.13'", specifier = ">=2.1.0" }, +] + +[package.metadata.requires-dev] +codespell = [{ name = "codespell", specifier = ">=2.2.0,<3.0.0" }] +lint = [{ name = "ruff", specifier = ">=0.12.10,<0.13" }] +test = [ + { name = "blockbuster", specifier = ">=1.5.25,<1.6.0" }, + { name = "freezegun", specifier = ">=1.2.2,<2.0.0" }, + { name = "pytest", specifier = ">=8,<9" }, + { name = "pytest-asyncio", specifier = ">=0.21.1,<1.0.0" }, + { name = "pytest-dotenv", specifier = ">=0.5.2,<1.0.0" }, + { name = "pytest-httpserver", specifier = ">=1.0.8,<1.1" }, + { name = "pytest-mock", specifier = ">=3.10.0,<4.0.0" }, + { name = "pytest-watcher", specifier = ">=0.3.4,<1.0.0" }, + { name = "syrupy", specifier = ">=4.0.2,<5.0.0" }, +] +test-integration = [{ name = "langchain-tests", specifier = ">=0.3.21,<2.0.0" }] +typing = [ + { name = "mypy", specifier = ">=1.17.1,<1.18" }, + { name = "simsimd", specifier = ">=6.5.1,<7.0.0" }, +] + [[package]] name = "langchain-aws" version = "1.0.0" -source = { git = "https://github.com/langchain-ai/langchain-aws.git?subdirectory=libs%2Faws#474671e7d521d83a9be04ef7d8d3affcbbd37dfb" } +source = { editable = "../../../langchain-aws/libs/aws" } dependencies = [ { name = "boto3" }, { name = "langchain-core" }, @@ -1653,20 +1772,91 @@ dependencies = [ { name = "pydantic" }, ] +[package.metadata] +requires-dist = [ + { name = "beautifulsoup4", marker = "extra == 'tools'", specifier = ">=4.13.4" }, + { name = "bedrock-agentcore", marker = "python_full_version >= '3.10' and extra == 'tools'", specifier = ">=0.1.0" }, + { name = "boto3", specifier = ">=1.40.19" }, + { name = "langchain-core", specifier = ">=1.0.0" }, + { name = "numpy", marker = "python_full_version < '3.12'", specifier = ">=1.0.0,<3" }, + { name = "numpy", marker = "python_full_version >= '3.12'", specifier = ">=2.3.2,<3" }, + { name = "playwright", marker = "extra == 'tools'", specifier = ">=1.53.0" }, + { name = "pydantic", specifier = ">=2.10.6,<3" }, +] +provides-extras = ["tools"] + +[package.metadata.requires-dev] +dev = [ + { name = "boto3-stubs", extras = ["essential"], specifier = ">=1.40.19" }, + { name = "botocore-stubs", specifier = ">=1.38.46" }, +] +lint = [{ name = "ruff", specifier = ">=0.13.0" }] +test = [ + { name = "langchain", specifier = ">=1.0.0rc2" }, + { name = "langchain-tests", specifier = ">=1.0.0" }, + { name = "pytest", specifier = ">=8.4.1" }, + { name = "pytest-asyncio", specifier = ">=0.20,<1" }, + { name = "pytest-cov", specifier = ">=6.2.1" }, + { name = "pytest-watcher", specifier = ">=0.4.3" }, + { name = "syrupy", specifier = ">=4.9.1" }, +] +test-integration = [] +typing = [ + { name = "mypy", specifier = ">=1.17.1" }, + { name = "types-requests", marker = "platform_python_implementation != 'PyPy'", specifier = ">=2.32.0" }, + { name = "types-requests", marker = "platform_python_implementation == 'PyPy'", specifier = ">=2.31.0,<2.32.0" }, +] + [[package]] name = "langchain-chroma" version = "1.0.0" -source = { git = "https://github.com/langchain-ai/langchain.git?subdirectory=libs%2Fpartners%2Fchroma#a47386f6dce4552ccf3fce3b838f3f239c658298" } +source = { editable = "../../../langchain/libs/partners/chroma" } dependencies = [ { name = "chromadb" }, { name = "langchain-core" }, { name = "numpy" }, ] +[package.metadata] +requires-dist = [ + { name = "chromadb", specifier = ">=1.0.20,<2.0.0" }, + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "numpy", marker = "python_full_version < '3.13'", specifier = ">=1.26.0" }, + { name = "numpy", marker = "python_full_version >= '3.13'", specifier = ">=2.1.0" }, +] + +[package.metadata.requires-dev] +dev = [{ name = "langchain-core", editable = "../../../langchain/libs/core" }] +lint = [ + { name = "onnxruntime", marker = "python_full_version < '3.10'", specifier = "<1.20" }, + { name = "onnxruntime", marker = "python_full_version >= '3.10'" }, + { name = "ruff", specifier = ">=0.13.1,<0.14.0" }, +] +test = [ + { name = "freezegun", specifier = ">=1.2.2,<2.0.0" }, + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "langchain-tests", editable = "../../../langchain/libs/standard-tests" }, + { name = "onnxruntime", marker = "python_full_version < '3.10'", specifier = "<1.20.0" }, + { name = "onnxruntime", marker = "python_full_version >= '3.10'" }, + { name = "pytest", specifier = ">=7.3.0,<8.0.0" }, + { name = "pytest-asyncio", specifier = ">=0.21.1,<1.0.0" }, + { name = "pytest-benchmark" }, + { name = "pytest-mock", specifier = ">=3.10.0,<4.0.0" }, + { name = "pytest-socket", specifier = ">=0.7.0,<1.0.0" }, + { name = "pytest-watcher", specifier = ">=0.3.4,<1.0.0" }, + { name = "syrupy", specifier = ">=4.0.2,<5.0.0" }, +] +test-integration = [] +typing = [ + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "mypy", specifier = ">=1.10.0,<2.0.0" }, + { name = "types-requests", specifier = ">=2.31.0,<3.0.0" }, +] + [[package]] name = "langchain-classic" version = "1.0.0" -source = { git = "https://github.com/langchain-ai/langchain.git?subdirectory=libs%2Flangchain#a47386f6dce4552ccf3fce3b838f3f239c658298" } +source = { editable = "../../../langchain/libs/langchain" } dependencies = [ { name = "langchain-core" }, { name = "langchain-text-splitters" }, @@ -1677,6 +1867,99 @@ dependencies = [ { name = "sqlalchemy" }, ] +[package.metadata] +requires-dist = [ + { name = "async-timeout", marker = "python_full_version < '3.11'", specifier = ">=4.0.0,<5.0.0" }, + { name = "langchain-anthropic", marker = "extra == 'anthropic'" }, + { name = "langchain-aws", marker = "extra == 'aws'" }, + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "langchain-deepseek", marker = "extra == 'deepseek'" }, + { name = "langchain-fireworks", marker = "extra == 'fireworks'" }, + { name = "langchain-google-genai", marker = "extra == 'google-genai'" }, + { name = "langchain-google-vertexai", marker = "extra == 'google-vertexai'" }, + { name = "langchain-groq", marker = "extra == 'groq'" }, + { name = "langchain-huggingface", marker = "extra == 'huggingface'" }, + { name = "langchain-mistralai", marker = "extra == 'mistralai'" }, + { name = "langchain-ollama", marker = "extra == 'ollama'" }, + { name = "langchain-openai", marker = "extra == 'openai'", editable = "../../../langchain/libs/partners/openai" }, + { name = "langchain-perplexity", marker = "extra == 'perplexity'" }, + { name = "langchain-text-splitters", editable = "../../../langchain/libs/text-splitters" }, + { name = "langchain-together", marker = "extra == 'together'" }, + { name = "langchain-xai", marker = "extra == 'xai'" }, + { name = "langsmith", specifier = ">=0.1.17,<1.0.0" }, + { name = "pydantic", specifier = ">=2.7.4,<3.0.0" }, + { name = "pyyaml", specifier = ">=5.3.0,<7.0.0" }, + { name = "requests", specifier = ">=2.0.0,<3.0.0" }, + { name = "sqlalchemy", specifier = ">=1.4.0,<3.0.0" }, +] +provides-extras = ["anthropic", "openai", "google-vertexai", "google-genai", "fireworks", "ollama", "together", "mistralai", "huggingface", "groq", "aws", "deepseek", "xai", "perplexity"] + +[package.metadata.requires-dev] +dev = [ + { name = "jupyter", specifier = ">=1.0.0,<2.0.0" }, + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "langchain-text-splitters", editable = "../../../langchain/libs/text-splitters" }, + { name = "playwright", specifier = ">=1.28.0,<2.0.0" }, + { name = "setuptools", specifier = ">=67.6.1,<68.0.0" }, +] +lint = [ + { name = "cffi", marker = "python_full_version < '3.10'", specifier = "<1.17.1" }, + { name = "cffi", marker = "python_full_version >= '3.10'" }, + { name = "ruff", specifier = ">=0.13.1,<0.14.0" }, +] +test = [ + { name = "blockbuster", specifier = ">=1.5.18,<1.6.0" }, + { name = "cffi", marker = "python_full_version < '3.10'", specifier = "<1.17.1" }, + { name = "cffi", marker = "python_full_version >= '3.10'" }, + { name = "freezegun", specifier = ">=1.2.2,<2.0.0" }, + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "langchain-openai", editable = "../../../langchain/libs/partners/openai" }, + { name = "langchain-tests", editable = "../../../langchain/libs/standard-tests" }, + { name = "langchain-text-splitters", editable = "../../../langchain/libs/text-splitters" }, + { name = "lark", specifier = ">=1.1.5,<2.0.0" }, + { name = "numpy", marker = "python_full_version < '3.13'", specifier = ">=1.26.4" }, + { name = "numpy", marker = "python_full_version >= '3.13'", specifier = ">=2.1.0" }, + { name = "packaging", specifier = ">=24.2.0,<26.0.0" }, + { name = "pandas", specifier = ">=2.0.0,<3.0.0" }, + { name = "pytest", specifier = ">=8.0.0,<9.0.0" }, + { name = "pytest-asyncio", specifier = ">=0.23.2,<1.0.0" }, + { name = "pytest-cov", specifier = ">=4.0.0,<5.0.0" }, + { name = "pytest-dotenv", specifier = ">=0.5.2,<1.0.0" }, + { name = "pytest-mock", specifier = ">=3.10.0,<4.0.0" }, + { name = "pytest-socket", specifier = ">=0.6.0,<1.0.0" }, + { name = "pytest-watcher", specifier = ">=0.2.6,<1.0.0" }, + { name = "pytest-xdist", specifier = ">=3.6.1,<4.0.0" }, + { name = "requests-mock", specifier = ">=1.11.0,<2.0.0" }, + { name = "responses", specifier = ">=0.22.0,<1.0.0" }, + { name = "syrupy", specifier = ">=4.0.2,<5.0.0" }, + { name = "toml", specifier = ">=0.10.2,<1.0.0" }, +] +test-integration = [ + { name = "cassio", specifier = ">=0.1.0,<1.0.0" }, + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "langchain-text-splitters", editable = "../../../langchain/libs/text-splitters" }, + { name = "langchainhub", specifier = ">=0.1.16,<1.0.0" }, + { name = "python-dotenv", specifier = ">=1.0.0,<2.0.0" }, + { name = "urllib3", marker = "python_full_version < '3.10'", specifier = "<2.0.0" }, + { name = "vcrpy", specifier = ">=7.0.0,<8.0.0" }, + { name = "wrapt", specifier = ">=1.15.0,<2.0.0" }, +] +typing = [ + { name = "fastapi", specifier = ">=0.116.1,<1.0.0" }, + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "langchain-text-splitters", editable = "../../../langchain/libs/text-splitters" }, + { name = "mypy", specifier = ">=1.18.2,<1.19.0" }, + { name = "mypy-protobuf", specifier = ">=3.0.0,<4.0.0" }, + { name = "numpy", marker = "python_full_version < '3.13'", specifier = ">=1.26.4" }, + { name = "numpy", marker = "python_full_version >= '3.13'", specifier = ">=2.1.0" }, + { name = "types-chardet", specifier = ">=5.0.4.6,<6.0.0.0" }, + { name = "types-pytz", specifier = ">=2023.3.0.0,<2024.0.0.0" }, + { name = "types-pyyaml", specifier = ">=6.0.12.2,<7.0.0.0" }, + { name = "types-redis", specifier = ">=4.3.21.6,<5.0.0.0" }, + { name = "types-requests", specifier = ">=2.28.11.5,<3.0.0.0" }, + { name = "types-toml", specifier = ">=0.10.8.1,<1.0.0.0" }, +] + [[package]] name = "langchain-community" version = "0.4" @@ -1703,7 +1986,7 @@ wheels = [ [[package]] name = "langchain-core" version = "1.0.0" -source = { git = "https://github.com/langchain-ai/langchain.git?subdirectory=libs%2Fcore#a47386f6dce4552ccf3fce3b838f3f239c658298" } +source = { editable = "../../../langchain/libs/core" } dependencies = [ { name = "jsonpatch" }, { name = "langsmith" }, @@ -1714,28 +1997,119 @@ dependencies = [ { name = "typing-extensions" }, ] +[package.metadata] +requires-dist = [ + { name = "jsonpatch", specifier = ">=1.33.0,<2.0.0" }, + { name = "langsmith", specifier = ">=0.3.45,<1.0.0" }, + { name = "packaging", specifier = ">=23.2.0,<26.0.0" }, + { name = "pydantic", specifier = ">=2.7.4,<3.0.0" }, + { name = "pyyaml", specifier = ">=5.3.0,<7.0.0" }, + { name = "tenacity", specifier = ">=8.1.0,!=8.4.0,<10.0.0" }, + { name = "typing-extensions", specifier = ">=4.7.0,<5.0.0" }, +] + +[package.metadata.requires-dev] +dev = [ + { name = "grandalf", specifier = ">=0.8.0,<1.0.0" }, + { name = "jupyter", specifier = ">=1.0.0,<2.0.0" }, + { name = "setuptools", specifier = ">=67.6.1,<68.0.0" }, +] +lint = [{ name = "ruff", specifier = ">=0.13.1,<0.14.0" }] +test = [ + { name = "blockbuster", specifier = ">=1.5.18,<1.6.0" }, + { name = "freezegun", specifier = ">=1.2.2,<2.0.0" }, + { name = "grandalf", specifier = ">=0.8.0,<1.0.0" }, + { name = "langchain-tests", directory = "../../../langchain/libs/standard-tests" }, + { name = "numpy", marker = "python_full_version < '3.13'", specifier = ">=1.26.4" }, + { name = "numpy", marker = "python_full_version >= '3.13'", specifier = ">=2.1.0" }, + { name = "pytest", specifier = ">=8.0.0,<9.0.0" }, + { name = "pytest-asyncio", specifier = ">=0.21.1,<1.0.0" }, + { name = "pytest-benchmark" }, + { name = "pytest-codspeed" }, + { name = "pytest-mock", specifier = ">=3.10.0,<4.0.0" }, + { name = "pytest-socket", specifier = ">=0.7.0,<1.0.0" }, + { name = "pytest-watcher", specifier = ">=0.3.4,<1.0.0" }, + { name = "pytest-xdist", specifier = ">=3.6.1,<4.0.0" }, + { name = "responses", specifier = ">=0.25.0,<1.0.0" }, + { name = "syrupy", specifier = ">=4.0.2,<5.0.0" }, +] +test-integration = [] +typing = [ + { name = "langchain-text-splitters", directory = "../../../langchain/libs/text-splitters" }, + { name = "mypy", specifier = ">=1.18.1,<1.19.0" }, + { name = "types-pyyaml", specifier = ">=6.0.12.2,<7.0.0.0" }, + { name = "types-requests", specifier = ">=2.28.11.5,<3.0.0.0" }, +] + [[package]] name = "langchain-deepseek" version = "1.0.0" -source = { git = "https://github.com/langchain-ai/langchain.git?subdirectory=libs%2Fpartners%2Fdeepseek#a47386f6dce4552ccf3fce3b838f3f239c658298" } +source = { editable = "../../../langchain/libs/partners/deepseek" } dependencies = [ { name = "langchain-core" }, { name = "langchain-openai" }, ] +[package.metadata] +requires-dist = [ + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "langchain-openai", editable = "../../../langchain/libs/partners/openai" }, +] + +[package.metadata.requires-dev] +dev = [] +lint = [{ name = "ruff", specifier = ">=0.13.1,<0.14.0" }] +test = [ + { name = "langchain-openai", editable = "../../../langchain/libs/partners/openai" }, + { name = "langchain-tests", editable = "../../../langchain/libs/standard-tests" }, + { name = "pytest", specifier = ">=7.4.3,<8.0.0" }, + { name = "pytest-asyncio", specifier = ">=0.23.2,<1.0.0" }, + { name = "pytest-socket", specifier = ">=0.7.0,<1.0.0" }, + { name = "pytest-timeout", specifier = ">=2.3.1,<3.0.0" }, + { name = "pytest-watcher", specifier = ">=0.3.4,<1.0.0" }, +] +test-integration = [] +typing = [{ name = "mypy", specifier = ">=1.10.0,<2.0.0" }] + [[package]] name = "langchain-exa" version = "1.0.0" -source = { git = "https://github.com/langchain-ai/langchain.git?subdirectory=libs%2Fpartners%2Fexa#a47386f6dce4552ccf3fce3b838f3f239c658298" } +source = { editable = "../../../langchain/libs/partners/exa" } dependencies = [ { name = "exa-py" }, { name = "langchain-core" }, ] +[package.metadata] +requires-dist = [ + { name = "exa-py", specifier = ">=1.0.8,<2.0.0" }, + { name = "langchain-core", editable = "../../../langchain/libs/core" }, +] + +[package.metadata.requires-dev] +dev = [{ name = "langchain-core", editable = "../../../langchain/libs/core" }] +lint = [{ name = "ruff", specifier = ">=0.13.1,<0.14.0" }] +test = [ + { name = "freezegun", specifier = ">=1.2.2,<2.0.0" }, + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "langchain-tests", editable = "../../../langchain/libs/standard-tests" }, + { name = "pytest", specifier = ">=7.3.0,<8.0.0" }, + { name = "pytest-asyncio", specifier = ">=0.21.1,<1.0.0" }, + { name = "pytest-benchmark" }, + { name = "pytest-mock", specifier = ">=3.10.0,<4.0.0" }, + { name = "pytest-watcher", specifier = ">=0.3.4,<1.0.0" }, + { name = "syrupy", specifier = ">=4.0.2,<5.0.0" }, +] +test-integration = [] +typing = [ + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "mypy", specifier = ">=1.10.0,<2.0.0" }, +] + [[package]] name = "langchain-fireworks" version = "1.0.0" -source = { git = "https://github.com/langchain-ai/langchain.git?subdirectory=libs%2Fpartners%2Ffireworks#a47386f6dce4552ccf3fce3b838f3f239c658298" } +source = { editable = "../../../langchain/libs/partners/fireworks" } dependencies = [ { name = "aiohttp" }, { name = "fireworks-ai" }, @@ -1744,10 +2118,40 @@ dependencies = [ { name = "requests" }, ] +[package.metadata] +requires-dist = [ + { name = "aiohttp", specifier = ">=3.9.1,<4.0.0" }, + { name = "fireworks-ai", specifier = ">=0.13.0,<1.0.0" }, + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "openai", specifier = ">=2.0.0,<3.0.0" }, + { name = "requests", specifier = ">=2.0.0,<3.0.0" }, +] + +[package.metadata.requires-dev] +dev = [{ name = "langchain-core", editable = "../../../langchain/libs/core" }] +lint = [{ name = "ruff", specifier = ">=0.13.1,<0.14.0" }] +test = [ + { name = "freezegun", specifier = ">=1.2.2,<2.0.0" }, + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "langchain-tests", editable = "../../../langchain/libs/standard-tests" }, + { name = "pytest", specifier = ">=7.3.0,<8.0.0" }, + { name = "pytest-asyncio", specifier = ">=0.21.1,<1.0.0" }, + { name = "pytest-mock", specifier = ">=3.10.0,<4.0.0" }, + { name = "pytest-socket", specifier = ">=0.7.0,<1.0.0" }, + { name = "pytest-watcher", specifier = ">=0.3.4,<1.0.0" }, + { name = "syrupy", specifier = ">=4.0.2,<5.0.0" }, +] +test-integration = [] +typing = [ + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "mypy", specifier = ">=1.10.0,<2.0.0" }, + { name = "types-requests", specifier = ">=2.0.0,<3.0.0" }, +] + [[package]] name = "langchain-google-community" version = "3.0.0" -source = { git = "https://github.com/langchain-ai/langchain-google.git?subdirectory=libs%2Fcommunity#99fa1ff2e15c9c7773594a768d95d4a6495bbbe8" } +source = { editable = "../../../langchain-google/libs/community" } dependencies = [ { name = "google-api-core" }, { name = "google-api-python-client" }, @@ -1758,10 +2162,81 @@ dependencies = [ { name = "langchain-core" }, ] +[package.metadata] +requires-dist = [ + { name = "beautifulsoup4", marker = "extra == 'gmail'", specifier = ">=4.12.3,<5.0.0" }, + { name = "db-dtypes", marker = "extra == 'featurestore'", specifier = ">=1.2.0,<2.0.0" }, + { name = "gapic-google-longrunning", marker = "extra == 'docai'", specifier = ">=0.11.2,<1.0.0" }, + { name = "google-api-core", specifier = ">=2.25.0,<3.0.0" }, + { name = "google-api-python-client", specifier = ">=2.161.0,<3.0.0" }, + { name = "google-auth", marker = "extra == 'calendar'", specifier = ">=2.36.0,<3.0.0" }, + { name = "google-auth-httplib2", marker = "extra == 'drive'", specifier = ">=0.2.0,<1.0.0" }, + { name = "google-auth-httplib2", marker = "extra == 'gmail'", specifier = ">=0.2.0,<1.0.0" }, + { name = "google-auth-oauthlib", marker = "extra == 'calendar'", specifier = ">=1.2.0,<2.0.0" }, + { name = "google-auth-oauthlib", marker = "extra == 'drive'", specifier = ">=1.2.0,<2.0.0" }, + { name = "google-auth-oauthlib", marker = "extra == 'gmail'", specifier = ">=1.2.0,<2.0.0" }, + { name = "google-cloud-aiplatform", marker = "extra == 'featurestore'", specifier = ">=1.56.0,<2.0.0" }, + { name = "google-cloud-bigquery", marker = "extra == 'bigquery'", specifier = ">=3.21.0,<4.0.0" }, + { name = "google-cloud-bigquery-storage", marker = "extra == 'featurestore'", specifier = ">=2.6.0,<3.0.0" }, + { name = "google-cloud-contentwarehouse", marker = "extra == 'docai'", specifier = ">=0.7.7,<1.0.0" }, + { name = "google-cloud-core", specifier = ">=2.4.3,<3.0.0" }, + { name = "google-cloud-discoveryengine", marker = "extra == 'vertexaisearch'", specifier = ">=0.11.14,<1.0.0" }, + { name = "google-cloud-documentai", marker = "extra == 'docai'", specifier = ">=2.26.0,<3.0.0" }, + { name = "google-cloud-documentai-toolbox", marker = "extra == 'docai'", specifier = ">=0.13.3a0,<1.0.0" }, + { name = "google-cloud-modelarmor", specifier = ">=0.2.8,<1.0.0" }, + { name = "google-cloud-speech", marker = "extra == 'speech'", specifier = ">=2.26.0,<3.0.0" }, + { name = "google-cloud-storage", marker = "extra == 'gcs'", specifier = ">=2.16.0,<3.0.0" }, + { name = "google-cloud-texttospeech", marker = "extra == 'texttospeech'", specifier = ">=2.16.3,<3.0.0" }, + { name = "google-cloud-translate", marker = "extra == 'translate'", specifier = ">=3.15.3,<4.0.0" }, + { name = "google-cloud-vision", marker = "extra == 'vision'", specifier = ">=3.7.2,<4.0.0" }, + { name = "googlemaps", marker = "extra == 'places'", specifier = ">=4.10.0,<5.0.0" }, + { name = "grpcio", specifier = ">=1.74.0,<2.0.0" }, + { name = "langchain-community", specifier = ">=0.4.0,<2.0.0" }, + { name = "langchain-core", specifier = ">=1.0.0,<2.0.0" }, + { name = "pandas", marker = "python_full_version >= '3.12' and extra == 'featurestore'", specifier = ">=2.0.0,<3.0.0" }, + { name = "pandas", marker = "python_full_version < '3.12' and extra == 'featurestore'", specifier = ">=1.0.0" }, + { name = "pyarrow", marker = "extra == 'featurestore'", specifier = ">=6.0.1" }, + { name = "pydantic", marker = "extra == 'featurestore'", specifier = ">=2.7.4,<3.0.0" }, +] +provides-extras = ["bigquery", "calendar", "docai", "drive", "gcs", "speech", "places", "texttospeech", "translate", "vertexaisearch", "vision", "gmail", "featurestore"] + +[package.metadata.requires-dev] +dev = [ + { name = "pillow", specifier = ">=10.1.0,<11.0.0" }, + { name = "types-google-cloud-ndb", specifier = ">=2.2.0.1,<3.0.0.0" }, + { name = "types-pillow", specifier = ">=10.1.0.2,<11.0.0.0" }, + { name = "types-requests", specifier = ">=2.31.0.10,<3.0.0.0" }, +] +lint = [{ name = "ruff", specifier = ">=0.12.10,<1" }] +test = [ + { name = "cloudpickle", specifier = ">=3.0.0,<4.0.0" }, + { name = "freezegun", specifier = ">=1.2.2,<2.0.0" }, + { name = "google-cloud-bigquery", specifier = ">=3.19.0,<4.0.0" }, + { name = "google-cloud-discoveryengine", specifier = ">=0.11.14,<1.0.0" }, + { name = "google-cloud-documentai", specifier = ">=2.24.2,<3.0.0" }, + { name = "google-cloud-documentai-toolbox", marker = "python_full_version < '3.13'", specifier = ">=0.13.3a0,<1.0.0" }, + { name = "pytest", specifier = ">=7.3.0,<8.0.0" }, + { name = "pytest-asyncio", specifier = ">=0.21.1,<1.0.0" }, + { name = "pytest-mock", specifier = ">=3.10.0,<4.0.0" }, + { name = "pytest-retry", specifier = ">=1.7.0,<2.0.0" }, + { name = "pytest-socket", specifier = ">=0.7.0,<1.0.0" }, + { name = "pytest-watcher", specifier = ">=0.3.4,<1.0.0" }, + { name = "syrupy", specifier = ">=4.0.2,<5.0.0" }, +] +test-integration = [{ name = "pillow", specifier = ">=10.1.0,<11.0.0" }] +typing = [ + { name = "mypy", specifier = ">=1.17.1,<2.0.0" }, + { name = "types-beautifulsoup4", specifier = ">=4.12.0,<5.0.0" }, + { name = "types-google-cloud-ndb", specifier = ">=2.2.0.1,<3.0.0.0" }, + { name = "types-pillow", specifier = ">=10.1.0.2,<11.0.0.0" }, + { name = "types-protobuf", specifier = ">=4.24.0.20240302,<5.0.0.0" }, + { name = "types-requests", specifier = ">=2.28.11.5,<3.0.0" }, +] + [[package]] name = "langchain-google-genai" version = "3.0.0" -source = { git = "https://github.com/langchain-ai/langchain-google.git?subdirectory=libs%2Fgenai#99fa1ff2e15c9c7773594a768d95d4a6495bbbe8" } +source = { editable = "../../../langchain-google/libs/genai" } dependencies = [ { name = "filetype" }, { name = "google-ai-generativelanguage" }, @@ -1769,10 +2244,43 @@ dependencies = [ { name = "pydantic" }, ] +[package.metadata] +requires-dist = [ + { name = "filetype", specifier = ">=1.2.0,<2.0.0" }, + { name = "google-ai-generativelanguage", specifier = ">=0.7.0,<1.0.0" }, + { name = "langchain-core", specifier = ">=1.0.0,<2.0.0" }, + { name = "pydantic", specifier = ">=2.0.0,<3.0.0" }, +] + +[package.metadata.requires-dev] +dev = [] +lint = [{ name = "ruff", specifier = ">=0.13.1,<0.14.0" }] +test = [ + { name = "freezegun", specifier = ">=1.5.0,<2.0.0" }, + { name = "langchain-tests", specifier = ">=1.0.0,<2.0.0" }, + { name = "numpy", marker = "python_full_version < '3.13'", specifier = ">=1.26.4" }, + { name = "numpy", marker = "python_full_version >= '3.13'", specifier = ">=2.1.0" }, + { name = "pytest", specifier = ">=8.4.0,<9.0.0" }, + { name = "pytest-asyncio", specifier = ">=0.21.0,<1.0.0" }, + { name = "pytest-mock", specifier = ">=3.14.0,<4.0.0" }, + { name = "pytest-retry", specifier = ">=1.7.0,<2.0.0" }, + { name = "pytest-socket", specifier = ">=0.7.0,<1.0.0" }, + { name = "pytest-watcher", specifier = ">=0.4.0,<1.0.0" }, + { name = "syrupy", specifier = ">=4.9.0,<5.0.0" }, +] +test-integration = [{ name = "pytest", specifier = ">=8.4.0,<9.0.0" }] +typing = [ + { name = "mypy", specifier = ">=1.18.1,<1.19.0" }, + { name = "numpy", specifier = ">=1.26.2" }, + { name = "types-google-cloud-ndb", specifier = ">=2.2.0.1,<3.0.0.0" }, + { name = "types-protobuf", specifier = ">=4.24.0.20240302,<5.0.0.0" }, + { name = "types-requests", specifier = ">=2.31.0,<3.0.0" }, +] + [[package]] name = "langchain-google-vertexai" version = "3.0.0" -source = { git = "https://github.com/langchain-ai/langchain-google.git?subdirectory=libs%2Fvertexai#99fa1ff2e15c9c7773594a768d95d4a6495bbbe8" } +source = { editable = "../../../langchain-google/libs/vertexai" } dependencies = [ { name = "bottleneck" }, { name = "google-cloud-aiplatform" }, @@ -1786,29 +2294,128 @@ dependencies = [ { name = "validators" }, ] +[package.metadata] +requires-dist = [ + { name = "anthropic", marker = "extra == 'anthropic'", specifier = ">=0.35.0,<1.0.0" }, + { name = "bottleneck", specifier = ">=1.4.0,<2.0.0" }, + { name = "google-cloud-aiplatform", specifier = ">=1.97.0,<2.0.0" }, + { name = "google-cloud-storage", specifier = ">=2.18.0,<3.0.0" }, + { name = "httpx", specifier = ">=0.28.0,<1.0.0" }, + { name = "httpx-sse", specifier = ">=0.4.0,<1.0.0" }, + { name = "langchain-core", specifier = ">=1.0.0,<2.0.0" }, + { name = "langchain-mistralai", marker = "extra == 'mistral'", specifier = ">=0.2.0,<2.0.0" }, + { name = "numexpr", specifier = ">=2.8.6,<3.0.0" }, + { name = "pyarrow", specifier = ">=19.0.1,<22.0.0" }, + { name = "pydantic", specifier = ">=2.9.0,<3.0.0" }, + { name = "validators", specifier = ">=0.22.0,<1.0.0" }, +] +provides-extras = ["anthropic", "mistral"] + +[package.metadata.requires-dev] +dev = [] +lint = [{ name = "ruff", specifier = ">=0.13.1,<0.14.0" }] +test = [ + { name = "anthropic", specifier = ">=0.64.0,<1.0.0" }, + { name = "freezegun", specifier = ">=1.5.0,<2.0.0" }, + { name = "google-api-python-client", specifier = ">=2.117.0,<3.0.0" }, + { name = "langchain", specifier = ">=1.0.0rc2,<2.0.0" }, + { name = "langchain-tests", specifier = ">=1.0.0,<2.0.0" }, + { name = "pytest", specifier = ">=8.4.0,<9.0.0" }, + { name = "pytest-asyncio", specifier = ">=0.21.0,<2.0.0" }, + { name = "pytest-mock", specifier = ">=3.14.0,<4.0.0" }, + { name = "pytest-order", specifier = ">=1.3.0,<2.0.0" }, + { name = "pytest-retry", specifier = ">=1.7.0,<2.0.0" }, + { name = "pytest-socket", specifier = ">=0.7.0,<1.0.0" }, + { name = "pytest-watcher", specifier = ">=0.4.0,<1.0.0" }, + { name = "pytest-xdist", specifier = ">=3.8.0,<4.0.0" }, + { name = "syrupy", specifier = ">=4.9.0,<5.0.0" }, + { name = "types-protobuf", specifier = ">=4.24.0.4,<7.0.0.0" }, + { name = "types-requests", specifier = ">=2.31.0,<3.0.0" }, + { name = "validators", specifier = ">=0.35.0,<1.0.0" }, +] +test-integration = [ + { name = "google-api-python-client", specifier = ">=2.114.0,<3.0.0" }, + { name = "google-cloud-datastore", specifier = ">=2.19.0,<3.0.0" }, + { name = "langchain-mistralai", specifier = ">=0.2.12,<2.0.0" }, + { name = "langchain-tests", specifier = ">=1.0.0,<2.0.0" }, + { name = "numexpr", marker = "python_full_version >= '3.9'", specifier = ">=2.8.8" }, + { name = "numpy", marker = "python_full_version < '3.13'", specifier = ">=1.26.4" }, + { name = "numpy", marker = "python_full_version >= '3.13'", specifier = ">=2.1.0" }, +] +typing = [ + { name = "anthropic", specifier = ">=0.64.0,<1.0.0" }, + { name = "mypy", specifier = ">=1.18.1,<1.19.0" }, + { name = "types-google-cloud-ndb", specifier = ">=2.2.0.20240106,<3.0.0.0" }, + { name = "types-protobuf", specifier = ">=4.24.0.4,<5.0.0.0" }, + { name = "types-requests", specifier = ">=2.31.0,<3.0.0" }, +] + [[package]] name = "langchain-groq" version = "1.0.0" -source = { git = "https://github.com/langchain-ai/langchain.git?subdirectory=libs%2Fpartners%2Fgroq#a47386f6dce4552ccf3fce3b838f3f239c658298" } +source = { editable = "../../../langchain/libs/partners/groq" } dependencies = [ { name = "groq" }, { name = "langchain-core" }, ] +[package.metadata] +requires-dist = [ + { name = "groq", specifier = ">=0.30.0,<1.0.0" }, + { name = "langchain-core", editable = "../../../langchain/libs/core" }, +] + +[package.metadata.requires-dev] +dev = [{ name = "langchain-core", editable = "../../../langchain/libs/core" }] +lint = [{ name = "ruff", specifier = ">=0.13.1,<0.14.0" }] +test = [ + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "langchain-tests", editable = "../../../langchain/libs/standard-tests" }, + { name = "pytest", specifier = ">=7.3.0,<8.0.0" }, + { name = "pytest-asyncio", specifier = ">=0.21.1,<1.0.0" }, + { name = "pytest-mock", specifier = ">=3.10.0,<4.0.0" }, + { name = "pytest-retry", specifier = ">=1.7.0,<1.8.0" }, + { name = "pytest-watcher", specifier = ">=0.3.4,<1.0.0" }, +] +test-integration = [{ name = "langchain-core", editable = "../../../langchain/libs/core" }] +typing = [ + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "mypy", specifier = ">=1.10.0,<2.0.0" }, +] + [[package]] name = "langchain-mcp-adapters" version = "0.1.10" -source = { git = "https://github.com/langchain-ai/langchain-mcp-adapters.git#4db3ccbb65355bbda07f221f093bd9568733b1e2" } +source = { editable = "../../../langchain-mcp-adapters" } dependencies = [ { name = "langchain-core" }, { name = "mcp" }, { name = "typing-extensions" }, ] +[package.metadata] +requires-dist = [ + { name = "langchain-core", specifier = ">=0.3.36,<2.0.0" }, + { name = "mcp", specifier = ">=1.9.2" }, + { name = "typing-extensions", specifier = ">=4.14.0" }, +] + +[package.metadata.requires-dev] +test = [ + { name = "mypy", specifier = ">=1.8.0" }, + { name = "pytest", specifier = ">=8.0.0" }, + { name = "pytest-asyncio", specifier = ">=0.26.0" }, + { name = "pytest-socket", specifier = ">=0.7.0" }, + { name = "pytest-timeout", specifier = ">=2.4.0" }, + { name = "ruff", specifier = ">=0.9.4" }, + { name = "types-setuptools", specifier = ">=69.0.0" }, + { name = "websockets", specifier = ">=15.0.1" }, +] + [[package]] name = "langchain-mongodb" -version = "0.7.1" -source = { git = "https://github.com/langchain-ai/langchain-mongodb.git?subdirectory=libs%2Flangchain-mongodb#b457a5b60eddb739b06c36483a6f6765449c0243" } +version = "0.7.0" +source = { editable = "../../../langchain-mongodb/libs/langchain-mongodb" } dependencies = [ { name = "langchain" }, { name = "langchain-core" }, @@ -1818,63 +2425,291 @@ dependencies = [ { name = "pymongo" }, ] +[package.metadata] +requires-dist = [ + { name = "langchain", specifier = ">=0.3" }, + { name = "langchain-core", specifier = ">=0.3" }, + { name = "langchain-text-splitters", specifier = ">=0.3" }, + { name = "lark", specifier = ">=1.1.9,<2.0.0" }, + { name = "numpy", specifier = ">=1.26" }, + { name = "pymongo", specifier = ">=4.6.1" }, +] + +[package.metadata.requires-dev] +dev = [ + { name = "flaky", specifier = ">=3.8.1" }, + { name = "freezegun", specifier = ">=1.2.2" }, + { name = "langchain", specifier = ">=0.3.14" }, + { name = "langchain-community", specifier = ">=0.3.27" }, + { name = "langchain-core", specifier = ">=0.3.29" }, + { name = "langchain-ollama", specifier = ">=0.2.2" }, + { name = "langchain-openai", specifier = ">=0.2.14" }, + { name = "langchain-tests", specifier = "==0.3.22" }, + { name = "langchain-text-splitters", specifier = ">=0.3.5" }, + { name = "langgraph", specifier = ">=0.2.72" }, + { name = "mongomock", specifier = ">=4.2.0.post1" }, + { name = "mypy", specifier = ">=1.10" }, + { name = "pip", specifier = ">=25.0.1" }, + { name = "pre-commit", specifier = ">=4.0" }, + { name = "pypdf", specifier = ">=5.0.1" }, + { name = "pytest", specifier = ">=7.3.0" }, + { name = "pytest-asyncio", specifier = ">=0.21.1" }, + { name = "pytest-mock", specifier = ">=3.10.0" }, + { name = "pytest-watcher", specifier = ">=0.3.4" }, + { name = "simsimd", specifier = ">=6.5.0" }, + { name = "syrupy", specifier = ">=4.0.2" }, + { name = "typing-extensions", specifier = ">=4.12.2" }, +] + [[package]] name = "langchain-nomic" version = "1.0.0" -source = { git = "https://github.com/langchain-ai/langchain.git?subdirectory=libs%2Fpartners%2Fnomic#a47386f6dce4552ccf3fce3b838f3f239c658298" } +source = { editable = "../../../langchain/libs/partners/nomic" } dependencies = [ { name = "langchain-core" }, { name = "nomic" }, { name = "pillow" }, ] +[package.metadata] +requires-dist = [ + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "nomic", specifier = ">=3.5.3,<4.0.0" }, + { name = "pillow", specifier = ">=10.3.0,<11.0.0" }, +] + +[package.metadata.requires-dev] +dev = [{ name = "langchain-core", editable = "../../../langchain/libs/core" }] +lint = [{ name = "ruff", specifier = ">=0.13.1,<0.14.0" }] +test = [ + { name = "freezegun", specifier = ">=1.2.2,<2.0.0" }, + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "langchain-tests", editable = "../../../langchain/libs/standard-tests" }, + { name = "pytest", specifier = ">=7.3.0,<8.0.0" }, + { name = "pytest-asyncio", specifier = ">=0.21.1,<1.0.0" }, + { name = "pytest-benchmark" }, + { name = "pytest-mock", specifier = ">=3.10.0,<4.0.0" }, + { name = "pytest-watcher", specifier = ">=0.3.4,<1.0.0" }, + { name = "syrupy", specifier = ">=4.0.2,<5.0.0" }, +] +test-integration = [] +typing = [ + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "mypy", specifier = ">=0.991.0,<1.0.0" }, +] + [[package]] name = "langchain-ollama" version = "1.0.0" -source = { git = "https://github.com/langchain-ai/langchain.git?subdirectory=libs%2Fpartners%2Follama#a47386f6dce4552ccf3fce3b838f3f239c658298" } +source = { editable = "../../../langchain/libs/partners/ollama" } dependencies = [ { name = "langchain-core" }, { name = "ollama" }, ] +[package.metadata] +requires-dist = [ + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "ollama", specifier = ">=0.6.0,<1.0.0" }, +] + +[package.metadata.requires-dev] +dev = [{ name = "langchain-core", editable = "../../../langchain/libs/core" }] +lint = [{ name = "ruff", specifier = ">=0.13.1,<0.14.0" }] +test = [ + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "langchain-tests", editable = "../../../langchain/libs/standard-tests" }, + { name = "pytest", specifier = ">=8.4.1,<9.0.0" }, + { name = "pytest-asyncio", specifier = ">=0.26.0,<1.0.0" }, + { name = "pytest-socket", specifier = ">=0.7.0,<1.0.0" }, + { name = "pytest-watcher", specifier = ">=0.4.3,<1.0.0" }, + { name = "syrupy", specifier = ">=4.9.1,<5.0.0" }, +] +test-integration = [] +typing = [ + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "mypy", specifier = ">=1.17.1,<2.0.0" }, +] + [[package]] name = "langchain-openai" version = "1.0.0" -source = { git = "https://github.com/langchain-ai/langchain.git?subdirectory=libs%2Fpartners%2Fopenai#a47386f6dce4552ccf3fce3b838f3f239c658298" } +source = { editable = "../../../langchain/libs/partners/openai" } dependencies = [ { name = "langchain-core" }, { name = "openai" }, { name = "tiktoken" }, ] +[package.metadata] +requires-dist = [ + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "openai", specifier = ">=1.109.1,<3.0.0" }, + { name = "tiktoken", specifier = ">=0.7.0,<1.0.0" }, +] + +[package.metadata.requires-dev] +dev = [{ name = "langchain-core", editable = "../../../langchain/libs/core" }] +lint = [{ name = "ruff", specifier = ">=0.13.1,<0.14.0" }] +test = [ + { name = "freezegun", specifier = ">=1.2.2,<2.0.0" }, + { name = "langchain", editable = "../../../langchain/libs/langchain_v1" }, + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "langchain-tests", editable = "../../../langchain/libs/standard-tests" }, + { name = "langgraph-prebuilt", specifier = ">=0.7.0rc1" }, + { name = "numpy", marker = "python_full_version < '3.13'", specifier = ">=1.26.4" }, + { name = "numpy", marker = "python_full_version >= '3.13'", specifier = ">=2.1.0" }, + { name = "pytest", specifier = ">=7.3.0,<8.0.0" }, + { name = "pytest-asyncio", specifier = ">=0.21.1,<1.0.0" }, + { name = "pytest-cov", specifier = ">=4.1.0,<5.0.0" }, + { name = "pytest-mock", specifier = ">=3.10.0,<4.0.0" }, + { name = "pytest-retry", specifier = ">=1.7.0,<1.8.0" }, + { name = "pytest-socket", specifier = ">=0.6.0,<1.0.0" }, + { name = "pytest-watcher", specifier = ">=0.3.4,<1.0.0" }, + { name = "pytest-xdist", specifier = ">=3.6.1,<4.0.0" }, + { name = "syrupy", specifier = ">=4.0.2,<5.0.0" }, + { name = "vcrpy", specifier = ">=7.0.0,<8.0.0" }, +] +test-integration = [ + { name = "httpx", specifier = ">=0.27.0,<1.0.0" }, + { name = "numpy", marker = "python_full_version < '3.13'", specifier = ">=1.26.4" }, + { name = "numpy", marker = "python_full_version >= '3.13'", specifier = ">=2.1.0" }, + { name = "pillow", specifier = ">=10.3.0,<12.0.0" }, +] +typing = [ + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "mypy", specifier = ">=1.17.1,<2.0.0" }, + { name = "types-tqdm", specifier = ">=4.66.0.5,<5.0.0.0" }, +] + [[package]] name = "langchain-perplexity" version = "1.0.0" -source = { git = "https://github.com/langchain-ai/langchain.git?subdirectory=libs%2Fpartners%2Fperplexity#a47386f6dce4552ccf3fce3b838f3f239c658298" } +source = { editable = "../../../langchain/libs/partners/perplexity" } dependencies = [ { name = "langchain-core" }, { name = "openai" }, ] +[package.metadata] +requires-dist = [ + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "openai", specifier = ">=2.0.0,<3.0.0" }, +] + +[package.metadata.requires-dev] +dev = [{ name = "langchain-core", editable = "../../../langchain/libs/core" }] +lint = [{ name = "ruff", specifier = ">=0.13.1,<0.14.0" }] +test = [ + { name = "freezegun", specifier = ">=1.2.2,<2.0.0" }, + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "langchain-tests", editable = "../../../langchain/libs/standard-tests" }, + { name = "pytest", specifier = ">=7.3.0,<8.0.0" }, + { name = "pytest-asyncio", specifier = ">=0.21.1,<1.0.0" }, + { name = "pytest-cov", specifier = ">=4.1.0,<5.0.0" }, + { name = "pytest-mock", specifier = ">=3.10.0,<4.0.0" }, + { name = "pytest-retry", specifier = ">=1.7.0,<1.8.0" }, + { name = "pytest-socket", specifier = ">=0.6.0,<1.0.0" }, + { name = "pytest-watcher", specifier = ">=0.3.4,<1.0.0" }, + { name = "pytest-xdist", specifier = ">=3.6.1,<4.0.0" }, + { name = "syrupy", specifier = ">=4.0.2,<5.0.0" }, +] +test-integration = [ + { name = "httpx", specifier = ">=0.27.0,<1.0.0" }, + { name = "pillow", specifier = ">=10.3.0,<12.0.0" }, +] +typing = [ + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "mypy", specifier = ">=1.10.0,<2.0.0" }, + { name = "types-tqdm", specifier = ">=4.66.0.5,<5.0.0.0" }, +] + [[package]] name = "langchain-prompty" version = "1.0.0" -source = { git = "https://github.com/langchain-ai/langchain.git?subdirectory=libs%2Fpartners%2Fprompty#a47386f6dce4552ccf3fce3b838f3f239c658298" } +source = { editable = "../../../langchain/libs/partners/prompty" } dependencies = [ { name = "langchain-core" }, { name = "pyyaml" }, ] +[package.metadata] +requires-dist = [ + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "pyyaml", specifier = ">=6.0.1,<7.0.0" }, +] + +[package.metadata.requires-dev] +dev = [ + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "types-pyyaml", specifier = ">=6.0.12.20240311,<7.0.0.0" }, +] +lint = [ + { name = "ruff", specifier = ">=0.13.1,<0.14.0" }, + { name = "types-urllib3", specifier = ">=1.26.25.14,<2.0.0.0" }, +] +test = [ + { name = "freezegun", specifier = ">=1.2.2,<2.0.0" }, + { name = "langchain-classic", editable = "../../../langchain/libs/langchain" }, + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "langchain-tests", editable = "../../../langchain/libs/standard-tests" }, + { name = "langchain-text-splitters", editable = "../../../langchain/libs/text-splitters" }, + { name = "pytest", specifier = ">=7.3.0,<8.0.0" }, + { name = "pytest-asyncio", specifier = ">=0.21.1,<1.0.0" }, + { name = "pytest-benchmark" }, + { name = "pytest-mock", specifier = ">=3.10.0,<4.0.0" }, + { name = "pytest-watcher", specifier = ">=0.3.4,<1.0.0" }, + { name = "syrupy", specifier = ">=4.0.2,<5.0.0" }, +] +test-integration = [] +typing = [ + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "mypy", specifier = ">=1.18.1,<1.19.0" }, + { name = "types-pyyaml", specifier = ">=6.0.12.20240311,<7.0.0.0" }, +] + [[package]] name = "langchain-qdrant" version = "1.0.0" -source = { git = "https://github.com/langchain-ai/langchain.git?subdirectory=libs%2Fpartners%2Fqdrant#a47386f6dce4552ccf3fce3b838f3f239c658298" } +source = { editable = "../../../langchain/libs/partners/qdrant" } dependencies = [ { name = "langchain-core" }, { name = "pydantic" }, { name = "qdrant-client" }, ] +[package.metadata] +requires-dist = [ + { name = "fastembed", marker = "python_full_version >= '3.9' and python_full_version < '3.13' and extra == 'fastembed'", specifier = ">=0.3.3,<1.0.0" }, + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "pydantic", specifier = ">=2.7.4,<3.0.0" }, + { name = "qdrant-client", specifier = ">=1.10.1,<2.0.0" }, +] +provides-extras = ["fastembed"] + +[package.metadata.requires-dev] +dev = [{ name = "langchain-core", editable = "../../../langchain/libs/core" }] +lint = [{ name = "ruff", specifier = ">=0.13.1,<0.14.0" }] +test = [ + { name = "freezegun", specifier = ">=1.2.2,<2.0.0" }, + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "langchain-tests", editable = "../../../langchain/libs/standard-tests" }, + { name = "pytest", specifier = ">=7.3.0,<8.0.0" }, + { name = "pytest-asyncio", specifier = ">=0.21.1,<1.0.0" }, + { name = "pytest-benchmark" }, + { name = "pytest-mock", specifier = ">=3.10.0,<4.0.0" }, + { name = "pytest-socket", specifier = ">=0.7.0,<1.0.0" }, + { name = "pytest-watcher", specifier = ">=0.3.4,<1.0.0" }, + { name = "requests", specifier = ">=2.31.0,<3.0.0" }, + { name = "syrupy", specifier = ">=4.0.2,<5.0.0" }, +] +test-integration = [] +typing = [ + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "mypy", specifier = ">=1.10.0,<2.0.0" }, + { name = "simsimd", specifier = ">=6.0.0,<7.0.0" }, +] + [[package]] name = "langchain-reference-docs" version = "0.1.0" @@ -1931,36 +2766,36 @@ dependencies = [ requires-dist = [ { name = "griffe-inherited-docstrings", specifier = ">=1.1.2,<2.0.0" }, { name = "griffe-warnings-deprecated", specifier = ">=1.1.0,<2.0.0" }, - { name = "langchain", git = "https://github.com/langchain-ai/langchain.git?subdirectory=libs%2Flangchain_v1" }, - { name = "langchain-anthropic", git = "https://github.com/langchain-ai/langchain.git?subdirectory=libs%2Fpartners%2Fanthropic" }, - { name = "langchain-astradb", git = "https://github.com/langchain-ai/langchain-datastax.git?subdirectory=libs%2Fastradb" }, - { name = "langchain-aws", git = "https://github.com/langchain-ai/langchain-aws.git?subdirectory=libs%2Faws" }, - { name = "langchain-chroma", git = "https://github.com/langchain-ai/langchain.git?subdirectory=libs%2Fpartners%2Fchroma" }, - { name = "langchain-classic", git = "https://github.com/langchain-ai/langchain.git?subdirectory=libs%2Flangchain" }, - { name = "langchain-core", git = "https://github.com/langchain-ai/langchain.git?subdirectory=libs%2Fcore" }, - { name = "langchain-deepseek", git = "https://github.com/langchain-ai/langchain.git?subdirectory=libs%2Fpartners%2Fdeepseek" }, - { name = "langchain-exa", git = "https://github.com/langchain-ai/langchain.git?subdirectory=libs%2Fpartners%2Fexa" }, - { name = "langchain-fireworks", git = "https://github.com/langchain-ai/langchain.git?subdirectory=libs%2Fpartners%2Ffireworks" }, - { name = "langchain-google-community", git = "https://github.com/langchain-ai/langchain-google.git?subdirectory=libs%2Fcommunity" }, - { name = "langchain-google-genai", git = "https://github.com/langchain-ai/langchain-google.git?subdirectory=libs%2Fgenai" }, - { name = "langchain-google-vertexai", git = "https://github.com/langchain-ai/langchain-google.git?subdirectory=libs%2Fvertexai" }, - { name = "langchain-groq", git = "https://github.com/langchain-ai/langchain.git?subdirectory=libs%2Fpartners%2Fgroq" }, - { name = "langchain-mcp-adapters", git = "https://github.com/langchain-ai/langchain-mcp-adapters.git" }, - { name = "langchain-mongodb", git = "https://github.com/langchain-ai/langchain-mongodb.git?subdirectory=libs%2Flangchain-mongodb" }, - { name = "langchain-nomic", git = "https://github.com/langchain-ai/langchain.git?subdirectory=libs%2Fpartners%2Fnomic" }, - { name = "langchain-ollama", git = "https://github.com/langchain-ai/langchain.git?subdirectory=libs%2Fpartners%2Follama" }, - { name = "langchain-openai", git = "https://github.com/langchain-ai/langchain.git?subdirectory=libs%2Fpartners%2Fopenai" }, - { name = "langchain-perplexity", git = "https://github.com/langchain-ai/langchain.git?subdirectory=libs%2Fpartners%2Fperplexity" }, - { name = "langchain-prompty", git = "https://github.com/langchain-ai/langchain.git?subdirectory=libs%2Fpartners%2Fprompty" }, - { name = "langchain-qdrant", git = "https://github.com/langchain-ai/langchain.git?subdirectory=libs%2Fpartners%2Fqdrant" }, - { name = "langchain-tavily", git = "https://github.com/tavily-ai/langchain-tavily.git" }, - { name = "langchain-xai", git = "https://github.com/langchain-ai/langchain.git?subdirectory=libs%2Fpartners%2Fxai" }, - { name = "langgraph", git = "https://github.com/langchain-ai/langgraph?subdirectory=libs%2Flanggraph" }, - { name = "langgraph-checkpoint", git = "https://github.com/langchain-ai/langgraph?subdirectory=libs%2Fcheckpoint" }, - { name = "langgraph-checkpoint-postgres", git = "https://github.com/langchain-ai/langgraph?subdirectory=libs%2Fcheckpoint-postgres" }, - { name = "langgraph-checkpoint-sqlite", git = "https://github.com/langchain-ai/langgraph?subdirectory=libs%2Fcheckpoint-sqlite" }, - { name = "langgraph-prebuilt", git = "https://github.com/langchain-ai/langgraph?subdirectory=libs%2Fprebuilt" }, - { name = "langgraph-sdk", git = "https://github.com/langchain-ai/langgraph?subdirectory=libs%2Fsdk-py" }, + { name = "langchain", editable = "../../../langchain/libs/langchain_v1" }, + { name = "langchain-anthropic", editable = "../../../langchain/libs/partners/anthropic" }, + { name = "langchain-astradb", editable = "../../../langchain-datastax/libs/astradb" }, + { name = "langchain-aws", editable = "../../../langchain-aws/libs/aws" }, + { name = "langchain-chroma", editable = "../../../langchain/libs/partners/chroma" }, + { name = "langchain-classic", editable = "../../../langchain/libs/langchain" }, + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "langchain-deepseek", editable = "../../../langchain/libs/partners/deepseek" }, + { name = "langchain-exa", editable = "../../../langchain/libs/partners/exa" }, + { name = "langchain-fireworks", editable = "../../../langchain/libs/partners/fireworks" }, + { name = "langchain-google-community", editable = "../../../langchain-google/libs/community" }, + { name = "langchain-google-genai", editable = "../../../langchain-google/libs/genai" }, + { name = "langchain-google-vertexai", editable = "../../../langchain-google/libs/vertexai" }, + { name = "langchain-groq", editable = "../../../langchain/libs/partners/groq" }, + { name = "langchain-mcp-adapters", editable = "../../../langchain-mcp-adapters" }, + { name = "langchain-mongodb", editable = "../../../langchain-mongodb/libs/langchain-mongodb" }, + { name = "langchain-nomic", editable = "../../../langchain/libs/partners/nomic" }, + { name = "langchain-ollama", editable = "../../../langchain/libs/partners/ollama" }, + { name = "langchain-openai", editable = "../../../langchain/libs/partners/openai" }, + { name = "langchain-perplexity", editable = "../../../langchain/libs/partners/perplexity" }, + { name = "langchain-prompty", editable = "../../../langchain/libs/partners/prompty" }, + { name = "langchain-qdrant", editable = "../../../langchain/libs/partners/qdrant" }, + { name = "langchain-tavily", editable = "../../../langchain-tavily" }, + { name = "langchain-xai", editable = "../../../langchain/libs/partners/xai" }, + { name = "langgraph", editable = "../../../langgraph/libs/langgraph" }, + { name = "langgraph-checkpoint", editable = "../../../langgraph/libs/checkpoint" }, + { name = "langgraph-checkpoint-postgres", editable = "../../../langgraph/libs/checkpoint-postgres" }, + { name = "langgraph-checkpoint-sqlite", editable = "../../../langgraph/libs/checkpoint-sqlite" }, + { name = "langgraph-prebuilt", editable = "../../../langgraph/libs/prebuilt" }, + { name = "langgraph-sdk", editable = "../../../langgraph/libs/sdk-py" }, { name = "markdown-callouts", specifier = ">=0.3.0,<1.0.0" }, { name = "markdown-include", specifier = ">=0.8.1,<1.0.0" }, { name = "mkdocs", specifier = ">=1.6.0,<2.0.0" }, @@ -1979,7 +2814,7 @@ requires-dist = [ [[package]] name = "langchain-tavily" version = "0.2.12" -source = { git = "https://github.com/tavily-ai/langchain-tavily.git#e12637c1bd2ea6f935cd3a2bda7f96b6cd7a4fba" } +source = { editable = "../../../langchain-tavily" } dependencies = [ { name = "aiohttp" }, { name = "langchain" }, @@ -1987,18 +2822,67 @@ dependencies = [ { name = "requests" }, ] +[package.metadata] +requires-dist = [ + { name = "aiohttp", specifier = ">=3.11.14,<4.0.0" }, + { name = "langchain", specifier = ">=0.3.20,<2.0.0" }, + { name = "langchain-core", specifier = ">=0.3.15,<2.0.0" }, + { name = "requests", specifier = ">=2.32.3,<3.0.0" }, +] + [[package]] name = "langchain-text-splitters" version = "1.0.0" -source = { git = "https://github.com/langchain-ai/langchain.git?subdirectory=libs%2Ftext-splitters#a47386f6dce4552ccf3fce3b838f3f239c658298" } +source = { editable = "../../../langchain/libs/text-splitters" } dependencies = [ { name = "langchain-core" }, ] +[package.metadata] +requires-dist = [{ name = "langchain-core", editable = "../../../langchain/libs/core" }] + +[package.metadata.requires-dev] +dev = [ + { name = "jupyter", specifier = ">=1.0.0,<2.0.0" }, + { name = "langchain-core", editable = "../../../langchain/libs/core" }, +] +lint = [ + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "ruff", specifier = ">=0.13.1,<0.14.0" }, +] +test = [ + { name = "freezegun", specifier = ">=1.2.2,<2.0.0" }, + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "pytest", specifier = ">=8.0.0,<9.0.0" }, + { name = "pytest-asyncio", specifier = ">=0.21.1,<1.0.0" }, + { name = "pytest-mock", specifier = ">=3.10.0,<4.0.0" }, + { name = "pytest-socket", specifier = ">=0.7.0,<1.0.0" }, + { name = "pytest-watcher", specifier = ">=0.3.4,<1.0.0" }, + { name = "pytest-xdist", specifier = ">=3.6.1,<4.0.0" }, +] +test-integration = [ + { name = "en-core-web-sm", url = "https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.8.0/en_core_web_sm-3.8.0-py3-none-any.whl" }, + { name = "nltk", specifier = ">=3.9.1,<4.0.0" }, + { name = "scipy", marker = "python_full_version == '3.12.*'", specifier = ">=1.7.0,<2.0.0" }, + { name = "scipy", marker = "python_full_version >= '3.13'", specifier = ">=1.14.1,<2.0.0" }, + { name = "sentence-transformers", marker = "python_full_version < '3.14'", specifier = ">=3.0.1,<4.0.0" }, + { name = "spacy", marker = "python_full_version < '3.14'", specifier = ">=3.8.7,<4.0.0" }, + { name = "thinc", specifier = ">=8.3.6,<9.0.0" }, + { name = "tiktoken", specifier = ">=0.8.0,<1.0.0" }, + { name = "transformers", specifier = ">=4.51.3,<5.0.0" }, +] +typing = [ + { name = "beautifulsoup4", specifier = ">=4.13.5,<5.0.0" }, + { name = "lxml-stubs", specifier = ">=0.5.1,<1.0.0" }, + { name = "mypy", specifier = ">=1.18.1,<1.19.0" }, + { name = "tiktoken", specifier = ">=0.8.0,<1.0.0" }, + { name = "types-requests", specifier = ">=2.31.0.20240218,<3.0.0.0" }, +] + [[package]] name = "langchain-xai" version = "1.0.0" -source = { git = "https://github.com/langchain-ai/langchain.git?subdirectory=libs%2Fpartners%2Fxai#a47386f6dce4552ccf3fce3b838f3f239c658298" } +source = { editable = "../../../langchain/libs/partners/xai" } dependencies = [ { name = "aiohttp" }, { name = "langchain-core" }, @@ -2006,10 +2890,41 @@ dependencies = [ { name = "requests" }, ] +[package.metadata] +requires-dist = [ + { name = "aiohttp", specifier = ">=3.9.1,<4.0.0" }, + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "langchain-openai", editable = "../../../langchain/libs/partners/openai" }, + { name = "requests", specifier = ">=2.0.0,<3.0.0" }, +] + +[package.metadata.requires-dev] +dev = [{ name = "langchain-core", editable = "../../../langchain/libs/core" }] +lint = [{ name = "ruff", specifier = ">=0.13.1,<0.14.0" }] +test = [ + { name = "docarray", specifier = ">=0.32.1,<1.0.0" }, + { name = "freezegun", specifier = ">=1.2.2,<2.0.0" }, + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "langchain-openai", editable = "../../../langchain/libs/partners/openai" }, + { name = "langchain-tests", editable = "../../../langchain/libs/standard-tests" }, + { name = "pytest", specifier = ">=7.3.0,<8.0.0" }, + { name = "pytest-asyncio", specifier = ">=0.21.1,<1.0.0" }, + { name = "pytest-mock", specifier = ">=3.10.0,<4.0.0" }, + { name = "pytest-socket", specifier = ">=0.7.0,<1.0.0" }, + { name = "pytest-watcher", specifier = ">=0.3.4,<1.0.0" }, + { name = "syrupy", specifier = ">=4.0.2,<5.0.0" }, +] +test-integration = [] +typing = [ + { name = "langchain-core", editable = "../../../langchain/libs/core" }, + { name = "mypy", specifier = ">=1.10.0,<2.0.0" }, + { name = "types-requests", specifier = ">=2.0.0,<3.0.0" }, +] + [[package]] name = "langgraph" version = "1.0.0" -source = { git = "https://github.com/langchain-ai/langgraph?subdirectory=libs%2Flanggraph#d298b489b477b6b6d479faf80b20aeba89a96ba5" } +source = { editable = "../../../langgraph/libs/langgraph" } dependencies = [ { name = "langchain-core" }, { name = "langgraph-checkpoint" }, @@ -2019,19 +2934,128 @@ dependencies = [ { name = "xxhash" }, ] +[package.metadata] +requires-dist = [ + { name = "langchain-core", specifier = ">=0.1" }, + { name = "langgraph-checkpoint", editable = "../../../langgraph/libs/checkpoint" }, + { name = "langgraph-prebuilt", editable = "../../../langgraph/libs/prebuilt" }, + { name = "langgraph-sdk", editable = "../../../langgraph/libs/sdk-py" }, + { name = "pydantic", specifier = ">=2.7.4" }, + { name = "xxhash", specifier = ">=3.5.0" }, +] + +[package.metadata.requires-dev] +dev = [ + { name = "httpx" }, + { name = "jupyter" }, + { name = "langchain-core", specifier = "==1.0.0a1" }, + { name = "langgraph-checkpoint", editable = "../../../langgraph/libs/checkpoint" }, + { name = "langgraph-checkpoint-postgres", editable = "../../../langgraph/libs/checkpoint-postgres" }, + { name = "langgraph-checkpoint-sqlite", editable = "../../../langgraph/libs/checkpoint-sqlite" }, + { name = "langgraph-cli", marker = "python_full_version < '3.14'", editable = "../../../langgraph/libs/cli" }, + { name = "langgraph-cli", extras = ["inmem"], marker = "python_full_version < '3.14'", editable = "../../../langgraph/libs/cli" }, + { name = "langgraph-prebuilt", editable = "../../../langgraph/libs/prebuilt" }, + { name = "langgraph-sdk", editable = "../../../langgraph/libs/sdk-py" }, + { name = "mypy" }, + { name = "psycopg", extras = ["binary"] }, + { name = "py-spy" }, + { name = "pycryptodome" }, + { name = "pyperf" }, + { name = "pytest" }, + { name = "pytest-cov" }, + { name = "pytest-dotenv" }, + { name = "pytest-mock" }, + { name = "pytest-repeat" }, + { name = "pytest-watcher" }, + { name = "pytest-xdist", extras = ["psutil"] }, + { name = "redis" }, + { name = "ruff" }, + { name = "syrupy" }, + { name = "types-requests" }, + { name = "uvloop", specifier = "==0.21.0b1" }, +] +lint = [ + { name = "mypy" }, + { name = "ruff" }, + { name = "types-requests" }, +] +test = [ + { name = "httpx" }, + { name = "langchain-core", specifier = "==1.0.0a1" }, + { name = "langgraph-checkpoint", editable = "../../../langgraph/libs/checkpoint" }, + { name = "langgraph-checkpoint-postgres", editable = "../../../langgraph/libs/checkpoint-postgres" }, + { name = "langgraph-checkpoint-sqlite", editable = "../../../langgraph/libs/checkpoint-sqlite" }, + { name = "langgraph-cli", marker = "python_full_version < '3.14'", editable = "../../../langgraph/libs/cli" }, + { name = "langgraph-cli", extras = ["inmem"], marker = "python_full_version < '3.14'", editable = "../../../langgraph/libs/cli" }, + { name = "langgraph-prebuilt", editable = "../../../langgraph/libs/prebuilt" }, + { name = "langgraph-sdk", editable = "../../../langgraph/libs/sdk-py" }, + { name = "psycopg", extras = ["binary"] }, + { name = "py-spy" }, + { name = "pycryptodome" }, + { name = "pyperf" }, + { name = "pytest" }, + { name = "pytest-cov" }, + { name = "pytest-dotenv" }, + { name = "pytest-mock" }, + { name = "pytest-repeat" }, + { name = "pytest-watcher" }, + { name = "pytest-xdist", extras = ["psutil"] }, + { name = "redis" }, + { name = "syrupy" }, + { name = "uvloop", specifier = "==0.21.0b1" }, +] + [[package]] name = "langgraph-checkpoint" version = "2.1.2" -source = { git = "https://github.com/langchain-ai/langgraph?subdirectory=libs%2Fcheckpoint#d298b489b477b6b6d479faf80b20aeba89a96ba5" } +source = { editable = "../../../langgraph/libs/checkpoint" } dependencies = [ { name = "langchain-core" }, { name = "ormsgpack" }, ] +[package.metadata] +requires-dist = [ + { name = "langchain-core", specifier = ">=0.2.38" }, + { name = "ormsgpack", specifier = ">=1.10.0" }, +] + +[package.metadata.requires-dev] +dev = [ + { name = "codespell" }, + { name = "dataclasses-json" }, + { name = "mypy" }, + { name = "numpy" }, + { name = "pandas" }, + { name = "pandas-stubs", specifier = ">=2.2.2.240807" }, + { name = "pytest" }, + { name = "pytest-asyncio" }, + { name = "pytest-mock" }, + { name = "pytest-watcher" }, + { name = "redis" }, + { name = "ruff" }, +] +lint = [ + { name = "codespell" }, + { name = "mypy" }, + { name = "ruff" }, +] +test = [ + { name = "dataclasses-json" }, + { name = "numpy" }, + { name = "pandas" }, + { name = "pandas-stubs", specifier = ">=2.2.2.240807" }, + { name = "pytest" }, + { name = "pytest-asyncio" }, + { name = "pytest-mock" }, + { name = "pytest-watcher" }, + { name = "redis" }, +] + [[package]] name = "langgraph-checkpoint-postgres" version = "2.0.25" -source = { git = "https://github.com/langchain-ai/langgraph?subdirectory=libs%2Fcheckpoint-postgres#d298b489b477b6b6d479faf80b20aeba89a96ba5" } +source = { editable = "../../../langgraph/libs/checkpoint-postgres" } dependencies = [ { name = "langgraph-checkpoint" }, { name = "orjson" }, @@ -2039,34 +3063,170 @@ dependencies = [ { name = "psycopg-pool" }, ] +[package.metadata] +requires-dist = [ + { name = "langgraph-checkpoint", editable = "../../../langgraph/libs/checkpoint" }, + { name = "orjson", specifier = ">=3.10.1" }, + { name = "psycopg", specifier = ">=3.2.0" }, + { name = "psycopg-pool", specifier = ">=3.2.0" }, +] + +[package.metadata.requires-dev] +dev = [ + { name = "anyio" }, + { name = "codespell" }, + { name = "langgraph-checkpoint", editable = "../../../langgraph/libs/checkpoint" }, + { name = "mypy" }, + { name = "psycopg", extras = ["binary"] }, + { name = "pytest" }, + { name = "pytest-asyncio" }, + { name = "pytest-mock" }, + { name = "pytest-watcher" }, + { name = "ruff" }, +] +lint = [ + { name = "codespell" }, + { name = "mypy" }, + { name = "ruff" }, +] +test = [ + { name = "anyio" }, + { name = "langgraph-checkpoint", editable = "../../../langgraph/libs/checkpoint" }, + { name = "psycopg", extras = ["binary"] }, + { name = "pytest" }, + { name = "pytest-asyncio" }, + { name = "pytest-mock" }, + { name = "pytest-watcher" }, +] + [[package]] name = "langgraph-checkpoint-sqlite" version = "2.0.11" -source = { git = "https://github.com/langchain-ai/langgraph?subdirectory=libs%2Fcheckpoint-sqlite#d298b489b477b6b6d479faf80b20aeba89a96ba5" } +source = { editable = "../../../langgraph/libs/checkpoint-sqlite" } dependencies = [ { name = "aiosqlite" }, { name = "langgraph-checkpoint" }, { name = "sqlite-vec" }, ] +[package.metadata] +requires-dist = [ + { name = "aiosqlite", specifier = ">=0.20" }, + { name = "langgraph-checkpoint", editable = "../../../langgraph/libs/checkpoint" }, + { name = "sqlite-vec", specifier = ">=0.1.6" }, +] + +[package.metadata.requires-dev] +dev = [ + { name = "codespell" }, + { name = "langgraph-checkpoint", editable = "../../../langgraph/libs/checkpoint" }, + { name = "mypy" }, + { name = "pytest" }, + { name = "pytest-asyncio" }, + { name = "pytest-mock" }, + { name = "pytest-retry", specifier = ">=1.7.0" }, + { name = "pytest-watcher" }, + { name = "ruff" }, +] +lint = [ + { name = "codespell" }, + { name = "mypy" }, + { name = "ruff" }, +] +test = [ + { name = "langgraph-checkpoint", editable = "../../../langgraph/libs/checkpoint" }, + { name = "pytest" }, + { name = "pytest-asyncio" }, + { name = "pytest-mock" }, + { name = "pytest-retry", specifier = ">=1.7.0" }, + { name = "pytest-watcher" }, +] + [[package]] name = "langgraph-prebuilt" version = "1.0.0" -source = { git = "https://github.com/langchain-ai/langgraph?subdirectory=libs%2Fprebuilt#d298b489b477b6b6d479faf80b20aeba89a96ba5" } +source = { editable = "../../../langgraph/libs/prebuilt" } dependencies = [ { name = "langchain-core" }, { name = "langgraph-checkpoint" }, ] +[package.metadata] +requires-dist = [ + { name = "langchain-core", specifier = ">=0.3.67" }, + { name = "langgraph-checkpoint", editable = "../../../langgraph/libs/checkpoint" }, +] + +[package.metadata.requires-dev] +dev = [ + { name = "codespell" }, + { name = "langchain-core" }, + { name = "langgraph", editable = "../../../langgraph/libs/langgraph" }, + { name = "langgraph-checkpoint", editable = "../../../langgraph/libs/checkpoint" }, + { name = "langgraph-checkpoint-postgres", editable = "../../../langgraph/libs/checkpoint-postgres" }, + { name = "langgraph-checkpoint-sqlite", editable = "../../../langgraph/libs/checkpoint-sqlite" }, + { name = "mypy" }, + { name = "pytest" }, + { name = "pytest-asyncio" }, + { name = "pytest-mock" }, + { name = "pytest-watcher" }, + { name = "ruff" }, + { name = "syrupy" }, +] +lint = [ + { name = "codespell" }, + { name = "mypy" }, + { name = "ruff" }, +] +test = [ + { name = "langchain-core" }, + { name = "langgraph", editable = "../../../langgraph/libs/langgraph" }, + { name = "langgraph-checkpoint", editable = "../../../langgraph/libs/checkpoint" }, + { name = "langgraph-checkpoint-postgres", editable = "../../../langgraph/libs/checkpoint-postgres" }, + { name = "langgraph-checkpoint-sqlite", editable = "../../../langgraph/libs/checkpoint-sqlite" }, + { name = "pytest" }, + { name = "pytest-asyncio" }, + { name = "pytest-mock" }, + { name = "pytest-watcher" }, + { name = "syrupy" }, +] + [[package]] name = "langgraph-sdk" -version = "0.2.9" -source = { git = "https://github.com/langchain-ai/langgraph?subdirectory=libs%2Fsdk-py#d298b489b477b6b6d479faf80b20aeba89a96ba5" } +source = { editable = "../../../langgraph/libs/sdk-py" } dependencies = [ { name = "httpx" }, { name = "orjson" }, ] +[package.metadata] +requires-dist = [ + { name = "httpx", specifier = ">=0.25.2" }, + { name = "orjson", specifier = ">=3.10.1" }, +] + +[package.metadata.requires-dev] +dev = [ + { name = "codespell" }, + { name = "mypy" }, + { name = "pytest" }, + { name = "pytest-asyncio" }, + { name = "pytest-mock" }, + { name = "pytest-watch" }, + { name = "ruff" }, +] +lint = [ + { name = "codespell" }, + { name = "mypy" }, + { name = "ruff" }, +] +test = [ + { name = "pytest" }, + { name = "pytest-asyncio" }, + { name = "pytest-mock" }, + { name = "pytest-watch" }, +] + [[package]] name = "langsmith" version = "0.4.37" diff --git a/src/oss/python/integrations/providers/azure_ai.mdx b/src/oss/python/integrations/providers/azure_ai.mdx index f9aed9a02..a0415e2c0 100644 --- a/src/oss/python/integrations/providers/azure_ai.mdx +++ b/src/oss/python/integrations/providers/azure_ai.mdx @@ -2,7 +2,7 @@ title: Azure AI --- -All functionality related to [Azure AI Foundry](https://learn.microsoft.com/en-us/azure/developer/python/get-started) and its related projects. +All LangChain integrations with [Microsoft Azure](https://azure.microsoft.com/) and its related projects. Integration packages for Azure AI, Dynamic Sessions, SQL Server are maintained in the [langchain-azure](https://github.com/langchain-ai/langchain-azure) repository. @@ -11,7 +11,7 @@ the [langchain-azure](https://github.com/langchain-ai/langchain-azure) repositor We recommend developers start with the (`langchain-azure-ai`) to access all the models available in [Azure AI Foundry](https://learn.microsoft.com/en-us/azure/ai-studio/how-to/model-catalog-overview). -### Azure AI Chat Completions Model +### Azure AI chat completions Access models like Azure OpenAI, DeepSeek R1, Cohere, Phi and Mistral using the `AzureAIChatCompletionsModel` class. @@ -71,3 +71,84 @@ embed_model = AzureAIEmbeddingsModel( model_name="text-embedding-ada-002" ) ``` + +## Vector stores + +### Azure CosmosDB NoSQL Vector Search + +> [Azure CosmosDB NoSQL](https://azure.microsoft.com/en-us/products/cosmos-db/) is a fully managed, +> globally distributed, serverless document database for modern applications. It stores data in flexible +> JSON documents and uses a SQL-like query language. This provides high performance, low latency, and automatic, +> elastic scalability. It also features integrated vector search capabilities for AI workloads +> like generative AI and RAG. This allows you to store, index, and query vector embeddings alongside +> your operational data in the same database. You can combine vector similarity search with traditional +> keyword-based search for relevant results and choose from various indexing methods for optimal performance. +> This unified approach simplifies application architecture and ensures data consistency. + +We need to install the `azure-cosmos` package to use this vector store. + + + ```bash pip + pip install -qU azure-cosmos + ``` + + ```bash uv + uv add azure-cosmos + ``` + + +```python +from langchain_azure_ai.vectorstores.azure_cosmos_db_no_sql import ( + AzureCosmosDBNoSqlVectorSearch, +) +vector_search = AzureCosmosDBNoSqlVectorSearch.from_documents( + documents=docs, + embedding=openai_embeddings, + cosmos_client=cosmos_client, + database_name=database_name, + container_name=container_name, + vector_embedding_policy=vector_embedding_policy, + full_text_policy=full_text_policy, + indexing_policy=indexing_policy, + cosmos_container_properties=cosmos_container_properties, + cosmos_database_properties={}, + full_text_search_enabled=True, +) +``` + +See a [usage example](/oss/integrations/vectorstores/azure_cosmos_db_no_sql). + + +### Azure CosmosDB Mongo vCore Vector Search + +> [Azure CosmosDB Mongo vCore](https://learn.microsoft.com/en-us/azure/cosmos-db/mongodb/vcore/) architecture makes +it easy to create a database with full native MongoDB support. You can apply your MongoDB experience and continue +to use your favorite MongoDB drivers, SDKs, and tools by pointing your application to the API for MongoDB (vCore) +cluster's connection string. + +We need to install the `pymongo` package to use this vector store. + + + ```bash pip + pip install -qU pymongo + ``` + + ```bash uv + uv add pymongo + ``` + + +```python +from langchain_azure_ai.vectorstores.azure_cosmos_db_mongo_vcore import ( + AzureCosmosDBMongoVCoreVectorSearch, +) + +vectorstore = AzureCosmosDBMongoVCoreVectorSearch.from_documents( + docs, + openai_embeddings, + collection=collection, + index_name=INDEX_NAME, +) +``` + +See a [usage example](/oss/integrations/vectorstores/azure_cosmos_db_mongo_vcore). diff --git a/src/oss/python/integrations/vectorstores/azure_cosmos_db.mdx b/src/oss/python/integrations/vectorstores/azure_cosmos_db_mongo_vcore.mdx similarity index 88% rename from src/oss/python/integrations/vectorstores/azure_cosmos_db.mdx rename to src/oss/python/integrations/vectorstores/azure_cosmos_db_mongo_vcore.mdx index 33cfaea2c..58949614b 100644 --- a/src/oss/python/integrations/vectorstores/azure_cosmos_db.mdx +++ b/src/oss/python/integrations/vectorstores/azure_cosmos_db_mongo_vcore.mdx @@ -6,12 +6,12 @@ This notebook shows you how to leverage this integrated [vector database](https: Azure Cosmos DB is the database that powers OpenAI's ChatGPT service. It offers single-digit millisecond response times, automatic and instant scalability, along with guaranteed speed at any scale. -Azure Cosmos DB for MongoDB vCore([learn.microsoft.com/en-us/azure/cosmos-db/mongodb/vcore/](https://learn.microsoft.com/en-us/azure/cosmos-db/mongodb/vcore/)) provides developers with a fully managed MongoDB-compatible database service for building modern applications with a familiar architecture. You can apply your MongoDB experience and continue to use your favorite MongoDB drivers, SDKs, and tools by pointing your application to the API for MongoDB vCore account's connection string. +[Azure Cosmos DB for MongoDB vCore](learn.microsoft.com/en-us/azure/cosmos-db/mongodb/vcore/) provides developers with a fully managed MongoDB-compatible database service for building modern applications with a familiar architecture. You can apply your MongoDB experience and continue to use your favorite MongoDB drivers, SDKs, and tools by pointing your application to the API for MongoDB vCore account's connection string. [Sign Up](https://azure.microsoft.com/en-us/free/) for lifetime free access to get started today. ```python -pip install -qU pymongo langchain-openai langchain-community +%pip install -qU pymongo langchain-openai langchain-azure-ai ``` ```output @@ -22,8 +22,8 @@ Note: you may need to restart the kernel to use updated packages. import os CONNECTION_STRING = "YOUR_CONNECTION_STRING" -INDEX_NAME = "izzy-test-index" -NAMESPACE = "izzy_test_db.izzy_test_collection" +INDEX_NAME = "langchain-test-index" +NAMESPACE = "langchain_test_db.langchain_test_collection" DB_NAME, COLLECTION_NAME = NAMESPACE.split(".") ``` @@ -35,7 +35,8 @@ We want to use `AzureOpenAIEmbeddings` so we need to set up our Azure OpenAI API os.environ["AZURE_OPENAI_API_KEY"] = "YOUR_AZURE_OPENAI_API_KEY" os.environ["AZURE_OPENAI_ENDPOINT"] = "YOUR_AZURE_OPENAI_ENDPOINT" os.environ["AZURE_OPENAI_API_VERSION"] = "2023-05-15" -os.environ["OPENAI_EMBEDDINGS_MODEL_NAME"] = "text-embedding-ada-002" # the model name +os.environ["OPENAI_EMBEDDINGS_MODEL_NAME"] = "text-embedding-ada-002" +os.environ["OPENAI_EMBEDDINGS_DEPLOYMENT"] = "text-embedding-ada-002" ``` Now, we need to load the documents into the collection, create the index and then run our queries against the index to retrieve matches. @@ -44,8 +45,8 @@ Please refer to the [documentation](https://learn.microsoft.com/en-us/azure/cosm ```python from langchain_community.document_loaders import TextLoader -from langchain_community.vectorstores.azure_cosmos_db import ( - AzureCosmosDBVectorSearch, +from langchain_azure_ai.vectorstores.azure_cosmos_db_mongo_vcore import ( + AzureCosmosDBMongoVCoreVectorSearch, CosmosDBSimilarityType, CosmosDBVectorSearchType, ) @@ -94,7 +95,7 @@ model_deployment = os.getenv( ) model_name = os.getenv("OPENAI_EMBEDDINGS_MODEL_NAME", "text-embedding-ada-002") -vectorstore = AzureCosmosDBVectorSearch.from_documents( +vectorstore = AzureCosmosDBMongoVCoreVectorSearch.from_documents( docs, openai_embeddings, collection=collection, @@ -177,7 +178,7 @@ And I did that 4 days ago, when I nominated Circuit Court of Appeals Judge Ketan Once the documents have been loaded and the index has been created, you can now instantiate the vector store directly and run queries against the index ```python -vectorstore = AzureCosmosDBVectorSearch.from_connection_string( +vectorstore = AzureCosmosDBMongoVCoreVectorSearch.from_connection_string( CONNECTION_STRING, NAMESPACE, openai_embeddings, index_name=INDEX_NAME ) @@ -199,7 +200,7 @@ And I did that 4 days ago, when I nominated Circuit Court of Appeals Judge Ketan ``` ```python -vectorstore = AzureCosmosDBVectorSearch( +vectorstore = AzureCosmosDBMongoVCoreVectorSearch( collection, openai_embeddings, index_name=INDEX_NAME ) @@ -222,10 +223,10 @@ And I did that 4 days ago, when I nominated Circuit Court of Appeals Judge Ketan ## Filtered vector search (Preview) -Azure Cosmos DB for MongoDB supports pre-filtering with $lt, $lte, $eq, $neq, $gte, $gt, $in, $nin, and $regex. To use this feature, enable "filtering vector search" in the "Preview Features" tab of your Azure Subscription. Learn more about preview features [here](https://learn.microsoft.com/azure/cosmos-db/mongodb/vcore/vector-search#filtered-vector-search-preview). +Azure Cosmos DB for MongoDB supports pre-filtering with `$lt`, `$lte`, `$eq`, `$neq`, `$gte`, `$gt`, `$in`, `$nin`, and `$regex`. To use this feature, enable `"filtering vector search"` in the "Preview Features" tab of your Azure Subscription. Learn more about preview features [here](https://learn.microsoft.com/azure/cosmos-db/mongodb/vcore/vector-search#filtered-vector-search-preview). ```python -# create a filter index +# Create a filter index vectorstore.create_filter_index( property_to_filter="metadata.source", index_name="filter_index" ) @@ -268,7 +269,3 @@ len(docs) ```output 0 ``` - -```python - -``` diff --git a/src/oss/python/integrations/vectorstores/azure_cosmos_db_no_sql.mdx b/src/oss/python/integrations/vectorstores/azure_cosmos_db_no_sql.mdx index 83239ec2c..4081aeec3 100644 --- a/src/oss/python/integrations/vectorstores/azure_cosmos_db_no_sql.mdx +++ b/src/oss/python/integrations/vectorstores/azure_cosmos_db_no_sql.mdx @@ -17,7 +17,7 @@ Please refer here for more details: [Sign Up](https://azure.microsoft.com/en-us/free/) for lifetime free access to get started today. ```python -pip install -qU azure-cosmos langchain-openai langchain-community +%pip install -qU azure-cosmos langchain-openai langchain-azure-ai ``` ```output @@ -103,10 +103,10 @@ full_text_policy = { ```python from azure.cosmos import CosmosClient, PartitionKey -from langchain_community.vectorstores.azure_cosmos_db_no_sql import ( +from langchain_azure_ai.vectorstores.azure_cosmos_db_no_sql import ( AzureCosmosDBNoSqlVectorSearch, ) -from langchain_openai import OpenAIEmbeddings +from langchain_openai import AzureOpenAIEmbeddings HOST = "AZURE_COSMOS_DB_ENDPOINT" KEY = "AZURE_COSMOS_DB_KEY" @@ -210,16 +210,12 @@ Score 5: 0.8272138555588135 ```python query = "What were the compute requirements for training GPT 4" -pre_filter = { - "conditions": [ - {"property": "metadata.page", "operator": "$eq", "value": 0}, - ], -} +where = "c.metadata.page = 0" results = vector_search.similarity_search_with_score( query=query, k=5, - pre_filter=pre_filter, + where=where, ) # Display results @@ -249,23 +245,15 @@ Score 4: 0.8209972517303962 ## Full Text Search ```python -from langchain_community.vectorstores.azure_cosmos_db_no_sql import CosmosDBQueryType - query = "What were the compute requirements for training GPT 4" -pre_filter = { - "conditions": [ - { - "property": "text", - "operator": "$full_text_contains_any", - "value": "What were the compute requirements for training GPT 4", - }, - ], -} + +where = "FullTextContainsAny(c.description, 'compute', 'GPT-4')" + results = vector_search.similarity_search_with_score( query=query, k=5, - query_type=CosmosDBQueryType.FULL_TEXT_SEARCH, - pre_filter=pre_filter, + search_type="full_text_search", + where=where, ) # Display results @@ -295,10 +283,15 @@ Result 5: {"id":null,"metadata":{"source":"https://arxiv.org/pdf/2303.08774.pdf ```python query = "What were the compute requirements for training GPT 4" +full_text_rank_filter = [ + {"search_field": "description", "search_text": "compute requirements GPT-4"} +] + results = vector_search.similarity_search_with_score( query=query, k=5, - query_type=CosmosDBQueryType.FULL_TEXT_RANK, + search_type="full_text_ranking", + full_text_rank_filter=full_text_rank_filter, ) # Display results @@ -328,15 +321,20 @@ Result 5: {"id":null,"metadata":{"source":"https://arxiv.org/pdf/2303.08774.pdf ```python query = "What were the compute requirements for training GPT 4" +full_text_rank_filter = [ + {"search_field": "description", "search_text": "compute requirements GPT-4"} +] + results = vector_search.similarity_search_with_score( query=query, k=5, - query_type=CosmosDBQueryType.HYBRID, + search_type="hybrid", + full_text_rank_filter=full_text_rank_filter, ) # Display results for i in range(0, len(results)): - print(f"Result {i + 1}: ", results[i][0].json()) + print(f"Result {i + 1}: ", results[i][0]) print(f"Score {i + 1}: ", results[i][1]) print("\n") ``` @@ -367,20 +365,17 @@ Score 5: 0.8213247840132897 ```python query = "What were the compute requirements for training GPT 4" -pre_filter = { - "conditions": [ - { - "property": "text", - "operator": "$full_text_contains_any", - "value": "compute requirements", - }, - {"property": "metadata.page", "operator": "$eq", "value": 0}, - ], - "logical_operator": "$and", -} +full_text_rank_filter = [ + {"search_field": "description", "search_text": "compute requirements GPT-4"} +] +where = "c.metadata.page = 0" results = vector_search.similarity_search_with_score( - query=query, k=5, query_type=CosmosDBQueryType.HYBRID, pre_filter=pre_filter + query=query, + k=5, + search_type="hybrid", + where=where, + full_text_rank_filter=full_text_rank_filter, ) # Display results @@ -411,6 +406,54 @@ Result 5: {"id":null,"metadata":{"source":"https://arxiv.org/pdf/2303.08774.pdf Score 5: 0.8213247840132897 ``` -```python +## Hybrid Search with custom projection + +```python +query = "What were the compute requirements for training GPT 4" + +full_text_rank_filter = [ + {"search_field": "description", "search_text": "compute requirements GPT-4"} +] +where = "c.metadata.page = 0" + +projection_mapping = { + "description": "text", + } + +results = vector_search.similarity_search_with_score( + query=query, + k=5, + search_type="hybrid", + where=where, + full_text_rank_filter=full_text_rank_filter, + projection_mapping=projection_mapping, +) + +# Display results +for i in range(0, len(results)): + print(f"Result {i + 1}: ", results[i][0].json()) + print(f"Score {i + 1}: ", results[i][1]) + print("\n") +``` + +```output +Result 1: {"id":null,"metadata":{"source":"https://arxiv.org/pdf/2303.08774.pdf","page":97,"id":"36dfcd6c-d3cf-4e34-a5d6-cc4d63013cba"},"page_content":"Figure 11: Results on IF evaluations across GPT3.5, GPT3.5-Turbo, GPT-4-launch\n98","type":"Document"} +Score 1: 0.8173275975778744 + + +Result 2: {"id":null,"metadata":{"source":"https://arxiv.org/pdf/2303.08774.pdf","page":7,"id":"3d6e4715-4a38-40b1-89f1-e768bad5f9c8"},"page_content":"Preliminary results on a narrow set of academic vision benchmarks can be found in the GPT-4 blog\npost [ 65]. We plan to release more information about GPT-4’s visual capabilities in follow-up work.\n8","type":"Document"} +Score 2: 0.8176419674549597 + + +Result 3: {"id":null,"metadata":{"source":"https://arxiv.org/pdf/2303.08774.pdf","page":2,"id":"f2746fd3-bbcb-4197-b2d5-ee7b355b6009"},"page_content":"the HumanEval dataset. A power law fit to the smaller models (excluding GPT-4) is shown as the dotted\nline; this fit accurately predicts GPT-4’s performance. The x-axis is training compute normalized so that\nGPT-4 is 1.\n3","type":"Document"} +Score 3: 0.8053881702559759 + + +Result 4: {"id":null,"metadata":{"source":"https://arxiv.org/pdf/2303.08774.pdf","page":0,"id":"9d59c3ed-deac-48cb-9382-a8ab079334e5"},"page_content":"performance based on models trained with no more than 1/1,000th the compute of\nGPT-4.\n1 Introduction\nThis technical report presents GPT-4, a large multimodal model capable of processing image and\ntext inputs and producing text outputs. Such models are an important area of study as they have the\npotential to be used in a wide range of applications, such as dialogue systems, text summarization,\nand machine translation. As such, they have been the subject of substantial interest and progress in\nrecent years [1–34].\nOne of the main goals of developing such models is to improve their ability to understand and generate\nnatural language text, particularly in more complex and nuanced scenarios. To test its capabilities\nin such scenarios, GPT-4 was evaluated on a variety of exams originally designed for humans. In\nthese evaluations it performs quite well and often outscores the vast majority of human test takers.","type":"Document"} +Score 4: 0.8394796122122777 + + +Result 5: {"id":null,"metadata":{"source":"https://arxiv.org/pdf/2303.08774.pdf","page":1,"id":"20153a6c-7c2c-4328-9b0e-e3502d7ac4dd"},"page_content":"safety considerations above against the scientific value of further transparency.\n3 Predictable Scaling\nA large focus of the GPT-4 project was building a deep learning stack that scales predictably. The\nprimary reason is that for very large training runs like GPT-4, it is not feasible to do extensive\nmodel-specific tuning. To address this, we developed infrastructure and optimization methods that\nhave very predictable behavior across multiple scales. These improvements allowed us to reliably\npredict some aspects of the performance of GPT-4 from smaller models trained using 1,000×–\n10,000×less compute.\n3.1 Loss Prediction\nThe final loss of properly-trained large language models is thought to be well approximated by power\nlaws in the amount of compute used to train the model [41, 42, 2, 14, 15].\nTo verify the scalability of our optimization infrastructure, we predicted GPT-4’s final loss on our","type":"Document"} +Score 5: 0.8213247840132897 ``` diff --git a/src/oss/python/integrations/vectorstores/index.mdx b/src/oss/python/integrations/vectorstores/index.mdx index 89c542641..c46e5c83b 100644 --- a/src/oss/python/integrations/vectorstores/index.mdx +++ b/src/oss/python/integrations/vectorstores/index.mdx @@ -407,6 +407,62 @@ vector_store = AstraDBVectorStore( ) ``` + + + +```bash pip +pip install -qU langchain-azure-ai azure-cosmos +``` + +```bash uv +uv add langchain-azure-ai +``` + + +```python +from langchain_azure_ai.vectorstores.azure_cosmos_db_no_sql import ( + AzureCosmosDBNoSqlVectorSearch, +) +vector_search = AzureCosmosDBNoSqlVectorSearch.from_documents( + documents=docs, + embedding=openai_embeddings, + cosmos_client=cosmos_client, + database_name=database_name, + container_name=container_name, + vector_embedding_policy=vector_embedding_policy, + full_text_policy=full_text_policy, + indexing_policy=indexing_policy, + cosmos_container_properties=cosmos_container_properties, + cosmos_database_properties={}, + full_text_search_enabled=True, +) +``` + + + + +```bash pip +pip install -qU langchain-azure-ai pymongo +``` + +```bash uv +uv add pymongo +``` + + +```python +from langchain_azure_ai.vectorstores.azure_cosmos_db_mongo_vcore import ( + AzureCosmosDBMongoVCoreVectorSearch, +) + +vectorstore = AzureCosmosDBMongoVCoreVectorSearch.from_documents( + docs, + openai_embeddings, + collection=collection, + index_name=INDEX_NAME, +) +``` + @@ -590,6 +646,8 @@ vector_store = QdrantVectorStore( | Vectorstore | Delete by ID | Filtering | Search by Vector | Search with score | Async | Passes Standard Tests | Multi Tenancy | IDs in add Documents | |------------|-------------|-----------|-----------------|------------------|--------|---------------------|---------------|-------------------| | [`AstraDBVectorStore`](/oss/integrations/vectorstores/astradb) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | +| [`AzureCosmosDBNoSqlVectorStore`](/oss/python/integrations/vectorstores/azure_cosmos_db_no_sql) | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | +| [`AzureCosmosDBMongoVCoreVectorStore`](/oss/python/integrations/vectorstores/azure_cosmos_db_mongo_vcore) | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | | [`Chroma`](/oss/integrations/vectorstores/chroma) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | [`Clickhouse`](/oss/integrations/vectorstores/clickhouse) | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | | [`CouchbaseSearchVectorStore`](/oss/integrations/vectorstores/couchbase) | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | @@ -621,7 +679,7 @@ vector_store = QdrantVectorStore( - +