AI 与向量

语义文本去重

使用Supabase Vecs查找重复的电影评论


本指南将带您完成一个使用 Colab 和 Supabase Vecs 的"语义文本去重"示例。您将学习如何通过嵌入向量查找相似的电影评论,并移除看似重复的内容。您将:

  1. 启动一个使用 pgvector 存储嵌入向量的 Postgres 数据库
  2. 启动一个连接到您数据库的笔记本
  3. 加载 IMDB 数据集
  4. 使用 sentence-transformers/all-MiniLM-L6-v2 模型创建代表每条评论语义含义的嵌入向量
  5. 搜索所有重复项

项目设置

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

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

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

查找凭证

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

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

启动笔记本

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

在笔记本顶部,您会看到 Copy to Drive 按钮。点击此按钮将笔记本复制到您的 Google Drive。

连接到数据库

在笔记本中找到指定 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
26
27
将 `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)<$Partial path="ai/quickstart_hf_deployment.mdx" />## 后续步骤现在您可以开始使用 Vecs 构建自己的应用程序了。查看我们的[示例](/docs/guides/ai#examples)获取灵感。