You need to enable JavaScript to run this app.
文档中心
AI 原生 BaaS 平台 Supabase 版

AI 原生 BaaS 平台 Supabase 版

复制全文
下载 pdf
使用 Storage
创建 Vector Bucket
复制全文
下载 pdf
创建 Vector Bucket
本文介绍在 Supabase 控制台和通过 Admin API 两种配置和管理 Vector Bucket 的方式。​
背景信息​
Vector Bucket 是 AI 原生 BaaS 平台 Supabase 版面向向量数据管理提供的逻辑容器,用于承载向量检索相关的数据组织与操作。创建 Vector Bucket 后,用户可以在其中进一步创建一个或多个 Vector Table,用于存储向量、元数据以及对应的索引配置,从而支持语义检索、相似度搜索、RAG、知识库召回等典型 AI 应用场景。​
从使用形态上看,Vector Bucket 延续了 Supabase 生态中面向开发者的易用性设计,便于用户在熟悉的 Storage / Admin API 体系下完成向量数据的创建、管理与查询;但在底层能力上,火山引擎 AI 原生 BaaS 平台 Supabase 版并不局限于 Supabase 官方默认能力,而是结合火山引擎自研平台化能力进行了增强。相较 Supabase 官方方案,火山引擎版本在向量能力上具备以下优势:​
  • 更高的资源规模上限:单个分支最多支持创建 1000 个 Vector Bucket,且所有 Vector Bucket 中的 Vector Table 总数上限同样为 1000 个,可承载更多业务隔离场景(如按租户、按知识库、按业务模块或按环境拆分向量数据)。​
  • 更高的向量维度支持:Vector Table 的向量维度最高支持 32768(32K),显著高于 Supabase 官方当前 4096(4K) 的上限,适用于高维 Embedding 模型及需要保留更多语义特征的场景。​
  • 更强的查询性能:向量检索底层由专业向量数据库提供支持,查询性能优于 Supabase 官方默认方案(具体性能数据以 Milvus 侧正式公布结果为准)。​
  • 专业向量数据库驱动:底层由向量数据库 Milvus 版驱动,支持高维向量检索、海量向量数据管理以及 AI 场景下的专业化向量能力建设。​
注意事项​
  • 一个分支最多可创建 1000 个 Vector Bucket。​
  • 一个分支最多可创建 1000 个 Vector Table(所有 Vector Bucket 中 Vector Table 的总数)。​
在 Supabase 控制台创建 Vector Buckets​
前提条件​
  • 已创建使用 Supabase 引擎的 Workspace 且 Workspace 的状态为运行中。关于创建 Workspace 的更多详细信息,请参见创建 Workspace。​
  • 已通过目标 Workspace 成功登录 Supabase 控制台。关于登录控制台的详细信息,请参见登录 Supabase 控制台。​
操作步骤​
  1. 在 Supabase 控制台单击左侧的 Storage,进入 Storage 页面。​
  1. 在 Storage 页面左侧的导航栏,单击 Vectors,在 Vectors 页面单击 + New bucket,在弹出的 Create vector bucket 窗口中完成以下配置后,单击 Create,即可完成 vector bucket 的创建。​
​
配置项​
说明​
Bucket name​
桶的名称。桶的名称应满足以下规则:​
  • 只能包含小写字母(a~z)、数字(0~9)、和中划线(-)。​
  • 必须以小写字母(a~z)或数字(0~9)开头和结尾。​
  • 长度必须在 3~63 个字符之间。​
​
后续步骤​
在创建向量桶(vector bucket)后,还需要创建向量表(vector table)。​
  1. 在 Vectors 页面,单击 + Create table,在弹出的 Create vector table 页面中完成以下配置后,单击 Create,即可完成 vector bucket 的创建。​
​
配置项​
说明​
Name​
​
向量表的名称。向量表的名称应满足以下规则:​
  • 只能包含小写字母(a~z)、数字(0~9)、中划线(-)和点号(.)。​
  • 长度必须在 3~63 个字符之间。​
