使用LangChain和OpenAI的多文档阅读器和聊天机器人
[2024年1月更新,适用于LangChain v0.1.0]
概述
这里提供了几个Python脚本,帮助您开始构建自己的多文档阅读器和聊天机器人。 这些脚本的复杂度和功能逐步增加,如下所示:
single-doc.py
可以处理与单个PDF文件的交互。将整个文档内容发送到LLM提示。
single-long-doc.py
可以处理与长篇单个PDF文件的交互。使用嵌入和向量存储来处理
只向LLM提示发送相关信息。
multi-doc-chatbot.py
可以处理与多个不同文档和文档类型(.pdf、.dox、.txt)的交互,
并记住聊天历史和最近的对话。
它使用嵌入和向量存储向LLM提示发送相关信息。还通过终端使用stdin和stdout提供聊天界面。
按"q"退出聊天窗口。
我写了一篇文章,探讨了这里的一些概念,并详细介绍了构建每个脚本的过程。 可以在这里阅读
开始使用
克隆仓库,设置虚拟环境,并安装所需的包
git clone git@github.com:smaameri/multi-doc-chatbot.git
cd multi-doc-chatbot
python3 -m venv .venv
. .venv/bin/activate
pip install -r requirements.txt
存储您的OpenAI API密钥
复制示例env文件
cp .env.example .env
现在将您的OpenAI API密钥复制到.env
文件中,并保存文件。它应该看起来像这样
OPENAI_API_KEY=sk-
开始聊天
启动多文档聊天机器人,并开始与您的文件交互。将您想要交互的任何文件放在/docs
文件夹中。随时输入q
退出提示。
python3 multi-doc-chatbot.py
它并不完美,有时会给出奇怪的答案,但它确实能运行一个基本的设置。它表明 仅仅让一个基本的问答链工作是不足以创建一个真正好的聊天机器人的。要实现这一点,您需要 深入挖掘并更详细地探索这些概念和想法。可能性包括优化提示 模板,使用可以接受更多令牌和上下文长度的不同LLM,创建代理来优化结果, 以及您能想到的其他方法 🙂