ollama open webui 找不到模型

模型与算力

连接 Ollama 后 Open WebUI 模型列表为空,按网络、地址、模型名、配置四层顺序逐项排查定位。

本地 Ollama 已经跑起来,命令行也能对话,但 Open WebUI 里模型下拉框就是空的——这种情况多半不是模型没下好,而是两边没接上话。下面按从外到内的顺序拆成四步:先确认 Open WebUI 是否真的连到了 Ollama,再核对地址与端口,然后处理模型名与标签的匹配,最后翻配置和日志。照着走一遍,基本能定位到是哪一层断的。

本地 Ollama 已经跑起来,命令行也能对话,但 Open WebUI 里模型下拉框就是空的——这种情况多半不是模型没下好,而是两边没接上话。Open WebUI 是通过 Ollama 的 HTTP 接口去拉模型清单的,任何一层断了,UI 里就只剩一个空列表。

下面按从外到内的顺序拆成四步:先确认 Open WebUI 是否真的连到了 Ollama,再核对地址与端口,然后处理模型名与标签的匹配,最后翻配置和日志。照着走一遍,基本能定位到是哪一层断的。整个过程不用反复重装,重点是把请求链路一段段验证过去。

先分清是「连不上」还是「连上了没模型」

这一步的目的只有一个:确定问题出在网络层还是模型层。打开 Open WebUI 的管理设置,找到 Ollama 那条连接,看状态是正常还是报错。报错说明请求根本没打过去,属于网络层;能连上、但模型列表是空的,才轮到模型层往下查。两种情况的修法完全不同,先别急着改配置。

  • 看 Open WebUI 设置里 Ollama 连接的状态,报错就查网络,能连上但列表空就查模型
  • 如果 Open WebUI 跑在 Docker 里、Ollama 跑在宿主机,容器里的 localhost 指向容器自己,必须换成宿主机地址或让两者走同一网络
  • 在 Open WebUI 容器里用 curl 打一次 Ollama 的接口,能返回模型 JSON 就说明路通了,问题在 UI 侧
  • 判断不适用:如果 Ollama 本身还没启动或端口没监听,这一节的所有检查都无从谈起,先回去把服务拉起来
# 在 Open WebUI 容器内执行,替换成你实际填的地址
curl http://ollama-host:11434/api/tags
# 能返回包含模型名的 JSON,说明网络这一层是通的

核对地址、端口和模型清单

如果上一步确认 Open WebUI 能连上 Ollama,那就要把地址和端口逐字核对一遍。很多人改地址时只改了主机,没动端口,或者多写了一个路径后缀,请求就会被 Ollama 拒绝或打到别的服务上。核对的唯一标准是:UI 里填的地址、端口、协议,和 Ollama 实际监听的完全一致。

检查项正确状态常见错法
监听地址Ollama 显式放开到可被访问的地址仍监听本机回环,外部请求进不来
端口号UI 填的与 Ollama 监听的一致主机改了端口没改,或多加后缀
协议http 与 https 对得上本地服务写了 https 连不上
模型清单Ollama 侧能列出目标模型本机其实没拉模型,清单为空

Ollama 默认只监听本机回环地址,别的容器或机器访问不到,需要显式放开监听地址并重启服务。然后在 Ollama 侧列出已下载的模型清单,确认目标模型确实在本机,把模型名和标签记下来,下一步要用。如果清单本身是空的,先拉一个模型下来再谈 UI 里看不看得到。

模型名、标签与拉取状态对不上

能连上、清单里也有模型,但 Open WebUI 里就是不显示,多半是名字匹配的问题。UI 里显示的条目直接来自 Ollama 返回的模型名,大小写、冒号后面的标签、拼写差一个字符都可能让它匹配不上。最稳的做法是直接从 Ollama 的命令行输出里复制模型名,粘到需要填的地方,不要凭记忆手打。

  • 大小写敏感,Ollama 返回的名字是什么样,引用时就得是什么样
  • 冒号后的标签别省略,省略了会被当成另一个模型
  • 确认拉取过程完整结束,中途断线留下的残缺条目有时不出现在列表里
  • 同一个模型有不同量化或参数规模的标签,别把别处文档里的写法直接抄进来当模型名
  • 判断不适用:如果只是 UI 下拉框没刷新,重启一次 Open WebUI 或重新拉取模型列表可能就好了,不必往下翻配置

用哪个名字去核对

最可靠的来源是 Ollama 侧列出的清单本身,而不是任何教程里的写法。把清单里的全名原样复制,作为一个稳定参照。如果你不确定某个名字是否有效,可以先在 Ollama 侧用这个名字跑一次问答,能正常对话说明这个名字是有效的,再去 UI 侧核对。

翻配置与日志找具体报错

前面几步都过了还是不行,就该翻配置和日志了。环境变量里跟 Ollama 地址、模型目录相关的项,改完之后必须重启对应容器或服务才生效,只改不重启等于没改。Open WebUI 的容器日志通常会写明请求打到了哪个地址、返回了什么状态码,这是最直接的线索,比反复点 UI 快得多。

  1. 看日志翻 Open WebUI 容器日志,找请求地址和返回状态码,先确定请求到底发出去了没
  2. 容器内 curl在 Open WebUI 容器里 curl 一次 Ollama 接口,验证容器内部能否到达
  3. 容器外 curl在宿主机或其他机器上再 curl 一次,区分是容器网络问题还是服务本身问题
  4. 回 UI 复测改完配置重启后回到 UI 看列表,用干净浏览器窗口排除代理或插件干扰

排查顺序建议固定成一条线:日志 → 容器内 curl → 容器外 curl → UI。从内往外或从外往内走一条线就行,别几处一起改,否则你无法判断到底哪一步起了作用。浏览器端如果开着代理或拦截插件,可能把本地请求也拦下来,用一个干净的浏览器窗口复测一次能省不少时间。

如果你已经确认模型清单和地址都对,但连接质量时好时坏,可以顺手在站内做一次延迟与可达性测试,把结果和日志对照着看,比单看某一侧更有说服力。

下一步想把地址、端口、常见错法对着看一遍,或者顺手测一下连到 Ollama 的延迟,可以到站内工具目录和测速页核对当时的数字,再回来按上面的顺序逐项排查。

常见问题

Ollama 命令行能用,为什么 Open WebUI 里就是没有模型?

这通常说明两边没连在同一个网络上。命令行走的是本机回环,而 Open WebUI 如果装在容器里,它看到的 localhost 是容器自己。把地址换成宿主机可达的地址、或者让两者处于同一网络,再重新拉一次模型列表试试。

模型已经拉下来了,Open WebUI 里显示的名字不一样?

UI 显示的条目名来自 Ollama 返回的模型标识,通常和你在命令行里看到的一致。如果对不上,先确认没有拼写或大小写差异,再确认拉取是否完整结束,残缺的条目有时不会被列出来。

改完配置还是不生效怎么办?

跟地址和目录相关的配置大多在进程启动时读取,改完必须重启对应的容器或服务。重启后仍不行,就看容器日志里那次请求实际打到了哪个地址、返回什么状态码,再决定动哪一层。

本文依据各平台公开文档与官方公告整理,只做中文归纳;具体做法、参数与限制以官方文档为准。