From 7327e84d6f99833c05e3711906ea1de413533a1b Mon Sep 17 00:00:00 2001 From: ccurme Date: Fri, 10 Jul 2026 18:46:45 -0400 Subject: [PATCH] feat(langchain): add `meta` extra and support langchain-meta in init_chat_model (#38786) --- .../langchain/chat_models/base.py | 2 + libs/langchain_v1/pyproject.toml | 1 + libs/langchain_v1/uv.lock | 44 +++++++++++++++++-- 3 files changed, 44 insertions(+), 3 deletions(-) diff --git a/libs/langchain_v1/langchain/chat_models/base.py b/libs/langchain_v1/langchain/chat_models/base.py index 89b7f9da1ab..4625a8186d2 100644 --- a/libs/langchain_v1/langchain/chat_models/base.py +++ b/libs/langchain_v1/langchain/chat_models/base.py @@ -65,6 +65,7 @@ _BUILTIN_PROVIDERS: dict[str, tuple[str, str, Callable[..., BaseChatModel]]] = { lambda cls, model, **kwargs: cls(model_id=model, **kwargs), ), "litellm": ("langchain_litellm", "ChatLiteLLM", _call), + "meta": ("langchain_meta", "ChatMetaModel", _call), "mistralai": ("langchain_mistralai", "ChatMistralAI", _call), "nvidia": ("langchain_nvidia_ai_endpoints", "ChatNVIDIA", _call), "ollama": ("langchain_ollama", "ChatOllama", _call), @@ -307,6 +308,7 @@ def init_chat_model( - `upstage` -> [`langchain-upstage`](https://docs.langchain.com/oss/python/integrations/providers/upstage) - `baseten` -> [`langchain-baseten`](https://docs.langchain.com/oss/python/integrations/providers/baseten) - `litellm` -> [`langchain-litellm`](https://docs.langchain.com/oss/python/integrations/providers/litellm) + - `meta` -> [`langchain-meta`](https://pypi.org/project/langchain-meta) configurable_fields: Which model parameters are configurable at runtime: diff --git a/libs/langchain_v1/pyproject.toml b/libs/langchain_v1/pyproject.toml index 5edee7baba0..2b6c92fa57a 100644 --- a/libs/langchain_v1/pyproject.toml +++ b/libs/langchain_v1/pyproject.toml @@ -48,6 +48,7 @@ baseten = ["langchain-baseten>=0.2.0"] deepseek = ["langchain-deepseek"] xai = ["langchain-xai"] perplexity = ["langchain-perplexity"] +meta = ["langchain-meta"] [project.urls] Homepage = "https://docs.langchain.com/" diff --git a/libs/langchain_v1/uv.lock b/libs/langchain_v1/uv.lock index 163aa2acbdb..51001701697 100644 --- a/libs/langchain_v1/uv.lock +++ b/libs/langchain_v1/uv.lock @@ -1047,7 +1047,7 @@ name = "exceptiongroup" version = "1.3.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "typing-extensions" }, + { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/0b/9f/a65090624ecf468cdca03533906e7c69ed7588582240cfe7cc9e770b50eb/exceptiongroup-1.3.0.tar.gz", hash = "sha256:b241f5885f560bc56a59ee63ca4c6a8bfa46ae4ad651af316d4e81817bb9fd88", size = 29749, upload-time = "2025-05-10T17:42:51.123Z" } wheels = [ @@ -2013,6 +2013,9 @@ groq = [ huggingface = [ { name = "langchain-huggingface" }, ] +meta = [ + { name = "langchain-meta" }, +] mistralai = [ { name = "langchain-mistralai" }, ] @@ -2077,6 +2080,7 @@ requires-dist = [ { name = "langchain-google-vertexai", marker = "extra == 'google-vertexai'" }, { name = "langchain-groq", marker = "extra == 'groq'" }, { name = "langchain-huggingface", marker = "extra == 'huggingface'" }, + { name = "langchain-meta", marker = "extra == 'meta'" }, { name = "langchain-mistralai", marker = "extra == 'mistralai'" }, { name = "langchain-ollama", marker = "extra == 'ollama'" }, { name = "langchain-openai", marker = "extra == 'openai'", editable = "../partners/openai" }, @@ -2086,7 +2090,7 @@ requires-dist = [ { name = "langgraph", specifier = ">=1.2.5,<1.3.0" }, { name = "pydantic", specifier = ">=2.7.4,<3.0.0" }, ] -provides-extras = ["community", "anthropic", "openai", "azure-ai", "google-vertexai", "google-genai", "fireworks", "ollama", "together", "mistralai", "huggingface", "groq", "aws", "baseten", "deepseek", "xai", "perplexity"] +provides-extras = ["community", "anthropic", "openai", "azure-ai", "google-vertexai", "google-genai", "fireworks", "ollama", "together", "mistralai", "huggingface", "groq", "aws", "baseten", "deepseek", "xai", "perplexity", "meta"] [package.metadata.requires-dev] lint = [{ name = "ruff", specifier = ">=0.15.0,<0.16.0" }] @@ -2413,6 +2417,23 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/bc/90/a1440bfa467a6dd9025ad80f3c239554de28aec49dacfb369fda92871556/langchain_huggingface-1.2.1-py3-none-any.whl", hash = "sha256:0930c216a457d2c8dc7b39a756c39c567f1d88593bfee2c3441f3ae718435f0f", size = 30924, upload-time = "2026-03-02T18:44:37.745Z" }, ] +[[package]] +name = "langchain-meta" +version = "0.5.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "langchain-core" }, + { name = "langchain-openai" }, + { name = "llama-api-client" }, + { name = "regex" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/4f/f3/b2fb2c60e1cca510ad324b23e22122dd55362ab0a4017d3fa2743aef4191/langchain_meta-0.5.0.tar.gz", hash = "sha256:55c4b0bf4ee7e5909105c60cfb1a58a60c8409bd53144bea018e898a70f7d6ae", size = 54701, upload-time = "2026-07-10T22:20:21.448Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/36/8533d8d3c36588746ed00fbdef4df7507c00268751d165eab71f9acd9a1b/langchain_meta-0.5.0-py3-none-any.whl", hash = "sha256:eb370ed42e2e0ed8dfd469dda0791fbb911ad4da6588eabbaf700c9be1357d11", size = 57588, upload-time = "2026-07-10T22:20:20.536Z" }, +] + [[package]] name = "langchain-mistralai" version = "1.1.1" @@ -2444,7 +2465,7 @@ wheels = [ [[package]] name = "langchain-openai" -version = "1.3.4" +version = "1.3.5" source = { editable = "../partners/openai" } dependencies = [ { name = "langchain-core" }, @@ -2810,6 +2831,23 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ce/62/b40b382fa0c66fee1478073eb8db352a4a6beda4a1adccf1df911d8c289c/librt-0.11.0-cp314-cp314t-win_arm64.whl", hash = "sha256:dee008f20b542e3cd162ba338a7f9ec0f6d23d395f66fe8aeeec3c9d067ea253", size = 102572, upload-time = "2026-05-10T18:17:06.809Z" }, ] +[[package]] +name = "llama-api-client" +version = "0.6.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "distro" }, + { name = "httpx" }, + { name = "pydantic" }, + { name = "sniffio" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6a/98/1bc43b6d2bb2261facf93b3b6557df7aabe37bd0d6435bba25fb2d061628/llama_api_client-0.6.0.tar.gz", hash = "sha256:f6dd125110b9bdfd31b4cea9376d0457b01481ded6ab70efbe115a94a97eb145", size = 127273, upload-time = "2025-12-18T20:30:55.956Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c4/65/aacd8e608f2b57dc114ec33ef6a18f4a451da2b0265aa13a6eeab2e8de64/llama_api_client-0.6.0-py3-none-any.whl", hash = "sha256:b41ccced2dfb17f15ae0c2ae2f70cb3cfc76705aa4412286ebfaae61e7fc37ce", size = 94606, upload-time = "2025-12-18T20:30:53.777Z" }, +] + [[package]] name = "markdown-it-py" version = "4.0.0"