在这里插入图片描述

一、为什么要本地部署 Dify

Dify 是一个开源的 LLM 应用开发平台,可以用来快速搭建聊天助手、知识库问答、智能客服、内容生成工具和自动化工作流。

使用云端 Dify 上手最快,但本地部署有几个明显优势:

  • 数据和配置都在自己电脑或服务器上,可控性更高。
  • 适合学习 Dify 的真实部署结构,比如 API、Worker、Web、数据库、向量库等组件如何协作。
  • 可以接入本地大模型,例如 Ollama 跑起来的模型。
  • 方便后续研究企业内网知识库、私有化智能客服等场景。

不过,如果电脑配置一般,只是想先做 AI 应用原型,完全可以先用云端 Dify + 云端模型服务。Ollama 和本地模型不是必选项。

二、准备环境

本地部署 Dify 前,建议先准备好这些东西:

环境 作用
Windows / macOS / Linux 本地运行环境
Docker Desktop 用 Docker Compose 启动 Dify 相关服务
Git 或浏览器下载 获取 Dify 源码包
浏览器 访问本地 Dify 控制台
可选:Ollama 在本机运行本地大模型

课程中使用的是 Dify 1.13.0 版本,下载地址是:

https://github.com/langgenius/dify/tags

下载完成后,把压缩包解压到一个空间充足的位置。Windows 用户如果 C 盘空间紧张,建议直接放到 D 盘,例如:

D:\apps\dify-1.13.0

三、用 Docker Compose 部署 Dify

Dify 官方项目里已经准备好了 Docker Compose 配置,我们主要在 docker 目录里操作。

进入目录:

cd D:\apps\dify-1.13.0\docker

首次部署前,需要把环境变量模板复制成真实配置文件:

Copy-Item .env.example .env

然后启动服务:

docker compose up -d

启动后可以查看容器状态:

docker compose ps

如果服务正常,浏览器访问:

http://localhost

第一次打开时,Dify 会要求初始化管理员账号。完成后就可以进入控制台创建应用、配置模型供应商和知识库。

四、部署时我认为最重要的几个检查点

1. Docker Desktop 必须先启动

如果 Docker Desktop 没启动,执行 docker compose up -d 很容易失败。先确认 Docker 能正常响应:

docker version

2. C 盘空间不足会导致镜像拉取失败

Windows 上 Docker Desktop 默认会把 WSL / Docker 数据放在 C 盘。如果 C 盘只剩几百 MB,拉镜像时可能出现中断、超时或 unexpected EOF 之类的问题。

优化建议:

  • Dify 项目目录放到 D 盘。
  • Docker Desktop 的数据目录也尽量迁移到 D 盘。
  • 清理 Windows 临时文件、Docker 缓存和下载缓存。

我自己的理解是:本地部署 AI 工具时,磁盘空间比想象中更关键。Dify 本身不只是一个网页,它会启动数据库、Redis、向量库、Worker、插件守护进程等多个容器。

3. .env 文件不要漏

很多人第一次部署失败,不是 Docker 命令错了,而是忘记创建 .env

Copy-Item .env.example .env

.env 是 Dify 的核心配置文件,里面包含服务端口、数据库配置、密钥、插件配置等。

五、接入 Ollama 本地大模型

Ollama 的作用是让电脑本地运行大模型,然后 Dify 通过接口调用它。

典型流程是:

  1. 安装 Ollama。
  2. 下载模型。
  3. 确认 Ollama 服务运行在 11434 端口。
  4. 在 Dify 里添加 Ollama 模型供应商。
  5. 填写 Dify 容器访问宿主机 Ollama 的地址。

在 Docker 部署的 Dify 里,访问宿主机服务通常不要写 localhost,而是写:

http://host.docker.internal:11434

原因是:Dify 运行在 Docker 容器里,容器里的 localhost 指的是容器自己,不是 Windows 宿主机。

如果电脑配置不高,我不建议一开始就折腾 Ollama。本地模型下载体积大、吃内存、响应速度也可能慢。更稳的学习路线是:

  1. 先用云端模型供应商跑通 Dify。
  2. 再学习知识库和应用编排。
  3. 最后再尝试 Ollama。

六、Dify 知识库核心流程

知识库是 Dify 里非常重要的能力。它可以把文档、网页、文本资料导入后,让应用在回答问题时检索相关内容,再结合大模型生成答案。

基本流程如下:

创建知识库 -> 导入数据 -> 分段处理 -> 建立索引 -> 配置检索方式 -> 在应用中调用知识库

1. 创建知识库

进入 Dify 顶部导航的“知识库”,点击“创建知识库”。

数据导入一般有两类:

  • 上传本地文件:适合 PDF、Word、Markdown、TXT 等资料。
  • 导入在线数据:适合网页、在线文档等资料。

如果使用 Dify 云服务,上传容量和批量能力通常会受到订阅计划影响。本地部署则主要受本机资源限制。

2. 分段设置

导入知识库时,Dify 会把长文档切成多个小片段。分段质量会直接影响问答效果。

