TabbyAPI / Any emulated OpenAI server is not working, only the real OpenAI #2116

Closed
opened 2025-11-11 15:00:37 -06:00 by GiteaMirror · 0 comments
Owner

Originally created by @Subarasheese on GitHub (Sep 18, 2024).

Bug Report

Installation Method

Docker

Environment

  • Open WebUI Version: v0.3.21

  • Operating System: Linux

  • Browser (if applicable): Firefox

Confirmation:

  • I have read and followed all the instructions provided in the README.md.
  • I am on the latest version of both Open WebUI and Ollama.
  • I have included the browser console logs.
  • I have included the Docker container logs.
  • I have provided the exact steps to reproduce the bug in the "Steps to Reproduce" section below.

Expected Behavior:

OpenWebUI to display the list of base models after successfully connecting to the API.

Actual Behavior:

OpenWebUI succesfully connects to the custom TabbyAPI endpoint (OpenAI-compatible), however the models are not being listed on the UI.

Description

Bug Summary:
I am running a TabbyAPI endpoint on my local machine, followed all steps and correctly set up the docker image to "see" the API running on the host system. I can get logs from Tabby and it seems to be pinged just fine (/v1/models return 200 OK), however, for mysterious reasons, OpenWebUI is not showing a list of models despite Tabby succesfully returning a json file a model list in the same format as OpenAI. OpenAI's API is working fine, though. So I suspect there is something hardcoded to OpenAI's endpoint somewhere.

Reproduction Details

Steps to Reproduce:
1 - Run any mock API that mimics OpenAI's outputs for /v1/models
2 - Use that as an OpenAI endpoint on OpenWebUI. In my case, the Docker image sees it as http://172.17.0.1:5000/v1
3 - It returns success, however, the models themselves are not being listed, despite the fake OpenAI API returning correct responses and listing models normally.

Logs and Screenshots

Browser Console Logs:
usage Object { models: [] } ​ models: Array [] ​​ length: 0

Docker Container Logs:

