[GH-ISSUE #15197] feat: Qdrant Support for RAG #33025

Closed
opened 2026-04-25 06:53:31 -05:00 by GiteaMirror · 8 comments
Owner

Originally created by @tdiprima on GitHub (Jun 21, 2025).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/15197

Check Existing Issues

  • I have searched the existing issues and discussions.

Problem Description

Hey all — they said Qdrant isn't officially supported per #6386, but the docs suggest otherwise. Qdrant is listed as a supported vector database.

The related Qdrant-specific variables like QDRANT_API_KEY, QDRANT_URI, and ENABLE_QDRANT_MULTITENANCY_MODE also show Open WebUI has some infrastructure for it, but the following error suggests it's not fully functional.

I've got Qdrant running fine outside of WebUI, but trying to add documents throws:
400: 'NoneType' object has no attribute 'collection_exists'.

ChromaDB just isn't cutting it for RAG — it's way too slow once you scale past a few hundred docs. Qdrant could seriously improve performance here. Would love to see better support and clearer error handling around this. Happy to help test. 🙏

Desired Solution you'd like

Qdrant should play nicely with Open WebUI.

Alternatives Considered

A faster vector database should be the default database.

Additional Context

Using ChromaDB for RAG? You ask a question, then wait a full minute and a half just to start getting a response. Then it trickles out... one. word. at. a. time. with long pauses in between — while your fan spins up like a jet engine about to take off. 🛫

Originally created by @tdiprima on GitHub (Jun 21, 2025). Original GitHub issue: https://github.com/open-webui/open-webui/issues/15197 ### Check Existing Issues - [x] I have searched the existing issues and discussions. ### Problem Description Hey all — they said Qdrant isn't *officially* supported per [#6386](https://github.com/open-webui/open-webui/discussions/6386), **but the [docs](https://docs.openwebui.com/getting-started/env-configuration/#vector-database) suggest otherwise.** Qdrant is listed as a supported vector database. The related Qdrant-specific variables like `QDRANT_API_KEY`, `QDRANT_URI`, and `ENABLE_QDRANT_MULTITENANCY_MODE` also show Open WebUI has some infrastructure for it, but the following error suggests it's not fully functional. I've got Qdrant running fine outside of WebUI, but trying to add documents throws: `400: 'NoneType' object has no attribute 'collection_exists'`. ChromaDB just isn't cutting it for RAG — **it's way too slow once you scale past a few hundred docs.** Qdrant could seriously improve performance here. Would love to see better support and clearer error handling around this. Happy to help test. 🙏 ### Desired Solution you'd like Qdrant should play nicely with Open WebUI. ### Alternatives Considered A faster vector database should be the default database. ### Additional Context Using ChromaDB for RAG? You ask a question, then wait a full *minute and a half* just to ***start*** getting a response. Then it trickles out... one. word. at. a. time. with long pauses in between — while your fan spins up like a jet engine about to take off. 🛫
Author
Owner

@tdiprima commented on GitHub (Jun 21, 2025):

Just saw #10008 mentioning Open WebUI creating a collection per document, which could hurt performance at scale (e.g., ~1400 files crashing). Enabling ENABLE_QDRANT_MULTITENANCY_MODE might help consolidate collections. Could this be addressed alongside better Qdrant support? Happy to test any fixes!

"OpenWebUI creates a qdrant collection both for your file (for every single one separately)..." Comment 12215374.

<!-- gh-comment-id:2993601747 --> @tdiprima commented on GitHub (Jun 21, 2025): Just saw #10008 mentioning Open WebUI creating a collection per document, which could hurt performance at scale (e.g., ~1400 files crashing). Enabling `ENABLE_QDRANT_MULTITENANCY_MODE` might help consolidate collections. Could this be addressed alongside better Qdrant support? Happy to test any fixes! > "OpenWebUI creates a qdrant collection both for your file (for every single one separately)..." [Comment 12215374](https://github.com/open-webui/open-webui/discussions/10008#discussioncomment-12215374).
Author
Owner

@tjbck commented on GitHub (Jun 25, 2025):

PR Welcome, Qdrant is 100% managed by external contributions.

<!-- gh-comment-id:3004134487 --> @tjbck commented on GitHub (Jun 25, 2025): PR Welcome, Qdrant is 100% managed by external contributions.
Author
Owner

@guenhter commented on GitHub (Jun 26, 2025):

@tdiprima what issue do you have? We also use qdrant with ENABLE_QDRANT_MULTITENANCY_MODE turned on, and it works fine for us.

<!-- gh-comment-id:3007962683 --> @guenhter commented on GitHub (Jun 26, 2025): @tdiprima what issue do you have? We also use qdrant with `ENABLE_QDRANT_MULTITENANCY_MODE` turned on, and it works fine for us.
Author
Owner

@tdiprima commented on GitHub (Jun 27, 2025):

@guenhter Thanks for jumping in! Here's the main issue I'm hitting:

Qdrant is running fine outside Open WebUI, but when I try to add documents through the UI, I get this error:

400: 'NoneType' object has no attribute 'collection_exists'

From what I can tell, it's choking on a call that assumes a collection manager exists but returns None. This happens even with ENABLE_QDRANT_MULTITENANCY_MODE=true.

Would it help if I shared my docker-compose.yml? I'm happy to post it if that’ll shed more light.

Also, I saw in #10008 that Open WebUI might be making a new Qdrant collection per file, which would wreck performance at scale (I've got >1400 files). Are you doing anything custom to consolidate collections or batch uploads?

Appreciate any insight — I really want to get Qdrant working as a drop-in upgrade from ChromaDB, especially for larger datasets.

<!-- gh-comment-id:3013210662 --> @tdiprima commented on GitHub (Jun 27, 2025): @guenhter Thanks for jumping in! Here's the main issue I'm hitting: Qdrant is running fine outside Open WebUI, **but** when I try to add documents through the UI, I get this error: > 400: 'NoneType' object has no attribute 'collection_exists' From what I can tell, it's choking on a call that assumes a collection manager exists but returns `None`. This happens even with `ENABLE_QDRANT_MULTITENANCY_MODE=true`. Would it help if I shared my `docker-compose.yml`? I'm happy to post it if that’ll shed more light. Also, I saw in #10008 that Open WebUI might be making a new Qdrant collection *per file*, which would wreck performance at scale (I've got >1400 files). Are you doing anything custom to consolidate collections or batch uploads? Appreciate any insight — I really want to get Qdrant working as a drop-in upgrade from ChromaDB, especially for larger datasets.
Author
Owner

@guenhter commented on GitHub (Jun 27, 2025):

We don't do anything special. This is how my compose looks like:

services:
  qdrant:
    image: qdrant/qdrant:latest
    container_name: qdrant
    restart: always
    volumes:
      - ./qdrant_storage:/qdrant/storage
    ports:
      - "127.0.0.1:6333:6333"

  owui:
    image: ghcr.io/open-webui/open-webui:main
    restart: always
    depends_on:
      - qdrant
    ports:
      - "80:8080"
    volumes:
      - ./owui:/app/backend/data
    environment:
      - VECTOR_DB=qdrant
      - QDRANT_API_KEY=
      - QDRANT_URI=http://qdrant:6333

Even if ENABLE_QDRANT_MULTITENANCY_MODE=true, this works

<!-- gh-comment-id:3013351760 --> @guenhter commented on GitHub (Jun 27, 2025): We don't do anything special. This is how my compose looks like: ```yaml services: qdrant: image: qdrant/qdrant:latest container_name: qdrant restart: always volumes: - ./qdrant_storage:/qdrant/storage ports: - "127.0.0.1:6333:6333" owui: image: ghcr.io/open-webui/open-webui:main restart: always depends_on: - qdrant ports: - "80:8080" volumes: - ./owui:/app/backend/data environment: - VECTOR_DB=qdrant - QDRANT_API_KEY= - QDRANT_URI=http://qdrant:6333 ``` Even if `ENABLE_QDRANT_MULTITENANCY_MODE=true`, this works
Author
Owner

@tdiprima commented on GitHub (Jun 27, 2025):

@guenhter Thanks for that! It's working now! 😅

<!-- gh-comment-id:3013440285 --> @tdiprima commented on GitHub (Jun 27, 2025): @guenhter Thanks for that! It's working now! 😅
Author
Owner

@guenhter commented on GitHub (Jun 27, 2025):

Out of curiosity: What was the issue with your config?

<!-- gh-comment-id:3013475742 --> @guenhter commented on GitHub (Jun 27, 2025): Out of curiosity: What was the issue with your config?
Author
Owner

@tdiprima commented on GitHub (Jun 27, 2025):

I had QDRANT_URL instead of QDRANT_URI. Fixed that, and added a QDRANT_API_KEY for good measure.

<!-- gh-comment-id:3013550832 --> @tdiprima commented on GitHub (Jun 27, 2025): I had `QDRANT_URL` instead of `QDRANT_URI`. Fixed that, and added a `QDRANT_API_KEY` for good measure.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#33025