视频加载失败

本地部署 Dify 并接入大模型:从 Docker 到 LM Studio 实战

2454 字
12 分钟
本地部署 Dify 并接入大模型:从 Docker 到 LM Studio 实战

本地部署 Dify 并接入大模型:从 Docker 到 LM Studio 实战#

Dify 是一个开源的 LLM(Large Language Model,大语言模型)应用开发与工作流平台。它把大模型调用、提示词、知识库、工具和可视化工作流整合在一个界面里,适合在没有公网环境、或想完全掌控数据的场景下私有化搭建。本文记录在 Linux 主机上用 Docker 部署 Dify,并分别接入云端模型(DeepSeek)与本地模型(LM Studio)的完整过程。

为什么需要”工作流”?如果只是把上一个模型的回答手动复制、粘贴到下一个模型继续处理,做一两次可以,长期重复就非常枯燥,且容易出错。工作流的价值正是把多个模型与操作按数据流向串起来——上一个节点的输出自动成为下一个节点的输入,整条链路一次跑通。Dify 提供的就是这样一套可视化搭建环境:从开始节点、大语言模型、网页抓取到结束节点,拖出来连好箭头,数据便顺着箭头流动。

一、前置条件与目标环境#

  • 操作系统:以 Linux 服务器为例(物理机、虚拟机或 WSL 均可),本文命令均为 bash/shell 语法。
  • 必备软件:已安装 Docker 与 Docker Compose(二者官方安装文档成熟,此处不展开)。
  • 硬件参考:Dify 官方建议不低于 2 核 CPU、4 GB 内存、50 GB 磁盘;实际运行多个容器时按负载适当上调。
  • 可选前置:若要接入本地模型,需先用 LM Studio(本地运行开源大模型的桌面工具)在本机或另一台机器上跑起一个模型,并提供兼容 OpenAI 的 API 接口。

说明:Dify 版本迭代较快,菜单名称、端口和配置项请以官方文档为准;本文以稳定版界面为基准。

二、解决国内拉取镜像的问题#

直接 docker compose up 时,国内网络拉取 Docker Hub 镜像经常超时。部署前先配置镜像加速器。

编辑 Docker 守护进程配置 /etc/docker/daemon.json,加入 registry-mirrors 字段,填入可在国内访问的加速器地址(具体地址以你采用的加速器服务商文档为准)。保存后重新加载并重启:

Terminal window
sudo systemctl daemon-reload
sudo systemctl restart docker

如已存在该文件,把 registry-mirrors 配置合并进去即可。

三、用 Docker Compose 启动 Dify#

  1. 获取官方仓库(网络不畅时,可先把仓库压缩包下载到本地再解压,等价于 git clone)。
  2. 进入 compose 目录:
Terminal window
cd dify/docker
  1. 把示例配置复制为实际配置文件。.env.example 是官方给出的参考配置,其中包含 Redis、PostgreSQL 等组件的参数;默认情况通常无需修改:
Terminal window
cp .env.example .env
  1. 一条命令启动全部依赖容器(up 启动,-d 后台守护运行,不占用当前终端):
Terminal window
docker compose up -d

Docker Compose 是容器编排工具,Dify 由 Web、API、worker、数据库、缓存等多个容器组成,把这些启动配置写在 docker-compose.yaml 里,即可一键启停,不必逐个 docker run。

  1. 启动完成后,在浏览器访问 http://<服务器IP>(例如 http://192.168.x.x)。首次进入会要求注册管理员账号——这个注册只发生在本地,本质是向 Dify 自带的 PostgreSQL 写入一条管理员记录,不会上传到外网。

四、(可选)把数据库端口映射到宿主机#

默认情况下,docker-compose.yaml 只把 Nginx 的 Web 端口映射出来,PostgreSQL(默认 5432)和 Redis(默认 6379)只在 Docker 内网可见。若需要用数据库工具直连查看数据,可手动改 docker-compose.yaml:

在 db 服务下增加端口映射,例如把宿主机 6432 映射到容器 5432:

services:
db:
ports:
- "6432:5432"

同样在 redis 服务下把宿主机 7379 映射到容器 6379:

services:
redis:
ports:
- "7379:6379"

修改后重启 compose 即可。这一步是可选的,仅用于调试;生产环境把数据库端口暴露到公网会带来安全风险。

五、界面与接入第一个云端模型(DeepSeek)#

首次登录若显示英文,在右上角账户 → 设置中把语言改为简体中文。界面主要区域:

  • 工作室:创建 AI 应用和工作流的地方。
  • 探索:官方模板市场,可一键把别人写好的工作流加入自己的工作区。
  • 知识库:基于 RAG(Retrieval-Augmented Generation,检索增强生成)原理,把文档分段入库,提问时先检索相关片段再连同问题一起发给大模型。
  • 工具:Dify 内置或可安装的插件,如网页抓取、搜索引擎、天气查询等。

