Originally created by @Lord-Mercury on GitHub (Apr 19, 2025).
Check Existing Issues
I have searched the existing issues and discussions.
I am using the latest version of Open WebUI.
Installation Method
Docker
Open WebUI Version
0.6.5
Ollama Version (if applicable)
No response
Operating System
Window 10
Browser (if applicable)
Chrome 135.0.7049.96
Confirmation
I have read and followed all instructions in README.md.
I am using 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 listed steps to reproduce the bug in detail.
Expected Behavior
Pipe.Valves instantiated once and init() triggered only when Valves actually updated.
Actual Behavior
open-webui/functions.py
def get_function_module_by_id(request: Request, pipe_id: str):
# Check if function is already loaded
if pipe_id not in request.app.state.FUNCTIONS:
function_module, _, _ = load_function_module_by_id(pipe_id)
request.app.state.FUNCTIONS[pipe_id] = function_module
else:
function_module = request.app.state.FUNCTIONS[pipe_id]
if hasattr(function_module, "valves") and hasattr(function_module, "Valves"):
valves = Functions.get_function_valves_by_id(pipe_id)
function_module.valves = function_module.Valves(**(valves if valves else {}))
return function_module
The hasattr section at the bottom re-instantiates Valves as self.valves if the Pipe module uses self.valves every time get_function_module_by_id() is called.
Steps to Reproduce
Numerous ways to trigger this line of code unnecessarily.
Simple Pipe function with Valves and isntantiate self.valves =self.Valves() in Pipe.init or even Pipe.pipe(). Open
Pipe.Valves.init(self):
print("Valves.init was here")
Admin panel and open models section
Logs & Screenshots
2025-04-18 18:51:20.441 | 2025-04-19 01:51:20.440 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:56838 - "GET /api/v1/retrieval/config HTTP/1.1" 200 - {}
2025-04-18 18:51:21.570 | 2025-04-19 01:51:21.570 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:56838 - "GET /api/v1/retrieval/embedding HTTP/1.1" 200 - {}
2025-04-18 18:51:21.590 | 2025-04-19 01:51:21.589 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:56838 - "GET /api/v1/retrieval/reranking HTTP/1.1" 200 - {}
2025-04-18 18:51:21.601 | 2025-04-19 01:51:21.601 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:56838 - "GET /api/v1/retrieval/config HTTP/1.1" 200 - {}
2025-04-18 18:51:28.880 | 2025-04-19 01:51:28.880 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:37044 - "GET /api/v1/models/base HTTP/1.1" 200 - {}
2025-04-18 18:51:28.881 | 2025-04-19 01:51:28.880 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:37030 - "GET /api/v1/configs/models HTTP/1.1" 200 - {}
2025-04-18 18:51:28.883 | 2025-04-19 01:51:28.883 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:37038 - "GET /ollama/config HTTP/1.1" 200 - {}
2025-04-18 18:51:28.897 | 2025-04-19 01:51:28.897 | INFO | open_webui.routers.openai:get_all_models:389 - get_all_models() - {}
2025-04-18 18:51:29.340 | 2025-04-19 01:51:29.339 | INFO | open_webui.routers.ollama:get_all_models:300 - get_all_models() - {}
2025-04-18 18:51:29.383 | [function_grokedinstantiation] Valves initialized at 2025-04-19 01:51:29.373882
2025-04-18 18:51:29.383 | Function ID: grokedinstantiation
2025-04-18 18:51:29.383 | Stack trace:
2025-04-18 18:51:29.383 | File "/usr/local/bin/uvicorn", line 10, in
2025-04-18 18:51:29.383 | sys.exit(main())
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1161, in call
2025-04-18 18:51:29.383 | return self.main(*args, **kwargs)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1082, in main
2025-04-18 18:51:29.383 | rv = self.invoke(ctx)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1443, in invoke
2025-04-18 18:51:29.383 | return ctx.invoke(self.callback, **ctx.params)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/click/core.py", line 788, in invoke
2025-04-18 18:51:29.383 | return __callback(*args, **kwargs)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/uvicorn/main.py", line 412, in main
2025-04-18 18:51:29.383 | run(
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/uvicorn/main.py", line 579, in run
2025-04-18 18:51:29.383 | server.run()
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 66, in run
2025-04-18 18:51:29.383 | return asyncio.run(self.serve(sockets=sockets))
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/asyncio/runners.py", line 190, in run
2025-04-18 18:51:29.383 | return runner.run(main)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/asyncio/runners.py", line 118, in run
2025-04-18 18:51:29.383 | return self._loop.run_until_complete(task)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
2025-04-18 18:51:29.383 | await self.app(scope, receive_or_disconnect, send_no_error)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 62, in call
2025-04-18 18:51:29.383 | await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
2025-04-18 18:51:29.383 | await app(scope, receive, sender)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 715, in call
2025-04-18 18:51:29.383 | await self.middleware_stack(scope, receive, send)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 735, in app
2025-04-18 18:51:29.383 | await route.handle(scope, receive, send)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 288, in handle
2025-04-18 18:51:29.383 | await self.app(scope, receive, send)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 76, in app
2025-04-18 18:51:29.383 | await wrap_app_handling_exceptions(app, request)(scope, receive, send)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
2025-04-18 18:51:29.383 | await app(scope, receive, sender)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 73, in app
2025-04-18 18:51:29.383 | response = await f(request)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 301, in app
2025-04-18 18:51:29.383 | raw_response = await run_endpoint_function(
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
2025-04-18 18:51:29.383 | return await dependant.call(values)
2025-04-18 18:51:29.383 | File "/app/backend/open_webui/main.py", line 1064, in get_base_models
2025-04-18 18:51:29.383 | models = await get_all_base_models(request, user=user)
2025-04-18 18:51:29.383 | File "/app/backend/open_webui/utils/models.py", line 57, in get_all_base_models
2025-04-18 18:51:29.383 | function_models = await get_function_models(request)
2025-04-18 18:51:29.383 | File "/app/backend/open_webui/functions.py", line 74, in get_function_models
2025-04-18 18:51:29.383 | function_module = get_function_module_by_id(request, pipe.id)
2025-04-18 18:51:29.383 | File "/app/backend/open_webui/functions.py", line 65, in get_function_module_by_id
2025-04-18 18:51:29.383 | function_module.valves = function_module.Valves((valves if valves else {}))
2025-04-18 18:51:29.383 | File "", line 36, in init
2025-04-18 18:51:29.383 |
2025-04-18 18:51:29.383 | 2025-04-19 01:51:29.382 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:37044 - "GET /api/models/base HTTP/1.1" 200 - {}
2025-04-18 19:32:45.838 | 2025-04-19 02:32:45.838 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:55414 - "GET /api/v1/chats/bb434674-7999-4339-a0c4-d45294b51c0c HTTP/1.1" 200 - {}
2025-04-18 19:32:45.871 | 2025-04-19 02:32:45.871 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:55414 - "GET /api/v1/chats/bb434674-7999-4339-a0c4-d45294b51c0c HTTP/1.1" 200 - {}
2025-04-18 19:32:46.704 | 2025-04-19 02:32:46.703 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:55414 - "GET /api/v1/chats/6f8c26f3-12bf-4e07-9701-cf5f3b56b6f4 HTTP/1.1" 200 - {}
2025-04-18 19:32:50.043 | 2025-04-19 02:32:50.043 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:55414 - "GET /ollama/api/version HTTP/1.1" 200 - {}
2025-04-18 19:32:50.466 | 2025-04-19 02:32:50.466 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:55414 - "GET /api/version/updates HTTP/1.1" 200 - {}
Additional Information
I was trying to determine when exactly init is triggered for Valves and UserValves while learning Pipe functions.
At first my testing seemed to indicate what I expected of an init but when loading certain pages or reloading the page in chrome. And in some circumstances, sending a new message in a chat, init would trigger.
Originally created by @Lord-Mercury on GitHub (Apr 19, 2025).
### Check Existing Issues
- [x] I have searched the existing issues and discussions.
- [x] I am using the latest version of Open WebUI.
### Installation Method
Docker
### Open WebUI Version
0.6.5
### Ollama Version (if applicable)
_No response_
### Operating System
Window 10
### Browser (if applicable)
Chrome 135.0.7049.96
### Confirmation
- [x] I have read and followed all instructions in `README.md`.
- [x] I am using 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 listed steps to reproduce the bug in detail.
### Expected Behavior
Pipe.Valves instantiated once and __init__() triggered only when Valves actually updated.
### Actual Behavior
open-webui/functions.py
def get_function_module_by_id(request: Request, pipe_id: str):
# Check if function is already loaded
if pipe_id not in request.app.state.FUNCTIONS:
function_module, _, _ = load_function_module_by_id(pipe_id)
request.app.state.FUNCTIONS[pipe_id] = function_module
else:
function_module = request.app.state.FUNCTIONS[pipe_id]
if hasattr(function_module, "valves") and hasattr(function_module, "Valves"):
valves = Functions.get_function_valves_by_id(pipe_id)
function_module.valves = function_module.Valves(**(valves if valves else {}))
return function_module
The hasattr section at the bottom re-instantiates Valves as self.valves if the Pipe module uses self.valves every time get_function_module_by_id() is called.
### Steps to Reproduce
Numerous ways to trigger this line of code unnecessarily.
Simple Pipe function with Valves and isntantiate self.valves =self.Valves() in Pipe.__init__ or even Pipe.pipe(). Open
Pipe.Valves.__init__(self):
print("Valves.__init__ was here")
Admin panel and open models section
### Logs & Screenshots
2025-04-18 18:51:20.441 | 2025-04-19 01:51:20.440 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:56838 - "GET /api/v1/retrieval/config HTTP/1.1" 200 - {}
2025-04-18 18:51:21.570 | 2025-04-19 01:51:21.570 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:56838 - "GET /api/v1/retrieval/embedding HTTP/1.1" 200 - {}
2025-04-18 18:51:21.590 | 2025-04-19 01:51:21.589 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:56838 - "GET /api/v1/retrieval/reranking HTTP/1.1" 200 - {}
2025-04-18 18:51:21.601 | 2025-04-19 01:51:21.601 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:56838 - "GET /api/v1/retrieval/config HTTP/1.1" 200 - {}
2025-04-18 18:51:28.880 | 2025-04-19 01:51:28.880 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:37044 - "GET /api/v1/models/base HTTP/1.1" 200 - {}
2025-04-18 18:51:28.881 | 2025-04-19 01:51:28.880 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:37030 - "GET /api/v1/configs/models HTTP/1.1" 200 - {}
2025-04-18 18:51:28.883 | 2025-04-19 01:51:28.883 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:37038 - "GET /ollama/config HTTP/1.1" 200 - {}
2025-04-18 18:51:28.897 | 2025-04-19 01:51:28.897 | INFO | open_webui.routers.openai:get_all_models:389 - get_all_models() - {}
2025-04-18 18:51:29.340 | 2025-04-19 01:51:29.339 | INFO | open_webui.routers.ollama:get_all_models:300 - get_all_models() - {}
2025-04-18 18:51:29.383 | [function_grokedinstantiation] Valves initialized at 2025-04-19 01:51:29.373882
2025-04-18 18:51:29.383 | Function ID: grokedinstantiation
2025-04-18 18:51:29.383 | Stack trace:
2025-04-18 18:51:29.383 | File "/usr/local/bin/uvicorn", line 10, in <module>
2025-04-18 18:51:29.383 | sys.exit(main())
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1161, in __call__
2025-04-18 18:51:29.383 | return self.main(*args, **kwargs)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1082, in main
2025-04-18 18:51:29.383 | rv = self.invoke(ctx)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1443, in invoke
2025-04-18 18:51:29.383 | return ctx.invoke(self.callback, **ctx.params)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/click/core.py", line 788, in invoke
2025-04-18 18:51:29.383 | return __callback(*args, **kwargs)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/uvicorn/main.py", line 412, in main
2025-04-18 18:51:29.383 | run(
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/uvicorn/main.py", line 579, in run
2025-04-18 18:51:29.383 | server.run()
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 66, in run
2025-04-18 18:51:29.383 | return asyncio.run(self.serve(sockets=sockets))
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/asyncio/runners.py", line 190, in run
2025-04-18 18:51:29.383 | return runner.run(main)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/asyncio/runners.py", line 118, in run
2025-04-18 18:51:29.383 | return self._loop.run_until_complete(task)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
2025-04-18 18:51:29.383 | await self.app(scope, receive_or_disconnect, send_no_error)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 62, in __call__
2025-04-18 18:51:29.383 | await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
2025-04-18 18:51:29.383 | await app(scope, receive, sender)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 715, in __call__
2025-04-18 18:51:29.383 | await self.middleware_stack(scope, receive, send)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 735, in app
2025-04-18 18:51:29.383 | await route.handle(scope, receive, send)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 288, in handle
2025-04-18 18:51:29.383 | await self.app(scope, receive, send)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 76, in app
2025-04-18 18:51:29.383 | await wrap_app_handling_exceptions(app, request)(scope, receive, send)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
2025-04-18 18:51:29.383 | await app(scope, receive, sender)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 73, in app
2025-04-18 18:51:29.383 | response = await f(request)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 301, in app
2025-04-18 18:51:29.383 | raw_response = await run_endpoint_function(
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
2025-04-18 18:51:29.383 | return await dependant.call(**values)
2025-04-18 18:51:29.383 | File "/app/backend/open_webui/main.py", line 1064, in get_base_models
2025-04-18 18:51:29.383 | models = await get_all_base_models(request, user=user)
2025-04-18 18:51:29.383 | File "/app/backend/open_webui/utils/models.py", line 57, in get_all_base_models
2025-04-18 18:51:29.383 | function_models = await get_function_models(request)
2025-04-18 18:51:29.383 | File "/app/backend/open_webui/functions.py", line 74, in get_function_models
2025-04-18 18:51:29.383 | function_module = get_function_module_by_id(request, pipe.id)
2025-04-18 18:51:29.383 | File "/app/backend/open_webui/functions.py", line 65, in get_function_module_by_id
2025-04-18 18:51:29.383 | function_module.valves = function_module.Valves(**(valves if valves else {}))
2025-04-18 18:51:29.383 | File "<string>", line 36, in __init__
2025-04-18 18:51:29.383 |
2025-04-18 18:51:29.383 | 2025-04-19 01:51:29.382 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:37044 - "GET /api/models/base HTTP/1.1" 200 - {}
2025-04-18 19:32:45.838 | 2025-04-19 02:32:45.838 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:55414 - "GET /api/v1/chats/bb434674-7999-4339-a0c4-d45294b51c0c HTTP/1.1" 200 - {}
2025-04-18 19:32:45.871 | 2025-04-19 02:32:45.871 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:55414 - "GET /api/v1/chats/bb434674-7999-4339-a0c4-d45294b51c0c HTTP/1.1" 200 - {}
2025-04-18 19:32:46.704 | 2025-04-19 02:32:46.703 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:55414 - "GET /api/v1/chats/6f8c26f3-12bf-4e07-9701-cf5f3b56b6f4 HTTP/1.1" 200 - {}
2025-04-18 19:32:50.043 | 2025-04-19 02:32:50.043 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:55414 - "GET /ollama/api/version HTTP/1.1" 200 - {}
2025-04-18 19:32:50.466 | 2025-04-19 02:32:50.466 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:55414 - "GET /api/version/updates HTTP/1.1" 200 - {}
### Additional Information
I was trying to determine when exactly __init__ is triggered for Valves and UserValves while learning Pipe functions.
At first my testing seemed to indicate what I expected of an __init__ but when loading certain pages or reloading the page in chrome. And in some circumstances, sending a new message in a chat, __init__ would trigger.
GiteaMirror
added the bug label 2025-11-11 16:06:05 -06:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Originally created by @Lord-Mercury on GitHub (Apr 19, 2025).
Check Existing Issues
Installation Method
Docker
Open WebUI Version
0.6.5
Ollama Version (if applicable)
No response
Operating System
Window 10
Browser (if applicable)
Chrome 135.0.7049.96
Confirmation
README.md.Expected Behavior
Pipe.Valves instantiated once and init() triggered only when Valves actually updated.
Actual Behavior
open-webui/functions.py
def get_function_module_by_id(request: Request, pipe_id: str):
# Check if function is already loaded
if pipe_id not in request.app.state.FUNCTIONS:
function_module, _, _ = load_function_module_by_id(pipe_id)
request.app.state.FUNCTIONS[pipe_id] = function_module
else:
function_module = request.app.state.FUNCTIONS[pipe_id]
The hasattr section at the bottom re-instantiates Valves as self.valves if the Pipe module uses self.valves every time get_function_module_by_id() is called.
Steps to Reproduce
Numerous ways to trigger this line of code unnecessarily.
Simple Pipe function with Valves and isntantiate self.valves =self.Valves() in Pipe.init or even Pipe.pipe(). Open
Pipe.Valves.init(self):
print("Valves.init was here")
Admin panel and open models section
Logs & Screenshots
2025-04-18 18:51:20.441 | 2025-04-19 01:51:20.440 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:56838 - "GET /api/v1/retrieval/config HTTP/1.1" 200 - {}
2025-04-18 18:51:21.570 | 2025-04-19 01:51:21.570 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:56838 - "GET /api/v1/retrieval/embedding HTTP/1.1" 200 - {}
2025-04-18 18:51:21.590 | 2025-04-19 01:51:21.589 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:56838 - "GET /api/v1/retrieval/reranking HTTP/1.1" 200 - {}
2025-04-18 18:51:21.601 | 2025-04-19 01:51:21.601 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:56838 - "GET /api/v1/retrieval/config HTTP/1.1" 200 - {}
2025-04-18 18:51:28.880 | 2025-04-19 01:51:28.880 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:37044 - "GET /api/v1/models/base HTTP/1.1" 200 - {}
2025-04-18 18:51:28.881 | 2025-04-19 01:51:28.880 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:37030 - "GET /api/v1/configs/models HTTP/1.1" 200 - {}
2025-04-18 18:51:28.883 | 2025-04-19 01:51:28.883 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:37038 - "GET /ollama/config HTTP/1.1" 200 - {}
2025-04-18 18:51:28.897 | 2025-04-19 01:51:28.897 | INFO | open_webui.routers.openai:get_all_models:389 - get_all_models() - {}
2025-04-18 18:51:29.340 | 2025-04-19 01:51:29.339 | INFO | open_webui.routers.ollama:get_all_models:300 - get_all_models() - {}
2025-04-18 18:51:29.383 | [function_grokedinstantiation] Valves initialized at 2025-04-19 01:51:29.373882
2025-04-18 18:51:29.383 | Function ID: grokedinstantiation
2025-04-18 18:51:29.383 | Stack trace:
2025-04-18 18:51:29.383 | File "/usr/local/bin/uvicorn", line 10, in
2025-04-18 18:51:29.383 | sys.exit(main())
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1161, in call
2025-04-18 18:51:29.383 | return self.main(*args, **kwargs)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1082, in main
2025-04-18 18:51:29.383 | rv = self.invoke(ctx)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/click/core.py", line 1443, in invoke
2025-04-18 18:51:29.383 | return ctx.invoke(self.callback, **ctx.params)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/click/core.py", line 788, in invoke
2025-04-18 18:51:29.383 | return __callback(*args, **kwargs)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/uvicorn/main.py", line 412, in main
2025-04-18 18:51:29.383 | run(
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/uvicorn/main.py", line 579, in run
2025-04-18 18:51:29.383 | server.run()
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/uvicorn/server.py", line 66, in run
2025-04-18 18:51:29.383 | return asyncio.run(self.serve(sockets=sockets))
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/asyncio/runners.py", line 190, in run
2025-04-18 18:51:29.383 | return runner.run(main)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/asyncio/runners.py", line 118, in run
2025-04-18 18:51:29.383 | return self._loop.run_until_complete(task)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/base.py", line 141, in coro
2025-04-18 18:51:29.383 | await self.app(scope, receive_or_disconnect, send_no_error)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 62, in call
2025-04-18 18:51:29.383 | await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
2025-04-18 18:51:29.383 | await app(scope, receive, sender)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 715, in call
2025-04-18 18:51:29.383 | await self.middleware_stack(scope, receive, send)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 735, in app
2025-04-18 18:51:29.383 | await route.handle(scope, receive, send)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 288, in handle
2025-04-18 18:51:29.383 | await self.app(scope, receive, send)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 76, in app
2025-04-18 18:51:29.383 | await wrap_app_handling_exceptions(app, request)(scope, receive, send)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/starlette/_exception_handler.py", line 42, in wrapped_app
2025-04-18 18:51:29.383 | await app(scope, receive, sender)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/starlette/routing.py", line 73, in app
2025-04-18 18:51:29.383 | response = await f(request)
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 301, in app
2025-04-18 18:51:29.383 | raw_response = await run_endpoint_function(
2025-04-18 18:51:29.383 | File "/usr/local/lib/python3.11/site-packages/fastapi/routing.py", line 212, in run_endpoint_function
2025-04-18 18:51:29.383 | return await dependant.call(values)
2025-04-18 18:51:29.383 | File "/app/backend/open_webui/main.py", line 1064, in get_base_models
2025-04-18 18:51:29.383 | models = await get_all_base_models(request, user=user)
2025-04-18 18:51:29.383 | File "/app/backend/open_webui/utils/models.py", line 57, in get_all_base_models
2025-04-18 18:51:29.383 | function_models = await get_function_models(request)
2025-04-18 18:51:29.383 | File "/app/backend/open_webui/functions.py", line 74, in get_function_models
2025-04-18 18:51:29.383 | function_module = get_function_module_by_id(request, pipe.id)
2025-04-18 18:51:29.383 | File "/app/backend/open_webui/functions.py", line 65, in get_function_module_by_id
2025-04-18 18:51:29.383 | function_module.valves = function_module.Valves((valves if valves else {}))
2025-04-18 18:51:29.383 | File "", line 36, in init
2025-04-18 18:51:29.383 |
2025-04-18 18:51:29.383 | 2025-04-19 01:51:29.382 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:37044 - "GET /api/models/base HTTP/1.1" 200 - {}
2025-04-18 19:32:45.838 | 2025-04-19 02:32:45.838 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:55414 - "GET /api/v1/chats/bb434674-7999-4339-a0c4-d45294b51c0c HTTP/1.1" 200 - {}
2025-04-18 19:32:45.871 | 2025-04-19 02:32:45.871 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:55414 - "GET /api/v1/chats/bb434674-7999-4339-a0c4-d45294b51c0c HTTP/1.1" 200 - {}
2025-04-18 19:32:46.704 | 2025-04-19 02:32:46.703 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:55414 - "GET /api/v1/chats/6f8c26f3-12bf-4e07-9701-cf5f3b56b6f4 HTTP/1.1" 200 - {}
2025-04-18 19:32:50.043 | 2025-04-19 02:32:50.043 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:55414 - "GET /ollama/api/version HTTP/1.1" 200 - {}
2025-04-18 19:32:50.466 | 2025-04-19 02:32:50.466 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 172.17.0.1:55414 - "GET /api/version/updates HTTP/1.1" 200 - {}
Additional Information
I was trying to determine when exactly init is triggered for Valves and UserValves while learning Pipe functions.
At first my testing seemed to indicate what I expected of an init but when loading certain pages or reloading the page in chrome. And in some circumstances, sending a new message in a chat, init would trigger.