You need to enable JavaScript to run this app.
文档中心
向量数据库VikingDB

向量数据库VikingDB

复制全文
下载 pdf
数据集(Collection)
CreateVikingdbCollection
复制全文
下载 pdf
CreateVikingdbCollection

概述

接口用于创建向量数据库的数据集(Collection),单账号下最多创建 200 个数据集。

说明

  • 每一个 Collection 必须指定主键字段。
  • 当定义字段 fields 添加了一个向量类型 vector 的字段后,再添加新的字段时,字段类型不可选择 vector 类型。因为目前只支持单向量,不可添加多个向量字段。
  • 创建数据集时,请根据数据类型明确配置方式:若为已有向量数据,请填写 vector 字段;若需对多模态数据(如图文)进行向量化,请配置 vectorize 参数。二者为不同的数据处理逻辑,创建时仅可选择其一,不可同时使用。
  • 一个 Collection 里的 fields 数量上限是 200 个。

方法定义

Go SDK 通过 vikingdb.New(sess) 创建的客户端实例调用 CreateVikingdbCollection(input) 方法发起集合创建请求,input 参数类型为 vikingdb.CreateVikingdbCollectionInput,包含集合名称、描述、项目名称和字段定义等配置。

请求参数

下表仅列出该接口特有的请求参数和部分公共参数。更多信息请见公共参数

参数

类型

是否必选

描述

ProjectName

string

项目的名称。对应火山引擎“项目”(project)的概念。不填则默认当做default处理。

CollectionName

string

数据集的名称,对应 API 字段 CollectionName

  • 只能使用英文字母、数字、下划线_,并以英文字母开头,不能为空
  • 长度(字节)要求:[1, 128]
  • 同账号下,所有 Collection 名称不能重复
  • 同账号下,Collection 数量不超过 200 个

Description

string

数据集的描述
最长 65535 字节

Fields

[]FieldForCreateVikingdbCollectionInput

数据集中的字段。
限制:数据集内最多 200 个字段。

Vectorize

VectorizeForCreateVikingdbCollectionInput

数据集的向量化配置。

  • FieldForCreateVikingdbCollectionInput 参数结构

参数

类型

是否必选

描述

FieldName

string

字段名。
限制:英文字母、数字、或下划线。且必须以英文字母开头。长度不超过64Byte。

FieldType

FieldTypeEnum(枚举类型)

字段类型。

DefaultValue

interface{}

字段内容默认值。
注意:vector/sparse_vector/text/image/video 类型字段不支持默认值。

Dim

Int

若字段类型是vector,该参数指定稠密向量的维度。支持4-4096且为4的整数倍。

IsPrimaryKey

bool

是否为主键字段。可以为数据集指定1个主键字段(string或int64类型)。若没有指定,则使用自动生成的主键,字段名为"AUTO_ID"。

  • VectorizeForCreateVikingdbCollectionInput 参数结构

参数

类型

是否必选

描述

Dense

DenseForCreateVikingdbCollectionInput

稠密向量化模型配置

Sparse

SparseForCreateVikingdbCollectionInput

稀疏向量化模型配置

  • DenseForCreateVikingdbCollectionInput 和 SparseForCreateVikingdbCollectionInput 参数结构

参数

类型

是否必选

描述

ModelName

ModelNameEnum(枚举类型)

模型名称。
枚举值见embedding模型列表。

ModelVersion

string

模型版本。若为doubao系模型,则必选模型版本。若为bge系模型,默认为default。

Dim

int

稠密向量维度。各模型支持的维度见embedding模型列表。

TextField

string

文本向量化字段名称。

ImageField

string

图片向量化字段名称。

VideoField

string

视频向量化字段名称。

field_type

字段类型

格式

可为主键

说明

int64

整型数值

整数

  • 作为主键时,要求不能为0

float32

浮点数值

浮点数

string

字符串