Dimension​
输入向量维度值。维度值需为 2~32768 之间的整数。​
Distance metric​
选择向量距离度量方式:​
  • Cosine:余弦距离。基于向量方向计算相似度,与向量长度无关。​
  • Euclidean:欧氏距离。计算两个向量之间的直线距离,同时考虑方向和长度。​
  • Inner Product (IP):内积。计算一个向量在另一个向量上的投影值,数值越大表示相似度越高。​
Metadata keys ​
添加元数据键。可选。​
在 Metadata keys 区域,单击 Add metadata key,在输入框中输入元数据键名称。​
键名长度需在 1~63 个字符之间,且在当前表内唯一。如需添加多个元数据键,重复单击 Add metadata key 操作即可。​
​
通过 Admin API 配置和管理 Vector Bucket​
前提条件​
已获取 SUPABASE_BASE_URL 和 SERVICE_ROLE_KEY 。关于获取变量的详细信息,请参见获取变量。​
通过 Admin API 管理 Vector Buckets​
  • 查询 Vector Bucket 列表​
​
curl -X POST "$SUPABASE_BASE_URL/storage/v1/vector/ListVectorBuckets" \​
-H "apikey: ${SERVICE_ROLE_KEY}" \​
-H "Authorization: Bearer ${SERVICE_ROLE_KEY}" \​
-H "Content-Type: application/json" \​
-d '{}'​
​
​
  • 创建 Vector Bucket​
​
curl -X POST "$SUPABASE_BASE_URL/storage/v1/vector/CreateVectorBucket" \​
-H "apikey: ${SERVICE_ROLE_KEY}" \​
-H "Authorization: Bearer ${SERVICE_ROLE_KEY}" \​
-H "Content-Type: application/json" \​
-d '{​
"vectorBucketName": "embeddings"​
}'​
​
  • 查询 Vector Table​
​
curl -X POST "$SUPABASE_BASE_URL/storage/v1/vector/ListIndexes" \​
-H "apikey: ${SERVICE_ROLE_KEY}" \​
-H "Authorization: Bearer ${SERVICE_ROLE_KEY}" \​
-H "Content-Type: application/json" \​
-d '{​
"vectorBucketName": "embeddings"​
}'​
​
  • 创建 Vector Table​
​
curl -X POST "$SUPABASE_BASE_URL/storage/v1/vector/CreateIndex" \​
-H "apikey: ${SERVICE_ROLE_KEY}" \​
-H "Authorization: Bearer ${SERVICE_ROLE_KEY}" \​
-H "Content-Type: application/json" \​
-d '{​
"vectorBucketName": "embeddings",​
"indexName": "documents-openai",​
"dataType": "float32",​
"dimension": 1536,​
"distanceMetric": "cosine"​
}'​
​
示例——通过 Supabase Client SDK 管理 Vector Bucket 和 table​
初始化客户端​
​
import { createClient } from '@supabase/supabase-js'​
​
const supabase = createClient(​
'https://your-project-id.supabase.co',​
'your-service-key'​
)​
​
查询和创建 Vector Bucket​
​
const { data: buckets } = await supabase.storage.vectors.listBuckets()​
​
await supabase.storage.vectors.createBucket('embeddings')​
​
const { data: bucket } = await supabase.storage.vectors.getBucket('embeddings')​
​
console.log('✓ Vector bucket ready:', bucket)​
​
创建和查询 Vector Table​
​
const bucket = supabase.storage.vectors.from('embeddings')​
​
await bucket.createIndex({​
indexName: 'documents-openai',​
dataType: 'float32',​
dimension: 1536,​
distanceMetric: 'cosine',​
})​
​
const { data: tables } = await bucket.listIndexes()​
const { data: table } = await bucket.getIndex('documents-openai')​
​
console.log('✓ Vector table ready:', table)​
​
最近更新时间:2026.08.25 18:29:55
这个页面对您有帮助吗?
有用
有用
无用
无用