Расширение PostgreSQL на Rust с индексом на базе DiskANN и фильтрацией по меткам для более быстрого и дешёвого векторного поиска на основе pgvector.
pgvector/pgvector-python
Библиотека Python, добавляющая поддержку векторов pgvector и поиска по сходству для Django, SQLAlchemy, Psycopg, asyncpg, Peewee и других драйверов PostgreSQL.
- Звёзды
- 1,542
- Форки
- 104
- Открытые issues
- 9
- Последний коммит
- позавчера
Что это?
pgvector-python — клиентская библиотека Python, с помощью которой приложения могут хранить векторы в PostgreSQL и выполнять по ним запросы через расширение pgvector. Она поддерживает векторы обычной и половинной точности, битовые и разреженные векторы, а также операторы вычисления расстояния для L2, скалярного произведения, косинусного расстояния, L1, Хэмминга и Жаккара.
Пакет интегрируется с разными стеками для работы с базами данных в Python, включая Django, SQLAlchemy, SQLModel, Psycopg 2 и 3, asyncpg, pg8000 и Peewee. Каждая интеграция охватывает основные операции: включение расширения, добавление векторного столбца, вставку эмбеддингов, выполнение запросов для поиска ближайших соседей и создание индексов HNSW или IVFFlat.
В репозитории также есть примеры скриптов для RAG с Ollama, создания эмбеддингов с OpenAI и Cohere, гибридного поиска, поиска изображений, рекомендаций и массовой загрузки с помощью COPY.
Ключевые возможности
- 01Поддерживает Django, SQLAlchemy, SQLModel, Psycopg 2/3, asyncpg, pg8000 и Peewee.
- 02Предоставляет типы полей для векторов обычной и половинной точности, битовых и разреженных векторов.
- 03Поддерживает операторы вычисления расстояния, включая L2, скалярное произведение, косинусное расстояние, L1, расстояние Хэмминга и расстояние Жаккара.
- 04Позволяет создавать приближённые индексы HNSW и IVFFlat через API каждой библиотеки.
- 05Преобразует списки Python, массивы NumPy и разреженные массивы SciPy друг в друга.
Сценарии использования
- Добавление семантического поиска или поиска для RAG в приложение на Django или SQLAlchemy, использующее PostgreSQL.
- Хранение эмбеддингов текста или изображений, созданных с помощью OpenAI, Cohere или SentenceTransformers, в Postgres.
- Создание функций рекомендаций на основе векторов пользователей и объектов в существующей базе данных Postgres.
Быстрый старт
- 1
Установите пакет из PyPI
pip install pgvector - 2
Включите расширение pgvector в базе данных PostgreSQL (пример с Psycopg 3)
conn.execute('CREATE EXTENSION IF NOT EXISTS vector') - 3
Зарегистрируйте тип vector для подключения, затем добавляйте векторы и выполняйте запросы к ним, следуя README вашей библиотеки
register_vector(conn)
Что важно знать
- На сервере PostgreSQL должно быть установлено расширение pgvector.
- Для каждой библиотеки баз данных требуются отдельные шаги настройки и код регистрации.
В подборках
Темы
Частые вопросы
- Что такое pgvector-python?
- Библиотека Python, добавляющая поддержку векторов pgvector и поиска по сходству для Django, SQLAlchemy, Psycopg, asyncpg, Peewee и других драйверов PostgreSQL. pgvector-python — клиентская библиотека Python, с помощью которой приложения могут хранить векторы в PostgreSQL и выполнять по ним запросы через расширение pgvector. Она поддерживает векторы обычной и половинной точности, битовые и разреженные векторы, а также операторы вычисления расстояния для L2, скалярного произведения, косинусного расстояния, L1, Хэмминга и Жаккара.
- pgvector-python можно использовать бесплатно? Какая у него лицензия?
- pgvector-python распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- pgvector-python всё ещё поддерживается?
- Активно поддерживается. Последний коммит в pgvector-python — 5 нояб. 2026 г..
- Для чего можно использовать pgvector-python?
- Добавление семантического поиска или поиска для RAG в приложение на Django или SQLAlchemy, использующее PostgreSQL. Хранение эмбеддингов текста или изображений, созданных с помощью OpenAI, Cohere или SentenceTransformers, в Postgres. Создание функций рекомендаций на основе векторов пользователей и объектов в существующей базе данных Postgres.
- Как установить pgvector-python?
- Установите пакет из PyPI: pip install pgvector Включите расширение pgvector в базе данных PostgreSQL (пример с Psycopg 3): conn.execute('CREATE EXTENSION IF NOT EXISTS vector') Зарегистрируйте тип vector для подключения, затем добавляйте векторы и выполняйте запросы к ним, следуя README вашей библиотеки: register_vector(conn)
- Где скачать pgvector-python?
- Исходный код и инструкции по установке — на GitHub: https://github.com/pgvector/pgvector-python
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Поддержка расширения pgvector для PostgreSQL в Go: типы векторов и адаптеры для pgx, pg, Bun, Ent, GORM и sqlx.
Вспомогательная библиотека для JavaScript и TypeScript, добавляющая поддержку типа vector из pgvector в драйверы и ORM для Node.js, Deno и Bun.
Milvus — распределённая векторная база данных с открытым исходным кодом для масштабного хранения эмбеддингов и поиска по ним, подходящая для AI-поиска и RAG-приложений.
Qdrant — движок поиска векторов по сходству и векторная база данных на Rust с фильтрацией по payload для семантического поиска и рекомендаций.
Расширение с открытым исходным кодом для поиска векторов по сходству в Postgres: храните эмбеддинги и выполняйте поиск рядом с реляционными данными.