为你的聊天应用程序添加智能对话历史——提升用户体验的关键
在现代的问答应用程序中,能否支持用户进行连续的对话是非常关键的。这意味着应用程序需要某种形式的"内存",记住过去的问题和答案,并将这些信息纳入当前的处理逻辑中。在本指南中,我们将关注如何添加逻辑,以便将历史消息整合到当前对话中。我们将探索两种方法:使用链(Chains)和使用智能代理(Agents)。
主要内容
使用链的方式(Chains)
链式方法中,我们总是执行一个检索步骤,这种方法的优势是可以保证每次用户交互都基于最新的上下文。具体来说,我们可以使用LangChain库提供的create_history_aware_retriever
构造器来实现。
设置环境
首先,你需要一些必要的依赖库:
%pip install --upgrade --quiet langchain langchain-community langchain-chroma bs4
确保你已经设置了OPENAI_API_KEY
环境变量:
import getpass
import os
if not os.environ.get("OPENAI_API_KEY"):
os.environ["OPENAI_API_KEY"] = getpass.getpass()
接下来,我们需要定义语言模型、检索器和提示:
定义语言模型
可以选择不同的聊天模型,例如OpenAI、Anthropic等:
from langchain_openai import ChatOpenAI
llm &#