DeepSeek + Dify :零成本搭建企业级本地私有化知识库保姆级教程

最近,DeepSeek大火,想必大家都有所耳闻,各路媒体从各个方面报道了DeepSeek这家神秘的公司的各方面消息,这家低调的技术公司用一组硬核数据回应了所有关注:千亿参数规模下实现0.5元/百万tokens的API调用成本,91.5%的中文基准测试得分,推理效率较传统架构提升5倍。DeepSeek的AI大模型作为国产之光,不仅刷新了国产大模型的天花板,更标志着普惠AI时代的实质性突破。

我们看新闻的同时,不应该只停留在听说的层面上,应该深入体验并实践于各种应用场景:有人用它来帮自己写文章,有人用它来帮自己思考做决策,甚至有人用它来suanming,真是脑洞大开,破局圈友应该是行动最快的那群人。

最近,本文将带领大家本地部署 DeepSeek+Dify,零成本搭建自己的私有知识库。学会本文搭建方法后,我们也可以把自己的个人资料,过往输出文章,日记等所有个人信息上传到本地知识库,打造自己的私人助理。

当然,还可以有很多其他应用场景,比如:智能客服,智能题库。

本文,将按照以下主线展开:

  • 安装Docker
  • 安装Ollama
  • 安装Dify
  • 创建应用
  • 创建知识库

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

一、下载并安装docker

网址:www.docker.com/

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

一路点击下一步安装即可,因为docker会用到hyper-v,如果电脑没开启hyper-v,可能会需要重启一次。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

二、下载ollama

Ollama 是一个开源的本地化工具,旨在简化大型语言模型(LLMs)的本地运行和部署。它专注于让用户能够轻松在个人计算机或服务器上运行多种开源语言大模型(如deepseek ,qwen,Llama、Mistral、Gemma等),而无需依赖云端服务或复杂的配置流程。

网址:ollama.com/

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

安装完成后,桌面右下角会显示ollama图标

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

三、安装deepseek-r1模型

一)找到模型

在ollama官网首页的搜索框,点击一下即可看到deepseek-r1在第一个位置,可见热度之高啊!

可以看到模型有根据参数分为1.5b,7b,8b,14b,32b,70b,671b等,我们需要根据自己电脑选择下载对应参数的模型。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

二)如何选择适合自己电脑的模型?

我的电脑配置如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

问一下deepseek,让他帮我们选择,提示词如下:

 代码解读复制代码我现在正在使用ollama部署deepseek-r1模型,但是模型分为1.5b,7b,8b,14b,32b,70b,671b等,我不知道该怎么选择适合我电脑配置模型了,我现在把我电脑的配置信息告诉你,你帮我选择一下吧

个人电脑信息如下:
系统:windows 11
运行内存:32G
专用GPU显存:6G
共享GPU内存:15.9G

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

三)安装r1模型

arduino

 代码解读
复制代码ollama run deepseek-r1:8b

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

ollama安装完后,没有图形界面,安装大模型,可以类比为docker拉取镜像,因为很多操作命令类似

四)测试

安装完成后,会自动运行大模型,我们输入一个问题测试一下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

四、安装dify

dify官网地址:difyai.com/

dify官网文档:docs.dify.ai/zh-hans

dify项目github地址:github.com/langgenius/…

一)先了解一下dify

这里简单介绍一下dify,需要详细了解的可以看dify的官网或官方文档。

Dify.AI 是一个开源的大模型应用开发平台,旨在帮助开发者轻松构建和运营生成式 AI 原生应用。该平台提供从 Agent 构建到 AI workflow 编排、RAG 检索、模型管理等全方位的能力,使开发者能够专注于创造应用的核心价值,而无需在技术细节上耗费过多精力。

从创建应用页面可以看到,他可以创建:聊天助手,Agent,文生文应用,对话工作流,任务编排工作流等

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

支持接入的大模型供应商几乎涵盖了全球所有知名大模型供应商

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

当然也包括国内的deepseek,ollama

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