字符串

  • 推荐使用方式:当用于枚举值过滤时,推荐长度不超过128字节
  • 硬性限制:要求不超过65535字节;当作为主键时,需满足长度不超过256字节

bool

true/false

布尔类型

[]string

字符串数组

字符串数组

  • 推荐使用方式:当用于枚举值过滤时,列表长度不超过32个,单元素不超过1024字节
  • 硬性限制:列表长度不超过20000,单元素不超过1024字节,总大小不超过1MB

[]int64

整型数组

整数数组

  • 硬性限制:列表长度不超过1024

vector

  • 向量(浮点数数组)
  • float32/float64压缩为bytes后的base64编码

稠密向量

  • 硬性限制:长度不小于4,不大于4096,且为4的整数倍数。

sparse_vector

输入格式 <token_id, token_weight> 的字典列表,来表征稀疏向量的非零位下标及其对应的值,其中 token_id 是 string 类型,token_weight 是 float 类型

稀疏向量

text

string

若为向量化字段,则值不能为空。(若否,可以为空)

  • 若为向量化字段,则值不能为空。(若否,可以为空)
  • 硬性限制:需小于65535字节

image

string

若为向量化字段,则值不能为空。(若否,可以为空)

  • 图片tos链接 tos://{bucket}/{object}
  • http/https格式链接
  • 对应图片需满足宽高长度大于14px,像素小于3600万
  • 可参考:多模态向量化

video

map[string]interface{}

若为向量化字段,则值不能为空。(若否,可以为空)

  • 视频tos链接 tos://{bucket}/{object}
  • http/https格式url链接
  • 对应视频需满足大小不超过50mb
  • 可参考:多模态向量化
{
    "value": "tos://{bucket}/{object}"     # 或 http/https 格式 url 链接,该字段必填
    "fps": 0.2     # 取值0.2-5,选填
}

date_time

string

分钟级别:
yyyy-MM-ddTHH:mmZyyyy-MM-ddTHH:mm±HH:mm
秒级别:
yyyy-MM-ddTHH:mm:ssZyyyy-MM-ddTHH:mm:ss±HH:mm
毫秒级别:
yyyy-MM-ddTHH:mm:ss.SSSZyyyy-MM-ddTHH:mm:ss.SSS±HH:mm
例如:"2025-08-12T11:33:56+08:00"

geo_point

string

地理坐标longitude,latitude,其中longitude取值(-180,180),latitude取值(-90,90)
例如:"116.408108,39.915023"

模型列表

模型名称

模型版本

支持向量化类型

默认稠密向量维度

可选稠密向量维度

文本截断长度

支持稀疏向量

可支持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

240715

text

2048

512, 1024, 2048

4096

doubao-embedding-large

240915

text

2048

512, 1024, 2048, 4096

4096

doubao-embedding-vision

250328

text、image及其组合

2048

2048, 1024

8192

doubao-embedding-vision

250615

兼容241215250328的用法*。*另外,支持full_modal_seq(文/图/视频序列)

2048

2048, 1024

128k

返回参数

下表仅列出本接口特有的返回参数。更多信息请参见返回结构

参数

类型

描述

Message

string

有关请求状态的消息。

ResourceId

string

新数据集的 ID。

请求示例

创建带 vectorize(向量化)配置的数据集

package main

import (
    "fmt"
    "os"

    "github.com/volcengine/volcengine-go-sdk/service/vikingdb"
    "github.com/volcengine/volcengine-go-sdk/volcengine"
    "github.com/volcengine/volcengine-go-sdk/volcengine/credentials"
    "github.com/volcengine/volcengine-go-sdk/volcengine/session"
)

