Python客户端
在PostgreSQL中管理非结构化向量存储
Supabase 提供了一个名为 vecs
的 Python 客户端,用于管理非结构化向量存储。该客户端提供了一系列实用工具,可通过 pgvector 扩展在 Postgres 中创建和查询集合。
快速开始
让我们通过本地数据库来了解 Vecs 的工作原理。请确保您的机器上已安装 Supabase CLI。
初始化项目
在任何文件夹中使用 init
和 start
命令启动本地 Postgres 实例。请确保 Docker 正在运行!
12345# 初始化项目supabase init# 启动 Postgressupabase start
创建集合
在 Python shell 中运行以下命令,创建一个名为 "docs" 的 3 维集合:
1234567import vecs# 创建向量存储客户端vx = vecs.create_client("postgresql://postgres:postgres@localhost:54322/postgres")# 创建 3 维向量集合docs = vx.get_or_create_collection(name="docs", dimension=3)
添加嵌入向量
现在我们可以使用 upsert()
命令向 "docs" 集合插入一些嵌入向量:
12345678910111213import vecs# 创建向量存储客户端docs = vecs.get_or_create_collection(name="docs", dimension=3)# 3 维向量集合vectors=[ ("vec0", [0.1, 0.2, 0.3], {"year": 1973}), ("vec1", [0.7, 0.8, 0.9], {"year": 2012})]# 插入向量docs.upsert(vectors=vectors)
查询集合
现在可以查询集合以获取相关匹配:
12345678910import vecsdocs = vecs.get_or_create_collection(name="docs", dimension=3)# 查询集合,筛选元数据中 "year" = 2012 的记录docs.query( data=[0.4,0.5,0.6], # 必需参数 limit=1, # 返回记录数 filters={"year": {"$eq": 2012}}, # 元数据筛选条件)
深入探索
如需深入了解 vecs
集合,请参阅 API 文档。
相关资源
- Vecs 官方文档:https://supabase.github.io/vecs/api
- 源代码仓库:https://github.com/supabase/vecs