项目背景
langchain-chat-with-documents 是一个由 Bellingcat 举办的黑客马拉松活动中提交的项目。该项目由 Radu Ciocan 和 Ana State 共同创作,分别负责代码和设计。
工具概述
langchain-chat-with-documents 是一个对话工具,用户可以上传 PDF/DOCX 文档,并通过 ChatGPT 这种大型语言模型与文档进行交互。这个工具为用户提供了一种全新的人机沟通方式,用户能够在平台上上传文件,与文件内容进行即时对话和交流,从而更加高效地获取信息。
安装指南
要使用这个工具,首先需要在电脑上安装 Node.js v18 或更高版本。接下来,按照以下步骤进行安装:
-
使用 git 命令下载工具的代码库:
git clone git@github.com:ciocan/langchain-chat-with-documents.git
-
进入工具的目录并安装依赖:
cd langchain-chat-with-documents npm install
-
将
.env.example
文件复制为.env
文件,并添加以下变量:WEAVIATE_HOST= # 仅使用域名,不包含 https:// 部分,例如:bellingcat-xxx.weaviate.network WEAVIATE_API_KEY= # Cloudflare R2 CLOUDFLARE_ACCOUNT_ID= CLOUDFLARE_SECRET_KEY= CLOUDFLARE_SECRET_ACCESS_KEY= # OpenAI 密钥 OPENAI_API_KEY=
Weaviate 是一个开源的向量数据库,用于文档的向量化和索引。用户可以选择本地安装或使用其免费云服务。Cloudflare R2 是一个类似于 AWS S3 的对象存储解决方案。最后,还需要申请 OpenAI API 密钥。
- 启动工具:
npm run dev
技术栈
此项目是使用 T3 Stack 创建的,使用了 create-t3-app
进行引导。项目的主要技术栈包括:
此外,还使用了一些附加的库:
- Zustand 用于状态管理
- Mantine UI 提供了丰富的 UI 组件
- LangChain 用于与 OpenAI 的大型语言模型(LLM)交互
高级架构
项目的总体架构图展示了各个组件之间的交互方式。用户上传的文档通过工具界面发送到服务端,在那里被存储和处理,然后用户便可以通过与 ChatGPT 的交互来提取文档中的信息,实现高效的信息访问与内容理解。
通过这个项目,用户能够以更直观和便捷的方式与文件进行交互,大大提升了文档阅读和信息获取的效率。