From f68e25c41d6c35564219c5cdf4b8f50efef7acae Mon Sep 17 00:00:00 2001 From: Eugene Yurtsev Date: Fri, 6 Mar 2026 14:17:16 -0500 Subject: [PATCH] fix(langchain): suppress mypy errors in langchain_classic for deprecated/removed openai APIs and fallback imports --- .../agents/openai_assistant/base.py | 14 +++++++------- .../langchain_classic/chains/moderation.py | 2 +- .../evaluation/embedding_distance/base.py | 4 ++-- .../langchain_classic/evaluation/loading.py | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/libs/langchain/langchain_classic/agents/openai_assistant/base.py b/libs/langchain/langchain_classic/agents/openai_assistant/base.py index 3d5923979a5..4c7d3d68326 100644 --- a/libs/langchain/langchain_classic/agents/openai_assistant/base.py +++ b/libs/langchain/langchain_classic/agents/openai_assistant/base.py @@ -21,7 +21,7 @@ from typing_extensions import Self, override if TYPE_CHECKING: import openai - from openai.types.beta.threads import ThreadMessage + from openai.types.beta.threads import ThreadMessage # type: ignore[attr-defined] from openai.types.beta.threads.required_action_function_tool_call import ( RequiredActionFunctionToolCall, ) @@ -276,10 +276,10 @@ class OpenAIAssistantRunnable(RunnableSerializable[dict, OutputType]): OpenAIAssistantRunnable configured to run using the created assistant. """ client = client or _get_openai_client() - assistant = client.beta.assistants.create( + assistant = client.beta.assistants.create( # type: ignore[deprecated] name=name, instructions=instructions, - tools=[_get_assistants_tool(tool) for tool in tools], + tools=[_get_assistants_tool(tool) for tool in tools], # type: ignore[misc] model=model, ) return cls(assistant_id=assistant.id, client=client, **kwargs) @@ -409,10 +409,10 @@ class OpenAIAssistantRunnable(RunnableSerializable[dict, OutputType]): """ async_client = async_client or _get_openai_async_client() openai_tools = [_get_assistants_tool(tool) for tool in tools] - assistant = await async_client.beta.assistants.create( + assistant = await async_client.beta.assistants.create( # type: ignore[deprecated] name=name, instructions=instructions, - tools=openai_tools, + tools=openai_tools, # type: ignore[arg-type] model=model, ) return cls(assistant_id=assistant.id, async_client=async_client, **kwargs) @@ -617,7 +617,7 @@ class OpenAIAssistantRunnable(RunnableSerializable[dict, OutputType]): if version_gte_1_14 else isinstance( content, - openai.types.beta.threads.MessageContentText, + openai.types.beta.threads.MessageContentText, # type: ignore[attr-defined] ) ) for content in answer @@ -771,7 +771,7 @@ class OpenAIAssistantRunnable(RunnableSerializable[dict, OutputType]): if version_gte_1_14 else isinstance( content, - openai.types.beta.threads.MessageContentText, + openai.types.beta.threads.MessageContentText, # type: ignore[attr-defined] ) ) for content in answer diff --git a/libs/langchain/langchain_classic/chains/moderation.py b/libs/langchain/langchain_classic/chains/moderation.py index ba7d4afe8ea..f4c80e4cdb3 100644 --- a/libs/langchain/langchain_classic/chains/moderation.py +++ b/libs/langchain/langchain_classic/chains/moderation.py @@ -69,7 +69,7 @@ class OpenAIModerationChain(Chain): except ValueError: values["openai_pre_1_0"] = True if values["openai_pre_1_0"]: - values["client"] = openai.Moderation + values["client"] = openai.Moderation # type: ignore[attr-defined] else: values["client"] = openai.OpenAI(api_key=openai_api_key) values["async_client"] = openai.AsyncOpenAI(api_key=openai_api_key) diff --git a/libs/langchain/langchain_classic/evaluation/embedding_distance/base.py b/libs/langchain/langchain_classic/evaluation/embedding_distance/base.py index 269c603c580..c7c0e320dbe 100644 --- a/libs/langchain/langchain_classic/evaluation/embedding_distance/base.py +++ b/libs/langchain/langchain_classic/evaluation/embedding_distance/base.py @@ -60,7 +60,7 @@ def _embedding_factory() -> Embeddings: from langchain_openai import OpenAIEmbeddings except ImportError: try: - from langchain_community.embeddings.openai import ( + from langchain_community.embeddings.openai import ( # type: ignore[no-redef] OpenAIEmbeddings, ) except ImportError as e: @@ -121,7 +121,7 @@ class _EmbeddingDistanceChainMixin(Chain): pass try: - from langchain_community.embeddings.openai import ( + from langchain_community.embeddings.openai import ( # type: ignore[no-redef] OpenAIEmbeddings, ) diff --git a/libs/langchain/langchain_classic/evaluation/loading.py b/libs/langchain/langchain_classic/evaluation/loading.py index 6a7c0c75b14..8209db60815 100644 --- a/libs/langchain/langchain_classic/evaluation/loading.py +++ b/libs/langchain/langchain_classic/evaluation/loading.py @@ -152,7 +152,7 @@ def load_evaluator( from langchain_openai import ChatOpenAI except ImportError: try: - from langchain_community.chat_models.openai import ( + from langchain_community.chat_models.openai import ( # type: ignore[no-redef] ChatOpenAI, ) except ImportError as e: