Commit graph

7051 commits

Author SHA1 Message Date
Timothy Jaeryang Baek
bb0e6cb108 refac 2026-05-09 06:41:42 +09:00
Timothy Jaeryang Baek
6700f7bb72 feat: brave search llm context 2026-05-09 06:34:25 +09:00
Timothy Jaeryang Baek
1d892ce2c5 refac 2026-05-09 06:33:26 +09:00
Timothy Jaeryang Baek
38a382ef88 refac 2026-05-09 06:23:51 +09:00
Timothy Jaeryang Baek
af5628f8ef refac 2026-05-09 06:13:58 +09:00
Timothy Jaeryang Baek
9907c0a25a refac 2026-05-09 06:01:02 +09:00
Shamil
ae0827cec0
style(env): satisfy ruff (datetime alias, line length, identity check) (#24118) 2026-05-09 05:30:09 +09:00
Timothy Jaeryang Baek
ae43562b86 refac 2026-05-09 05:24:50 +09:00
Classic298
1a3e5ef4c1
perf(prompts): make /tags fetch only the tags column with SQL access filter (#24287)
Non-admin GET /api/v1/prompts/tags went through get_prompts_by_user_id,
which loaded every active prompt with its full content/data/meta plus
owner records and all access grants, then ran one has_access query per
prompt that wasn't owned by the caller - all so the endpoint could
collapse the result to a sorted tag list. With 600 prompts this took
several seconds while the admin path (a single SELECT) returned in <1s.

Add Prompts.get_tags_by_user_id which selects only the tags column and
applies the same EXISTS-based access filter used by /list. Also tighten
the admin get_tags to project just the tags column instead of full rows.
The endpoint is now one DB query (plus one for groups), no row hydration,
no N+1.

Co-authored-by: Claude <noreply@anthropic.com>
2026-05-09 05:20:13 +09:00
Timothy Jaeryang Baek
1789303886 refac 2026-05-09 05:14:55 +09:00
Classic298
41107a34ca
perf(prompts): filter prompt list in SQL instead of N+1 has_access loop (#24288)
get_prompts_by_user_id used to fetch every active prompt (with users +
all access grants), then call AccessGrants.has_access() once per prompt
that the user did not own. With 600+ prompts this issued ~600 extra
round-trips per request and explained the multi-second delay reported in
the GET /api/v1/prompts and /api/v1/prompts/tags endpoints for non-admin
users.

Push the access check into a single SQL query via the existing
AccessGrants.has_permission_filter (EXISTS subquery), so only accessible
rows come back from the DB. Users and access grants for the surviving
rows are still batch-fetched, no N+1 anywhere on this path.

Co-authored-by: Claude <noreply@anthropic.com>
2026-05-09 05:12:51 +09:00
Timothy Jaeryang Baek
55e7c7854b refac 2026-05-09 05:04:51 +09:00
Timothy Jaeryang Baek
072d2000f3 refac 2026-05-09 04:53:47 +09:00
Timothy Jaeryang Baek
9386fc83a3 refac 2026-05-09 04:49:18 +09:00
Jacob Leksan
b63da90ae4
Enhance CommitSessionMiddleware to allow health probes to bypass session management, ensuring faster and more reliable responses. (#24384) 2026-05-09 04:46:00 +09:00
Timothy Jaeryang Baek
33e588cf09 refac 2026-05-09 04:39:44 +09:00
Timothy Jaeryang Baek
005df577fe refac 2026-05-09 04:36:43 +09:00
Timothy Jaeryang Baek
1b4cd705d0 refac 2026-05-09 04:36:23 +09:00
Timothy Jaeryang Baek
c1202a2327 refac 2026-05-09 04:17:58 +09:00
Classic298
55d1db1f38
fix: stream GET /chats/all to prevent OOM on large chat histories (#24461)
Convert the /chats/all endpoint from loading all user chats into memory
at once to a streaming NDJSON response that fetches chats in batches of
100. This prevents Out-of-Memory crashes for users with large chat
histories.

Backend: Added async generator that paginates through chats with
short-lived DB sessions per batch (critical for SQLite lock release).

Frontend: Updated getAllChats to consume the NDJSON stream via
ReadableStream reader, accumulating results for the export file.

Ref: open-webui#22206
2026-05-09 04:11:52 +09:00
Timothy Jaeryang Baek
6082e1adae refac 2026-05-09 04:03:49 +09:00
Timothy Jaeryang Baek
7c398a625a refac 2026-05-09 03:45:56 +09:00
Timothy Jaeryang Baek
cdfcbc4af6 refac 2026-05-09 03:40:23 +09:00
Timothy Jaeryang Baek
4d766a3edf refac 2026-05-09 03:19:48 +09:00
Classic298
d06e6d6ddc
Apply validate_profile_image_url to ChannelWebhookForm.profile_image_url (#24370) 2026-05-09 03:19:25 +09:00
Jacob Leksan
8b78821ba4
Refactor file processing to use asyncio for transcribing, improving concurrency. (#24379) 2026-05-09 03:17:47 +09:00
Timothy Jaeryang Baek
552bbcecfa refac 2026-05-09 03:15:53 +09:00
Timothy Jaeryang Baek
f152ad36b3 refac 2026-05-09 03:06:19 +09:00
Timothy Jaeryang Baek
cde72dab71 refac 2026-05-09 02:54:09 +09:00
Timothy Jaeryang Baek
ff791b4814 refac 2026-05-09 02:43:07 +09:00
Timothy Jaeryang Baek
7eaecbad5a refac 2026-05-09 02:38:08 +09:00
Timothy Jaeryang Baek
0103d7e82c refac 2026-05-09 02:31:30 +09:00
Timothy Jaeryang Baek
3309f5d9f1 refac 2026-05-09 02:25:26 +09:00
Timothy Jaeryang Baek
6dff85b9d2 refac 2026-05-09 02:08:08 +09:00
Classic298
7e275c1daa
fix: prevent STT from blocking the uvicorn event loop (#24338)
The transcription endpoint was async but called the synchronous transcribe() function directly, blocking the single-threaded uvicorn event loop for the entire duration of inference. This caused all HTTP and WebSocket connections to stall for every user on the instance during STT processing.

- Add asyncio import

- Use async UploadFile.read() instead of synchronous file.file.read()

- Offload the blocking transcribe() call via asyncio.to_thread()

Closes #24169
2026-05-09 02:05:28 +09:00
Timothy Jaeryang Baek
1c1c8b18e5 refac 2026-05-09 02:04:36 +09:00
Timothy Jaeryang Baek
55a572cd39 refac 2026-05-09 02:04:26 +09:00
Timothy Jaeryang Baek
9adc0c442a refac 2026-05-09 02:02:02 +09:00
Timothy Jaeryang Baek
fd3368c0bf refac 2026-05-09 01:55:51 +09:00
Timothy Jaeryang Baek
ef6d4f2d6c refac 2026-05-09 01:50:58 +09:00
Timothy Jaeryang Baek
b72019db39 refac 2026-05-09 01:31:04 +09:00
Timothy Jaeryang Baek
2977910ffd refac 2026-05-09 01:25:01 +09:00
Timothy Jaeryang Baek
f39f4a86ae refac 2026-05-09 01:22:25 +09:00
Timothy Jaeryang Baek
1dee67b64d refac 2026-05-09 01:21:17 +09:00
Jacob Leksan
2a18dc98ac
Implement asynchronous database ping for health checks (#24380) 2026-05-09 01:20:11 +09:00
Timothy Jaeryang Baek
4754ece4a2 refac 2026-05-09 01:17:57 +09:00
Timothy Jaeryang Baek
4fe2de7864 refac 2026-05-09 01:13:16 +09:00
Timothy Jaeryang Baek
a32d26e61d refac
Some checks failed
Create and publish Docker images with specific build args / build-main-image (linux/amd64, ubuntu-latest) (push) Has been cancelled
Create and publish Docker images with specific build args / build-main-image (linux/arm64, ubuntu-24.04-arm) (push) Has been cancelled
Create and publish Docker images with specific build args / build-cuda-image (linux/amd64, ubuntu-latest) (push) Has been cancelled
Create and publish Docker images with specific build args / build-cuda-image (linux/arm64, ubuntu-24.04-arm) (push) Has been cancelled
Create and publish Docker images with specific build args / build-cuda126-image (linux/amd64, ubuntu-latest) (push) Has been cancelled
Create and publish Docker images with specific build args / build-cuda126-image (linux/arm64, ubuntu-24.04-arm) (push) Has been cancelled
Create and publish Docker images with specific build args / build-ollama-image (linux/amd64, ubuntu-latest) (push) Has been cancelled
Create and publish Docker images with specific build args / build-ollama-image (linux/arm64, ubuntu-24.04-arm) (push) Has been cancelled
Create and publish Docker images with specific build args / build-slim-image (linux/amd64, ubuntu-latest) (push) Has been cancelled
Create and publish Docker images with specific build args / build-slim-image (linux/arm64, ubuntu-24.04-arm) (push) Has been cancelled
Python CI / Format Backend (push) Has been cancelled
Frontend Build / Format & Build Frontend (push) Has been cancelled
Frontend Build / Frontend Unit Tests (push) Has been cancelled
Create and publish Docker images with specific build args / merge-main-images (push) Has been cancelled
Create and publish Docker images with specific build args / merge-cuda-images (push) Has been cancelled
Create and publish Docker images with specific build args / merge-cuda126-images (push) Has been cancelled
Create and publish Docker images with specific build args / merge-ollama-images (push) Has been cancelled
Create and publish Docker images with specific build args / merge-slim-images (push) Has been cancelled
Create and publish Docker images with specific build args / copy-to-dockerhub (, main) (push) Has been cancelled
Create and publish Docker images with specific build args / copy-to-dockerhub (-cuda, cuda) (push) Has been cancelled
Create and publish Docker images with specific build args / copy-to-dockerhub (-cuda126, cuda126) (push) Has been cancelled
Create and publish Docker images with specific build args / copy-to-dockerhub (-ollama, ollama) (push) Has been cancelled
Create and publish Docker images with specific build args / copy-to-dockerhub (-slim, slim) (push) Has been cancelled
2026-05-05 04:21:23 +09:00
Timothy Jaeryang Baek
989d5fd4e2 refac 2026-05-05 04:05:15 +09:00
Timothy Jaeryang Baek
cde21b9f6d refac 2026-05-05 03:33:47 +09:00