他也支持从已有文本,Notion,网页等数据源创建知识库:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这就意味着,我们可以通过部署本地大模型,企业知识库,来部署企业私有化AI应用,比如:企业垂直领域的销售客服,HR用来培训企业招聘来的新员工,教育机构可以部署私有题库。并通过api的形式灵活构建自己的应用。

二)下载dify项目压缩包

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

三)安装dify环境

1、进入项目根目录找到docker文件夹

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2、.env文件重命名

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

3、右键打开命令行

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

4、运行docker环境
 代码解读
复制代码docker compose up -d

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

此时回到docker桌面客户端可看到,所有dify所需要的环境都已经运行起来了

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

四)安装dify

在浏览器地址栏输入即可安装:

arduino

 代码解读
复制代码http://127.0.0.1/install

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

然后登录账号

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

进入dify主页如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

五、如何将本地大模型与dify关联起来?

由于本教程的dify是通过docker部署的,也就是说,项目是运行在docker容器内部的,但是我们的ollama是运行在本地电脑的,但是他们是在同一台电脑上的,这就意味着,要想dify能够访问ollama提供的服务,需要获取到本地电脑的内网IP即可。

一)配置docker下的env文件

方法一:直接配置如下代码
ini 代码解读复制代码# 启用自定义模型
CUSTOM_MODEL_ENABLED=true
# 指定 Ollama 的 API 地址(根据部署环境调整 IP)
OLLAMA_API_BASE_URL=host.docker.internal:11434
方法二:获取本机内网IP

打开命令行:win+r

输入:cmd

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在命令行输入:ipconfig,并找到当前连接的网络适配器(如“无线局域网适配器 WLAN”或“以太网适配器”),下方显示的 IPv4 地址 即为内网IP(如 192.168.x.x10.x.x.x

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

然后,配置本地内网IP到dify的docker部署配置文件内

找到dify项目下的docker文件夹并进入,前面已经将.env.example改为了.env文件了,在末尾填上以下配置:

ini 代码解读复制代码# 启用自定义模型
CUSTOM_MODEL_ENABLED=true
# 指定 Ollama 的 API 地址(根据部署环境调整 IP)
OLLAMA_API_BASE_URL=http://192.168.1.10:11434

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

二)配置大模型

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

三)设置系统模型

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

到此,dify就与前面部署的本地大模型关联起来了

六、创建一个应用

一)创建空白应用

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

二)应用配置

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

三)配置当前应用的大模型

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

四)测试

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这表明,dify与本地部署的大模型deepseek-r1连通了,但是,我想让他的回答是基于我的私有知识库作为上下文来和我聊天怎么办?这就需要用到本地知识库了

七、创建本地知识库

一)添加Embedding模型

1、为什么要添加Embedding模型?

Embedding模型的作用是将高维数据(如文本、图像)转换为低维向量,这些向量能够捕捉原始数据中的语义信息。常见的应用包括文本分类、相似性搜索、推荐系统等。

我们上传的资料要通过Embedding模型转换为向量数据存入向量数据库,这样回答问题时,才能根据自然语言,准确获取到原始数据的含义并召回,因此我们需要提前将私有数据向量化入库。

2、下载 Embedding 模型
 代码解读
复制代码ollama pull bge-m3

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Embedding 模型那么多,为什么选择bge-m3 ?

BGE (BAAI General Embedding) 专注于检索增强llm领域,经本人测试,对中文场景支持效果更好,当然也有很多其他embedding模型可供选择,可以根据自己的场景,在ollama上搜索“embedding”查询适合自己的嵌入模型。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

3、配置 Embedding 模型

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

二)创建知识库

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

三)上传资料

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

四)保存并处理

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

五)知识库创建完成

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

八、添加知识库为对话上下文

一)应用内添加知识库

回到刚才的应用聊天页面,添加知识库

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

二)保存当前应用设置

如果只是当前应用内调试可以不必更新,但是如果想把当前应用发布为对外api服务或者持久化保存,就需要保存当前应用设置,记得实时保存当前设置。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

