项目介绍:GPT-4 与 LangChain 用于 PDF 文件的 ChatGPT 聊天机器人
项目概述
这个项目的目标是利用最新的 GPT-4 API,打造一款专为多个大型 PDF 文件设计的 ChatGPT 聊天机器人。它使用 LangChain、Pinecone、Typescript、OpenAI 和 Next.js 等技术栈,其中 LangChain 是一个简化可扩展 AI/LLM 应用程序和聊天机器人开发的框架。Pinecone 则是用于存储嵌入和文本格式 PDF 的向量库,方便之后检索相似文档。
先决条件
在开始搭建这个项目之前,用户需要确保其计算机上已安装 Node.js,并且版本为 18 或更高。
开发步骤
1. 克隆或下载代码库
首先,用户需要克隆这个项目的代码库,指令如下:
git clone [github https url]
2. 安装必要的软件包
-
全局安装 yarn:
npm install yarn -g
-
之后在项目目录下运行:
yarn install
成功安装后,项目目录会出现 node_modules
文件夹。
3. 设置 .env
文件
OPENAI_API_KEY=
PINECONE_API_KEY=
PINECONE_ENVIRONMENT=
PINECONE_INDEX_NAME=
4. 配置 Pinecone
在 config
文件夹中,将 PINECONE_NAME_SPACE
替换为用于存储嵌入的 namespace,便于以后查询和检索。
5. 调整 makechain.ts
中的 QA_PROMPT
根据具体需求修改 QA_PROMPT
和 OpenAI
中的 modelName
为 gpt-4
,确保已经有使用 gpt-4 API 的权限。
将 PDF 文件转换为嵌入
该项目支持加载多个 PDF 文件。用户只需将 PDF 文件添加到 docs
文件夹中,然后运行 yarn run ingest
脚本来嵌入这些文件。完成后,用户可以在 Pinecone 仪表板上验证嵌入数据。
运行应用程序
在确认嵌入和内容已成功添加到 Pinecone 之后,用户可以运行 npm run dev
启动本地开发环境,并在聊天界面中输入问题进行交互。
常见问题解决
项目提供了一些常见问题解决建议,包括:
- 确认 Node 版本、转换 PDF 为文本、检查环境变量以及确保API密钥的正确性。
- 针对 Pinecone 的错误,如确保环境和索引匹配、设置正确的向量维度等。
致谢
该项目的前端部分受到 langchain-chat-nextjs 启发。
如有问题,用户可以加入项目的 Discord 社区 寻求帮助。