AI 与向量

Google Colab

使用 Google Colab 管理您的 Supabase 向量存储


Google Colab 徽章

Google Colab 是一项托管的 Jupyter Notebook 服务。它提供免费的计算资源访问,包括 GPU 和 TPU,非常适合机器学习、数据科学和教育用途。我们可以使用 Colab 通过 Supabase Vecs 来管理向量集合。

在本教程中,我们将连接运行在 Supabase 平台上的数据库。如果您还没有数据库,可以在这里创建:database.new

创建新笔记本

首先访问 colab.research.google.com。在那里您可以创建一个新笔记本。

Google Colab 新建笔记本

安装 Vecs

我们将使用 Supabase 向量客户端 Vecs 来管理我们的集合。

在笔记本顶部添加以下代码,然后点击"执行"按钮(ctrl+enter):

1
pip install vecs

安装 vecs

连接数据库

在项目仪表板中点击 Connect。连接字符串应类似于 postgres://postgres.xxxx:password@xxxx.pooler.supabase.com:6543/postgres

在安装代码块下方新建一个代码块(ctrl+m b),并添加以下代码,使用您复制的 Postgres URI:

1
2
3
4
5
6
7
import 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):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
collection = 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 模式。

Colab文档

查询文档

现在我们可以基于相似性搜索文档。新建一个代码块并执行以下代码:

1
2
3
4
5
6
7
8
collection.query( query_vector=[0.4,0.5,0.6], # 必需参数 limit=5, # 返回记录数量 filters={}, # 元数据过滤器 measure="cosine_distance", # 使用的距离度量方式 include_value=False, # 是否返回距离度量值? include_metadata=False, # 是否返回记录元数据?)

您将看到返回了一个包含两个文档的数组 ['vec1', 'vec0']

Colab结果

同时还会返回一个警告:

1
查询没有为cosine_distance创建覆盖索引。

您可以在Vecs文档中了解更多关于创建索引的信息。

相关资源