接口用于对向量数据库的创建,单账号下最多创建200个数据集。
说明
Go SDK 通过 vikingdb.New(sess) 创建的客户端实例调用 CreateVikingdbCollection(input) 方法发起集合创建请求,input 参数类型为 vikingdb.CreateVikingdbCollectionInput ,包含集合名称、描述、项目名称和字段定义等配置
下表仅列出该接口特有的请求参数和部分公共参数。更多信息请见公共参数。
参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
ProjectName | string | 否 | 项目的名称。对应火山引擎“项目”(project)的概念。不填则默认当做default处理。 |
CollectionName | String | 是 | 数据集的名称,对应 API 字段
|
Description | string | 否 | 数据集的描述 |
Fields | []FieldForCreateVikingdbCollectionInput | 是 | 数据集中的字段。 |
Vectorize | VectorizeForCreateVikingdbCollectionInput | 否 | 数据集的向量化配置。 |
参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
FieldName | string | 是 | 字段名。 |
FieldType | FieldTypeEnum(枚举类型) | 是 | 字段类型。 |
DefaultValue | interface{} | 否 | 字段内容默认值。 |
Dim | Int | 否 | 若字段类型是vector,该参数指定稠密向量的维度。支持4-4096且为4的整数倍。 |
IsPrimaryKey | bool | 否 | 是否为主键字段。可以为数据集指定1个主键字段(string或int64类型)。若没有指定,则使用自动生成的主键,字段名为"AUTO_ID"。 |
参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
DenseVectors | DenseForCreateVikingdbCollectionInput | 是 | 稠密向量化模型配置 |
SparseVectors | SparseForCreateVikingdbCollectionInput | 否 | 稀疏向量化模型配置 |
参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
ModelName | ModelNameEnum(枚举类型) | 是 | 模型名称。 |
ModelVersion | string | 否 | 模型版本。若为doubao系模型,则必选模型版本。若为bge系模型,默认为default。 |
Dim | int | 否 | 稠密向量维度。各模型支持的维度见embedding模型列表。 |
TextField | string | 否 | 文本向量化字段名称。 |
ImageField | string | 否 | 图片向量化字段名称。 |
VideoField | string | 否 | 视频向量化字段名称。 |
字段类型 | 格式 | 可为主键 | 说明 |
|---|---|---|---|
int64 | 整型数值 | 是 | 整数
|
float32 | 浮点数值 | 否 | 浮点数 |
string | 字符串 | 是 | 字符串
|
bool | true/false | 否 | 布尔类型 |
[]string | 字符串数组 | 否 | 字符串数组
|
[]int64 | 整型数组 | 否 | 整数数组
|
Vector |
| 否 | 稠密向量
|
SparseVector | 输入格式<token_id ,token_weight>的字典列表,来表征稀疏稀疏向量的非零位下标及其对应的值, 其中 token_id 是 string 类型, token_weight 是float 类型 | 否 | 稀疏向量 |
Text | string | 否 | 若为向量化字段,则值不能为空。(若否,可以为空)
|
Image | string | 否 | 若为向量化字段,则值不能为空。(若否,可以为空)
|
Video | map[string]interface{} | 否 | 若为向量化字段,则值不能为空。(若否,可以为空)
|
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 | 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 | 兼容241215和250328的用法*。*另外,支持full_modal_seq(文/图/视频序列) | 2048 | 2048, 1024 | 128k | 否 | 是 |
下表仅列出本接口特有的返回参数。更多信息请参见返回结构。
参数 | 类型 | 描述 |
|---|---|---|
Message | String | 有关请求状态的消息。 |
ResourceId | String | 新数据集的ID。 |
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) }
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) }