基于 Rust 的 Postgres 扩展,在 pgvector 之上提供 DiskANN 索引和标签过滤,用于更快、更省成本的向量检索。
pgvector/pgvector-python
为 Django、SQLAlchemy、Psycopg、asyncpg 等 Python 数据库库提供 pgvector 向量类型与相似度搜索支持。
- Star
- 1,542
- Fork
- 104
- 未关闭 Issue
- 9
- 最近提交
- 前天
这是什么?
pgvector-python 是一个 Python 客户端库,让应用可以通过 pgvector 扩展在 PostgreSQL 中存储和查询向量。它提供向量、半精度向量、位向量和稀疏向量类型,并支持 L2、内积、余弦、L1、Hamming 和 Jaccard 等距离运算。
该库支持 Django、SQLAlchemy、SQLModel、Psycopg 2/3、asyncpg、pg8000 和 Peewee 等常见 Python 数据库栈。每种集成都涵盖启用扩展、添加向量列、写入嵌入、执行最近邻查询以及创建 HNSW 或 IVFFlat 索引等常用步骤。
仓库还附带示例脚本,涵盖基于 Ollama 的检索增强生成、OpenAI 与 Cohere 嵌入、混合搜索、图像搜索、推荐系统以及使用 COPY 批量导入等场景。
核心功能
- 01支持 Django、SQLAlchemy、SQLModel、Psycopg 2/3、asyncpg、pg8000 和 Peewee。
- 02提供向量、半精度向量、位向量和稀疏向量字段类型。
- 03支持 L2、内积、余弦、L1、Hamming 和 Jaccard 等距离运算。
- 04可通过各库的 API 创建 HNSW 和 IVFFlat 近似索引。
- 05支持 Python 列表、NumPy 数组与 SciPy 稀疏数组之间的转换。
适用场景
- 为基于 PostgreSQL 的 Django 或 SQLAlchemy 应用添加语义搜索或 RAG 检索。
- 将 OpenAI、Cohere 或 SentenceTransformers 生成的文本或图像嵌入存入 Postgres。
- 在现有 Postgres 数据库中基于用户与物品向量构建推荐功能。
快速上手
- 1
从 PyPI 安装该包
pip install pgvector - 2
在 PostgreSQL 数据库中启用 pgvector 扩展(以 Psycopg 3 为例)
conn.execute('CREATE EXTENSION IF NOT EXISTS vector') - 3
在连接上注册向量类型,然后按照 README 中对应库的说明插入和查询向量
register_vector(conn)
使用前须知
- 需要在 PostgreSQL 服务器上安装 pgvector 扩展。
- 每个数据库库都需要单独的配置步骤和类型注册代码。
收录于专题
标签
常见问题
- pgvector-python 是什么?
- 为 Django、SQLAlchemy、Psycopg、asyncpg 等 Python 数据库库提供 pgvector 向量类型与相似度搜索支持。 pgvector-python 是一个 Python 客户端库,让应用可以通过 pgvector 扩展在 PostgreSQL 中存储和查询向量。它提供向量、半精度向量、位向量和稀疏向量类型,并支持 L2、内积、余弦、L1、Hamming 和 Jaccard 等距离运算。
- pgvector-python 可以免费使用吗?用的什么许可证?
- pgvector-python 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- pgvector-python 还在维护吗?
- 活跃维护中。pgvector-python 最近一次提交是在 2026年11月5日。
- pgvector-python 适合用来做什么?
- 为基于 PostgreSQL 的 Django 或 SQLAlchemy 应用添加语义搜索或 RAG 检索。 将 OpenAI、Cohere 或 SentenceTransformers 生成的文本或图像嵌入存入 Postgres。 在现有 Postgres 数据库中基于用户与物品向量构建推荐功能。
- pgvector-python 怎么安装和运行?
- 从 PyPI 安装该包: pip install pgvector 在 PostgreSQL 数据库中启用 pgvector 扩展(以 Psycopg 3 为例): conn.execute('CREATE EXTENSION IF NOT EXISTS vector') 在连接上注册向量类型,然后按照 README 中对应库的说明插入和查询向量: register_vector(conn)
- 在哪里获取 pgvector-python?
- 源代码和安装说明在 GitHub 上:https://github.com/pgvector/pgvector-python
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
为 Go 提供 pgvector(PostgreSQL 向量扩展)支持,可配合 pgx、pg、Bun、Ent、GORM 和 sqlx 使用。
为 Node.js、Deno、Bun 的数据库客户端和 ORM 提供 pgvector 向量类型支持的 JavaScript/TypeScript 库。
Milvus 是一款开源分布式向量数据库,用于大规模存储和检索向量嵌入,常用于 AI 搜索与 RAG 应用。
Qdrant 是用 Rust 编写的向量相似度搜索引擎和向量数据库,支持带条件过滤的语义搜索与推荐。
为 Postgres 提供向量相似度搜索的开源扩展,可与关系型数据存放在一起。