检查其他资源
- 我为这个问题添加了一个非常描述性的标题。
- 我在LangChain文档中使用集成搜索进行搜索。
- 我使用GitHub搜索找到了一个类似的问题,但没有找到。
- 我确信这是LangChain中的一个bug,而不是我的代码。
- 通过更新到LangChain的最新稳定版本(或特定集成包)无法解决此bug。
示例代码
class Code(BaseModel):
prefix: str = Field(description="Description of the problem and approach")
imports: str = Field(description="Code block import statements")
code: str = Field(description="Code block not including import statements")
messages = state["messages"]
...
llm = ChatMistralAI(model="codestral-latest", temperature=0, endpoint="https://codestral.mistral.ai/v1")
code_gen_chain = llm.with_structured_output(Code, include_raw=False)
code_solution = code_gen_chain.invoke(messages)
code_solution
始终是 dict
类型,而不是 Code
类型。
错误信息和堆栈跟踪(如果适用)
- 无响应*
描述
这是最近的一个公共codestral演示的代码:
class Code(BaseModel):
prefix: str = Field(description="Description of the problem and approach")
imports: str = Field(description="Code block import statements")
code: str = Field(description="Code block not including import statements")
messages = state["messages"]
...
llm = ChatMistralAI(model="codestral-latest", temperature=0, endpoint="https://codestral.mistral.ai/v1")
code_gen_chain = llm.with_structured_output(Code, include_raw=False)
code_solution = code_gen_chain.invoke(messages)
code_solution
始终是 dict
类型,而不是 Code
类型。
进入 llm.with_structured_output
后,第一行是:
if kwargs:
raise ValueError(f"Received unsupported arguments {kwargs}")
is_pydantic_schema = isinstance(schema, type) and issubclass(schema, BaseModel)
即使 schema
是发送的相同 Code
类型,issubclass(schema, BaseModel)
也始终返回False。
调用之前:
>>> Code
<class 'codestral.model.Code'>
>>> issubclass(Code, BaseModel)
True
>>> type(Code)
<class 'pydantic._internal._model_construction.ModelMetaclass'>
在调用内部:
>>> schema
<class 'codestral.model.Code'>
>>> issubclass(schema, BaseModel)
False
>>> type(schema)
<class 'pydantic._internal._model_construction.ModelMetaclass'>
它在调用Langchain之外表现正常,在调用内部表现不正确。
系统信息
langchain==0.2.1
langchain-community==0.2.1
langchain-core==0.2.3
langchain-mistralai==0.1.7
langchain-text-splitters==0.2.0
pydantic==2.7.2
pydantic_core==2.18.3
系统信息
操作系统:Darwin
操作系统版本:Darwin Kernel Version 23.5.0: Wed May 1 20:14:38 PDT 2024; root:xnu-10063.121.3~5/RELEASE_ARM64_T6020
Python版本:3.11.9 (main, Apr 19 2024, 11:43:47) [Clang 14.0.6 ]
软件包信息
langchain_core: 0.2.3
langchain: 0.2.1
langchain_community: 0.2.1
langsmith: 0.1.67
langchain_mistralai: 0.1.7
langchain_text_splitters: 0.2.0
langgraph: 0.0.60
1条答案
按热度按时间ikfrs5lh1#
经过进一步的调查,我发现ChatMistralAI期望使用Pydantic V1模型,而langchain默认安装了Pydantic V2。可以通过某种方式使其更清晰,或者修复代码。