mirror of
https://github.com/open-webui/open-webui.git
synced 2026-08-02 06:39:02 -05:00
[GH-ISSUE #21433] feat: Parallel browser Upload and multi-staged parallel processing #74083
Reference in New Issue
Block a user
Originally created by @TomTheWise on GitHub (Feb 15, 2026).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/21433
Check Existing Issues
Verify Feature Scope
Problem Description
Currently when one user uploads multipel files for example selecting multiple ones or Dir Upload / Sync Dir in Knowledge the files all get processed in series.
AFAIK this is how its currently going when uploading multiple files:
This serial approach of handling file upload is blocking and extremely slowing down multiple file uploads.
The result is even with large batch size and or async dependent on the parasllelism of the embeddijng API Endpoint, the GPU(s) will be idle most of the time.
Uploading tons of smaller files takes ages.
Only uploading really big ones is somewhat fast and leverages fast GPUs / async GPU embedding on multiple ones.
Desired Solution you'd like
Make file upload async for (if possible) every step with their own queues, also with ENV variables on how many files can be parallel uploaded per user.
Even if in theory only one Tika, one Textsplitter, one non async Embedding GPU and one connection to vector db is available in total - they could all work at the same time processing.
When for example uploading 5 files and lets assume we have one single GPU and assume (unrealistically) that each step takes the same ammount of time:
Now lets assume multiple bigger files and more realistic qeues as every step takes a different ammount of time with multiple GPUs available:
Obviosly this will need qeues for every step and probably quite a lot of caching that stuff in the qeues.
Besides a setting on how many parallel uploads are possible, it might be good to have individual settings for the max qeue depth of each step.
Alternatives Considered
No response
Additional Context
No response