func main() {
    var (
       accessKey = os.Getenv("VIKINGDB_AK")
       secretKey = os.Getenv("VIKINGDB_SK")
       region    = "cn-beijing"
    )
    config := volcengine.NewConfig().
       WithRegion(region).
       WithCredentials(credentials.NewStaticCredentials(accessKey, secretKey, ""))

    sess, err := session.NewSession(config)
    if err != nil {
       panic(err)
    }
    svc := vikingdb.New(sess)

    input := vikingdb.CreateVikingdbCollectionInput{
       CollectionName: volcengine.String("Your Collection Name"),
       Description:    volcengine.String("Your Collection Description"),
       ProjectName:    volcengine.String("default"),
       Fields: []*vikingdb.FieldForCreateVikingdbCollectionInput{
          {
             FieldName:    volcengine.String("item_id"),
             FieldType:    volcengine.String("int64"),
             IsPrimaryKey: volcengine.Bool(true),
          },
          {
             FieldName: volcengine.String("title"),
             FieldType: volcengine.String("string"),
          },
          {
             FieldName: volcengine.String("content"),
             FieldType: volcengine.String("text"),
          },
          {
             FieldName:    volcengine.String("f_int64"),
             FieldType:    volcengine.String("int64"),
             DefaultValue: 123456,
          },
       },
       Vectorize: &vikingdb.VectorizeForCreateVikingdbCollectionInput{
          Dense: &vikingdb.DenseForCreateVikingdbCollectionInput{
             ModelName: volcengine.String("bge-m3"),
             TextField: volcengine.String("content"),
          },
          Sparse: &vikingdb.SparseForCreateVikingdbCollectionInput{
             ModelName: volcengine.String("bge-m3"),
             TextField: volcengine.String("content"),
          },
       },
    }

    resp, err := svc.CreateVikingdbCollection(&input)
    if err != nil {
       panic(err)
    }

    fmt.Println(resp.Message)
    fmt.Println(resp.ResourceId)
}

创建带 vector 字段的数据集

package main

import (
    "fmt"
    "os"

    "github.com/volcengine/volcengine-go-sdk/service/vikingdb"
    "github.com/volcengine/volcengine-go-sdk/volcengine"
    "github.com/volcengine/volcengine-go-sdk/volcengine/credentials"
    "github.com/volcengine/volcengine-go-sdk/volcengine/session"
)

func main() {
    var (
       accessKey = os.Getenv("VIKINGDB_AK")
       secretKey = os.Getenv("VIKINGDB_SK")
       region    = "cn-beijing"
    )
    config := volcengine.NewConfig().
       WithRegion(region).
       WithCredentials(credentials.NewStaticCredentials(accessKey, secretKey, ""))

    sess, err := session.NewSession(config)
    if err != nil {
       panic(err)
    }
    svc := vikingdb.New(sess)

    input := vikingdb.CreateVikingdbCollectionInput{
       CollectionName: volcengine.String("Your Collection Name"),
       Description:    volcengine.String("Your Collection Description"),
       ProjectName:    volcengine.String("default"),
       Fields: []*vikingdb.FieldForCreateVikingdbCollectionInput{
          {
             FieldName:    volcengine.String("item_id"),
             FieldType:    volcengine.String("int64"),
             IsPrimaryKey: volcengine.Bool(true),
          },
          {
             FieldName: volcengine.String("title"),
             FieldType: volcengine.String("string"),
          },
          {
             FieldName: volcengine.String("dense_vector"),
             FieldType: volcengine.String("vector"),
             Dim:       volcengine.Int32(768),
          },
          {
             FieldName: volcengine.String("sparse_vector"),
             FieldType: volcengine.String("sparse_vector"),
          },
          {
             FieldName:    volcengine.String("f_int64"),
             FieldType:    volcengine.String("int64"),
             DefaultValue: 123456,
          },
       },
    }

    resp, err := svc.CreateVikingdbCollection(&input)
    if err != nil {
       panic(err)
    }

    fmt.Println(resp.Message)
    fmt.Println(resp.ResourceId)
}
最近更新时间:2026.04.14 15:03:26
这个页面对您有帮助吗?
有用
有用
无用
无用