¿Por qué RAG? En OpenWebUI, el RAG, o generación aumentada por recuperación, permite al usuario consultar sus propios documentos en lenguaje natural y obtener una respuesta contextualizada, actualizable y respaldada por los pasajes recuperados, sin reentrenar el modelo.
🧭 ¿Por qué PostgreSQL / pgvector en lugar de Qdrant?

PostgreSQL con pgvector se adopta como backend nominal: pgvector es uno de los backends vectoriales mantenidos por el equipo central de OpenWebUI, mientras que Qdrant es allí una integración no central, mantenida por la comunidad — lo que aumenta el riesgo de ruptura o retraso en las correcciones ante una actualización de versión de OpenWebUI. Qdrant sigue siendo una solución vectorial válida, conservada como respaldo.

Otro factor es el almacenamiento: los datos activos de Qdrant no pudieron mantenerse en el recurso compartido ZFS presentado a VM210 (vía VirtioFS/FUSE) y debieron permanecer en un ext4 local a la VM; PostgreSQL/pgvector dispone en VM215 de su propio disco ext4 dedicado, mejor aislado para la operación y la futura copia de seguridad lógica.

Arquitectura distribuida: la inferencia y el cálculo de embeddings se ejecutan en el nodo de IA con GPU (VM210, RTX 5090). El almacenamiento vectorial se traslada a una VM de servicios sin GPU (VM215) que aloja PostgreSQL y pgvector. Esta separación limita las dependencias y facilita la copia de seguridad del backend vectorial.
[Documentos] → [División + Embeddings bge-m3 · GPU VM210] → [PostgreSQL / pgvector · VM215]
                                              ↓
[Pregunta] → [Embedding de la consulta] → [Búsqueda semántica HNSW] → [LLM local Ollama] → [Respuesta citada]
🔧 Stack técnico
ComponenteFunciónVersión
Open WebUIInterfaz + orquestación RAG nativa0.11.0
PostgreSQLBackend vectorial (VM215)18.4
pgvectorExtensión de vectores · índice HNSW0.8.6
bge-m3Embeddings multilingües (dim 1024)vía Ollama
OllamaInferencia LLM (VM210 · RTX 5090)0.32.6
QdrantBase de datos vectorial de respaldo1.18.3
✅ Logros demostrados
  • Open WebUI configurado con pgvector como backend vectorial
  • Modelo de embeddings bge-m3 validado en dimensión 1024
  • Índice HNSW creado sobre los vectores
  • Búsqueda exacta y citas verificadas
  • Comportamiento fuera de corpus probado para limitar respuestas inventadas
  • Persistencia validada tras recrear la interfaz y reiniciar ambas VM
⚙️ Configuración Open WebUI → pgvector (ilustrativa)
env — backend vectorial 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 — índice de similitud HNSW (pgvector)
-- Index HNSW pour la recherche vectorielle rapide (distance cosinus)
CREATE INDEX ON documents USING hnsw (embedding vector_cosine_ops);
Alcance y límites: las validaciones se basan en un corpus totalmente sintético — no se trata de un conjunto de datos de negocio. Qdrant se conserva como solución de respaldo (no eliminada) mientras no se cierre su retirada. Aún quedan por hacer la limpieza final de las colecciones de prueba y el punto de restauración de cierre.

Páginas relacionadas

Referencias y fuentes

CategoríaRecursoURL
Documentación oficialpgvector — extension de recherche vectorielle pour PostgreSQLgithub.com/pgvector/pgvector
Documentación oficialOpen WebUI — RAG & bases vectoriellesdocs.openwebui.com
Modelo de embeddingsBAAI/bge-m3 — multilingue, dimension 1024huggingface.co/BAAI/bge-m3
Versión utilizadaOpen WebUI 0.11.0 · PostgreSQL 18.4 · pgvector 0.8.6 · Ollama 0.32.6 · Qdrant 1.18.3 (repli)—
Licenciapgvector — PostgreSQL License · PostgreSQL — PostgreSQL Licensepostgresql.org/about/licence
Contenido de esta páginaCompartido bajo CC BY-SA 4.0creativecommons.org/licenses/by-sa/4.0