Bootstrap

OpenWebUI配置异常的外部模型导致页面无法打开

一、使用Ollama关闭OpenAI

OpenWebUI自带OpenAI的API设置,且默认是打开的,默认情况下,启动后,会不断的去连https://api.openai.com/v1,但是无法连上,会报错,但是不会影响页面,能正常打开。

本地搭建Ollama部署DeepSeek后,配置了DeepSeek的模型,关闭了OpenAI后,能正常使用。

二、配置硅基流动

最近看到很多文章提到硅基流动,由于工作需要以及同事推荐,也注册了一个帐号,同时申请了一个API Key,然后,试下能不能将这个API Key配置到OpenWebUI里面来使用。

配置如下:

API基础地址https://api.siliconflow.cn/v1
前缀deepseek-ai/DeepSeek-R1
API Key****

配置完保存,在模型里面没看到新的模型,检查异常日志:

docker logs -f open-webui(都是中划线,怎么看着f前面的像下划线)

INFO:     172.20.19.134:59477 - "GET /ollama/config HTTP/1.1" 200 OK
INFO:     172.20.19.134:59478 - "GET /openai/config HTTP/1.1" 200 OK
ERROR [open_webui.routers.openai] Client error: %E2%80%8Bhttps://api.siliconflow.cn/v1%E2%80%8B/models
Traceback (most recent call last):
  File "/app/backend/open_webui/routers/openai.py", line 433, in get_models
    async with session.get(
  File "/usr/local/lib/python3.11/site-packages/aiohttp/client.py", line 1425, in __aenter__
    self._resp: _RetType = await self._coro
                           ^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/aiohttp/client.py", line 622, in _request
    raise err_exc_cls(url)
aiohttp.client_exceptions.InvalidUrlClientError: %E2%80%8Bhttps://api.siliconflow.cn/v1%E2%80%8B/models

发现访问地址里面前后多了一些奇怪的编码,然后再检查配置,发现链接里面,用光标移动时,居然有隐藏的符号,使用删除键删除后,保存。

切换到模型后,发现多了很多模型:

对模型进行设置,停用以及可见性设置为公开。然后在对话时就可以使用了。

正常对话如下,稍微有点慢

检查硅基流动费用情况如下

轨迹流动邀请注册地址:硅基流动统一登录,注册完后在模型广场,选中一个模型,点击在线体验可以进行对话。系统会赠送费用,也可以选择免费版体验。

三、问题出现

使用联网搜索时,一直卡着搜索不动,所以重启了下OpenWebUI,docker restart open-webui,重启后,无法进入系统了。报错500,有时候在网络工具里面显示500。

检查日志,提示无法连接https://api.siliconflow.cn/v1,访问异常。参考异常如下,实际可能还会有其他异常。

INFO  [open_webui.routers.openai] get_all_models()
ERROR [open_webui.routers.openai] 403, message='Forbidden', url='https://api.siliconflow.cn/v1/chat/completions'
Traceback (most recent call last):
  File "/app/backend/open_webui/routers/openai.py", line 696, in generate_chat_completion
    r.raise_for_status()
  File "/usr/local/lib/python3.11/site-packages/aiohttp/client_reqrep.py", line 1161, in raise_for_status
    raise ClientResponseError(
aiohttp.client_exceptions.ClientResponseError: 403, message='Forbidden', url='https://api.siliconflow.cn/v1/chat/completions'
INFO:     172.20.19.56:65161 - "POST /api/chat/completions HTTP/1.1" 400 Bad Request
INFO:     172.20.19.56:65161 - "GET /api/v1/chats/?page=1 HTTP/1.1" 200 OK

四、问题处理

页面都无法打开了,管理员页面也无法打开,上网也没收到答案,莫非要重装,不想重装,按照DeepSeek给的答案,尝试进入docker里面找.env或者类似的配置文件,都没找到,不过看到docker映射出来的/root/open-webui/data目录下有个webui.db,用navicat打开。

好家伙,看到一个config表,将config表里面的内容复制出来,使用json格式化工具格式化后一目了然。

找到openai的部分,配置改成false,就不会去连接了,或者按需修改其他内容都可以,建议直接修改原数据,不要修改格式化之后的数据,修改后记得提交。

停止OpenWebUI,docker stop open-webui,备份原数据库,覆盖原数据库后,启动OpenWebUI,docker start open-webui,系统可以正常访问并进行相关设置。如果遇到其他问题,也可以尝试直接修改数据库,后续可以定期备份数据库,遇到异常情况,可以还原。

;