常见模式可以这样理解:

分段模式 适合场景
通用模式 普通文档、教程、说明书
Q&A 模式 已经整理成问答形式的材料
父子分段模式 长文档、层级明显的资料,比如手册、制度、课程文档

我的建议:

  • 普通学习资料先用通用模式。
  • FAQ、客服话术用 Q&A 模式。
  • 长文档或结构化资料优先尝试父子分段模式。

3. 索引方法

Dify 里常见索引方式可以粗略分为“高质量”和“经济”。

高质量索引效果通常更好,但可能需要 Embedding 模型,成本和资源占用更高。经济索引更轻量,适合快速测试。

如果只是验证流程,可以先用经济模式;如果要做真正可用的知识库问答,建议使用高质量索引。

4. 检索方式

知识库检索常见有三种:

检索方式 特点
向量检索 擅长语义相似问题,比如换一种说法也能匹配
全文检索 擅长关键词精确匹配
混合检索 同时结合语义和关键词,实际项目中更常用

实际做智能客服时,我更倾向于优先使用混合检索。因为用户提问既可能是自然语言,也可能包含产品名、错误码、订单字段这类精确关键词。

5. topK、score 和 rerank

知识库问答效果不好时,不要只怪模型,很多时候是检索参数没调好。

  • topK:返回多少条候选片段。太小可能漏内容,太大可能带入噪音。
  • score:相似度阈值。太高可能搜不到,太低可能搜出无关内容。
  • rerank:对初步检索结果重新排序,让最相关的内容排在前面。

调参建议:

  1. 先固定模型和知识库内容。
  2. 用 10 到 20 个真实问题测试。
  3. 观察 Dify 返回的引用片段是否准确。
  4. 再逐步调整 topK、score 和 rerank。

七、用 Dify 搭建智能客服

知识库准备好后,就可以用 Dify 搭建一个简单的智能客服。

推荐流程:

  1. 新建应用,选择聊天助手或 Chatflow。
  2. 绑定前面创建好的知识库。
  3. 配置模型供应商。
  4. 编写系统提示词,限定回答范围。
  5. 测试常见问题。
  6. 根据回答效果优化知识库分段和检索参数。

一个基础客服提示词可以这样写:

你是一个专业、耐心的智能客服。
请优先根据知识库内容回答用户问题。
如果知识库中没有相关信息,请明确说明“当前资料中没有找到答案”,不要编造。
回答要简洁、准确,并尽量给出可执行步骤。

这里有一个关键点:智能客服不是“模型越强就越好”,而是“知识库内容、检索质量、提示词约束、模型能力”共同决定效果。

八、我对这节课的优化理解

课程的主线是:

本地部署 Dify -> 接入 Ollama -> 创建知识库 -> 优化检索 -> 搭建智能客服

我把它理解成三层能力:

第一层:平台跑起来

先把 Dify 用 Docker Compose 跑起来,确认能访问 http://localhost。这一层解决的是部署问题。

第二层:模型接进来

可以接云端模型,也可以接 Ollama 本地模型。电脑配置一般时,优先用云端模型,避免把学习卡在本地模型性能上。

第三层:让应用真正可用

知识库、分段、索引、检索参数、提示词,这些才决定最终应用是否能回答得准。

所以我建议学习顺序是:

先跑通 Dify -> 再接一个稳定模型 -> 再做知识库 -> 最后尝试本地 Ollama

九、常见问题排查

1. 访问不了 localhost

检查容器是否启动:

docker compose ps

如果容器没有全部正常运行,查看日志:

docker compose logs --tail=100

2. Docker 拉镜像失败

优先检查:

  • 网络是否稳定。
  • Docker Desktop 是否正常运行。
  • C 盘或 Docker 数据盘是否还有足够空间。
  • 是否需要配置镜像加速。

3. Dify 连接 Ollama 失败

如果 Dify 是 Docker 部署,Ollama 在宿主机运行,地址建议使用:

http://host.docker.internal:11434

不要直接写:

http://localhost:11434

4. 知识库回答不准

可以从这几个方向排查:

  • 文档内容是否干净,有没有大量无关内容。
  • 分段是否过长或过短。
  • 是否选择了合适的索引方式。
  • 检索方式是否适合当前问题。
  • topK 和 score 是否过严或过松。
  • 是否启用了 rerank。
  • 提示词是否要求模型基于知识库回答。

十、总结

这表面上是在讲 Dify 本地部署,但真正有价值的是把 AI 应用开发的完整链路串起来:

部署平台 -> 接入模型 -> 构建知识库 -> 调整检索 -> 封装应用

本地部署 Dify 能帮助我们理解 AI 应用背后的工程结构;知识库和检索优化则决定应用能不能从“能聊天”变成“能解决问题”。

如果只是入门,建议先不要追求一步到位。本地 Dify 跑通后,先用云端模型完成一个知识库问答应用,再根据电脑配置决定是否继续上 Ollama 本地模型。这样学习曲线会平滑很多,也更容易看到成果。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