使用LangChain的ConversationSummaryBufferMemory遇Pydantic错误求助
解决LangChain 0.3.7中
ConversationSummaryBufferMemory的Pydantic初始化错误 这个问题在LangChain 0.3.x版本中很常见,是由于Pydantic v2的模型定义规则变化导致的,ConversationSummaryBufferMemory的缓存字段未被正确初始化。下面是两种可行的解决办法:
方法一:手动指定缓存类型并重建模型
显式指定缓存实现(比如内置的InMemoryCache),然后调用模型重建方法:
from langchain_core.caches import InMemoryCache from langchain.memory import ConversationSummaryBufferMemory # 为缓存字段指定具体类型 ConversationSummaryBufferMemory.__fields__["cache"].type_ = InMemoryCache # 重建模型以应用类型定义 ConversationSummaryBufferMemory.model_rebuild() # 之后再创建你的memory实例 memory = ConversationSummaryBufferMemory( llm=llm, input_key="input", output_key="output", max_token_limit=args.get("max_tokens", DEFAULT_MAX_TOKENS), memory_key="chat_history", )
方法二:升级LangChain版本
直接将LangChain升级到0.4.0及以上版本,后续版本已经修复了这个Pydantic相关的初始化问题,无需手动处理缓存字段:
pip install --upgrade langchain>=0.4.0
内容的提问来源于stack exchange,提问作者Minura Punchihewa
相关产品推荐
相关产品推荐

