在笔记本电脑上用DeepSeek搭建个人知识库

embedded/2025/3/5 9:27:04/

最近DeepSeek爆火,试用DeepSeek的企业和个人越来越多。最常见的应用场景就是知识库和知识问答。所以本人也试用了一下,在笔记本电脑上部署DeepSeek并使用开源工具搭建一套知识库,实现完全在本地环境下使用本地文档搭建个人知识库。操作过程共享出来,供大家参考。

部署环境

笔记本电脑,具体配置如下:

处理器:Intel(R) Core(TM) i7-10510U CPU @ 1.80GHz   2.30 GHz

内存:16G

硬盘:500G

显卡:集成显卡

操作系统:Windows 11

软件清单

构建本地知识库,除了DeepSeek还需要安装知识库软件。网上推荐比较多的是RagFlow,软件开源,功能也很强大,可以使用本地文档构建外挂知识库。另外,同时也安装了Cherry Studio,可以作为操作DeepSeek的交互工具。

软件功能版本依赖工具
DeepSeekLLM模型,主要用于自然语言理解和推理deepseek-r1:7bOllama
Cherry Studio一款强大的多模型 AI 助手,可用于DeepSeek的人机交互最新版就好
BGE通用向量模型,用于知识库中文档检索bge-m3:latest
RAGFlow知识库构建工具最新版就好

Docker

Git

安装DeepSeek

从官网下载并安装Ollama,过程略。可参考 https://ollama.com/

安装完毕后,执行命令:

ollama run deepseek-r1:7b

安装成功后,就可以在命令行里操作deepseek了。

操作很简单。至此,deepseek就安装完毕。

安装Cherry Studio

如果不习惯使用命令行,希望使用客户端与本地安装的deepseek交互,可以安装一个对话界面软件,我试用了Chatbox和Cherry Studio都不错,可以更直观地调整模型的参数和提示词,同时也支持将对话内容完全存档在本地,本文以Cherry Studio为例。

前往https://cherry-ai.com/,根据你的操作系统(支持 Windows、Mac 和 Linux)下载对应的安装包。默认下一步安装完毕就好。

启动Cherry Studio,添加嵌入模型。

在模型服务中选择Ollama

点击“管理”进行模型选择,从模型列表中选择与你本地部署的 DeepSeek-R1 模型版本对应的选项,如果没有直接匹配项,选择支持自定义模型配置的入口。

在“API地址”中,将 API 地址设置为http://localhost:11434 ,这是 Ollama 服务的默认接口地址,确保 Cherry Studio 能连接到本地运行的 DeepSeek-R1 模型。

保存后,就可以创建助手与本地deepseek进行对话了。

安装RAGFlow

RAGFlow使用Docker部署运行,因此需要先在电脑上部署Docker环境。同时本文采用从GitHub仓库直接拉取镜像部署的方式,因此也需要提前安装Git。

可访问官方 GitHub 仓库的 README 页面拉取镜像,并按照文档中的指引安装部署:https://github.com/infiniflow/ragflow/blob/main/README_zh.md

如果遇到问题,可访问网络上部署 RAGFlow 的踩坑帖子,如:https://blog.csdn.net/gr1785/article/details/145543754?spm=1001.2014.3001.5502

如果电脑没装Docker,可以参考Windows | Docker Docs 自行安装,本文使用WSL。

安装完毕后,要记得启动“Docker Desktop”,否则后面执行docker命令时会报错。

如果电脑没装Git,可以从Git - Downloading Package下载安装文件进行安装。

安装完毕后,进入命令行,将RAGFlow工程Clone到本地文件夹下。

$ git clone https://github.com/infiniflow/ragflow.git

进入 docker 文件夹

$ cd ragflow/docker 

利用提前编译好的 Docker 镜像启动服务器:

运行以下命令会自动下载 RAGFlow slim Docker 镜像 v0.16.0-slim。

$ docker compose -f docker-compose.yml up -d

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

如果遇到 Docker 镜像拉不下来的问题,可以在 docker/.env 文件内根据变量  RAGFLOW_IMAGE  的注释提示选择华为云的相应镜像。

华为云镜像名:swr.cn-north-4.myhuaweicloud.com/infiniflow/ragflow

运行成功后,打开浏览器,登录localhost进入RAGFlow页面。注册账号后,就可以登录使用了。

设置知识库

使用RAGFlow设置知识库,首先要在“模型提供商”中添加模型。必须要添加的有两个模型,一个是LLM模型,使用DeepSeek;另一个是嵌入模型,使用bge-m3。

在“待添加的模型”列表中选择“Ollama”,添加LLM.

“最大token数”可以通过如下命令获取后填入。

ollama show deepseek-r1:7b

