Зачем нужен RAG? В OpenWebUI RAG (генерация с расширением за счёт поиска) позволяет пользователю задавать вопросы к собственным документам на естественном языке и получать контекстуализированный, обновляемый ответ, опирающийся на найденные фрагменты, без повторного обучения модели.
🧭 Почему PostgreSQL / pgvector, а не Qdrant?

PostgreSQL с pgvector выбран как основной backend: pgvector входит в число векторных backend'ов, поддерживаемых основной командой OpenWebUI, тогда как Qdrant является некорневой интеграцией, поддерживаемой сообществом — это повышает риск поломки или задержки исправлений при обновлении версии OpenWebUI. Qdrant остаётся допустимым векторным решением, сохранённым как резервный вариант.

Ещё один фактор — хранение: активные данные Qdrant не удалось сохранить на общем разделе ZFS, предоставленном VM210 (через VirtioFS/FUSE), и им пришлось остаться на локальном ext4 внутри ВМ; у PostgreSQL/pgvector на VM215 есть собственный выделенный диск ext4, лучше изолированный для эксплуатации и будущего логического резервного копирования.

Распределённая архитектура: инференс и вычисление эмбеддингов выполняются на GPU-узле ИИ (VM210, RTX 5090). Векторное хранилище вынесено на сервисную ВМ без GPU (VM215), где размещены PostgreSQL и pgvector. Такое разделение снижает зависимости и упрощает резервное копирование векторного backend'а.
[Документы] → [Разбиение + эмбеддинги bge-m3 · GPU VM210] → [PostgreSQL / pgvector · VM215]
                                              ↓
[Вопрос] → [Эмбеддинг запроса] → [Семантический поиск HNSW] → [Локальная LLM Ollama] → [Ответ со ссылками]
🔧 Технологический стек
КомпонентРольВерсия
Open WebUIИнтерфейс + нативная оркестрация RAG0.11.0
PostgreSQLВекторный backend (VM215)18.4
pgvectorРасширение для векторов · индекс HNSW0.8.6
bge-m3Многоязычные эмбеддинги (размерность 1024)через Ollama
OllamaИнференс LLM (VM210 · RTX 5090)0.32.6
QdrantРезервная векторная база1.18.3
✅ Подтверждённые результаты
  • Open WebUI настроен с pgvector в качестве векторного backend'а
  • Модель эмбеддингов bge-m3 проверена с размерностью 1024
  • Создан индекс HNSW для векторов
  • Проверены точный поиск и цитирование
  • Протестировано поведение вне корпуса для ограничения выдуманных ответов
  • Проверена устойчивость данных после пересоздания интерфейса и перезапуска обеих ВМ
⚙️ Настройка Open WebUI → pgvector (иллюстративно)
env — векторный backend pgvector
# Open WebUI — RAG natif sur backend pgvector (VM215)
VECTOR_DB=pgvector
PGVECTOR_DB_URL=postgresql://<role>:<secret>@<hote-vm215>/rag

# Embeddings servis par Ollama sur le nœud GPU (VM210)
RAG_EMBEDDING_ENGINE=ollama
RAG_EMBEDDING_MODEL=bge-m3        # dimension 1024
sql — индекс схожести HNSW (pgvector)
-- Index HNSW pour la recherche vectorielle rapide (distance cosinus)
CREATE INDEX ON documents USING hnsw (embedding vector_cosine_ops);
Охват и ограничения: проверки опираются на полностью синтетический корпус — это не бизнес-данные. Qdrant сохранён как резервное решение (не удалён), пока вывод из эксплуатации не завершён. Финальная очистка тестовых коллекций и контрольная точка восстановления при закрытии ещё предстоят.

Связанные страницы

Ссылки и источники

КатегорияРесурсURL
Официальная документацияpgvector — extension de recherche vectorielle pour PostgreSQLgithub.com/pgvector/pgvector
Официальная документацияOpen WebUI — RAG & bases vectoriellesdocs.openwebui.com
Модель эмбеддинговBAAI/bge-m3 — multilingue, dimension 1024huggingface.co/BAAI/bge-m3
Используемая версияOpen WebUI 0.11.0 · PostgreSQL 18.4 · pgvector 0.8.6 · Ollama 0.32.6 · Qdrant 1.18.3 (repli)—
Лицензияpgvector — PostgreSQL License · PostgreSQL — PostgreSQL Licensepostgresql.org/about/licence
Содержимое этой страницыПубликуется под CC BY-SA 4.0creativecommons.org/licenses/by-sa/4.0