/collection/create 接口用于创建一个新的数据集 Collection。创建成功后,可以写入数据。
说明
说明
请求向量数据库 VikingDB 的 OpenAPI 接口时,需要构造签名进行鉴权,详细的 OpenAPI 签名调用方法请参见 API签名调用指南。
URI | /api/collection/create | 统一资源标识符 |
---|---|---|
请求方法 | POST | 客户端对向量数据库服务器请求的操作类型 |
请求头 | Content-Type: application/json | 请求消息类型 |
Authorization: HMAC-SHA256 *** | 鉴权 |
参数 | 子参数 | 类型 | 是否必选 | 默认值 | 参数说明 |
---|---|---|---|---|---|
collection_name | -- | string | 是 | -- | 指定创建的 Collection 名称。
|
collection_aliases | -- | array | 否 | -- | 自定义数据集的别名。
|
description | -- | string | 否 | "" | 自定义 Collection 的描述。
|
primary_key | -- | string | 是 | -- | 主键用于唯一标识一行数据。
|
fields 说明 一个 Collection 里的 fields 数量上限是 200。 | field_name | string | 是 | -- | 指定自定义字段的名称。
|
field_type | string | 是 | -- | 指定自定义字段类型,可选值详见 field_type 可选值说明。 | |
default_val | 和field_type一致 | 否 | -- | 指定自定义字段默认值,默认值详见 field_type 可选值说明。
| |
dim | int | field_type 为vector 时必选 | -- | 指定自定义字段向量维度。
| |
vectorize | dense | map | 否(填写 | -- | 稠密向量的向量化参数。子参数见下**"向量化参数"**表。 |
sparse | map | 否 | -- | 稀疏向量的向量化参数。如果无需稀疏向量,则不必填写。子参数见下**"向量化参数"**表。 |
说明
推荐通过**vectorize
参数**对文本进行向量化,已使用 pipeline 的用户,pipeline_name
子参数依然提供服务。
参数 | 子参数 | 类型 | 是否必选 | 默认值 | 参数说明 |
---|---|---|---|---|---|
fields 注意 如果使用了 | pipeline_name | string | field_type 为 text 时可选 | -- | 文本。纯文本预处理能力 pipeline 是指向量数据库将文本切片、文本向量化、入库、存储自动化的预处理流程。支持以string形式写入原始数据。
模型参数参考**“模型列表”** |
字段类型 | 可用索引类型 | default_val默认值 | 数据写入时 | default_val | 可为主键 | 说明 |
---|---|---|---|---|---|---|
int64 | 范围 | 0 | int64 范围 | int64 范围 | 是 | 整数 |
float32 | 范围 | 0.0 | float32 范围 | float32 范围 | 否 | 浮点数 |
string | 枚举 | "default" | -- | 长度<=128 | 是 | 字符串 |
bool | 枚举 | false | true/false | true/false | 否 | 布尔类型 |
list<string> | 枚举 | ["default"] | List 长度<=32 | List 长度<=32 | 否 | 字符串数组 |
list<int64> | 枚举 | [0] | List 长度<=32 | List 长度<=32 | 否 | 整数数组 |
vector | 向量 | -- | 维度 4-2048 | -- | 否 | 稠密向量。
|
sparse_vector | 稀疏向量 | -- | 非零元下标无限制 | -- | 否 | 稀疏向量。
|
text | -- | -- | -- | -- | 否 | 文本,可用于向量化 |
image | -- | -- | -- | -- | 否 |
|
注意
参数名 | 类型 | 必选 | 默认值 | 备注 |
---|---|---|---|---|
text_field | string | 否 | / | 待向量化的文本字段 |
image_field | string | 否 | / | 待向量化的图片字段 |
model_name | string | 是 | / | 模型名称。对应下面**“模型列表”**的模型名称。 |
model_version | string | 否 | / | 模型版本。如果某模型有多个版本,可指定具体版本。如果使用默认版本模型或该模型没有多版本,则无需填写该字段。 |
dim | int | 否 | / | 如果需要生成稠密向量,指定向量维度。默认使用模型默认的维度。 |
注意
text_field 和 image_field 的设置,与 model 的选择需要对应。例如,model_name 选择了纯文本 embedding 模型,则不允许有 image_field。
模型名称 | 支持向量化类型 | 简介 | 默认稠密向量维度 | 可选稠密向量维度 | 支持稀疏向量 | need instruction | 默认版本 | 可选版本 |
---|---|---|---|---|---|---|---|---|
doubao-embedding | text | 字节自研的轻量 Doubao 向量化模型,输出稠密向量,适配大多数检索场景,向量化速度更快 | 2048 | 512, 1024, 2048 | 否 | 是 | 240515 | 240515、240715 |
doubao-embedding-large | text | 采用能力更强的 Doubao 语言模型为基座,输出稠密向量,适合对检索精度有较高要求且时间不敏感的场景 | 2048 | 512, 1024, 2048, 4096 | 否 | 是 | 240915 | 240915 |
doubao-embedding-vision | text、text_image、image 说明 在纯图场景下也会有额外的少量文本token消耗(20tokens左右) | 字节自研的图文多模态向量化模型,主要面向图文多模向量检索的使用场景,支持图片输入及中、英双语文本输入,最长 8K 上下文长度。 | 3072 | 3072 | 否 | 是 | 241215 | 241215 |
bge-large-zh | text | 仅支持中文,输出1024维度的稠密向量,适用于短文本 | 1024 | 1024 | 否 | 否 | ||
bge-m3 | text | 支持 100 多种语言及跨语言向量化能力,可输出稠密向量和稀疏向量,适配长文本多语言场景 | 1024 | 1024 | 是 | 否 | ||
bge-visualized-m3 | text、text_image、image | 可对文本或图片进行单独编码,或者对文本图片对联合编码,输出1024维度的稠密向量 | 1024 | 1024 | 否 | 否 |
参数 | 参数说明 |
---|---|
code | 状态码 |
message | 返回信息 |
request_id | 标识每个请求的唯一标识符 |
状态码 | http状态码 | 返回信息 | 状态码说明 |
---|---|---|---|
0 | 200 | success | 创建 Collection 执行成功。 |
1000004 | 400 | collection exist | Collection 已存在。 |
1000003 | 400 | invalid request:%s | 非法参数:
|
1000001 | 401 | unauthorized | 请求头中缺乏鉴权信息。 |
1000002 | 403 | no permission | 权限不足。 |
创建带有稠密向量、稀疏向量字段和标量字段的 Collection 为例:
curl -i -X POST \ -H 'Content-Type: application/json' \ -H 'Authorization: HMAC-SHA256***' \ https://api-vikingdb.volces.com/api/collection/create \ -d '{ "collection_name": "test_name", "description": "test dataset", "primary_key": "id", "fields": [ { "field_name": "id", "field_type": "int64" }, { "field_name": "text", "field_type": "string", "default_val": "" }, { "field_name": "vector_field", "field_type": "vector", "dim": 768 }, { "field_name": "sparse_vector_field", "field_type": "sparse_vector" }, { "field_name": "time", "field_type": "int64", "default_val": 0 }, { "field_name": "author", "field_type": "string", "default_val": "null" }, ] }'
创建带有文本字段的 Collection 为例:
curl -i -X POST \ -H 'Content-Type: application/json' \ -H 'Authorization: HMAC-SHA256***' \ https://api-vikingdb.volces.com/api/collection/create \ -d '{ "collection_name": "test_raw_data_collection", "description": "test_raw_data_collection", "primary_key": "id", "fields": [{ "field_name": "id", "field_type": "int64", "default_val": 0 }, { "field_name": "gap", "field_type": "float32", "default_val": 3.1 }], "vectorize":[{ "dense": { "text_field": "content", "model_name": "doubao-embedding-large", "dim": 2048 }, "sparse": { "text_field": "content", "model_name": "bge_m3", "dim": 1024 } }] }'
执行成功返回:
HTTP/1.1 200 OK Content-Length: 43 Content-Type: application/json {"code":0,"message":"success","request_id":"021695029537650fd001de666660000000000000000000230da93"}
执行失败返回:
HTTP/1.1 400 OK Content-Length: 43 Content-Type: application/json {"code":1000004,"message":"collection exist","request_id":"021695029537650fd001de666660000000000000000000230da93"}