硬核技术组合!用 DeepSeek R1、Ollama、Docker、RAGFlow 打造专属本地知识库

一、引言

本地部署DeepSeek R1 + Ollama + RAGFlow构建个人知识库,通过将数据完全存储在本地硬盘,彻底杜绝隐私泄露风险,规避云端服务不稳定导致的延迟或中断问题;借助RAGFlow的自定义知识库能力,可精准解析专业文档(如法律、医疗资料),突破通用大模型的领域局限,实现高效检索与智能问答,打造安全、稳定且持续进化的专属知识中枢。

我们部署DeepSeekR1需要借助Ollama开源大模型平台,部署RAGFlow需要借助Docker来实现,整体流程:安装Ollama->部署DeepSeek R1模型->基于Docker部署RAGFlow->配置RAGFlow->知识库构建->问答测试

二、安装Ollama+部署DeepSeekR1

亲测有效!使用Ollama本地部署DeepSeekR1模型,指定目录安装并实现可视化聊天与接口调用:安装Ollama+部署DeepSeekR1
在完成Ollama与DeepSeek R1的本地部署后(部署流程详见以上文章),若需通过Docker容器化部署的RAGFlow集成该模型服务,需针对性调整Ollama的网络配置以打通容器间通信链路。Docker默认采用独立网络命名空间,容器内服务无法直接访问宿主机本地环回地址 (127.0.0.1)。当RAGFlow容器尝试连接宿主机Ollama服务时,需将Ollama的API端点暴露至容器可达的网络接口。
具体操作方法:
编辑系统环境变量->高级->环境变量->新建用户变量->变量名(OLLAMA_HOST) 变量值(:11434)->重启电脑
h环境变量

三、安装Docker

Docker官网:Docker
进入官网后选择Download for Windows -AMD64进行安装
安装Docker
在Windows系统上部署Docker(支持 Windows 10/11 专业版/企业版/教育版,家庭版需通过WSL2间接支持)
安装完毕Docker后选择Use advanced settings 使用高级设置,选择Update to the latest version of WSL 2 from Microsoft(Recommended - requires administrator passwod)从Microsoft更新到最新版本的WSL 2,点击Finish完成
配置Docker
如果安装成功后显示报错Docker Engine stopped...说明缺少wsl,此时会自动弹框提示我们安装适用于Linux的Windows子系统,安装一下就ok了。如果没有自动弹框,我们需要到Windows PoweShell中执行wsl --update命令来进行安装。

如果安装完wsl依旧报错,这个时候我们需要检查下报错内容看看是否打开了虚拟机,如果没有打开的话我们需要启用虚拟机平台,然后在BLOS中启用虚拟化,这个大家可以自行去网上来查相应的解决方案,这里也不在过多叙述了。

安装完成后我们需要配置一下Docker的镜像源来提高国内的下载速度 https://docker.1ms.run,这个镜像源可能会失效,如果大家有更好更快的镜像源可以自行配置
配置Docker镜像源

四、安装使用RAGFlow

RAGFlow开源代码:RAGFlow Github地址
RAGFlow 是一款基于 检索增强生成(Retrieval-Augmented Generation, RAG) 技术的开源框架,专注于构建企业级智能知识库与问答系统。它通过结合大语言模型(LLM)与结构化文档处理能力,实现从海量非结构化数据(如PDF、Word、扫描件等)中精准提取信息并生成专业回答,是当前私有化知识管理的先进工具。

4.1 系统架构

RAGFlow系统架构

图中组件功能解释
File用户上传的原始文件(如 PDF、Word、扫描件等),是系统的输入源。
Document Parser文档解析引擎,负责文件格式解析、OCR 识别、版式分析与结构化分块。
Documents解析后的结构化文档数据(分块文本、表格、图像等),存储于向量数据库中。
Task Dispatch任务调度器,管理文档处理、检索、生成等任务的队列与资源分配。
Tasks具体任务实例(如解析任务、检索任务、生成任务),由调度器分发执行。
Questions用户输入的自然语言问题,触发检索与生成流程。
LMs大语言模型(如 DeepSeek R1),负责根据检索结果生成最终答案。
Answer系统输出的结构化回答,结合检索内容与模型生成能力。

流程图

拆分解析任务
调用模型任务
用户上传文件 File
Document Parser 文档解析
Task Dispatch 任务调度
Tasks 解析子任务
生成结构化数据 Documents
向量数据库存储
用户提问 Questions
检索增强模块
Task Dispatch 任务调度
Tasks 生成子任务
LMs 大语言模型
生成最终答案 Answer

异步任务处理

并行分发
并行分发
TaskDispatch
解析任务
生成任务
OCR处理
表格提取
检索上下文
模型推理

4.2 部署流程

前提条件
CPU >= 4 核
RAM >= 16 GB
Disk >= 50 GB
Docker >= 24.0.0 & Docker Compose >= v2.26.1

