您现在的位置是:首页 >技术教程 >关于在Linux开发机上部署大模型过程中Openwebui无法识别Ollama本地模型的问题及解决方案网站首页技术教程

关于在Linux开发机上部署大模型过程中Openwebui无法识别Ollama本地模型的问题及解决方案

AreaSamsara 2025-07-16 00:01:03
简介关于在Linux开发机上部署大模型过程中Openwebui无法识别Ollama本地模型的问题及解决方案

本人是在windows本地机上远程连接了Linux云开发机,然后在开发机上安装了Ollama,并在开发机的Docker容器中部署了Openwebui,参考的文章是Ollama + Openwebui 本地部署大型模型与交互式可视化聊天-CSDN博客

前面的过程都很顺利,开发机中用Ollama可以和大模型正常对话,Openwebui界面也能在本地机的浏览器上正常打开,但在Openwebui的模型列表中无法找到Ollama中已经获取的大模型。

这一问题的核心原因是如果直接使用第一篇文章中的命令来部署Openwebui,处于docker内部的Openwebui将无法通过127.0.0.1直接连接到开发机上的Ollama:

docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

由于Ollama默认只能接收127.0.0.1和0.0.0.0的请求(在未设置时只能接收127.0.0.1的),故应当修改Ollama的环境变量使其能够接收0.0.0.0的请求(端口号也可以根据需求进行修改),通过vim /etc/systemd/system/ollama.service配置:

Environment=“OLLAMA_HOST=0.0.0.0”

关于配置环境变量,参考:Ollama 服务配置-常用环境变量_ollama环境变量配置-CSDN博客

并在此之后重新加载守护进程,重启Ollama(否则环境变量的修改将无法生效):

systemctl daemon-reload
systemctl restart ollama

这两步参考:浅谈人工智能之基于ollama的常见变量设置_ollama环境变量-CSDN博客

修改Ollama的环境变量之后,还应当修改部署Ollama的Docker语句并运行之:

docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -e OLLAMA_BASE_URL=http://172.17.0.1:11434 -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

这句命令在部署Openwebui的同时设置了OLLAMA_BASE_URL,使得Openwebui在请求模型列表时访问指定的IP地址而不是127.0.0.1。这里修改为172.17.0.1(其中11434是Ollama的默认端口)是因为这是从容器访问其宿主机的默认IP地址。可以在宿主机中使用以下Docker命令来查看指定容器用于访问宿主机的IP地址:

docker inspect <container_id_or_name>

输出信息中的Gateway字段的值就是宿主机的 IP 地址。比较容易混淆的一点是,在本地机上面通过浏览器访问Openwebui界面时,应该使用开发机相对于本地机的IP地址(而非这里说的Gateway)和Openwebui监听的端口(此处应是3000)。

关于修改OLLAMA_BASE_URL原因的具体说明和Windows系统的解决方案参考:解决Docker中使用 Open WebUI识别不到本地ollama中的模型_openwebui找不到本地模型-CSDN博客

完成上述步骤以后,在Openwebui的模型列表中就能看到Ollama的本地模型了:

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。