![图片[1]-Docker 部署 Ollama + DeepSeek + Dify,搭建本地私有化知识库-知行合一35社区](https://static.zhi35.com/uploads/2025/03/20250311142559732-1024x708.png)
前言
在企业生产环境中,直接采用通用基础大模型存在以下主要问题:
- 专业性不足:通用大模型的知识体系完全依赖于其训练数据,而这些数据主要来源于公开网络资源。对于企业所需的实时性数据、非公开信息或离线数据,模型无法有效获取和利用,导致其在实际业务场景中缺乏针对性和专业性。
- 回答可靠性低(幻觉问题):AI模型的底层逻辑基于数学概率,当面对其知识范围之外或不擅长的领域时,模型可能会生成看似合理但实际错误的回答,即所谓的”幻觉”现象。这种不可靠性在要求精准答案的企业场景中可能带来严重风险。
- 数据安全隐患:使用通用大模型通常需要将企业的私域数据上传至第三方平台进行训练或微调,这一过程存在数据泄露的风险,可能违反企业的数据安全政策和相关法规要求,对企业的核心竞争力和商业机密构成潜在威胁。
如何解决通用基础大模型的这些问题?
- 搭建本地知识库,解决数据安全隐患
- 检索增强生成(RAG)
- 微调(Fine-Tuning)
![图片[2]-Docker 部署 Ollama + DeepSeek + Dify,搭建本地私有化知识库-知行合一35社区](https://static.zhi35.com/uploads/2025/03/20250311150110764-1024x379.png)
用RAG还是微调?
![图片[3]-Docker 部署 Ollama + DeepSeek + Dify,搭建本地私有化知识库-知行合一35社区](https://static.zhi35.com/uploads/2025/03/20250311150840417-1024x427.png)
更多关于RAG 查看这篇文章:https://www.zhi35.com/702.html
环境搭建
所用工具
Docker官网:https://www.docker.com/
ollama官网:https://ollama.com/
dify官网:https://docs.dify.ai/zh-hans
docker 请自行安装
docker 安装 ollama
建议新建一个目录独立的ollama目录
docker-compose.yaml
version: '3'
services:
ollama:
#image: ollama/ollama
#使用阿里加速镜像源
image: registry.cn-hangzhou.aliyuncs.com/xfg-studio/ollama:0.5.10
restart: always
ports:
- "11434:11434"
volumes:
- ./ollama:/root/.ollama
根据你系统上的 Docker Compose 版本,选择合适的命令来启动容器。你可以通过 $ docker compose version
命令检查版本,详细说明请参考 Docker 官方文档:
- 如果版本是 Docker Compose V2,使用以下命令:
docker compose up -d
- 如果版本是 Docker Compose V1,使用以下命令:
docker-compose up -d
运行后访问:http://IP:11434
,看到提示Ollama is running
就说明成功了,如下图:
![图片[4]-Docker 部署 Ollama + DeepSeek + Dify,搭建本地私有化知识库-知行合一35社区](https://static.zhi35.com/uploads/2025/03/20250310144337879.png)
拉取deepseek r1 大模型
进入ollama官网:https://ollama.com/ ,搜索deepseek,找到deepseek-r1大模型https://ollama.com/library/deepseek-r1
![图片[5]-Docker 部署 Ollama + DeepSeek + Dify,搭建本地私有化知识库-知行合一35社区](https://static.zhi35.com/uploads/2025/03/20250310145142272-1024x334.png)
官网:https://ollama.com/library/deepseek-r1:1.5b
![图片[6]-Docker 部署 Ollama + DeepSeek + Dify,搭建本地私有化知识库-知行合一35社区](https://static.zhi35.com/uploads/2025/03/20250310145350323-1024x681.png)
进入到容器中,拉取deepseek-r1大模型
命令:docker exec -it ollama /bin/bash
进入控制台。之后执行 Ollama 安装。
# 拉取模型,推荐小一点,够做开发就可以
ollama pull deepseek-r1:1.5b
# (可选)运行模型,运行后关闭,继续安装模型。Ctrl/Command + D
ollama run deepseek-r1:1.5b
# 向量文本
ollama pull nomic-embed-text
docker 安装dify
直接看dify的官方文档:https://docs.dify.ai/zh-hans/getting-started/install-self-hosted/docker-compose
问题:部署成功,并且查看docker compose ps
所有服务均正常,访问 localhost/install
发现404 错误
原因: nginx的80监听端口及其容易冲突,造成访问 http://localhost/install 404 错误。
解决方式: 需要在 .env
文件中修改EXPOSE_NGINX_PORT
为其他不常用的端口。
# ------------------------------
# Docker Compose Service Expose Host Port Configurations
# ------------------------------
EXPOSE_NGINX_PORT=8080
EXPOSE_NGINX_SSL_PORT=443
![图片[7]-Docker 部署 Ollama + DeepSeek + Dify,搭建本地私有化知识库-知行合一35社区](https://static.zhi35.com/uploads/2025/03/20250310152855481-1024x334.png)
将 DeepSeek 接入至 Dify
点击 Dify 平台右上角头像 → 设置 → 模型供应商,选择 Ollama安装插件。
![图片[8]-Docker 部署 Ollama + DeepSeek + Dify,搭建本地私有化知识库-知行合一35社区](https://static.zhi35.com/uploads/2025/03/20250310153107912-1024x522.png)
轻点“添加模型”。
![图片[9]-Docker 部署 Ollama + DeepSeek + Dify,搭建本地私有化知识库-知行合一35社区](https://static.zhi35.com/uploads/2025/03/20250312140621420-1024x415.png)
注意:连接Ollama本地模型,填写Ollama的模型base url,域名需要使用电脑局域网IP地址(如192.168.0.122
),而不是localhost
或者127.0.0.1
.
![图片[10]-Docker 部署 Ollama + DeepSeek + Dify,搭建本地私有化知识库-知行合一35社区](https://static.zhi35.com/uploads/2025/03/20250310153834498-1024x984.png)
同样方法在Dify的设置里添加Embedding嵌入模型
![图片[11]-Docker 部署 Ollama + DeepSeek + Dify,搭建本地私有化知识库-知行合一35社区](https://static.zhi35.com/uploads/2025/03/20250310160133274-1024x896.png)
Dify知识库搭建
创建知识库
进入Dify—>知识库—>创建知识库—>索引方式“高质量”
http://192.168.0.122:8080/datasets
![图片[12]-Docker 部署 Ollama + DeepSeek + Dify,搭建本地私有化知识库-知行合一35社区](https://static.zhi35.com/uploads/2025/03/20250312141433640-1024x358.png)
上传知识库文档
![图片[13]-Docker 部署 Ollama + DeepSeek + Dify,搭建本地私有化知识库-知行合一35社区](https://static.zhi35.com/uploads/2025/03/20250312141709429-1024x554.png)
如果本地 PDF 文件是 扫描件、手写件,或者带有复杂的表格 和 数学公式,解析效果会很差,甚至无法解析。遇到这种情况,建议先试用其他PDF 转结构化文档 的工具先做转换!
文本分段与清洗设置
![图片[14]-Docker 部署 Ollama + DeepSeek + Dify,搭建本地私有化知识库-知行合一35社区](https://static.zhi35.com/uploads/2025/03/20250312142130467-1024x737.png)
![图片[15]-Docker 部署 Ollama + DeepSeek + Dify,搭建本地私有化知识库-知行合一35社区](https://static.zhi35.com/uploads/2025/03/20250312143554714-1024x863.png)
注意这里的②,想配置Rerank模型,可以参看:https://docs.dify.ai/zh-hans/learn-more/extended-reading/retrieval-augment/rerank,这里来解释一下:
为什么已经设置了Embedding 模型,还要设置rerank模型?
在 Dify 中,Embedding 模型和 Rerank 模型各司其职,共同帮助知识库实现精准检索:
- Embedding 模型:它的主要作用是把文档内容(例如文本段落)转换为数字向量,这些向量能捕捉文本的语义信息。这样,当用户提问时,系统就能将问题也转换为向量,并快速通过向量相似度(如余弦相似度)找出与问题语义相近的文档。这种方式适用于大规模的初步检索,即快速找到一批可能相关的内容。
- Rerank 模型:初步通过 Embedding 检索出来的结果可能存在一些排序不够精确的情况,因为单纯的向量相似度在某些复杂场景下可能无法完全反映细微的语义差异。Rerank 模型会在这一步中,对候选文档进行“二次复核”,根据更细致的语义匹配度重新排序,把最相关的文档放在前面,提升最终检索的准确性和质量。
总结一下,就是:
- Embedding 模型 快速筛选出一批候选文档;
- Rerank 模型 则对这些候选结果再进行排序,确保呈现给大模型和用户的是最精准的内容。
即使已经设置了 Embedding 模型,Rerank 模型的存在能进一步优化检索结果,使得知识库检索效果更佳。
完成知识库创建
![图片[16]-Docker 部署 Ollama + DeepSeek + Dify,搭建本地私有化知识库-知行合一35社区](https://static.zhi35.com/uploads/2025/03/20250312143854986-1024x742.png)
创建聊天助手
工作室—>创建空白应用—>选择“聊天助手”—>“上下文”中添加知识库
![图片[17]-Docker 部署 Ollama + DeepSeek + Dify,搭建本地私有化知识库-知行合一35社区](https://static.zhi35.com/uploads/2025/03/20250312144116737-1024x416.png)
![图片[18]-Docker 部署 Ollama + DeepSeek + Dify,搭建本地私有化知识库-知行合一35社区](https://static.zhi35.com/uploads/2025/03/20250312144252102-1024x922.png)
关联知识库
添加关联知识库,右侧可进行提问。
![图片[19]-Docker 部署 Ollama + DeepSeek + Dify,搭建本地私有化知识库-知行合一35社区](https://static.zhi35.com/uploads/2025/03/20250312144956353-1024x515.png)
发布
右上角可以进行发布,进行多种场景的使用。
![图片[20]-Docker 部署 Ollama + DeepSeek + Dify,搭建本地私有化知识库-知行合一35社区](https://static.zhi35.com/uploads/2025/03/20250312145103133-1024x486.png)
结束。
1 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
2 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
3 本站资源大多存储在云盘,如发现链接失效,请联系我们,我们会第一时间更新。
暂无评论内容