运行以下命令会自动下载 RAGFlow slim Docker 镜像 v0.16.0-slim。请参考下表查看不同 Docker 发行版的描述。如需下载不同于 v0.16.0-slim 的 Docker 镜像,请在运行 docker compose 启动服务之前先更新 docker/.env 文件内的 RAGFLOW_IMAGE 变量。比如,你可以通过设置 RAGFLOW_IMAGE=infiniflow/ragflow:v0.16.0 来下载 RAGFlow 镜像的 v0.16.0完整发行版。

$ cd ragflow-main
$ docker compose -f docker/docker-compose.yml up -d

Docker发行版描述
如果需要修改不同的发行版,可以进入到ragflow-main的docker文件夹中,然后修改.env文件
目录
默认的发行版是RAGFLOW_IMAGE=infiniflow/ragflow:v0.16.0,这个是精简版,仅包含核心运行依赖,如果我们想使用标准版的话可以把它注释掉,然后打开RAGFLOW_IMAGE=infiniflow/ragflow:v0.16.0 标准版的注释,标准版包含核心依赖以及开发调试工具
修改发行版
此时我们需要切换到ragflow-main目录,然后运行docker compose -f docker/docker-compose.yml up -d来安装Docker镜像,我们可能会在安装的过程中安装失败或者安装速度缓慢,此时我们需要配置Docker的镜像源,下面是RAGFlow提供的一些镜像源可供参考:(可能需要借助魔法,魔法需要大家自行解决)

  • 华为云镜像名:swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow
  • 阿里云镜像名:registry.cn-hangzhou.aliyuncs.com/infiniflow/ragflow

使用Docker安装

4.3 使用RAGFlow

RAGFlow安装完成后,默认端口是80,此时我们访问localhost如果能访问到登录页面就证明部署成功了,此时我们需要注册一个账号来进行登录
RAGFlow登录页面
进入到首页就是这个样子,此时我们需要添加并配置Ollama模型到RAGFlow中
RAGFlow首页

4.4 在RAGFlow中新增模型

第一步点击头像
第一步
第二步新增Ollama模型
选择模型提供商,然后选择添加Ollama模型,随后模型类型选择chat,模型名称就是你本地部署的DeepSeek的模型名称,我这里本地部署的是deepseek-r1:1.5b,如果不知道模型名称是什么的可以去DOS窗口去执行ollama list命令来进行查询,基础URL的话我们这个需要写http://host:port,host获取方式需要通过DOS窗口执行ipconfig命令去查询,端口号默认是11434,最大token数这里大家随意设置,token数取决于大模型输出内容的长度。最后点击确定。
新增LLM模型
查询本机ip地址
在查询ip地址
查询本地部署模型名称
查询模型名称
第三步:随后我们需要去配置系统模型,这里我们聊天模型选择deepseek-r1
系统模型设置

4.5 创建知识库

新增知识库
这里我们需要对自己的知识库新增文件后然后解析我们上传的知识库
创建知识库文件
知识库解析成功

4.6 创建私人助理使用RGA

这里我们需要设置助理的名称以及配置刚刚我们创建的知识库
新建助理

提示引擎
模型设置
我们这里可以看出它引用了我刚刚上传的知识库
进行对话

如果大家在部署的任何环节中出现问题的话可以在评论区中留言,或者可以添加下方的名片来咨询遇到的问题!感谢大家阅读,谢谢!!!