INFO:     172.17.0.1:45616 - "GET /static/favicon.png HTTP/1.1" 200 OK
INFO:     ('172.17.0.1', 45632) - "WebSocket /ws/socket.io/?EIO=4&transport=websocket" [accepted]
INFO:     connection open
INFO  [open_webui.apps.openai.main] get_all_models()
INFO  [open_webui.apps.openai.main] get_all_models()
user localuser(770cf32a-6391-4aa3-b8c7-3840d47662f0) connected with session ID jjeeSVomByUJTXObAAAD
INFO:     172.17.0.1:45634 - "GET /_app/immutable/nodes/0.nGSUZQpP.js.map HTTP/1.1" 304 Not Modified
INFO:     172.17.0.1:45616 - "GET /api/v1/auths/ HTTP/1.1" 200 OK
INFO  [open_webui.apps.openai.main] get_all_models()
INFO:     172.17.0.1:45616 - "GET /api/config HTTP/1.1" 200 OK
INFO  [open_webui.apps.openai.main] get_all_models()
INFO:     172.17.0.1:45616 - "GET /api/changelog HTTP/1.1" 200 OK
INFO  [open_webui.apps.openai.main] get_all_models()
INFO:     172.17.0.1:45616 - "GET /api/v1/users/user/settings HTTP/1.1" 200 OK
INFO  [open_webui.apps.openai.main] get_all_models()
INFO  [open_webui.apps.openai.main] get_all_models()
INFO  [open_webui.apps.openai.main] get_all_models()
INFO  [open_webui.apps.openai.main] get_all_models()
INFO  [open_webui.apps.openai.main] get_all_models()
INFO  [open_webui.apps.openai.main] get_all_models()
INFO:     172.17.0.1:45616 - "GET /api/v1/prompts/ HTTP/1.1" 200 OK
INFO  [open_webui.apps.openai.main] get_all_models()
INFO:     172.17.0.1:45644 - "GET /api/v1/functions/ HTTP/1.1" 200 OK
INFO:     172.17.0.1:45638 - "GET /api/v1/documents/ HTTP/1.1" 200 OK
INFO:     172.17.0.1:45640 - "GET /api/v1/tools/ HTTP/1.1" 200 OK
INFO:     172.17.0.1:45656 - "GET /api/v1/chats/tags/all HTTP/1.1" 200 OK
INFO  [open_webui.apps.openai.main] get_all_models()
INFO:     172.17.0.1:45616 - "GET /api/models HTTP/1.1" 200 OK
INFO:     172.17.0.1:45648 - "GET /api/v1/configs/banners HTTP/1.1" 200 OK
INFO  [open_webui.apps.openai.main] get_all_models()
INFO:     172.17.0.1:45634 - "GET /_app/immutable/chunks/index.020-2ST5.js.map HTTP/1.1" 304 Not Modified
INFO  [open_webui.apps.openai.main] get_all_models()
INFO  [open_webui.apps.openai.main] get_all_models()
INFO  [open_webui.apps.openai.main] get_all_models()
INFO:     172.17.0.1:45638 - "GET /api/webhook HTTP/1.1" 200 OK
INFO:     172.17.0.1:45616 - "POST /api/v1/chats/tags HTTP/1.1" 200 OK
INFO:     172.17.0.1:45644 - "GET /api/v1/auths/admin/config HTTP/1.1" 200 OK
INFO  [open_webui.apps.openai.main] get_all_models()
INFO:     172.17.0.1:45616 - "GET /api/v1/chats/?page=1 HTTP/1.1" 200 OK
INFO  [open_webui.apps.openai.main] get_all_models()
INFO:     172.17.0.1:45616 - "GET /api/v1/chats/?page=2 HTTP/1.1" 200 OK
INFO  [open_webui.apps.openai.main] get_all_models()
INFO  [open_webui.apps.ollama.main] get_all_models()
INFO:     172.17.0.1:45616 - "GET /ollama/config HTTP/1.1" 200 OK
INFO  [open_webui.apps.openai.main] get_all_models()
INFO:     172.17.0.1:45616 - "GET /_app/immutable/assets/Toaster.CqNDpgoD.css HTTP/1.1" 200 OK
INFO  [open_webui.apps.openai.main] get_all_models()
INFO  [open_webui.apps.ollama.main] get_all_models()
INFO  [open_webui.apps.openai.main] get_all_models()
INFO  [open_webui.apps.openai.main] get_all_models()
INFO:     172.17.0.1:45616 - "GET /ollama/urls HTTP/1.1" 200 OK
INFO:     172.17.0.1:45644 - "GET /openai/urls HTTP/1.1" 200 OK
INFO:     172.17.0.1:45638 - "GET /openai/keys HTTP/1.1" 200 OK
INFO  [open_webui.apps.openai.main] get_all_models()
INFO  [open_webui.apps.openai.main] get_all_models()
INFO  [open_webui.apps.ollama.main] get_all_models()
INFO:     172.17.0.1:45616 - "GET /ollama/config HTTP/1.1" 200 OK
INFO:     172.17.0.1:45644 - "GET /openai/models/0 HTTP/1.1" 200 OK
INFO  [open_webui.apps.openai.main] get_all_models()
INFO:     172.17.0.1:45616 - "GET /openai/config HTTP/1.1" 200 OK
INFO  [open_webui.apps.openai.main] get_all_models()
INFO  [open_webui.apps.openai.main] get_all_models()
INFO:     172.17.0.1:45616 - "GET /api/v1/users/permissions/user HTTP/1.1" 200 OK
INFO  [open_webui.apps.openai.main] get_all_models()
INFO:     172.17.0.1:45616 - "GET /api/config/model/filter HTTP/1.1" 200 OK
INFO  [open_webui.apps.openai.main] get_all_models()
INFO  [open_webui.apps.openai.main] get_all_models()
INFO  [open_webui.apps.openai.main] get_all_models()

Screenshots/Screen Recordings (if applicable):
image
image
image

