为什么你需要自己搭一套 Dify + Ollama?
最近很多朋友问我:“想用 AI 但又不想把数据传到云端,有没有既免费又安全的方案?”答案就是 Dify + Ollama 这个黄金组合。
Dify 是一个开源的 LLM 应用开发平台,你可以把它理解成“AI 应用的可视化搭积木工具”。而 Ollama 则是一个能在本地轻松运行大模型的工具,支持 Llama、Mistral、Qwen 等主流模型。把两者结合起来,你就能在本地拥有一套完全可控的 AI 助手系统——聊天、写文档、做翻译、分析数据,甚至搭建复杂的 AI 工作流,都不在话下。
今天我们就从零开始,把 Dify 和 Ollama 完整配置起来。这篇文章会尽量避开那些“你肯定懂”的假设,每一步都讲清楚为什么这么做。
第一步:准备工作(硬件和软件环境)
硬件要求
跑大模型对硬件有一定要求,但比你想象的要低:
- 最低配置:8GB 内存 + 4核 CPU(可以跑 7B 以下的小模型,速度尚可)
- 推荐配置:16GB 以上内存 + NVIDIA 显卡(4GB 显存起步,用 Llama 3 8B 或 Qwen 7B 体验流畅)
- 纯 CPU 也能跑:Ollama 支持 CPU 推理,只是速度会慢一些,日常对话完全可用
软件准备
我们需要安装以下工具,笔者建议全部使用 Docker 部署,省去很多环境依赖的麻烦:
- Docker & Docker Compose(Dify 官方推荐方式)
- Ollama(直接安装在宿主机上,或者也用 Docker 部署)
- 一台能联网的电脑(Linux / macOS / Windows 都可以)
如果你还没有 Docker,可以先去官网下载安装。Windows 用户建议安装 WSL2 后再装 Docker Desktop,体验最稳定。
第二步:安装并启动 Ollama
Ollama 的安装极其简单,我们直接按官方方式操作:
# Linux / macOS
curl -fsSL https://ollama.com/install.sh | sh
# Windows 用户直接去 ollama.com 下载安装包双击安装
安装完成后,拉取一个模型试试。笔者推荐先用 Qwen2.5:7b(通义千问 7B 版本),它在中文场景下表现非常出色:
ollama pull qwen2.5:7b
看到 success 提示后,可以测试一下模型是否正常工作:
ollama run qwen2.5:7b "你好,请介绍一下你自己"
模型能正常回复,说明 Ollama 已经就绪。此时 Ollama 默认监听在 localhost:11434 端口。
export OLLAMA_HOST=0.0.0.0:11434
然后重启 Ollama 服务。这样 Dify 的容器才能通过网络访问到本地的 Ollama。
第三步:使用 Docker Compose 部署 Dify
Dify 官方提供了完整的 Docker Compose 配置,我们直接拉取最新版本:
# 克隆 Dify 仓库
git clone https://github.com/langgenius/dify.git
# 进入 Docker 配置目录
cd dify/docker
# 复制环境变量配置文件
cp .env.example .env
# 启动所有服务(后台运行)
docker compose up -d
第一次启动会下载多个镜像(包括 PostgreSQL、Redis、Weaviate 等),根据网速需要几分钟到十几分钟。启动完成后,浏览器访问 http://localhost:3000,你应该能看到 Dify 的初始化页面。
初始化管理员账号
首次访问会要求设置管理员邮箱和密码,按提示完成即可。这一步很简单,跟着界面走就行。
第四步:在 Dify 中配置 Ollama 模型
这是整个流程中最关键的一步,很多朋友在这里卡住。请按照以下步骤操作:
4.1 进入模型供应商设置
登录 Dify 后台后,点击右上角的头像 → 设置 → 模型供应商。在列表中找到 Ollama,点击“添加模型”。
4.2 填写配置参数
你会看到这样一个配置表单,请按以下内容填写:
| 参数 | 填写内容 | 说明 |
|---|---|---|
| 模型名称 | qwen2.5:7b |
必须和 ollama list 中显示的名称完全一致 |
| 基础 URL | http://host.docker.internal:11434 |
关键!Docker 容器内访问宿主机要用这个地址(Windows/macOS 适用) |
| 模型类型 | LLM | 通用对话模型选这个 |
| 上下文长度 | 8192 |
根据模型实际支持的最大上下文设置 |
http://localhost:11434,这是错误的!因为 Dify 运行在 Docker 容器里,容器内的 localhost 指向的是容器自己,不是你的宿主机。正确做法:
- Windows/macOS:使用
http://host.docker.internal:11434 - Linux:使用
http://172.17.0.1:11434(Docker 默认网关 IP)
4.3 测试连接
填写完毕后,点击“保存”按钮。如果配置正确,Dify 会立刻显示“连接成功”。然后你就能在 Dify 的聊天应用、工作流等模块中选择 qwen2.5:7b 作为默认模型了。
第五步:创建你的第一个 AI 应用
配置好模型后,我们来创建一个简单的对话应用测试一下:
- 在 Dify 左侧菜单点击 工作室 → 创建应用
- 选择 对话型应用,输入应用名称(比如“本地助手”)
- 在编排页面,将“模型”选择为刚才配置的
qwen2.5:7b - 可以设置一个系统提示词,比如:“你是一个智能助手,请用中文回答用户的问题。”
- 点击右上角 发布,然后点 运行 测试对话
输入“你好,请介绍一下你自己”,看到模型给出正常回复,说明整个链路已经成功打通!
进阶技巧:让组合更好用
多模型切换
你可以在 Ollama 中拉取多个模型(比如 llama3.1、mistral、codellama),然后在 Dify 中分别添加为不同的模型供应商实例。这样在创建应用时,可以根据任务类型灵活切换模型:写代码用 CodeLlama,日常聊天用 Qwen,需要英文能力时用 Llama 3。
使用 Embedding 模型做知识库
Dify 支持知识库功能,需要 Embedding 模型来向量化文档。Ollama 也支持 Embedding 模型:
ollama pull nomic-embed-text
然后在 Dify 的模型供应商中再添加一个 Ollama 实例,模型类型选择 Embedding,模型名称填 nomic-embed-text。这样你就可以上传文档,让 Dify 自动创建基于本地大模型的知识库问答系统了。
部署到公网:让你的 AI 服务可访问
如果你想让团队或朋友也能使用这个 AI 助手,需要把 Dify 部署到公网服务器上。这里笔者强烈建议:购买一台靠谱的云服务器,而不是用内网穿透方案。云服务器不仅稳定,还能保证数据安全。
选择服务器时注意:
- 内存至少 16GB(推荐 32GB)
- 如果使用 GPU 加速,选择带 NVIDIA 显卡的实例(如 A10、V100 等)
- 硬盘建议 100GB 以上(模型文件较大)
部署步骤和本地完全一样,只需把 Docker Compose 文件和 Ollama 安装在云服务器上即可。别忘了配置防火墙,开放 3000 端口(Dify Web 界面)和 11434 端口(Ollama API)。
关于域名:如果你打算长期使用,建议注册一个正式域名并配置 SSL 证书。正规域名不仅看起来专业,还能避免被浏览器拦截。各大云服务商都有首年优惠的域名,几十块钱就能搞定。
常见问题排查
Q:Dify 提示“模型连接失败”
检查以下几点:
- Ollama 是否在运行?执行
ollama list确认 - Ollama 是否监听在 0.0.0.0?执行
netstat -an | grep 11434查看 - Dify 容器能否访问宿主机?在 Dify 容器内执行
curl http://host.docker.internal:11434测试
Q:模型回复很慢
可能是模型参数过大,或者没用到 GPU。检查 Ollama 日志:ollama logs,看看是否识别到了 GPU。如果没有,检查驱动安装和 nvidia-smi 输出。
Q:中文回复质量差
建议使用专门针对中文优化的模型,如 Qwen 系列、Yi 系列。Llama 3 虽然支持中文,但效果不如原生中文模型。
写在最后
Dify + Ollama 的组合,让你真正拥有了一个私有、免费、可定制的 AI 助手。无论是个人学习、团队协作还是企业内部使用,这套方案都能满足需求。从今天开始,你的数据安全由你自己掌控。
希望这篇教程能帮你顺利搭建起来。如果在配置过程中遇到任何问题,欢迎在评论区留言交流,我们会尽力协助解决。动手试试吧,你会发现本地 AI 远比想象中强大。