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

devtools/2025/3/4 20:47:10/

最近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/devtools/164551.html

相关文章

不用写代码,批量下载今日头条文章导出excel和pdf

前几天有人问我怎么批量抓取今日头条某个号的所有文章数据,需要文章链接,标题和时间,但是不会写代码,于是我写了个简单的教程 这里以渤海小吏为例 首先用edge浏览器安装web-scraper浏览器扩展 然后打开浏览器控制台,找…

springboot相关随记-2025

GraalVM Native Support:GraalVM 是一个高性能的多语言运行时,该插件提供对 GraalVM 原生镜像构建的支持 。可以将 Java 应用程序打包成原生可执行文件,脱离 JVM 运行,带来更快的启动时间和更低的内存消耗,适合对性能敏…

神经网络中的Adagrad

Adagrad(Adaptive Gradient)是一种自适应学习率的优化算法,专门设计用于在训练过程中自动调整每个参数的学习率。这种方法对于处理稀疏数据特别有效,并且非常适合那些需要频繁更新但很少使用的参数的学习任务。 ### Adagrad的核心…

【UCB CS 61B SP24】Lecture 19 20: Hashing Hashing II 学习笔记

本文首先介绍了哈希表中的两大关键概念:哈希函数与哈希码,并使用 Java 实现了一个通过链地址法解决哈希冲突的哈希表。 1. 哈希函数与哈希码 1.1 动态多列表实现整数集合 我们在 Lecture 11 中第一次介绍了集合(Set)&#xff0…

arm 内核排序

ARM Cortex内核介绍 Cortex-A系列内核 ARM Cortex-A系列是面向高性能应用的处理器内核,广泛应用于智能手机、平板电脑、嵌入式设备和服务器等领域。以下是部分常见内核的介绍: Cortex-A53 架构:基于ARMv8-A架构,支持32位和64位执…

【Elasticsearch】jvm.options.d JVM(Java虚拟机)选项配置

Elasticsearch的JVM(Java虚拟机)选项配置是优化其性能和稳定性的重要环节。以下是关于如何设置Elasticsearch的JVM选项的详细说明,结合了网页内容和实际操作建议: --- 1.JVM选项文件的使用 Elasticsearch通过JVM选项文件来配置…

【愚公系列】《Python网络爬虫从入门到精通》040-Matplotlib 概述

标题详情作者简介愚公搬代码头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,亚马逊技领云博主,51CTO博客专家等。近期荣誉2022年度…

HTTP/1.0、HTTP/1.1、HTTP/2 核心区别对比

前言 经常开发的小伙伴估计对http都不陌生,下面来看看的之间的区别是啥? 一、连接管理 ‌HTTP/1.0‌ 每个请求需单独建立和关闭 TCP 连接,无法复用,导致高延迟和资源浪费‌。 无状态设计,服务器不记录客户端上下文…