一般情况下,聊天是没有状态的。但是很多场景我们是需要上下文记忆的。比如聊天机器人如果回答时不参考上下文信息,很容易出现前言不搭后语后语。如果需要手动维护对话历史信息,这工作量想想头都大,但是做为一个专门的AI开发工具,LangChain肯定是帮你想到了。
首先创建一个对话模型,记得自己设置环境变量QIANFAN_AK和QIANFAN_SK。
from langchain_community.chat_models import QianfanChatEndpoint
chatModel = QianfanChatEndpoint(
model='ERNIE-Bot',
endpoint='completions'
)
ChatMessageHistory
LC提供了专门的类用来管理对话历史记录,我们可以手工创建一个类试试。
from langchain.memory import ChatMessageHistory
history = ChatMessageHistory()
history.add_user_message("hi!")
history.add_ai_message("whats up?")
history.add_user_message("I'm XiaoMing")
history.add_ai_message("nice to meet you")
history.messages
'''输出
[HumanMessage(content='hi!'),
AIMessage(content='whats up?'),