我正在创建一个对话,就像这样:
但是我真正想要的是能够保存和加载那个
但这个失败了:
有什么想法吗?我希望能够提供任何指南、存储库、参考资料等的链接。
llm = ChatOpenAI(temperature=0, openai_api_key=OPENAI_API_KEY, model_name=OPENAI_DEFAULT_MODEL)
conversation = ConversationChain(llm=llm, memory=ConversationBufferMemory())
但是我真正想要的是能够保存和加载那个
ConversationBufferMemory()
,以便在不同的会话之间保持持久化。似乎没有明显的教程可以做到这一点,但我注意到了"Pydantic",所以我尝试了以下方法:saved_dict = conversation.memory.chat_memory.dict()
cm = ChatMessageHistory(**saved_dict) # or cm = ChatMessageHistory.parse_obj(saved_dict)
但这个失败了:
ValidationError: 6 validation errors for ChatMessageHistory
messages -> 0
Can't instantiate abstract class BaseMessage with abstract method type (type=type_error)
有什么想法吗?我希望能够提供任何指南、存储库、参考资料等的链接。
dict()
输出不包括类名,因此尝试重新加载它意味着它无法确定它是HumanMessage
还是AIMessage
,因此它只使用BaseMessage
并失败。 - Neil C. Obremskiconversation.memory.chat_memory.json()
包含类名吗? - undefined