综合介绍
Denser Chat 是一个由 denser.ai 开发和维护的聊天机器人项目,旨在从 PDF 文件和网页中提取文本和表格,并提供源代码高亮显示功能。该项目支持构建基于 denser-retriever 的聊天机器人,并提供交互式的 Streamlit 聊天机器人应用。用户可以通过简单的安装和配置,快速部署并使用该聊天机器人来回答与 PDF 和网页内容相关的问题。
功能列表
- 从 PDF 文件和网页中提取文本和表格
- 构建基于 denser-retriever 的聊天机器人
- 支持交互式 Streamlit 聊天机器人应用
- 提供源代码高亮显示功能
- 支持多种文件格式和 URL 作为数据源
- 通过 Docker Compose 启动 Elasticsearch 和 Milvus 服务
- 使用 OpenAI 或 Claude API 提供聊天功能
使用帮助
安装流程
- 克隆仓库:
git clone https://github.com/denser-org/denser-chat.git
- 进入项目目录并启动虚拟环境(确保 Python 版本为 3.11):
cd denser-chat
python -m venv .venv
source .venv/bin/activate
- 安装所需的包:
pip install -e .
或使用 Poetry:
poetry install
快速开始
- 在构建索引之前,运行 Docker Compose 启动 Elasticsearch 和 Milvus 服务:
cd denser_chat
docker compose up -d
- 构建聊天机器人索引:
python build.py sources.txt output test_index
其中,第一个参数是用于构建聊天机器人的文件,可以是本地 PDF 文件、URL PDF 或 URL。第二个参数是输出目录,第三个参数是索引名称。
- 启动本地服务器以提供 PDF 服务:
python -m http.server 8000
- 启动 Streamlit 应用:
cd denser_chat
streamlit run demo.py -- --index_name test_index
使用功能
- 提取文本和表格:上传 PDF 文件或输入网页 URL,Denser Chat 将自动提取其中的文本和表格内容。
- 源代码高亮显示:在聊天过程中,Denser Chat 会高亮显示 PDF 文件中的相关源代码,方便用户查看和理解。
- 交互式聊天:通过配置 OpenAI 或 Claude API 密钥,用户可以与聊天机器人进行互动,获取精准的回答。
详细操作流程
- 上传文件:在应用界面中选择并上传 PDF 文件,或输入网页 URL。
- 提问:在聊天窗口中输入问题,例如“什么是批内负采样?”或“哪些部分有停止销?”。
- 查看结果:Denser Chat 将返回带有高亮显示的答案,方便用户快速定位相关内容。