人脸相似度搜索
使用 Supabase Vecs 找出与您最相似的明星面孔
本指南将带您完成一个使用Colab和Supabase Vecs的"人脸相似度搜索"示例。您将能够识别与您(或任何其他人)长相最相似的名人。具体步骤包括:
- 启动一个使用pgvector存储嵌入向量的Postgres数据库
- 启动连接到您数据库的笔记本
- 加载"
ashraq/tmdb-people-image
"名人数据集 - 使用
face_recognition
模型为每张名人照片创建嵌入向量 - 在数据集中搜索相似的面孔
项目设置
我们来创建一个新的Postgres数据库。在Supabase中创建新项目非常简单:
- 在Supabase仪表板中创建新项目。
- 输入项目详细信息。请记住将密码妥善保存。
不到一分钟,您的数据库就可以使用了。
查找凭证:
您可以在仪表板上找到项目凭证:
- 数据库连接字符串:直接连接和连接池连接详细信息,包括连接字符串和参数。
- 数据库密码:如果您忘记密码,可以在此处重置数据库密码。
- API凭证:您的无服务器API URL以及
anon
/service_role
密钥。
启动笔记本
在Colab中启动我们的semantic_text_deduplication
笔记本:
在笔记本顶部,您会看到一个复制到云端硬盘
按钮。点击此按钮将笔记本复制到您的Google云端硬盘。
连接到数据库
在笔记本中找到指定DB_CONNECTION
的单元格,其中包含类似以下的代码:
123import vecsDB_CONNECTION = "postgresql://<user>:<password>@<host>:<port>/<db_name>"
创建向量存储客户端
vx = vecs.create_client(DB_CONNECTION)
12345678910111213141516171819202122232425将 `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` 模式。## 后续步骤现在您可以使用 Vecs 开始构建自己的应用程序。查看我们的[示例](/docs/guides/ai#examples)获取灵感。