Docker 部署 Ollama + DeepSeek + Dify,搭建本地私有化知识库

图片[1]-Docker 部署 Ollama + DeepSeek + Dify,搭建本地私有化知识库-知行合一35社区

前言

在企业生产环境中,直接采用通用基础大模型存在以下主要问题:

  • 专业性不足:通用大模型的知识体系完全依赖于其训练数据,而这些数据主要来源于公开网络资源。对于企业所需的实时性数据、非公开信息或离线数据,模型无法有效获取和利用,导致其在实际业务场景中缺乏针对性和专业性。
  • 回答可靠性低(幻觉问题):AI模型的底层逻辑基于数学概率,当面对其知识范围之外或不擅长的领域时,模型可能会生成看似合理但实际错误的回答,即所谓的”幻觉”现象。这种不可靠性在要求精准答案的企业场景中可能带来严重风险。
  • 数据安全隐患:使用通用大模型通常需要将企业的私域数据上传至第三方平台进行训练或微调,这一过程存在数据泄露的风险,可能违反企业的数据安全政策和相关法规要求,对企业的核心竞争力和商业机密构成潜在威胁。

如何解决通用基础大模型的这些问题?

  • 搭建本地知识库,解决数据安全隐患
  • 检索增强生成(RAG)
  • 微调(Fine-Tuning)
图片[2]-Docker 部署 Ollama + DeepSeek + Dify,搭建本地私有化知识库-知行合一35社区

用RAG还是微调?

图片[3]-Docker 部署 Ollama + DeepSeek + Dify,搭建本地私有化知识库-知行合一35社区

更多关于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社区

拉取deepseek r1 大模型

进入ollama官网:https://ollama.com/ ,搜索deepseek,找到deepseek-r1大模型https://ollama.com/library/deepseek-r1

图片[5]-Docker 部署 Ollama + DeepSeek + Dify,搭建本地私有化知识库-知行合一35社区

官网:https://ollama.com/library/deepseek-r1:1.5b

图片[6]-Docker 部署 Ollama + DeepSeek + Dify,搭建本地私有化知识库-知行合一35社区

进入到容器中,拉取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社区

将 DeepSeek 接入至 Dify

点击 Dify 平台右上角头像 → 设置 → 模型供应商,选择 Ollama安装插件。

图片[8]-Docker 部署 Ollama + DeepSeek + Dify,搭建本地私有化知识库-知行合一35社区

轻点“添加模型”。

图片[9]-Docker 部署 Ollama + DeepSeek + Dify,搭建本地私有化知识库-知行合一35社区

注意:连接Ollama本地模型,填写Ollama的模型base url,域名需要使用电脑局域网IP地址(如192.168.0.122),而不是localhost或者127.0.0.1.

图片[10]-Docker 部署 Ollama + DeepSeek + Dify,搭建本地私有化知识库-知行合一35社区

同样方法在Dify的设置里添加Embedding嵌入模型

图片[11]-Docker 部署 Ollama + DeepSeek + Dify,搭建本地私有化知识库-知行合一35社区

Dify知识库搭建

创建知识库

进入Dify—>知识库—>创建知识库—>索引方式“高质量”

http://192.168.0.122:8080/datasets

图片[12]-Docker 部署 Ollama + DeepSeek + Dify,搭建本地私有化知识库-知行合一35社区

上传知识库文档

图片[13]-Docker 部署 Ollama + DeepSeek + Dify,搭建本地私有化知识库-知行合一35社区

如果本地 PDF 文件是 扫描件、手写件,或者带有复杂的表格 和 数学公式,解析效果会很差,甚至无法解析。遇到这种情况,建议先试用其他PDF 转结构化文档 的工具先做转换!

文本分段与清洗设置

图片[14]-Docker 部署 Ollama + DeepSeek + Dify,搭建本地私有化知识库-知行合一35社区
图片[15]-Docker 部署 Ollama + DeepSeek + Dify,搭建本地私有化知识库-知行合一35社区

注意这里的②,想配置Rerank模型,可以参看:https://docs.dify.ai/zh-hans/learn-more/extended-reading/retrieval-augment/rerank,这里来解释一下:

为什么已经设置了Embedding 模型,还要设置rerank模型

在 Dify 中,Embedding 模型和 Rerank 模型各司其职,共同帮助知识库实现精准检索:

  • Embedding 模型:它的主要作用是把文档内容(例如文本段落)转换为数字向量,这些向量能捕捉文本的语义信息。这样,当用户提问时,系统就能将问题也转换为向量,并快速通过向量相似度(如余弦相似度)找出与问题语义相近的文档。这种方式适用于大规模的初步检索,即快速找到一批可能相关的内容。
  • Rerank 模型:初步通过 Embedding 检索出来的结果可能存在一些排序不够精确的情况,因为单纯的向量相似度在某些复杂场景下可能无法完全反映细微的语义差异。Rerank 模型会在这一步中,对候选文档进行“二次复核”,根据更细致的语义匹配度重新排序,把最相关的文档放在前面,提升最终检索的准确性和质量。

总结一下,就是:

  1. Embedding 模型 快速筛选出一批候选文档;
  2. Rerank 模型 则对这些候选结果再进行排序,确保呈现给大模型和用户的是最精准的内容。

即使已经设置了 Embedding 模型,Rerank 模型的存在能进一步优化检索结果,使得知识库检索效果更佳。

完成知识库创建

图片[16]-Docker 部署 Ollama + DeepSeek + Dify,搭建本地私有化知识库-知行合一35社区

创建聊天助手

工作室—>创建空白应用—>选择“聊天助手”—>“上下文”中添加知识库

图片[17]-Docker 部署 Ollama + DeepSeek + Dify,搭建本地私有化知识库-知行合一35社区
图片[18]-Docker 部署 Ollama + DeepSeek + Dify,搭建本地私有化知识库-知行合一35社区

关联知识库

添加关联知识库,右侧可进行提问。

图片[19]-Docker 部署 Ollama + DeepSeek + Dify,搭建本地私有化知识库-知行合一35社区

发布

右上角可以进行发布,进行多种场景的使用。

图片[20]-Docker 部署 Ollama + DeepSeek + Dify,搭建本地私有化知识库-知行合一35社区

结束。

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容