“基础Url”需要注意如果填写“http://localhost:11434”,会遇到“[Errno 111] Connection refused”的异常。原因是Docker中的程序访问不到本机的11434端口,可以参考

[Question]: Fail to access model(deepseek-r1:8b).**ERROR**: [Errno 111] Connection refused因此,此处要注意“基础Url”处填写:

 http://host.docker.internal:11434 

添加嵌入模型前,首先使用Ollama 安装bge-m3

ollama pull bge-m3

然后配置嵌入模型。

模型添加成功后,进入“系统模型设置”,选择添加的模型。

然后就可以创建知识库了。

知识库设置中修改语言、权限、嵌入模型。

在“数据集”中上传所需的文档。

上传成功后,选择文档进行“解析”。

上传了几个PDF文档,解析的效果还不错。解析分段如果有不准确的地方,可以人工修正。

数据集准备就绪后,就可以“新建助理”,然后问问题了。

相比于互联网模型,个人知识库会从结合本地文档训练的数据集进行分析,更加符合个人专业诉求。

总结

DeepSeek确实很香,搭配开源工具不花一分钱就搭建了一个定制化的知识库。从回答的逻辑和文档解析的效果看,都很不错。当然,本案例个人尝鲜可以,作企业商用还不行,抛开企业定制化和运维需求之外,主要问题有两个:

1. 个人笔记本的配置部署7b小模型已经是极限了,使用Cherry Studio做问答速度还可以。但使用RAGFlow做的个人知识库做问答,确实慢的要死。正式使用或企业商用,还是需要试用商用推荐配置。

2. 数据集质量极大影响知识库问答效果,因此高价值的原始数据以及对原始数据的解析整理十分重要。现在工具能力相当不错了,但数据工程将是企业数据库构建的主要挑战。


http://www.ppmy.cn/embedded/170144.html

相关文章

el-table 手动选择展示列

需求: 由于表格的列过多,用滚动条进行滚动对比数据不方便,所以提出,手动选择展示列 实现思路: 表格默认展示所有字段,每个字段通过 v-if 属性来进行判断是否显示;点击设置按钮图标(表格右上角&#xff0…

Android NDK图像处理技术指南

Android NDK在图像处理方面的应用。首先,我得确认他们对NDK的基础知识是否了解。可能他们有一定的Android开发经验,但不太熟悉NDK部分。所以,我应该先简要介绍NDK是什么,以及为什么在图像处理中使用它,比如性能优势&am…

力扣-动态规划-72 编辑距离

思路 dp数组定义:0_i-1的word1转换成0_j-1的word2需要的最小操作步数为dp[i][j]递推公式: if(word1[i-1] word2[j-1]){dp[i][j] dp[i-1][j-1]; }else{// 删除 插入 替换dp[i][j] min(dp[i-1][j] 1, min(dp[i-1][j-1] 1, dp[i][j-1] 1)); } i…

期权有哪些用处?期权和期货比优势在哪?

期权如同金融市场的“瑞士军刀”,既能防御风险,又能主动出击。相较于期货的“刚性对决”,期权更像“柔性博弈”——通过策略组合在不确定性中捕捉确定性收益。 期权有哪些用处? 期权的核心价值在于其非对称性——买方风险有限&am…

2025前端最新面试题-安全篇

你知道哪些前端攻击&#xff1f;该如何预防&#xff1f; XSS Cross Site Script 跨站脚本攻击手段&#xff1a;黑客将 JS 代码 插入到网页内容中&#xff0c;渲染时执行 JS 代码预防&#xff1a;特殊字符替换&#xff08;前端或者后端&#xff09;&#xff0c;如 < > 替…

FPGA学习篇——Verilog学习3

1 Verilog常用关键字 大概知道以下哪些是关键字就好&#xff0c;如何使用还是得在编写代码中来学习。 2 Verilog注释方法 Verilog有两种注释方式&#xff1a; 2.1 “ // ” 单行。 2.2 “ /* ” 可扩展多行。 3 Verilog程序基本框架 Verilog 的基本设计单元是“模块”( b…

python19-if和match的美

课程&#xff1a;B站大学 记录python学习&#xff0c;直到学会基本的爬虫&#xff0c;使用python搭建接口自动化测试就算学会了&#xff0c;在进阶webui自动化&#xff0c;app自动化 分支语句那些事儿 if 条件判断if...else 判断语句if...elif...else 多重条件分支嵌套也能在 e…

策略模式的C++实现示例

核心思想 策略模式是一种行为型设计模式&#xff0c;它定义了一系列算法&#xff0c;并将每个算法封装在独立的类中&#xff0c;使得它们可以互相替换。策略模式让算法的变化独立于使用它的客户端&#xff0c;从而使得客户端可以根据需要动态切换算法&#xff0c;而不需要修改…