接口用于创建向量数据库的数据集(Collection),单账号下最多创建 200 个数据集。
__AUTO_ID__。Python SDK 通过 VIKINGDBApi().create_vikingdb_collection(request) 发起调用,request 类型为 volcenginesdkvikingdb.CreateVikingdbCollectionRequest。
下表仅列出该接口特有的请求参数和部分公共参数。更多信息请见公共参数。
参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
project_name | str | 否 | 项目名称,对应 API 字段 |
collection_name | str | 是 | 数据集名称,对应 API 字段
|
description | str | 否 | 数据集描述,对应 API 字段 |
fields | list[FieldForCreateVikingdbCollectionInput] | 是 | 字段定义列表,对应 API 字段
|
vectorize | VectorizeForCreateVikingdbCollectionInput | 否 | 向量化配置,对应 API 字段 |
参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
field_name | str | 是 | 字段名,对应 API 字段 |
field_type | str | 是 | 字段类型,对应 API 字段 |
default_value | object | 否 | 字段默认值,对应 API 字段 |
dim | int | field_type 为 vector 时必填 | 稠密向量维度,对应 API 字段 |
is_primary_key | bool | 否 | 是否为主键,对应 API 字段 |
参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
dense | DenseForCreateVikingdbCollectionInput | 是 | 稠密向量化配置,对应 API 字段 |
sparse | SparseForCreateVikingdbCollectionInput | 否 | 稀疏向量化配置,对应 API 字段 |
参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
model_name | str | 是 | 模型名称,对应 API 字段 |
model_version | str | 否 | 模型版本,对应 API 字段 |
dim | int | 否 | 稠密向量维度。显式值必须属于所选模型在 embedding 模型列表中声明的可选维度;省略时使用模型默认维度。 |
text_field | str | 否 | 文本向量化字段名,对应 API 字段 |
image_field | str | 否 | 图片向量化字段名,对应 API 字段 |
video_field | str | 否 | 视频向量化字段名,对应 API 字段 |
字段类型 | 格式 | 可为主键 | 说明 |
|---|---|---|---|
int64 | 整型数值 | 是 | 整数
|
float32 | 浮点数值 | 否 | 浮点数 |
string | 字符串 | 是 | 字符串。
|
bool | true/false | 否 | 布尔类型 |
list | 字符串数组 | 否 | 字符串数组
|
list | 整型数组 | 否 | 整数数组
|
vector |
| 否 | 稠密向量
|
sparse_vector | 输入格式的字典列表,用于表征稀疏向量的非零位下标及其对应的值,其中 token_id 是 string 类型,token_weight 是 float 类型 | 否 | 稀疏向量 |
text | 字符串 | 否 | 若为向量化字段,则值不能为空。(若否,可以为空)
|
image | 字符串 | 否 | 若为向量化字段,则值不能为空。(若否,可以为空)
|
video | Object | 否 | 若为向量化字段,则值不能为空。(若否,可以为空)
|
date_time | string | 否 | 分钟级别: |
geo_point | string | 否 | 地理坐标 |
模型名称 | 模型版本 | 支持向量化类型 | 默认稠密向量维度 | 可选稠密向量维度 | 文本截断长度 | 支持稀疏向量 | 支持 instruction |
|---|---|---|---|---|---|---|---|
bge-large-zh | (default) | text | 1024 | 1024 | 512 | 否 | 是 |
bge-m3 | (default) | text | 1024 | 1024 | 8192 | 是 | 否 |
bge-visualized-m3 | (default) | text、image及其组合 | 1024 | 1024 | 8192 | 否 | 否 |
doubao-embedding-vision | 250615 | 兼容 241215 的用法。另外,支持 full_modal_seq(文/图/视频序列) | 2048 | 2048, 1024 | 128k | 否 | 是 |
下表仅列出本接口特有的返回参数。更多信息请参见返回结构。
参数 | 类型 | 描述 |
|---|---|---|
message | str | 请求状态描述,对应 API 字段 |
resource_id | str | 新建数据集 ID,对应 API 字段 |
请在火山引擎控制台的密钥管理页面获取 AK 和 SK,并将示例中的 <YOUR_AK>、<YOUR_SK> 等占位符替换为真实配置。
运行示例前,请完成以下准备:
- 安装 VikingDB V2 Python SDK,将完整代码保存为
example.py后执行python3 example.py。- AK/SK 在火山引擎控制台“密钥管理”中创建;Host 和 Region 取自地域和访问域名。请在运行前配置代码读取的
VIKINGDB_AK、VIKINGDB_SK、VIKINGDB_HOST、VIKINGDB_REGION等环境变量。- Collection、Index 名称从 VikingDB 控制台对应资源详情获取,Task ID 使用创建或查询任务接口返回的 ID。请将代码中的
<YOUR_...>占位符全部替换为真实值。- 若示例包含 TOS 路径,请从 TOS 控制台确认桶名和对象路径,并替换为真实的
<YOUR_BUCKET_NAME>/<YOUR_TOS_PATH>。
import os import volcenginesdkcore import volcenginesdkvikingdb as vdb from volcenginesdkvikingdb.api.vikingdb_api import VIKINGDBApi configuration = volcenginesdkcore.Configuration() configuration.ak = os.environ["VIKINGDB_AK"] configuration.sk = os.environ["VIKINGDB_SK"] configuration.region = os.environ["VIKINGDB_REGION"] configuration.host = os.environ["VIKINGDB_HOST"] configuration.scheme = "https" volcenginesdkcore.Configuration.set_default(configuration) client = VIKINGDBApi() request = vdb.CreateVikingdbCollectionRequest( collection_name="sdk_demo_collection", description="Create collection with vector fields", project_name="default", fields=[ vdb.FieldForCreateVikingdbCollectionInput( field_name="item_id", field_type="int64", is_primary_key=True, ), vdb.FieldForCreateVikingdbCollectionInput( field_name="title", field_type="string", ), vdb.FieldForCreateVikingdbCollectionInput( field_name="dense_vector", field_type="vector", dim=768, ), vdb.FieldForCreateVikingdbCollectionInput( field_name="sparse_vector", field_type="sparse_vector", ), vdb.FieldForCreateVikingdbCollectionInput( field_name="f_int64", field_type="int64", default_value=123456, ), ], ) response = client.create_vikingdb_collection(request) print("message:", response.message) print("resource_id:", response.resource_id)
import os import volcenginesdkcore import volcenginesdkvikingdb as vdb from volcenginesdkvikingdb.api.vikingdb_api import VIKINGDBApi configuration = volcenginesdkcore.Configuration() configuration.ak = os.environ["VIKINGDB_AK"] configuration.sk = os.environ["VIKINGDB_SK"] configuration.region = os.environ["VIKINGDB_REGION"] configuration.host = os.environ["VIKINGDB_HOST"] configuration.scheme = "https" volcenginesdkcore.Configuration.set_default(configuration) client = VIKINGDBApi() request = vdb.CreateVikingdbCollectionRequest( collection_name="sdk_demo_vectorize", description="Auto vectorize text and image", project_name="default", fields=[ vdb.FieldForCreateVikingdbCollectionInput( field_name="doc_id", field_type="string", is_primary_key=True, ), vdb.FieldForCreateVikingdbCollectionInput( field_name="content", field_type="text", ), vdb.FieldForCreateVikingdbCollectionInput( field_name="cover_image", field_type="image", ), vdb.FieldForCreateVikingdbCollectionInput( field_name="f_int64", field_type="int64", default_value=123456, ), ], vectorize=vdb.VectorizeForCreateVikingdbCollectionInput( dense=vdb.DenseForCreateVikingdbCollectionInput( model_name="bge-m3", text_field="content", ), sparse=vdb.SparseForCreateVikingdbCollectionInput( model_name="bge-m3", text_field="content", ), ), ) response = client.create_vikingdb_collection(request) if response.resource_id: print("collection created:", response.resource_id) else: print("request failed:", response.message)