接入 Ollama

Ollama 接到 Dify,推理和 Embedding 都可以不出公网。适合内网、演示、以及不想为试错付云厂商 token 的场景。Dify 仍负责编排、知识库与发布;Ollama 只提供 OpenAI 风格的本地模型 HTTP API(默认端口 11434)。


先让本机 Ollama 跑起来

在宿主机(不是 Dify 容器里)安装并启动 Ollama,拉一个对话模型和一个 Embedding 模型,例如:

ollama pull qwen2.5:7b
ollama pull nomic-embed-text
ollama list

模型名必须与你在 Dify 里填写的完全一致。本站 Ollama 教程 覆盖安装、Modelfile 与显存。Dify 容器访问不到「只绑在 127.0.0.1」的服务时,需要让 Ollama 监听更宽的地址,例如设置 OLLAMA_HOST=0.0.0.0(或 0.0.0.0:11434)后重启 Ollama。只在受信网络上这么做,并用防火墙限制 11434。


在 Dify 里添加 Ollama 供应商

  1. Integrations → Model Provider,安装 Ollama
  2. Setup:填写 Base URL(见下一节,不要想当然写 localhost)
  3. 添加具体模型:对话模型选 LLM 类型;nomic-embed-text 一类选 Text Embedding
  4. 保存并通过连接校验

可把默认 System Reasoning 指到本地 LLM,默认 Embedding 指到本地向量模型,这样新建知识库不必每次手选。


Docker 网络:不要用 localhost

Dify Community Edition 的 api / worker 跑在容器里。容器内的 localhost / 127.0.0.1容器自己,不是你的笔记本。Ollama 若装在宿主机,应使用:

http://host.docker.internal:11434
场景Base URL
Dify 在 Docker,Ollama 在同一台宿主机(Win / Mac)http://host.docker.internal:11434
同上,但 Linux 未解析 host.docker.internal给相关服务加 extra_hosts: ["host.docker.internal:host-gateway"],或用宿主机局域网 IP
Dify 与 Ollama 都在宿主机进程(源码启动)http://127.0.0.1:11434 可以
Ollama 在另一台机器http://<那台机器IP>:11434,并放行防火墙

在 Dify 的 api 容器里可以 curl http://host.docker.internal:11434/api/tags 做冒烟:能列出模型再回 Studio 点校验。


Embedding 与知识库

本地 RAG 需要同一套 Embedding 贯穿「建索引」和「查询」。常见组合:

  • 对话:qwen2.5:7b / llama3.2
  • 向量:nomic-embed-text 或厂商提供的中英 Embedding

知识库选 High Quality,Embedding 选 Ollama 上的向量模型。换 Embedding 模型必须重建索引,否则向量空间不一致,检索会 silently 变差。混合检索仍可用;没有云 Rerank 时,靠权重与 Top K 先调到能用。

显存不够时:对话与 Embedding 错开高峰、换更小量化、或 Embedding 仍走云、只把 LLM 放本地。


对照 LangChain

LangChainlangchain-ollama 或 OpenAI 兼容 base_url。Dify 是同一 URL,只是配在供应商表单里。本地模型的上下文长度、工具调用质量通常弱于旗舰云模型:Agent 优先试 Function Calling 是否可用,不行就降到 Workflow,少让弱模型自己规划。


常见问题

Connection refused / timeout? 99% 是 localhost 写错,或 Ollama 只听 127.0.0.1,或防火墙挡了 11434。

校验 404? 模型没 pull,或名称多了 :latest 之类后缀对不上。

知识库处理失败? 没加 Embedding 类型模型,或 worker 同样访问不到 host.docker.internal

Linux 仍不通?extra_hosts、本机 IP、以及是否误用了 Docker bridge 网关却没让 Ollama 听 0.0.0.0


下一步

评论