构建聊天机器人
概述
我们将通过一个示例来讲解如何设计和实现一个由 LLM 驱动的聊天机器人。这个聊天机器人将能够进行对话并记住之前的互动。
请注意,我们构建的这个聊天机器人只会使用语言模型来进行对话。你可能还在寻找其他几个相关的概念:
对话式 RAG:在外部数据源上启用聊天机器人体验
代理:构建一个可以执行操作的聊天机器人
本教程将涵盖基础知识,这些知识对于上述两个更高级的主题会有所帮助,但如果你愿意,也可以直接跳到那些部分。
概念
以下是我们将要使用的一些高级组件:
-
聊天模型(Chat Models)
:聊天机器人界面基于消息而不是原始文本,因此更适合使用聊天模型而不是文本 LLM。 -
提示模板(Prompt Templates)
:简化了组合默认消息、用户输入、聊天历史记录和(可选的)额外检索上下文的提示的过程。 -
聊天历史(Chat History)
:允许聊天机器人“记住”过去的互动,并在回答后续问题时考虑这些互动。 -
使用 LangSmith 进行调试和追踪:帮助你调试和追踪你的应用程序。
我们将介绍如何将上述组件结合起来,创建一个强大的对话式聊天机器人。
设置
Jupyter Notebook
本指南(以及文档中的大多数其他指南)使用 Jupyter Notebook,并假设读者也是如此。Jupyter Notebook 非常适合学习如何使用 LLM 系统,因为很多时候事情可能会出错(意外输出、API 停止工作等),在交互式环境中进行学习是更好地理解它们的好方法。
这个和其他教程可能最方便在 Jupyter Notebook 中运行。有关如何安装的说明,请参见这里 。
安装
要安装 LangChain,请运行以下命令(二选一):
- 通过 pip 安装
pip install langchain
- 通过 Conda 安装
conda install langchain -c conda-forge
有关更多详细信息,请参见我们的安装指南。
LangSmith
你使用 LangChain 构建的许多应用程序将包含多个步骤,并多次调用 LLM。随着这些应用程序变得越来越复杂,能够检查链或代理内部发生的具体情况变得至关重要。使用 LangSmith 是实现这一目标的最佳方式。
在上面的链接注册后,请确保设置你的环境变量以开始记录追踪信息:
export LANGCHAIN_TRACING_V2="true"
export LANGCHAIN_API_KEY="..."
或者,如果在 Jupyter Notebook 中,你可以使用以下方式设置环境变量:
import getpass
import os
os.environ["LANGCHAIN_TRACING_V2"] = "true"
os.environ["LANGCHAIN_API_KEY"] = getpass.getpass()