Additional Information

TabbyAPI can be downloaded right here:

https://github.com/theroyallab/tabbyAPI

If you need to create a mock API, use OpenAI's response for /v1/models as seen below:


{
    "object": "list",
    "data": [
        {
            "id": "gpt-3.5-turbo",
            "object": "model",
            "created": 1677610602,
            "owned_by": "openai"
        },
        {
            "id": "gpt-3.5-turbo-0125",
            "object": "model",
            "created": 1706048358,
            "owned_by": "system"
        },
        {
            "id": "dall-e-2",
            "object": "model",
            "created": 1698798177,
            "owned_by": "system"
        },
        {
            "id": "gpt-4-1106-preview",
            "object": "model",
            "created": 1698957206,
            "owned_by": "system"
        },
        {
            "id": "tts-1-hd-1106",
            "object": "model",
            "created": 1699053533,
            "owned_by": "system"
        },
        {
            "id": "tts-1-hd",
            "object": "model",
            "created": 1699046015,
            "owned_by": "system"
        },
        {
            "id": "dall-e-3",
            "object": "model",
            "created": 1698785189,
            "owned_by": "system"
        },
        {
            "id": "whisper-1",
            "object": "model",
            "created": 1677532384,
            "owned_by": "openai-internal"
        },
        {
            "id": "text-embedding-3-large",
            "object": "model",
            "created": 1705953180,
            "owned_by": "system"
        },
        {
            "id": "text-embedding-ada-002",
            "object": "model",
            "created": 1671217299,
            "owned_by": "openai-internal"
        },
        {
            "id": "gpt-4-turbo",
            "object": "model",
            "created": 1712361441,
            "owned_by": "system"
        },
        {
            "id": "gpt-4o-2024-05-13",
            "object": "model",
            "created": 1715368132,
            "owned_by": "system"
        },
        {
            "id": "gpt-4-0125-preview",
            "object": "model",
            "created": 1706037612,
            "owned_by": "system"
        },
        {
            "id": "gpt-4-turbo-2024-04-09",
            "object": "model",
            "created": 1712601677,
            "owned_by": "system"
        },
        {
            "id": "gpt-4-turbo-preview",
            "object": "model",
            "created": 1706037777,
            "owned_by": "system"
        },
        {
            "id": "tts-1-1106",
            "object": "model",
            "created": 1699053241,
            "owned_by": "system"
        },
        {
            "id": "tts-1",
            "object": "model",
            "created": 1681940951,
            "owned_by": "openai-internal"
        },
        {
            "id": "gpt-3.5-turbo-16k",
            "object": "model",
            "created": 1683758102,
            "owned_by": "openai-internal"
        },
        {
            "id": "gpt-4o",
            "object": "model",
            "created": 1715367049,
            "owned_by": "system"
        },
        {
            "id": "gpt-3.5-turbo-1106",
            "object": "model",
            "created": 1698959748,
            "owned_by": "system"
        },
        {
            "id": "gpt-3.5-turbo-instruct-0914",
            "object": "model",
            "created": 1694122472,
            "owned_by": "system"
        },
        {
            "id": "gpt-4",
            "object": "model",
            "created": 1687882411,
            "owned_by": "openai"
        },
        {
            "id": "gpt-4-0613",
            "object": "model",
            "created": 1686588896,
            "owned_by": "openai"
        },
        {
            "id": "gpt-3.5-turbo-instruct",
            "object": "model",
            "created": 1692901427,
            "owned_by": "system"
        },
        {
            "id": "chatgpt-4o-latest",
            "object": "model",
            "created": 1723515131,
            "owned_by": "system"
        },
        {
            "id": "babbage-002",
            "object": "model",
            "created": 1692634615,
            "owned_by": "system"
        },
        {
            "id": "davinci-002",
            "object": "model",
            "created": 1692634301,
            "owned_by": "system"
        },
        {
            "id": "gpt-4o-mini-2024-07-18",
            "object": "model",
            "created": 1721172717,
            "owned_by": "system"
        },
        {
            "id": "gpt-4o-mini",
            "object": "model",
            "created": 1721172741,
            "owned_by": "system"
        },
        {
            "id": "text-embedding-3-small",
            "object": "model",
            "created": 1705948997,
            "owned_by": "system"
        },
        {
            "id": "gpt-4o-2024-08-06",
            "object": "model",
            "created": 1722814719,
            "owned_by": "system"
        }
    ]
Originally created by @Subarasheese on GitHub (Sep 18, 2024). # Bug Report ## Installation Method Docker ## Environment - **Open WebUI Version:** v0.3.21 - **Operating System:** Linux - **Browser (if applicable):** Firefox **Confirmation:** - [X] I have read and followed all the instructions provided in the README.md. - [X] I am on the latest version of both Open WebUI and Ollama. - [X] I have included the browser console logs. - [X] I have included the Docker container logs. - [X] I have provided the exact steps to reproduce the bug in the "Steps to Reproduce" section below. ## Expected Behavior: OpenWebUI to display the list of base models after successfully connecting to the API. ## Actual Behavior: OpenWebUI succesfully connects to the custom TabbyAPI endpoint (OpenAI-compatible), however the models are not being listed on the UI. ## Description **Bug Summary:** I am running a TabbyAPI endpoint on my local machine, followed all steps and correctly set up the docker image to "see" the API running on the host system. I can get logs from Tabby and it seems to be pinged just fine (/v1/models return 200 OK), however, for mysterious reasons, OpenWebUI is not showing a list of models despite Tabby succesfully returning a json file a model list in the same format as OpenAI. OpenAI's API is working fine, though. So I suspect there is something hardcoded to OpenAI's endpoint somewhere. ## Reproduction Details **Steps to Reproduce:** 1 - Run any mock API that mimics OpenAI's outputs for /v1/models 2 - Use that as an OpenAI endpoint on OpenWebUI. In my case, the Docker image sees it as http://172.17.0.1:5000/v1 3 - It returns success, however, the models themselves are not being listed, despite the fake OpenAI API returning correct responses and listing models normally. ## Logs and Screenshots **Browser Console Logs:** `usage Object { models: [] } ​ models: Array [] ​​ length: 0` **Docker Container Logs:** ``` INFO: 172.17.0.1:45616 - "GET /static/favicon.png HTTP/1.1" 200 OK INFO: ('172.17.0.1', 45632) - "WebSocket /ws/socket.io/?EIO=4&transport=websocket" [accepted] INFO: connection open INFO [open_webui.apps.openai.main] get_all_models() INFO [open_webui.apps.openai.main] get_all_models() user localuser(770cf32a-6391-4aa3-b8c7-3840d47662f0) connected with session ID jjeeSVomByUJTXObAAAD INFO: 172.17.0.1:45634 - "GET /_app/immutable/nodes/0.nGSUZQpP.js.map HTTP/1.1" 304 Not Modified INFO: 172.17.0.1:45616 - "GET /api/v1/auths/ HTTP/1.1" 200 OK INFO [open_webui.apps.openai.main] get_all_models() INFO: 172.17.0.1:45616 - "GET /api/config HTTP/1.1" 200 OK INFO [open_webui.apps.openai.main] get_all_models() INFO: 172.17.0.1:45616 - "GET /api/changelog HTTP/1.1" 200 OK INFO [open_webui.apps.openai.main] get_all_models() INFO: 172.17.0.1:45616 - "GET /api/v1/users/user/settings HTTP/1.1" 200 OK INFO [open_webui.apps.openai.main] get_all_models() INFO [open_webui.apps.openai.main] get_all_models() INFO [open_webui.apps.openai.main] get_all_models() INFO [open_webui.apps.openai.main] get_all_models() INFO [open_webui.apps.openai.main] get_all_models() INFO [open_webui.apps.openai.main] get_all_models() INFO: 172.17.0.1:45616 - "GET /api/v1/prompts/ HTTP/1.1" 200 OK INFO [open_webui.apps.openai.main] get_all_models() INFO: 172.17.0.1:45644 - "GET /api/v1/functions/ HTTP/1.1" 200 OK INFO: 172.17.0.1:45638 - "GET /api/v1/documents/ HTTP/1.1" 200 OK INFO: 172.17.0.1:45640 - "GET /api/v1/tools/ HTTP/1.1" 200 OK INFO: 172.17.0.1:45656 - "GET /api/v1/chats/tags/all HTTP/1.1" 200 OK INFO [open_webui.apps.openai.main] get_all_models() INFO: 172.17.0.1:45616 - "GET /api/models HTTP/1.1" 200 OK INFO: 172.17.0.1:45648 - "GET /api/v1/configs/banners HTTP/1.1" 200 OK INFO [open_webui.apps.openai.main] get_all_models() INFO: 172.17.0.1:45634 - "GET /_app/immutable/chunks/index.020-2ST5.js.map HTTP/1.1" 304 Not Modified INFO [open_webui.apps.openai.main] get_all_models() INFO [open_webui.apps.openai.main] get_all_models() INFO [open_webui.apps.openai.main] get_all_models() INFO: 172.17.0.1:45638 - "GET /api/webhook HTTP/1.1" 200 OK INFO: 172.17.0.1:45616 - "POST /api/v1/chats/tags HTTP/1.1" 200 OK INFO: 172.17.0.1:45644 - "GET /api/v1/auths/admin/config HTTP/1.1" 200 OK INFO [open_webui.apps.openai.main] get_all_models() INFO: 172.17.0.1:45616 - "GET /api/v1/chats/?page=1 HTTP/1.1" 200 OK INFO [open_webui.apps.openai.main] get_all_models() INFO: 172.17.0.1:45616 - "GET /api/v1/chats/?page=2 HTTP/1.1" 200 OK INFO [open_webui.apps.openai.main] get_all_models() INFO [open_webui.apps.ollama.main] get_all_models() INFO: 172.17.0.1:45616 - "GET /ollama/config HTTP/1.1" 200 OK INFO [open_webui.apps.openai.main] get_all_models() INFO: 172.17.0.1:45616 - "GET /_app/immutable/assets/Toaster.CqNDpgoD.css HTTP/1.1" 200 OK INFO [open_webui.apps.openai.main] get_all_models() INFO [open_webui.apps.ollama.main] get_all_models() INFO [open_webui.apps.openai.main] get_all_models() INFO [open_webui.apps.openai.main] get_all_models() INFO: 172.17.0.1:45616 - "GET /ollama/urls HTTP/1.1" 200 OK INFO: 172.17.0.1:45644 - "GET /openai/urls HTTP/1.1" 200 OK INFO: 172.17.0.1:45638 - "GET /openai/keys HTTP/1.1" 200 OK INFO [open_webui.apps.openai.main] get_all_models() INFO [open_webui.apps.openai.main] get_all_models() INFO [open_webui.apps.ollama.main] get_all_models() INFO: 172.17.0.1:45616 - "GET /ollama/config HTTP/1.1" 200 OK INFO: 172.17.0.1:45644 - "GET /openai/models/0 HTTP/1.1" 200 OK INFO [open_webui.apps.openai.main] get_all_models() INFO: 172.17.0.1:45616 - "GET /openai/config HTTP/1.1" 200 OK INFO [open_webui.apps.openai.main] get_all_models() INFO [open_webui.apps.openai.main] get_all_models() INFO: 172.17.0.1:45616 - "GET /api/v1/users/permissions/user HTTP/1.1" 200 OK INFO [open_webui.apps.openai.main] get_all_models() INFO: 172.17.0.1:45616 - "GET /api/config/model/filter HTTP/1.1" 200 OK INFO [open_webui.apps.openai.main] get_all_models() INFO [open_webui.apps.openai.main] get_all_models() INFO [open_webui.apps.openai.main] get_all_models() ``` **Screenshots/Screen Recordings (if applicable):** ![image](https://github.com/user-attachments/assets/4025c0de-f8fd-4dd8-aa32-b384db0bd0ab) ![image](https://github.com/user-attachments/assets/17c7f3ae-8a8f-4910-b96f-7e8ce01fa23c) ![image](https://github.com/user-attachments/assets/c86e5a36-e022-463b-8606-791de8c15c28) ## Additional Information TabbyAPI can be downloaded right here: https://github.com/theroyallab/tabbyAPI If you need to create a mock API, use OpenAI's response for /v1/models as seen below: ``` { "object": "list", "data": [ { "id": "gpt-3.5-turbo", "object": "model", "created": 1677610602, "owned_by": "openai" }, { "id": "gpt-3.5-turbo-0125", "object": "model", "created": 1706048358, "owned_by": "system" }, { "id": "dall-e-2", "object": "model", "created": 1698798177, "owned_by": "system" }, { "id": "gpt-4-1106-preview", "object": "model", "created": 1698957206, "owned_by": "system" }, { "id": "tts-1-hd-1106", "object": "model", "created": 1699053533, "owned_by": "system" }, { "id": "tts-1-hd", "object": "model", "created": 1699046015, "owned_by": "system" }, { "id": "dall-e-3", "object": "model", "created": 1698785189, "owned_by": "system" }, { "id": "whisper-1", "object": "model", "created": 1677532384, "owned_by": "openai-internal" }, { "id": "text-embedding-3-large", "object": "model", "created": 1705953180, "owned_by": "system" }, { "id": "text-embedding-ada-002", "object": "model", "created": 1671217299, "owned_by": "openai-internal" }, { "id": "gpt-4-turbo", "object": "model", "created": 1712361441, "owned_by": "system" }, { "id": "gpt-4o-2024-05-13", "object": "model", "created": 1715368132, "owned_by": "system" }, { "id": "gpt-4-0125-preview", "object": "model", "created": 1706037612, "owned_by": "system" }, { "id": "gpt-4-turbo-2024-04-09", "object": "model", "created": 1712601677, "owned_by": "system" }, { "id": "gpt-4-turbo-preview", "object": "model", "created": 1706037777, "owned_by": "system" }, { "id": "tts-1-1106", "object": "model", "created": 1699053241, "owned_by": "system" }, { "id": "tts-1", "object": "model", "created": 1681940951, "owned_by": "openai-internal" }, { "id": "gpt-3.5-turbo-16k", "object": "model", "created": 1683758102, "owned_by": "openai-internal" }, { "id": "gpt-4o", "object": "model", "created": 1715367049, "owned_by": "system" }, { "id": "gpt-3.5-turbo-1106", "object": "model", "created": 1698959748, "owned_by": "system" }, { "id": "gpt-3.5-turbo-instruct-0914", "object": "model", "created": 1694122472, "owned_by": "system" }, { "id": "gpt-4", "object": "model", "created": 1687882411, "owned_by": "openai" }, { "id": "gpt-4-0613", "object": "model", "created": 1686588896, "owned_by": "openai" }, { "id": "gpt-3.5-turbo-instruct", "object": "model", "created": 1692901427, "owned_by": "system" }, { "id": "chatgpt-4o-latest", "object": "model", "created": 1723515131, "owned_by": "system" }, { "id": "babbage-002", "object": "model", "created": 1692634615, "owned_by": "system" }, { "id": "davinci-002", "object": "model", "created": 1692634301, "owned_by": "system" }, { "id": "gpt-4o-mini-2024-07-18", "object": "model", "created": 1721172717, "owned_by": "system" }, { "id": "gpt-4o-mini", "object": "model", "created": 1721172741, "owned_by": "system" }, { "id": "text-embedding-3-small", "object": "model", "created": 1705948997, "owned_by": "system" }, { "id": "gpt-4o-2024-08-06", "object": "model", "created": 1722814719, "owned_by": "system" } ] ```
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#2116