接入云端模型的步骤:

  1. 创建一个空白应用,选择 聊天助手 或 Agent(Agent 可调用工具,功能更强;文本生成类用于单次生成)。
  2. 在应用右上角进入模型设置,安装模型供应商。例如选择 DeepSeek(深度求索),在列表中点击安装。
  3. 到 DeepSeek 开放平台创建一个 API Key(一串用于鉴权的密钥),复制它;把 Dify 中的自定义 API 地址指向 DeepSeek 的接口地址,粘贴 API Key,保存。
  4. 此时 DeepSeek 的模型会出现在模型列表,在应用中选定即可对话。

价格与配额:DeepSeek 按 tokens(模型计费与计量的最小单位)收费,文中涉及的单价(如”每百万 tokens 几元”)随官方调整变化,充值与用量请以 DeepSeek 开放平台当前页面为准。

六、提示词、变量与工具#

  • 提示词(Prompt):在应用里用自然语言约束模型的行为与输出风格。Dify 还提供”生成”按钮,可调用模型自动帮你把一段需求扩写成结构化提示词。
  • 变量:在提示词中定义变量后,使用时必须由用户填入对应内容才会运行,适合做”代码助手""翻译器”这类需要每次输入不同内容的应用。
  • 工具:给 Agent 装上工具即可联网。例如”谷歌搜索”工具会在回答前先调用搜索,把结果与问题一起发给模型。使用该工具需配置 Google 自定义搜索的 API Key,它有免费额度,具体每日/每月配额以 Google 官方文档为准,不同时期政策不同。
  • 嵌入网站:应用发布后,Dify 可生成一个独立访问 URL,也提供可粘贴到自己网站的 iframe(内嵌框架)代码,让别人不必打开 Dify 后台就能直接使用这个聊天应用。纯本地自用场景下用不到,需要对外分享时再配置。

七、用工作流搭一个”网页内容总结”#

Dify 的工作流把多个节点按箭头串联,数据沿箭头流动。搭一个最简单的示例:

  1. 开始节点:新增一个文本字段,例如命名为 user_url,限制最大长度。使用时必须填入一个网址。
  2. 网页抓取节点:添加”网页抓取”(Web Crawler)组件,在其输入处插入变量 user_url,让它抓取用户给出的网址。
  3. 大语言模型节点:把抓取输出中的”文本内容”作为上下文传入,并在提示词里写”请总结以下内容”。
  4. 结束节点:把大模型的文本输出作为最终结果返回。

运行时可在”追踪/详情”里看到每一个节点的输入与输出,便于排查哪一步出错。复杂工作流可直接从”探索”模板复制后再改。

八、接入本地 LM Studio 模型#

接入云端模型受平台限制与计费约束;如果想让 Dify 调用本地 LM Studio 跑的模型,走的是”OpenAI 兼容接口”方式。

  1. 在 Dify 模型供应商中选择 OpenAI API(兼容)。
  2. 在 LM Studio 的”开发者/Local Server”页面复制本地服务地址,末尾加上 /v1,填到 Dify 的接口 URL 处;单机部署时地址形如 http://127.0.0.1:1234/v1。
  3. 填写模型名称和最大上下文长度,保存。
  4. 关键前提:
    • LM Studio 默认只监听本机;若 Dify 与模型不在同一台机器,必须在 LM Studio 的 Server 设置里打开”允许局域网访问(Serve on Local Network)”。
    • 跨机调用还需允许跨域(CORS,浏览器跨源资源共享策略),否则前端请求会被拦截。
  5. 添加后,在应用模型列表里选择这个本地模型,提问即可验证是否走通。

这样一来,Dify 既能调用云端的 DeepSeek,也能调用完全离线的本地模型,按场景在二者间切换。

九、不想本地部署?用云端版#

如果只是想先体验、不打算维护一台服务器,可以直接使用 Dify 的云端版(cloud.dify.ai)。它的界面、模型配置、知识库、工具和工作流与本地版基本一致,注册后即可使用,不必处理 Docker、镜像加速和端口映射。本地版与云端版二选一即可:要数据私有化和接入本地模型用本地部署,要开箱即用用云端版。

十、小结#

本地部署 Dify 的核心链路是:装好 Docker → 配国内镜像加速 → cp .env.example .env → docker compose up -d → 浏览器访问完成初始化。模型接入分两类:云端模型填 API Key,本地模型走 OpenAI 兼容的 /v1 地址并放行局域网与跨域。过程中涉及的镜像加速器地址、DeepSeek 价格、Google 搜索配额都会随时间变化,实操前以各服务的官方文档为准。

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
本地部署 Dify 并接入大模型:从 Docker 到 LM Studio 实战
https://blog.youzhiqing.com/posts/self-host-dify-and-connect-llm/
作者
莜之箐
发布于
2026-09-22
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
莜之箐
Hello, I'm Firefly.
公告
欢迎来到我的博客!这是一则示例公告。
分类
标签
最新动态
站点统计
文章
15
分类
7
标签
50
总字数
33,237
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
GitHub Actions
博客版本
Firefly v6.16.3
文章许可
CC BY-NC-SA 4.0