Extensión de PostgreSQL escrita en Rust que añade un índice basado en DiskANN y filtros por etiquetas a pgvector para acelerar las búsquedas vectoriales y reducir su costo.
pgvector/pgvector-python
Biblioteca de Python que incorpora compatibilidad con el tipo vectorial de pgvector y la búsqueda por similitud en Django, SQLAlchemy, Psycopg, asyncpg, Peewee y otros drivers de PostgreSQL.
- Estrellas
- 1,541
- Forks
- 104
- Issues abiertos
- 9
- Último commit
- ayer
¿Qué es?
pgvector-python es una biblioteca cliente de Python que permite a las aplicaciones almacenar y consultar vectores en PostgreSQL mediante la extensión pgvector. Ofrece tipos vectoriales, de media precisión, de bits y dispersos, además de operadores de distancia para comparaciones L2, de producto interno, coseno, L1, Hamming y Jaccard.
El paquete se integra con distintos stacks de bases de datos de Python, como Django, SQLAlchemy, SQLModel, Psycopg 2 y 3, asyncpg, pg8000 y Peewee. Cada integración cubre los pasos habituales: habilitar la extensión, añadir una columna vectorial, insertar embeddings, ejecutar consultas de vecinos más cercanos y crear índices HNSW o IVFFlat.
El repositorio también incluye scripts de ejemplo para generación aumentada por recuperación con Ollama, embeddings con OpenAI y Cohere, búsqueda híbrida, búsqueda de imágenes, recomendaciones y carga masiva con COPY.
Funciones clave
- 01Es compatible con Django, SQLAlchemy, SQLModel, Psycopg 2/3, asyncpg, pg8000 y Peewee.
- 02Ofrece tipos de campo vectoriales, de media precisión, de bits y dispersos.
- 03Incluye operadores de distancia como L2, producto interno, coseno, L1, Hamming y Jaccard.
- 04Crea índices aproximados HNSW y IVFFlat mediante la API de cada biblioteca.
- 05Convierte entre listas de Python, arrays de NumPy y arrays dispersos de SciPy.
Casos de uso
- Añadir búsqueda semántica o recuperación RAG a una aplicación de Django o SQLAlchemy respaldada por PostgreSQL.
- Almacenar embeddings de texto o imágenes de OpenAI, Cohere o SentenceTransformers en Postgres.
- Crear funciones de recomendación a partir de vectores de usuarios y elementos en una base de datos Postgres existente.
Inicio rápido
- 1
Instala el paquete desde PyPI
pip install pgvector - 2
Activa la extensión pgvector en tu base de datos PostgreSQL (ejemplo con Psycopg 3)
conn.execute('CREATE EXTENSION IF NOT EXISTS vector') - 3
Registra el tipo vector en la conexión y, después, inserta y consulta vectores siguiendo el README de tu biblioteca
register_vector(conn)
Antes de usarlo
- Es necesario tener instalada la extensión pgvector en el servidor PostgreSQL.
- Cada biblioteca de bases de datos requiere sus propios pasos de configuración y código de registro.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es pgvector-python?
- Biblioteca de Python que incorpora compatibilidad con el tipo vectorial de pgvector y la búsqueda por similitud en Django, SQLAlchemy, Psycopg, asyncpg, Peewee y otros drivers de PostgreSQL. pgvector-python es una biblioteca cliente de Python que permite a las aplicaciones almacenar y consultar vectores en PostgreSQL mediante la extensión pgvector. Ofrece tipos vectoriales, de media precisión, de bits y dispersos, además de operadores de distancia para comparaciones L2, de producto interno, coseno, L1, Hamming y Jaccard.
- ¿pgvector-python es gratuito? ¿Qué licencia tiene?
- pgvector-python es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿pgvector-python sigue mantenido?
- Mantenimiento activo. El último commit de pgvector-python fue el 5 nov 2026.
- ¿Para qué puedo usar pgvector-python?
- Añadir búsqueda semántica o recuperación RAG a una aplicación de Django o SQLAlchemy respaldada por PostgreSQL. Almacenar embeddings de texto o imágenes de OpenAI, Cohere o SentenceTransformers en Postgres. Crear funciones de recomendación a partir de vectores de usuarios y elementos en una base de datos Postgres existente.
- ¿Cómo se instala pgvector-python?
- Instala el paquete desde PyPI: pip install pgvector Activa la extensión pgvector en tu base de datos PostgreSQL (ejemplo con Psycopg 3): conn.execute('CREATE EXTENSION IF NOT EXISTS vector') Registra el tipo vector en la conexión y, después, inserta y consulta vectores siguiendo el README de tu biblioteca: register_vector(conn)
- ¿Dónde consigo pgvector-python?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/pgvector/pgvector-python
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Compatibilidad con pgvector para Go, con tipos vectoriales y utilidades para pgx, pg, Bun, Ent, GORM y sqlx.
Biblioteca auxiliar para JavaScript y TypeScript que añade compatibilidad con el tipo vector de pgvector a clientes de bases de datos y ORMs de Node.js, Deno y Bun.
Milvus es una base de datos vectorial distribuida y de código abierto para almacenar y buscar embeddings a gran escala, utilizada en búsquedas con IA y aplicaciones RAG.
Qdrant es un motor de búsqueda de similitud vectorial y una base de datos vectorial basado en Rust, con filtros por payload, para búsquedas semánticas y recomendaciones.
Extensión de código abierto para buscar vectores similares en Postgres y almacenar y consultar embeddings junto con los datos relacionales.