Google Colab
使用 Google Colab 管理您的 Supabase 向量存储
Google Colab 是一项托管的 Jupyter Notebook 服务。它提供免费的计算资源访问,包括 GPU 和 TPU,非常适合机器学习、数据科学和教育用途。我们可以使用 Colab 通过 Supabase Vecs 来管理向量集合。
在本教程中,我们将连接运行在 Supabase 平台上的数据库。如果您还没有数据库,可以在这里创建:database.new。
创建新笔记本
首先访问 colab.research.google.com。在那里您可以创建一个新笔记本。
安装 Vecs
我们将使用 Supabase 向量客户端 Vecs 来管理我们的集合。
在笔记本顶部添加以下代码,然后点击"执行"按钮(ctrl+enter
):
1pip install vecs
连接数据库
在项目仪表板中点击 Connect。连接字符串应类似于 postgres://postgres.xxxx:password@xxxx.pooler.supabase.com:6543/postgres
在安装代码块下方新建一个代码块(ctrl+m b
),并添加以下代码,使用您复制的 Postgres URI:
1234567import vecsDB_CONNECTION = "postgres://postgres.xxxx:password@xxxx.pooler.supabase.com:6543/postgres"# 创建向量存储客户端vx = vecs.create_client(DB_CONNECTION)
执行代码块(ctrl+enter
)。如果没有返回错误,则表示连接成功。
创建集合
现在我们将创建一个新集合并插入一些文档。
在安装代码块下方新建一个代码块(快捷键 ctrl+m b
)。将以下代码添加到代码块中并执行(快捷键 ctrl+enter
):
12345678910111213141516collection = vx.get_or_create_collection(name="colab_collection", dimension=3)collection.upsert( vectors=[ ( "vec0", # 向量标识符 [0.1, 0.2, 0.3], # 向量值,可以是列表或np.array {"year": 1973} # 关联的元数据 ), ( "vec1", [0.7, 0.8, 0.9], {"year": 2012} ) ])
这将在您数据库的 vecs
模式中创建一个名为 colab_collection
的表。您可以通过表格编辑器查看插入的项目,只需从模式下拉菜单中选择 vecs
模式。
查询文档
现在我们可以基于相似性搜索文档。新建一个代码块并执行以下代码:
12345678collection.query( query_vector=[0.4,0.5,0.6], # 必需参数 limit=5, # 返回记录数量 filters={}, # 元数据过滤器 measure="cosine_distance", # 使用的距离度量方式 include_value=False, # 是否返回距离度量值? include_metadata=False, # 是否返回记录元数据?)
您将看到返回了一个包含两个文档的数组 ['vec1', 'vec0']
:
同时还会返回一个警告:
1查询没有为cosine_distance创建覆盖索引。
您可以在Vecs文档中了解更多关于创建索引的信息。
相关资源
- Vecs API文档:supabase.github.io/vecs/api