AI个人学习
和实操指南
讯飞绘镜

DeepSeek-RAG-Chatbot:本地运行的 DeepSeek RAG 聊天机器人

综合介绍

DeepSeek-RAG-Chatbot 是一个基于 DeepSeek R1 模型构建的开源聊天机器人项目,托管于 GitHub,由开发者 SaiAkhil066 创建。它结合了检索增强生成(RAG)技术,支持用户上传文档(如 PDF、DOCX 或 TXT 文件),通过本地运行的方式实现高效的文档检索与智能问答。项目利用混合检索(BM25 + FAISS)、神经重排序和知识图谱(GraphRAG)等先进功能,确保从文档中提取上下文准确且相关的信息。适合需要隐私保护或离线使用的场景,如个人知识管理、企业文档处理等。项目提供 Docker 和 Streamlit 界面支持,安装简便,用户可轻松上手。

DeepSeek-RAG-Chatbot:本地运行的 DeepSeek RAG 聊天机器人-1


 

功能列表

  • 文档上传与处理:支持上传 PDF、DOCX、TXT 等格式文件,自动拆分文档并生成向量嵌入。
  • 混合检索机制:结合 BM25 和 FAISS 技术,从文档中快速检索相关内容。
  • 知识图谱支持(GraphRAG):构建文档的知识图谱,理解实体关系,提升回答的上下文准确性。
  • 神经重排序:使用交叉编码器模型对检索结果重新排序,确保最相关信息优先展示。
  • 查询扩展(HyDE):生成假设性答案扩展用户查询,提高检索召回率。
  • 本地模型运行:通过 Ollama 支持 DeepSeek R1 等模型的本地部署,保证数据隐私。
  • 实时响应流:提供流式输出,用户可即时看到生成结果。
  • Docker 支持:通过 Docker 容器化部署,简化安装与运行流程。
  • Streamlit 界面:直观的图形界面,方便上传文件和交互式聊天。

 

使用帮助

安装流程

DeepSeek-RAG-Chatbot 支持本地运行,需要一定的环境配置。以下是详细的安装步骤:

前置条件

  • 操作系统:Windows、macOS 或 Linux。
  • 硬件要求:至少 8GB 内存(推荐 16GB),若使用 GPU 加速需支持 CUDA 的显卡。
  • 软件依赖:Python 3.8+、Git、Docker(可选)。

步骤 1:克隆项目

  1. 打开终端,运行以下命令克隆 GitHub 仓库:
git clone https://github.com/SaiAkhil066/DeepSeek-RAG-Chatbot.git
  1. 进入项目目录:
cd DeepSeek-RAG-Chatbot

步骤 2:设置 Python 环境

  1. 创建虚拟环境:
python -m venv venv
  1. 激活虚拟环境:
  • Windows:venv\Scripts\activate
  • macOS/Linux:source venv/bin/activate
  1. 升级 pip 并安装依赖:
pip install --upgrade pip
pip install -r requirements.txt

依赖包括 streamlitlangchainfaiss-gpu(如有 GPU)等。

步骤 3:安装并配置 Ollama

  1. 下载并安装 Ollama(访问 ollama.com 获取安装包)。
  2. 拉取 DeepSeek R1 模型(默认 7B 参数,可根据需要选择其他版本,如 1.5B 或 32B):
ollama pull deepseek-r1:7b
ollama pull nomic-embed-text
  1. 确保 Ollama 服务运行,默认监听地址为 localhost:11434

步骤 4:(可选)Docker 部署

若不想手动配置环境,可使用 Docker:

  1. 安装 Docker(参考 docker.com)。
  2. 在项目根目录运行:
docker-compose up
  1. Docker 会自动拉取 Ollama 和 chatbot 服务,运行后访问 http://localhost:8501

步骤 5:启动应用

  1. 在虚拟环境中运行 Streamlit:

streamlit run app.py

  1. 浏览器会自动打开 http://localhost:8501,进入聊天界面。

操作功能详解

功能 1:上传文档

  1. 进入界面:启动后,Streamlit 界面左侧有“上传文档”侧边栏。
  2. 选择文件:点击“Browse files”按钮,选择本地 PDF、DOCX 或 TXT 文件。
  3. 处理文件:上传后,系统自动将文档拆分为小块,生成向量嵌入并存储至 FAISS。处理时间依文件大小而定,通常数秒至数分钟。
  • 提示:侧边栏会显示“文件处理完成”的确认信息。

功能 2:提问与检索

  1. 输入问题:在聊天框输入问题,支持中文或英文,例如“文档里提到 GraphRAG 的作用是什么?”。
  2. 检索过程
  • 系统使用 BM25 和 FAISS 检索相关文档片段。
  • GraphRAG 分析片段间的实体关系。
  • 神经重排序优化结果顺序。
  • HyDE 扩展查询以覆盖更多相关内容。
  1. 生成答案:DeepSeek R1 根据检索结果生成回答,答案以流式输出,逐步显示在界面上。
  • 示例:若问“什么是混合检索?”可能返回“混合检索结合 BM25 和 FAISS,BM25 负责关键词匹配,FAISS 通过向量相似性快速定位内容”。

功能 3:知识图谱应用

  1. 启用 GraphRAG:默认开启,无需额外操作。
  2. 提问复杂问题:如“公司 A 和公司 B 的合作关系是什么?”。
  3. 结果展示:系统不仅返回文本,还基于知识图谱提供关系性回答,例如“公司 A 与公司 B 在 2023 年签订技术合作协议”。

功能 4:调整模型与参数

  1. 更换模型:在 .env 文件中修改 MODEL 参数,例如改为 deepseek-r1:1.5b
  2. 优化性能:若硬件支持,安装 faiss-gpu 并启用 GPU 加速,检索速度可提升 3 倍。

使用技巧

  • 多文件支持:可同时上传多个文件,系统会整合内容回答问题。
  • 问题清晰:提问时尽量具体,避免模糊表述以提升答案准确性。
  • 检查日志:若遇到错误,可查看终端日志排查问题,如模型未下载或端口占用。

注意事项

  • 隐私保护:本地运行无需联网,数据不上传至云端。
  • 资源占用:大模型和高维向量计算需较高内存,建议关闭无关程序。
  • 更新模型:定期运行 ollama pull 获取最新版本的 DeepSeek 模型。

完成以上步骤后,用户即可通过浏览器与 DeepSeek-RAG-Chatbot 交互,享受高效的文档问答体验。

未经允许不得转载:首席AI分享圈 » DeepSeek-RAG-Chatbot:本地运行的 DeepSeek RAG 聊天机器人
zh_CN简体中文