导入Langchain触发RuntimeError:无re.Pattern验证器的排查建议
LangChain导入报错排查方案
报错信息
--------------------------------------------------------------------------- RuntimeError Traceback (most recent call last) Input In [4], in <cell line: 1>() ----> 1 import langchain File ~\Anaconda3\envs\rioxarray\lib\site-packages\langchain\__init__.py:6, in <module> 3 from importlib import metadata 4 from typing import Optional ----> 6 from langchain.agents import MRKLChain, ReActChain, SelfAskWithSearchChain 7 from langchain.cache import BaseCache 8 from langchain.chains import ( 9 ConversationChain, 10 LLMBashChain, (...) 16 VectorDBQAWithSourcesChain, 17 ) File ~\Anaconda3\envs\rioxarray\lib\site-packages\langchain\agents\__init__.py:11, in <module> 2 from langchain.agents.agent import ( 3 Agent, 4 AgentExecutor, (...) 8 LLMSingleActionAgent, 9 ) 10 from langchain.agents.agent_iterator import AgentExecutorIterator ---> 11 from langchain.agents.agent_toolkits import ( 12 create_csv_agent, 13 create_json_agent, 14 create_openapi_agent, 15 create_pandas_dataframe_agent, 16 create_pbi_agent, 17 create_pbi_chat_agent, 18 create_spark_dataframe_agent, 19 create_spark_sql_agent, 20 create_sql_agent, 21 create_vectorstore_agent, 22 create_vectorstore_router_agent, 23 create_xorbits_agent, 24 ) 25 from langchain.agents.agent_types import AgentType 26 from langchain.agents.conversational.base import ConversationalAgent File ~\Anaconda3\envs\rioxarray\lib\site-packages\langchain\agents\agent_toolkits\__init__.py:6, in <module> 2 from langchain.agents.agent_toolkits.amadeus.toolkit import AmadeusToolkit 3 from langchain.agents.agent_toolkits.azure_cognitive_services import ( 4 AzureCognitiveServicesToolkit, 5 ) ----> 6 from langchain.agents.agent_toolkits.csv.base import create_csv_agent 7 from langchain.agents.agent_toolkits.file_management.toolkit import ( 8 FileManagementToolkit, 9 ) 10 from langchain.agents.agent_toolkits.gmail.toolkit import GmailToolkit File ~\Anaconda3\envs\rioxarray\lib\site-packages\langchain\agents\agent_toolkits\csv\base.py:4, in <module> 1 from typing import Any, List, Optional, Union 3 from langchain.agents.agent import AgentExecutor ----> 4 from langchain.agents.agent_toolkits.pandas.base import create_pandas_dataframe_agent 5 from langchain.schema.language_model import BaseLanguageModel 8 def create_csv_agent( 9 llm: BaseLanguageModel, 10 path: Union[str, List[str]], 11 pandas_kwargs: Optional[dict] = None, 12 **kwargs: Any, 13 ) -> AgentExecutor: File ~\Anaconda3\envs\rioxarray\lib\site-packages\langchain\agents\agent_toolkits\pandas\base.py:18, in <module> 16 from langchain.agents.mrkl.base import ZeroShotAgent 17 from langchain.agents.openai_functions_agent.base import OpenAIFunctionsAgent ---> 18 from langchain.agents.types import AgentType 19 from langchain.callbacks.base import BaseCallbackManager 20 from langchain.chains.llm import LLMChain File ~\Anaconda3\envs\rioxarray\lib\site-packages\langchain\agents\types.py:5, in <module> 3 from langchain.agents.agent import BaseSingleActionAgent 4 from langchain.agents.agent_types import AgentType ----> 5 from langchain.agents.chat.base import ChatAgent 6 from langchain.agents.conversational.base import ConversationalAgent 7 from langchain.agents.conversational_chat.base import ConversationalChatAgent File ~\Anaconda3\envs\rioxarray\lib\site-packages\langchain\agents\chat\base.py:6, in <module> 3 from pydantic import Field 5 from langchain.agents.agent import Agent, AgentOutputParser ----> 6 from langchain.agents.chat.output_parser import ChatOutputParser 7 from langchain.agents.chat.prompt import ( 8 FORMAT_INSTRUCTIONS, 9 HUMAN_MESSAGE, 10 SYSTEM_MESSAGE_PREFIX, 11 SYSTEM_MESSAGE_SUFFIX, 12 ) 13 from langchain.agents.utils import validate_tools_single_input File ~\Anaconda3\envs\rioxarray\lib\site-packages\langchain\agents\chat\output_parser.py:12, in <module> 7 from langchain.schema import AgentAction, AgentFinish, OutputParserException 9 FINAL_ANSWER_ACTION = "Final Answer:" ---> 12 class ChatOutputParser(AgentOutputParser): 13 """Output parser for the chat agent.""" 15 pattern = re.compile(r"^.*?`{3}(?:json)?\n(.*?)`{3}.*?$", re.DOTALL) File ~\Anaconda3\envs\rioxarray\lib\site-packages\pydantic\main.py:229, in pydantic.main.ModelMetaclass.__new__() File ~\Anaconda3\envs\rioxarray\lib\site-packages\pydantic\fields.py:491, in pydantic.fields.ModelField.infer() File ~\Anaconda3\envs\rioxarray\lib\site-packages\pydantic\fields.py:421, in pydantic.fields.ModelField.__init__() File ~\Anaconda3\envs\rioxarray\lib\site-packages\pydantic\fields.py:542, in pydantic.fields.ModelField.prepare() File ~\Anaconda3\envs\rioxarray\lib\site-packages\pydantic\fields.py:804, in pydantic.fields.ModelField.populate_validators() File ~\Anaconda3\envs\rioxarray\lib\site-packages\pydantic\validators.py:723, in find_validators() RuntimeError: no validator found for <class 're.Pattern'>, see `arbitrary_types_allowed` in Config
排查与解决建议
升级LangChain到最新稳定版
执行命令:pip install --upgrade langchain,新版本通常会修复依赖兼容问题,包括Pydantic字段验证器的适配。检查并调整Pydantic版本
先查看当前环境的Pydantic版本:pip show pydantic。如果是v1.x系列,确保版本不低于1.10.0;如果是v2.x,部分旧版LangChain可能不兼容,可降级到v1.x稳定版:pip install pydantic==1.10.13。创建独立虚拟环境
当前使用的rioxarray环境可能存在依赖冲突,建议新建专门的LangChain环境:conda create -n langchain_env python=3.10 conda activate langchain_env pip install langchain临时应急修复(不推荐长期使用)
找到LangChain的报错文件langchain/agents/chat/output_parser.py,在ChatOutputParser类中添加Config配置:class ChatOutputParser(AgentOutputParser): """Output parser for the chat agent.""" pattern = re.compile(r"^.*?`{3}(?:json)?\n(.*?)`{3}.*?$", re.DOTALL) class Config: arbitrary_types_allowed = True注意:该修改会在LangChain更新后被覆盖,仅作临时救急。
内容的提问来源于stack exchange,提问作者Filippo Sebastio
相关产品推荐
相关产品推荐

