AI 与向量

人脸相似度搜索

使用 Supabase Vecs 找出与您最相似的明星面孔


本指南将带您完成一个使用Colab和Supabase Vecs的"人脸相似度搜索"示例。您将能够识别与您(或任何其他人)长相最相似的名人。具体步骤包括:

  1. 启动一个使用pgvector存储嵌入向量的Postgres数据库
  2. 启动连接到您数据库的笔记本
  3. 加载"ashraq/tmdb-people-image"名人数据集
  4. 使用face_recognition模型为每张名人照片创建嵌入向量
  5. 在数据集中搜索相似的面孔

项目设置

我们来创建一个新的Postgres数据库。在Supabase中创建新项目非常简单:

  1. 在Supabase仪表板中创建新项目
  2. 输入项目详细信息。请记住将密码妥善保存。

不到一分钟,您的数据库就可以使用了。

查找凭证

您可以在仪表板上找到项目凭证:

  • 数据库连接字符串:直接连接和连接池连接详细信息,包括连接字符串和参数。
  • 数据库密码:如果您忘记密码,可以在此处重置数据库密码。
  • API凭证:您的无服务器API URL以及anon / service_role密钥。

启动笔记本

在Colab中启动我们的semantic_text_deduplication笔记本:

在笔记本顶部,您会看到一个复制到云端硬盘按钮。点击此按钮将笔记本复制到您的Google云端硬盘。

连接到数据库

在笔记本中找到指定DB_CONNECTION的单元格,其中包含类似以下的代码:

1
2
3
import vecsDB_CONNECTION = "postgresql://<user>:<password>@<host>:<port>/<db_name>"

创建向量存储客户端

vx = vecs.create_client(DB_CONNECTION)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
将 `DB_CONNECTION` 替换为您自己的连接字符串。您可以在项目仪表盘中点击[连接](https://supabase.com/dashboard/project/_?showConnect=true)找到连接字符串。<Admonition type='note'>SQLAlchemy 要求连接字符串以 `postgresql://` 开头(而不是 `postgres://`)。从仪表盘复制字符串后请记得修改前缀。</Admonition><Admonition type='note'>在 Google Colab 中必须使用"连接池"字符串(域名以 `*.pooler.supabase.com` 结尾),因为 Colab 不支持 IPv6。</Admonition>## 逐步执行笔记本现在只需逐步执行笔记本即可。您可以通过点击每个代码单元格左上角的"执行"按钮(`ctrl+enter`)来完成。该笔记本将引导您完成创建集合、添加数据和查询数据的过程。您可以在[表格编辑器](https://supabase.com/dashboard/project/_/editor/)中查看插入的条目,只需从模式下拉菜单中选择 `vecs` 模式。![Colab文档](/docs/img/ai/google-colab/colab-documents.png)## 后续步骤现在您可以使用 Vecs 开始构建自己的应用程序。查看我们的[示例](/docs/guides/ai#examples)获取灵感。