本地部署DeepSeek R1+Dify+SearXNG,支持私有知识库、智能体、联网搜索的保姆级教程
时间:2025-2-5 23:30 作者:Anglei 分类: 大数据AI
今天,教大家在本地部署这个充满争议和魔幻色彩的模型,集成到Dify中,并添加私有知识库,支持联网搜索!
一、Dify部署
1.1 克隆Dify代码仓库
Dify部署的方式相对来说比较简单,这里教大家使用Docker进行部署,Docker的安装方法这里不再赘述,大家可以自行搜索。
首先,克隆 Dify 源代码至本地环境:
git clone https://github.com/langgenius/dify.git
1.2 启动Dify
然后在dify根目录下,执行下面的命令开始打包镜像:
cd dify
make build-all
打包完成之后,可以在docker镜像中看到刚才打包好的镜像:
1.3进入 Dify 源代码的 Docker 目录
cd dify/docker
1.4复制环境配置文件
cp .env.example .env
1.5启动 Docker 容器
根据你系统上的 Docker Compose 版本,选择合适的命令来启动容器。你可以通过 $ docker compose version 命令检查版本,详细说明请参考 Docker 官方文档:
如果版本是 Docker Compose V2,使用以下命令:
docker compose up -d
如果版本是 Docker Compose V1,使用以下命令:
docker-compose up -d
运行命令后,你应该会看到类似以下的输出,显示所有容器的状态和端口映射:
最后检查是否所有容器都正常运行:
docker compose ps
在这个输出中,你应该可以看到包括 3 个业务服务 api / worker / web,以及 6 个基础组件 weaviate / db / redis / nginx / ssrf_proxy / sandbox
通过这些步骤,你应该可以成功在本地安装 Dify。在浏览器输入http://127.0.0.1, 即可进入到Dify的首页。
二、SearXNG部署
SearXNG 是一个免费的互联网元搜索引擎,整合了各种搜索服务的检索结果。用户不会被跟踪,搜索行为也不会被分析。现在你可以直接在 Dify 中使用此工具。
下文将介绍如何在社区版使用 Docker 将 SearXNG 集成到 Dify。
2.1 修改Dify配置文件
SearXNG 的配置文件位于 dify/api/core/tools/provider/builtin/searxng/docker/settings.yml, 配置文档可参考SearXNG官网文档。你可以按需修改配置,也可直接使用默认配置。
2.2 启动服务
在 Dify 根目录下启动 Docker 容器。
cd dify
docker run --rm -d -p 8081:8080 -v "${PWD}/api/core/tools/provider/builtin/searxng/dock
2.3 使用 SearXNG
在 工具 > SearXNG > 去认证 中填写访问地址,建立 Dify 服务与 SearXNG 服务的连接。SearXNG 的 Docker 内网地址一般是 http://host.docker.internal:8081。
点击授权,输入http://host.docker.internal:8081 之后,点击保存即可:
三、DeepSeek R1 模型部署
3.1 ollama安装
进入到ollama官网,选择对应的操作系统,下载ollama应用程序并安装:
安装成功之后,在命令行输入ollama,如果出现下面的提示,则说明安装成功。
3.2 模型部署
在ollama官网的顶部,点击「Models」,然后选择第一个「DeepSeek R1」:
比如,我的电脑是MacOS 32G,这里我选择了14b的模型,点击14b,然后在右侧会出现下载命令:
当然,只是通过命令和大模型进行对话还是不太方便了点,那么接下来,介绍一下如何将其集成到Dify中,通过可视化的方式进行调用。
四、Embedding模型部署
为了使用私有的向量数据库,并使用混合检索来提升检索精度,我们还需要通过ollama下载一个文本Embedding模型。
ollama pull shaw/dmeta-embedding-zh
五、在Dify中添加模型
登录到已经部署好的Dify中,点击右上角的头像,然后点击设置:
5.1 DeepSeek R1模型添加
在「模型名称」中填:deepseek-r1:14b。 在「基础URL中」,如果ollama和Dify是同机部署,并且Dify是通过Docker部署,那么填 http://host.docker.internal:11434, 其他情况填 http://ollama 的地址:11434, 填完之后点击保存即可。
5.2 Embeding模型添加
在添加模型那里,点击「Text Embedding」,「模型名称」填:shaw/dmeta-embedding-zh,在「基础URL中」,如果ollama和Dify是同机部署,并且Dify是通过Docker部署,那么填http://host.docker.internal:11434, 其他情况填 http://ollama 的地址:11434,填完之后点击保存即可。
六、上传私有知识库
在「索引方式」一栏中,选择「高质量」,Embedding模型选择刚才添加的ollama embedding模型:
在「检索设置」一栏中,选择「混合检索」,即同时执行全文检索和向量检索,并应用重排序步骤,从两类查询结果中选择匹配用户问题的最佳结果,用户可以选择设置权重或配置重新排序模型。然后点击「保存并处理」:
可以点击「召回测试」来测试一下知识库的检索效果。比如我输入一个测试文本:机器学习的QQ群都有哪些,可以看到召回的第一条结果就包含了机器学习的群。
七、智能体搭建
截止到本节,我们完成了Dify、SearXNG搜索引擎、知识库、DeepSeek R1模型的创建,我们可以使用这些工具搭建一个智能体,结合本地私有知识库,并具备联网搜索的功能。
当然,为了展示,这些功能可能不会很复杂,大家可以举一反三,实现更加高级的应用。
7.1 创建智能体
创建完成后,如下图所示,其中下面的信息我已经填过了,大家可以自行添加:
提示词如下:
# 职位描述
## 角色
你的主要任务是人工智能辅助助手,能够调用知识库工具、联网搜索、网页爬虫、获取时间等相关工具,收集相关信息,回答用户的提问。
## 技能
### 技能1:使用知识库工具进行知识库检索相关内容
### 技能2:使用time工具获取当前的时间
### 技能3:使用searxng功能进行联网搜索
### 技能4:使用webscraper功能对搜索到的相关内容进行爬取,并进行总结分析
## 限制
- 每次都必须调用知识库工具,如果没有相关内容,再进行联网搜索
- 你的回答应严格针对分析任务。使用结构化语言,逐步思考
- 使用的语言应和用户提问的语言相同
- 搜索的关键词必须和用户提问的内容一致
另外,根据需要可以修改一下模型参数,最主要的是「上下文窗口大小」,我设置的是40000。如果过小的话,效果可能不好。
7.2 测试智能体(联网搜索功能)
接下来提问一下看看,我的问题是:DeepSeek R1是什么时间发布的。这个问题具有时效性,如果不能联网搜索的话,模型是回答不出来的。
可以看到,智能体首先在私有知识库中进行检索:
发现在知识库中没有相关的内容,于是开始调用「联网搜索」插件进行联网搜索,最终通过分析搜索到的内容,发现DeepSeek的发布时间是2025年1月20日。
可以看到DeepSeek确实是2025年1月20日发布的,智能体回答的没问题:
7.3 测试智能体(知识库功能)
接下来,在测试一下如果要找到结果在知识库中的情况。问题如下:在知识库中搜索机器学习群有哪些。
可以看到智能体先调用了知识库,同时给出了一系列思考的过程:
八、关键词
dify镜像
小贴士:复制上面的关键词并发送到公众号,可获取相关镜像
九、镜像导入方法
打开命令行工具,输入下面的命令导入镜像:
docker load -i dify-api.tar
docker load -i dify-sandbox.tar
docker load -i dify-web.tar
docker load -i nginx.tar
docker load -i postgres.tar
docker load -i redis.tar
docker load -i squid.tar
docker load -i weaviate.tar

本文完结,相关标签: 知识库 Ollama deepseek 本地 dify 智能体 SearXNG
推荐阅读:
![]() 路过(2) |
![]() 雷人(4) |
![]() 握手(7) |
![]() 鲜花(12) |
![]() 鸡蛋(1) |