<think>好的,用户之前问过关于个人知识库的介绍,现在他想知道如何使用DeepSeek搭建本地个人知识库。我需要先理解DeepSeek是什么。根据我的知识库DeepSeek是一家中国的公司,专注于让AGI成为现实,可能提供相关的工具或服务。不过用户可能指的是他们的某个具体产品,比如可能的大模型或者知识库管理工具。 首先,我需要确认用户提到的“DeepSeek”具体指什么。如果是他们的大模型,可能用户想用该模型来处理本地知识库的数据,比如通过API进行问答或信息提取。如果DeepSeek有开源的工具,可能需要指导用户如何部署本地环境,整合这些工具。 接下来,用户的需求是搭建本地个人知识库,所以需要强调本地部署的步骤,可能包括数据准备、工具安装、模型集成、检索系统搭建等。需要分步骤解释,可能需要结合常见的工具如LangChain、ChromaDB等,同时结合DeepSeek模型。 用户可能的深层需求是希望有一个高效、私密的个人知识管理系统,能够利用先进的AI模型进行智能检索和处理。需要注意隐私保护,因为数据存储在本地,所以需要确保步骤中包括数据安全的部分。 还需要考虑用户的技术背景,是否需要简化步骤,或者提供不同的方案选择,比如自动化脚本、手动配置等。可能需要提供参考链接或GitHub仓库,帮助用户获取更多资源。 另外,用户之前得到过关于个人知识库的通用介绍,现在需要具体到DeepSeek的实现,因此需要将之前的通用步骤具体化,结合DeepSeek的工具或模型。例如,使用DeepSeek的API进行知识处理,或者使用其开源模型进行本地部署。 最后,可能需要提醒用户注意依赖安装、环境配置、数据格式处理等常见问题,以及如何测试和优化知识库的效果。确保回答清晰、步骤明确,适合不同技术水平的用户参考。</think>以下是使用DeepSeek搭建本地个人知识库的详细方案,结合其大模型能力与本地工具链,实现高效知识管理与智能检索: --- ### **1. 准备工作** #### **工具选择** - **核心框架**:DeepSeek-R1(深度求索开源模型) + LangChain(知识库框架) - **向量数据库**:ChromaDB(轻量级本地向量库)或 Milvus(高性能) - **文本处理**:Unstructured(文档解析)、Sentence-Transformers(文本向量化) - **环境依赖**:Python 3.8+、Docker(可选) #### **数据准备** - 将个人知识文件(PDF/Word/Markdown/网页等)统一存放于 `./data` 目录 - 推荐格式:结构化Markdown(便于AI解析) --- ### **2. 搭建流程** #### **步骤1部署DeepSeek本地模型** - **方案A:API调用**(需网络,适合快速验证) ```python from deepseek_api import DeepSeek # 假设官方提供SDK model = DeepSeek(api_key="your_key", model="deepseek-r1") ``` - **方案B:本地部署**(需GPU资源) 下载开源模型权重(如DeepSeek-7B),使用LLAMA.cpp量化推理: ```bash git clone https://github.com/ggerganov/llama.cpp ./llama.cpp -m deepseek-7b-q4_0.gguf --prompt "知识库问答" ``` #### **步骤2:构建知识向量库** ```python from langchain.document_loaders import DirectoryLoader from langchain.text_splitter import RecursiveCharacterTextSplitter from langchain.embeddings import HuggingFaceEmbeddings from langchain.vectorstores import Chroma # 加载本地文档 loader = DirectoryLoader('./data', glob="**/*.md") docs = loader.load() # 文本分块(每块500字符,重叠50字符) text_splitter = RecursiveCharacterTextSplitter( chunk_size=500, chunk_overlap=50 ) chunks = text_splitter.split_documents(docs) # 生成向量并存储 embeddings = HuggingFaceEmbeddings(model_name="BAAI/bge-small-zh") vector_db = Chroma.from_documents(chunks, embeddings, persist_directory="./chroma_db") ``` #### **步骤3:集成DeepSeek问答链** ```python from langchain.chains import RetrievalQA from langchain.prompts import PromptTemplate # 自定义提示模板 prompt_template = """基于以下上下文回答用户问题: {context} 问题:{question} 答案(简洁中文,不超过3句话): """ PROMPT = PromptTemplate(template=prompt_template, input_variables=["context", "question"]) # 构建问答系统 qa_chain = RetrievalQA.from_chain_type( llm=model, # 替换为实际DeepSeek实例 chain_type="stuff", retriever=vector_db.as_retriever(), chain_type_kwargs={"prompt": PROMPT} ) # 示例提问 response = qa_chain.run("如何用PyTorch实现线性回归?") print(response) ``` --- ### **3. 优化方向** #### **性能提升** - 使用`FAISS`替代Chroma加速向量检索 - 对高频问题设置缓存层(如Redis) - 量化模型降低推理资源消耗 #### **功能扩展** - 添加自动摘要功能(利用DeepSeek生成章节摘要) - 实现知识图谱可视化(通过NetworkX+PyVis) - 支持语音输入/输出(集成Whisper+GPT-SOVITS) #### **安全增强** - 使用Vault对敏感知识加密 - 设置本地防火墙限制外部访问 - 定期备份向量数据库 --- ### **4. 典型使用场景** 1. **智能检索**: `输入`:自然语言问题(如“2023年AI顶会有哪些趋势?”) `输出`:关联论文笔记+模型生成的整合分析 2. **自动整理**: 上传会议录音 → 自动转写 → DeepSeek提取关键结论 → 生成结构化纪要 3. **灵感辅助**: 输入碎片想法 → 知识库关联已有笔记 → 推荐拓展阅读方向 --- ### **5. 注意事项** - 件要求:最低8GB RAM(纯CPU),推荐NVIDIA GPU(16GB显存+) - 中文优化:需使用`bge-zh`等中文专用嵌入模型 - 数据更新:设置文件监视器(如Watchdog)实现增量索引 - 隐私保护:敏感数据建议全程离线处理 --- **完整代码示例**可参考: [DeepSeek-Knowledge-Base GitHub仓库](https://github.com/deepseek-ai/examples)(需官方提供) 通过此方案,可构建具备语义理解能力的个人知识中枢,实现从“信息存储”到“智能洞察”的升级。
评论 103
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

熊文豪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值