本地部署 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 字段,填入可在国内访问的加速器地址(具体地址以你采用的加速器服务商文档为准)。保存后重新加载并重启:
sudo systemctl daemon-reloadsudo systemctl restart docker如已存在该文件,把 registry-mirrors 配置合并进去即可。
三、用 Docker Compose 启动 Dify
- 获取官方仓库(网络不畅时,可先把仓库压缩包下载到本地再解压,等价于
git clone)。 - 进入 compose 目录:
cd dify/docker- 把示例配置复制为实际配置文件。
.env.example是官方给出的参考配置,其中包含 Redis、PostgreSQL 等组件的参数;默认情况通常无需修改:
cp .env.example .env- 一条命令启动全部依赖容器(
up启动,-d后台守护运行,不占用当前终端):
docker compose up -dDocker Compose 是容器编排工具,Dify 由 Web、API、worker、数据库、缓存等多个容器组成,把这些启动配置写在 docker-compose.yaml 里,即可一键启停,不必逐个 docker run。
- 启动完成后,在浏览器访问
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 内置或可安装的插件,如网页抓取、搜索引擎、天气查询等。
接入云端模型的步骤:
- 创建一个空白应用,选择 聊天助手 或 Agent(Agent 可调用工具,功能更强;文本生成类用于单次生成)。
- 在应用右上角进入模型设置,安装模型供应商。例如选择 DeepSeek(深度求索),在列表中点击安装。
- 到 DeepSeek 开放平台创建一个 API Key(一串用于鉴权的密钥),复制它;把 Dify 中的自定义 API 地址指向 DeepSeek 的接口地址,粘贴 API Key,保存。
- 此时 DeepSeek 的模型会出现在模型列表,在应用中选定即可对话。
价格与配额:DeepSeek 按 tokens(模型计费与计量的最小单位)收费,文中涉及的单价(如”每百万 tokens 几元”)随官方调整变化,充值与用量请以 DeepSeek 开放平台当前页面为准。
六、提示词、变量与工具
- 提示词(Prompt):在应用里用自然语言约束模型的行为与输出风格。Dify 还提供”生成”按钮,可调用模型自动帮你把一段需求扩写成结构化提示词。
- 变量:在提示词中定义变量后,使用时必须由用户填入对应内容才会运行,适合做”代码助手""翻译器”这类需要每次输入不同内容的应用。
- 工具:给 Agent 装上工具即可联网。例如”谷歌搜索”工具会在回答前先调用搜索,把结果与问题一起发给模型。使用该工具需配置 Google 自定义搜索的 API Key,它有免费额度,具体每日/每月配额以 Google 官方文档为准,不同时期政策不同。
- 嵌入网站:应用发布后,Dify 可生成一个独立访问 URL,也提供可粘贴到自己网站的 iframe(内嵌框架)代码,让别人不必打开 Dify 后台就能直接使用这个聊天应用。纯本地自用场景下用不到,需要对外分享时再配置。
七、用工作流搭一个”网页内容总结”
Dify 的工作流把多个节点按箭头串联,数据沿箭头流动。搭一个最简单的示例:
- 开始节点:新增一个文本字段,例如命名为
user_url,限制最大长度。使用时必须填入一个网址。 - 网页抓取节点:添加”网页抓取”(Web Crawler)组件,在其输入处插入变量
user_url,让它抓取用户给出的网址。 - 大语言模型节点:把抓取输出中的”文本内容”作为上下文传入,并在提示词里写”请总结以下内容”。
- 结束节点:把大模型的文本输出作为最终结果返回。
运行时可在”追踪/详情”里看到每一个节点的输入与输出,便于排查哪一步出错。复杂工作流可直接从”探索”模板复制后再改。
八、接入本地 LM Studio 模型
接入云端模型受平台限制与计费约束;如果想让 Dify 调用本地 LM Studio 跑的模型,走的是”OpenAI 兼容接口”方式。
- 在 Dify 模型供应商中选择 OpenAI API(兼容)。
- 在 LM Studio 的”开发者/Local Server”页面复制本地服务地址,末尾加上
/v1,填到 Dify 的接口 URL 处;单机部署时地址形如http://127.0.0.1:1234/v1。 - 填写模型名称和最大上下文长度,保存。
- 关键前提:
- LM Studio 默认只监听本机;若 Dify 与模型不在同一台机器,必须在 LM Studio 的 Server 设置里打开”允许局域网访问(Serve on Local Network)”。
- 跨机调用还需允许跨域(CORS,浏览器跨源资源共享策略),否则前端请求会被拦截。
- 添加后,在应用模型列表里选择这个本地模型,提问即可验证是否走通。
这样一来,Dify 既能调用云端的 DeepSeek,也能调用完全离线的本地模型,按场景在二者间切换。
九、不想本地部署?用云端版
如果只是想先体验、不打算维护一台服务器,可以直接使用 Dify 的云端版(cloud.dify.ai)。它的界面、模型配置、知识库、工具和工作流与本地版基本一致,注册后即可使用,不必处理 Docker、镜像加速和端口映射。本地版与云端版二选一即可:要数据私有化和接入本地模型用本地部署,要开箱即用用云端版。
十、小结
本地部署 Dify 的核心链路是:装好 Docker → 配国内镜像加速 → cp .env.example .env → docker compose up -d → 浏览器访问完成初始化。模型接入分两类:云端模型填 API Key,本地模型走 OpenAI 兼容的 /v1 地址并放行局域网与跨域。过程中涉及的镜像加速器地址、DeepSeek 价格、Google 搜索配额都会随时间变化,实操前以各服务的官方文档为准。
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!














