调用ChatOpenAI的invoke函数触发'FieldInfo' object is not a mapping报错
解决LangChain调用invoke时的TypeError: 'FieldInfo' object is not a mapping错误
这个错误通常是依赖版本不兼容导致的,核心是LangChain组件(如langchain、langchain_openai)与Pydantic库的版本不匹配,引发chat_models基类处理参数时的映射错误。
解决方案步骤:
- 对齐依赖版本
卸载现有冲突包,安装经过验证的兼容版本组合:pip uninstall -y langchain langchain_openai pydantic pip install langchain==0.2.10 langchain_openai==0.1.23 pydantic==2.8.2 - 验证代码格式
你的消息格式是合法的,也可以尝试显式使用LangChain的消息对象来排除格式问题:from langchain_openai import ChatOpenAI from langchain_core.messages import SystemMessage, HumanMessage llm = ChatOpenAI( model="gpt-4o", temperature=0, ) messages = [ SystemMessage(content="You are a helpful assistant that translates English to French. Translate the user sentence."), HumanMessage(content="I love programming."), ] ai_msg = llm.invoke(messages) print(ai_msg.content) - 清除缓存(可选)
如果仍报错,清除Python缓存后重试:find . -name "__pycache__" -type d -exec rm -rf {} +
内容的提问来源于stack exchange,提问作者Adam Chicago
相关产品推荐
相关产品推荐

