Can't select ollama models #656

Closed
opened 2025-11-11 14:28:22 -06:00 by GiteaMirror · 1 comment
Owner

Originally created by @eliezersouzareis on GitHub (Apr 15, 2024).

Bug Report

Description

Bug Summary:
The dropdown to select models in the application is not functioning as expected.

Steps to Reproduce:

  1. Access the application.
  2. Navigate to the dropdown to select models.
  3. Attempt to select a model.

Expected Behavior:
When selecting a model from the dropdown, it should activate or display relevant information.

Actual Behavior:
Selecting a model from the dropdown does not trigger any action or display relevant information.

Environment

  • Operating System: Manjaro
  • Browser (if applicable): Firefox 124.0.1

Reproduction Details

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.

Logs and Screenshots

Browser Console Logs:
[Include relevant browser console logs, if applicable]

Docker Container Logs:
here is the most relevant logs

open-webui  | Traceback (most recent call last):
open-webui  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 411, in run_asgi
open-webui  |     result = await app(  # type: ignore[func-returns-value]
open-webui  |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
open-webui  |   File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 69, in __call__
open-webui  |     return await self.app(scope, receive, send)
open-webui  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
open-webui  |   File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1054, in __call__
open-webui  |     await super().__call__(scope, receive, send)
open-webui  |   File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 123, in __call__
open-webui  |     await self.middleware_stack(scope, receive, send)
open-webui  |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in __call__
open-webui  |     raise exc
open-webui  |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__
open-webui  |     await self.app(scope, receive, _send)
open-webui  |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__
open-webui  |     with collapse_excgroups():
open-webui  |   File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__
open-webui  |     self.gen.throw(typ, value, traceback)
open-webui  |   File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups
open-webui  |     raise exc
open-webui  |   File "/usr/local/lib/python3.11/site-packages/starlette/responses.py", line 261, in wrap
open-webui  |     await func()
open-webui  |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 217, in stream_response
open-webui  |     return await super().stream_response(send)
open-webui  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
open-webui  |   File "/usr/local/lib/python3.11/site-packages/starlette/responses.py", line 250, in stream_response
open-webui  |     async for chunk in self.body_iterator:
open-webui  |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 181, in body_stream
open-webui  |     raise app_exc
open-webui  |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro
open-webui  |     await self.app(scope, receive_or_disconnect, send_no_error)
open-webui  |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/cors.py", line 85, in __call__
open-webui  |     await self.app(scope, receive, send)
open-webui  |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__
open-webui  |     with collapse_excgroups():
open-webui  |   File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__
open-webui  |     self.gen.throw(typ, value, traceback)
open-webui  |   File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups
open-webui  |     raise exc
open-webui  |   File "/usr/local/lib/python3.11/site-packages/starlette/responses.py", line 261, in wrap
open-webui  |     await func()
open-webui  |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 217, in stream_response
open-webui  |     return await super().stream_response(send)
open-webui  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
open-webui  |   File "/usr/local/lib/python3.11/site-packages/starlette/responses.py", line 250, in stream_response
open-webui  |     async for chunk in self.body_iterator:
open-webui  |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 181, in body_stream
open-webui  |     raise app_exc
open-webui  |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro
open-webui  |     await self.app(scope, receive_or_disconnect, send_no_error)
open-webui  |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 65, in __call__
open-webui  |     await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
open-webui  |   File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app
open-webui  |     raise exc
open-webui  |   File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
open-webui  |     await app(scope, receive, sender)
open-webui  |   File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 756, in __call__
open-webui  |     await self.middleware_stack(scope, receive, send)
open-webui  |   File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 776, in app
open-webui  |     await route.handle(scope, receive, send)
open-webui  |   File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 485, in handle
open-webui  |     await self.app(scope, receive, send)
open-webui  |   File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1054, in __call__
open-webui  |     await super().__call__(scope, receive, send)
open-webui  |   File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 123, in __call__
open-webui  |     await self.middleware_stack(scope, receive, send)
open-webui  |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in __call__
open-webui  |     raise exc
open-webui  |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__
open-webui  |     await self.app(scope, receive, _send)
open-webui  |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__
open-webui  |     with collapse_excgroups():
open-webui  |   File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__
open-webui  |     self.gen.throw(typ, value, traceback)
open-webui  |   File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups
open-webui  |     raise exc
open-webui  |   File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__
open-webui  |     response = await self.dispatch_func(request, call_next)
open-webui  |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
open-webui  |   File "/app/backend/apps/ollama/main.py", line 76, in check_url
open-webui  |     await get_all_models()
open-webui  |   File "/app/backend/apps/ollama/main.py", line 158, in get_all_models
open-webui  |     app.state.MODELS = {model["model"]: model for model in models["models"]}
open-webui  |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
open-webui  |   File "/app/backend/apps/ollama/main.py", line 158, in <dictcomp>
open-webui  |     app.state.MODELS = {model["model"]: model for model in models["models"]}
open-webui  |                         ~~~~~^^^^^^^^^
open-webui  | KeyError: 'model'
open-webui  | INFO:apps.openai.main:get_all_models()

Screenshots (if applicable):
[Attach any relevant screenshots to help illustrate the issue]

Installation Method

Installed ollama using package manager then set up ollama as service and to listen on port 11434.
After that I cobbled the following docker compose file

version: '3.8'

services:
  open-webui:
    container_name: open-webui
    image: ghcr.io/open-webui/open-webui:main
    network_mode: 'host'
    ports:
      - "3000:8080"
    extra_hosts:
      - 'host.docker.internal:host-gateway'
    volumes:
      - open-webui:/app/backend/data
    environment:
      - OLLAMA_BASE_URL=http://127.0.0.1:11434
    restart: always

volumes:
  open-webui:

and ran docker compose up

Additional Information

  • The application is running on Docker (image: ghcr.io/open-webui/open-webui:main).
  • Ollama version: 0.1.17 is installed externally on my computer.
  • It seems to be a development error since the API documentation for /api/tags (https://github.com/ollama/ollama/blob/v0.1.32/docs/api.md#list-local-models) shows that there is no 'model' key.
  • Even after fixing the current issue (by changing model["model"] to model["name"]), the list of models shows up but cannot be selected (clicking them does not trigger any action).
Originally created by @eliezersouzareis on GitHub (Apr 15, 2024). # Bug Report ## Description **Bug Summary:** The dropdown to select models in the application is not functioning as expected. **Steps to Reproduce:** 1. Access the application. 2. Navigate to the dropdown to select models. 3. Attempt to select a model. **Expected Behavior:** When selecting a model from the dropdown, it should activate or display relevant information. **Actual Behavior:** Selecting a model from the dropdown does not trigger any action or display relevant information. ## Environment - **Operating System:** Manjaro - **Browser (if applicable):** Firefox 124.0.1 ## Reproduction Details **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. - [ ] I have included the browser console logs. - [x] I have included the Docker container logs. ## Logs and Screenshots **Browser Console Logs:** [Include relevant browser console logs, if applicable] **Docker Container Logs:** here is the most relevant logs ``` open-webui | Traceback (most recent call last): open-webui | File "/usr/local/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 411, in run_asgi open-webui | result = await app( # type: ignore[func-returns-value] open-webui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ open-webui | File "/usr/local/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 69, in __call__ open-webui | return await self.app(scope, receive, send) open-webui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ open-webui | File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1054, in __call__ open-webui | await super().__call__(scope, receive, send) open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 123, in __call__ open-webui | await self.middleware_stack(scope, receive, send) open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in __call__ open-webui | raise exc open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__ open-webui | await self.app(scope, receive, _send) open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__ open-webui | with collapse_excgroups(): open-webui | File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__ open-webui | self.gen.throw(typ, value, traceback) open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups open-webui | raise exc open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/responses.py", line 261, in wrap open-webui | await func() open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 217, in stream_response open-webui | return await super().stream_response(send) open-webui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/responses.py", line 250, in stream_response open-webui | async for chunk in self.body_iterator: open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 181, in body_stream open-webui | raise app_exc open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro open-webui | await self.app(scope, receive_or_disconnect, send_no_error) open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/cors.py", line 85, in __call__ open-webui | await self.app(scope, receive, send) open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__ open-webui | with collapse_excgroups(): open-webui | File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__ open-webui | self.gen.throw(typ, value, traceback) open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups open-webui | raise exc open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/responses.py", line 261, in wrap open-webui | await func() open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 217, in stream_response open-webui | return await super().stream_response(send) open-webui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/responses.py", line 250, in stream_response open-webui | async for chunk in self.body_iterator: open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 181, in body_stream open-webui | raise app_exc open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 151, in coro open-webui | await self.app(scope, receive_or_disconnect, send_no_error) open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 65, in __call__ open-webui | await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send) open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 64, in wrapped_app open-webui | raise exc open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app open-webui | await app(scope, receive, sender) open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 756, in __call__ open-webui | await self.middleware_stack(scope, receive, send) open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 776, in app open-webui | await route.handle(scope, receive, send) open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 485, in handle open-webui | await self.app(scope, receive, send) open-webui | File "/usr/local/lib/python3.11/site-packages/fastapi/applications.py", line 1054, in __call__ open-webui | await super().__call__(scope, receive, send) open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/applications.py", line 123, in __call__ open-webui | await self.middleware_stack(scope, receive, send) open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in __call__ open-webui | raise exc open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in __call__ open-webui | await self.app(scope, receive, _send) open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 189, in __call__ open-webui | with collapse_excgroups(): open-webui | File "/usr/local/lib/python3.11/contextlib.py", line 158, in __exit__ open-webui | self.gen.throw(typ, value, traceback) open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/_utils.py", line 93, in collapse_excgroups open-webui | raise exc open-webui | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 191, in __call__ open-webui | response = await self.dispatch_func(request, call_next) open-webui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ open-webui | File "/app/backend/apps/ollama/main.py", line 76, in check_url open-webui | await get_all_models() open-webui | File "/app/backend/apps/ollama/main.py", line 158, in get_all_models open-webui | app.state.MODELS = {model["model"]: model for model in models["models"]} open-webui | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ open-webui | File "/app/backend/apps/ollama/main.py", line 158, in <dictcomp> open-webui | app.state.MODELS = {model["model"]: model for model in models["models"]} open-webui | ~~~~~^^^^^^^^^ open-webui | KeyError: 'model' open-webui | INFO:apps.openai.main:get_all_models() ``` **Screenshots (if applicable):** [Attach any relevant screenshots to help illustrate the issue] ## Installation Method Installed ollama using package manager then set up ollama as service and to listen on port 11434. After that I cobbled the following docker compose file ```yml version: '3.8' services: open-webui: container_name: open-webui image: ghcr.io/open-webui/open-webui:main network_mode: 'host' ports: - "3000:8080" extra_hosts: - 'host.docker.internal:host-gateway' volumes: - open-webui:/app/backend/data environment: - OLLAMA_BASE_URL=http://127.0.0.1:11434 restart: always volumes: open-webui: ``` and ran `docker compose up` ## Additional Information - The application is running on Docker (image: ghcr.io/open-webui/open-webui:main). - Ollama version: 0.1.17 is installed externally on my computer. - It seems to be a development error since the API documentation for `/api/tags` (https://github.com/ollama/ollama/blob/v0.1.32/docs/api.md#list-local-models) shows that there is no 'model' key. - Even after fixing the current issue (by changing `model["model"]` to `model["name"]`), the list of models shows up but cannot be selected (clicking them does not trigger any action).
Author
Owner

@ghost commented on GitHub (Apr 15, 2024):

* Ollama version: 0.1.17 is installed externally on my computer.

That is an ancient version of Ollama is there a good reason you're using it? I'm fairly certain that there are vulnerabilities like this. I'm not sure that we're compatible with it anymore. See this commit which deprecates name from many types and adds model everywhere: ollama/ollama@1f5b7ff976

@ghost commented on GitHub (Apr 15, 2024): > * Ollama version: 0.1.17 is installed externally on my computer. That is an ancient version of Ollama is there a good reason you're using it? I'm fairly certain that there are [vulnerabilities like this](https://github.com/advisories/GHSA-5jx5-hqx5-2vrj). I'm not sure that we're compatible with it anymore. See this commit which deprecates `name` from many types and adds `model` everywhere: ollama/ollama@1f5b7ff976460ad5305ab31998554944825f1f5f
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#656