二)测试

思考过程具有浓厚的deepseek风格,就好像真的有一个很认真的人在翻看文档一样,它把自己翻看文档的过程,清晰的展示了出来,最后给出自己的结论,非常严谨。如果是个特定的学术知识库,他一定还能帮你推演,思考,总结,非常方便。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

如果感觉回答的效果还不满意,可以对召回参数进行调整,或者可以参考官方文档,做其他详细设置:docs.dify.ai/zh-hans/gui…

九、结语

DeepSeek作为可以私有化本地部署的大模型,加上Dify这个组合,我们还可以有很多其他应用场景,比如:智能客服,智能题库。

也可以把自己的个人资料,过往输出文章,日记等所有个人信息上传到本地知识库,打造自己的私人助理。

Dify还有很多其他功能,有了deepseek这样的优秀国产AI大模型加持,我们可以做更多智能体应用。当然,Dify也可以像coze一样,发布为对外服务的api,这样,它就可以结合cursor快速做出更多的AI应用。

何以破局,唯有行动!希望看到这里的你能够积极行动起来,做出自己的AI应用!


十、答疑篇

前几天,我发了一遍 DeepSeek+Dify 部署本地知识库的文章,在公众号,知乎,星球上,很多朋友都跟着进行了实操,也给了我很多的反馈,在此,我专门做一下集中答疑,希望朋友们少走弯路,主要有以下几点:

一)Dify 和 ollama 关联时,使用本机IP,还是跑不通怎么办?

如果使用本机内网IP联不通的话,可以尝试把指定 Ollama 的 API 地址改为host.docker.internal:11434试试

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

改完后,执行如下两个命令:

 代码解读复制代码docker compose down

docker compose up -d

二)知识库 embedding 模型使用哪个比较好?

原本为了降低教程难度,我就使用了deepseek-r1模型作为embedding模型来使用了,使用效果也勉强过得去.

但是,deepseek-r1毕竟不是专门的embeddinig模型,他不是专门为了嵌入场景训练的。

所以,使用deepseek-r1作为嵌入模型时,有些问题回答的不是很尽如人意,因此,我又测试了其他几款专业embedding模型,综合结果显示:bge-m3 效果最好,这里推荐大家使用 bge-m3 作为嵌入模型。

一)安装 bge-m3 模型

bge-m3 模型安装和deepseek-r1完全一样,一个命令即可安装:

 代码解读
复制代码ollama pull bge-m3

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Embedding 模型那么多,为什么选择 nomic-embed-text ?

BGE (BAAI General Embedding) 专注于检索增强llm领域,经本人测试,对中文场景支持效果更好,当然也有很多其他embedding模型可供选择,可以根据自己的场景,在ollama上搜索“embedding”查询适合自己的嵌入模型。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

二)配置 Embedding 模型

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

三)创建知识库

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

四)上传资料

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

五)保存并处理

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

六)知识库创建完成

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

七)测试效果

对比可以看到,使用bge-m3之前,对于有些问题的回答,答非所问,虽然有时候答案是对的,但是那是蒙的,并没有引用到正确的知识库对应的信息。

使用了bge-m3之后,很明显答案有理有据,推理依据是正确的上下文,而非猜测。

所以,知识库回答效果跟Embedding模型有很大关系,需要根据实际场景进行选型。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

如果还有疑问,可以加我微信细聊:ao-ai-coding

三)运行 docker 镜像一直不成功,是怎么回事?

首次运行 docker 镜像,会拉取 dify 所需相关环境,可能比较慢,或者不成功,如果一直失败或者卡着没反应,尝试打开tz ,或者配置docker国内镜像源

四)运行Docker时,报错:Docker Desktop - WSL update failed 怎么办?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

解决方案:确保hyperf-v勾选状态,没有勾选的,请勾选,然后重启电脑

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

如果没有该hyper-v选项,需要安装,讲以下文本内容创建为一个bat文件,文本内容如下:

bash 代码解读复制代码pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages%%i"del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL

bat文件创建完成后,右键–以管理员身份运行,等几分钟,执行完以后,重启电脑,“Window功能” Hyper-V选项就已经默认勾上了:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

安装WSL(如果没安装的话):

wsl_update_x64下载地址: wslstorestorage.blob.core.windows.net/wslblob/wsl…

然后,ctrl+r,以管理员的身份打开CMD,执行命令:

perl

 代码解读
复制代码netsh winsock reset

t文件创建完成后,右键–以管理员身份运行,等几分钟,执行完以后,重启电脑,“Window功能” Hyper-V选项就已经默认勾上了:

[外链图片转存中…(img-4rUWEp60-1745214173844)]

[外链图片转存中…(img-SBgqy6Tl-1745214173844)]

安装WSL(如果没安装的话):

wsl_update_x64下载地址: wslstorestorage.blob.core.windows.net/wslblob/wsl…

然后,ctrl+r,以管理员的身份打开CMD,执行命令:

perl

 代码解读
复制代码netsh winsock reset

如何系统学习掌握AI大模型?

AI大模型作为人工智能领域的重要技术突破,正成为推动各行各业创新和转型的关键力量。抓住AI大模型的风口,掌握AI大模型的知识和技能将变得越来越重要。

学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。

这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享

在这里插入图片描述

1. 成长路线图&学习规划

要学习一门新的技术,作为新手一定要先学习成长路线图方向不对,努力白费

这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。
在这里插入图片描述

2. 大模型经典PDF书籍

书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础(书籍含电子版PDF)

在这里插入图片描述

3. 大模型视频教程

对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识

在这里插入图片描述

4. 2024行业报告

行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。

在这里插入图片描述

5. 大模型项目实战

学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

在这里插入图片描述

6. 大模型面试题

面试不仅是技术的较量,更需要充分的准备。

在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。

在这里插入图片描述

全套的AI大模型学习资源已经整理打包,有需要的小伙伴可以微信扫描下方CSDN官方认证二维码,免费领取【保证100%免费

在这里插入图片描述

### 构建RAG大模型私有知识库 #### 使用DeepseekDify实现本地部署 为了在本地环境中使用DeepseekDify构建RAG大模型的私有知识库,需完成一系列配置与集成操作。具体过程涉及环境准备、安装必要的软件包和服务设置。 #### 环境准备 确保拥有适合运行大型语言模型的基础架构,包括但不限于足够的计算资源(CPU/GPU)、内存空间及存储容量。此外,还需准备好支持Python编程的语言环境及相关依赖项[^3]。 #### 安装Deepseek-R1 按照官方文档指导,在服务器上部署Deepseek-r1版本的大规模预训练模型实例。此步骤通常涉及到下载权重文件、调整参数配置以适应硬件条件等操作[^1]。 #### 配置Dify平台 通过Dify提供的API接口或命令行工具连接已部署好的Deepseek-r1服务端口,使两者之间建立有效的通信链路。此时可以测试二者之间的连通性,确认消息传递正常无误[^2]。 #### 创建嵌入式索引 针对目标领域内的文本资料集执行向量化处理,生成对应的embedding表示形式,并将其导入至数据库中形成结构化的索引体系。这一环节对于后续查询效率至关重要。 #### 实现检索增强机制 设计合理的算法逻辑,使得当用户发起咨询请求时,系统能够快速定位最相关的背景信息片段作为辅助材料输入给LLM进行响应合成;同时保持对话流畅性和自然度不受影响。 ```python from dify import DifyClient import deepseek as ds client = DifyClient(api_key='your_api_key') model = ds.load_model('path_to_deepseek_r1') def get_context(query): embeddings = model.encode([query]) results = client.search(embeddings=embeddings, top_k=5) context = " ".join([r['text'] for r in results]) return context ``` 上述代码展示了如何利用Dify客户端API获取与查询语句相似度最高的几个条目,并将它们组合成一段连续的文字串供进一步分析使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

程序员一粟

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

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

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

打赏作者

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

抵扣说明:

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

余额充值