create_collection 用于创建一个新的数据集 Collection。创建成功后,可以写入数据。
异步调用使用async_create_collection接口,参数不变。
说明
参数 | 子参数 | 类型 | 是否必选 | 默认值 | 参数说明 |
---|---|---|---|---|---|
collection_name | string | 是 | 指定创建的 Collection 名称。
| ||
description | string | 否 | "" | 自定义 Collection 的描述。
| |
fields 说明 Field 实例的列表,一个 Collection 里的 Field 实例数量上限是 200。 | field_name | string | 是 | 指定自定义字段的名称。
| |
field_type | string | 是 | 指定自定义字段类型,如 FieldType.String,可选值详见 field_type 可选值说明。 | ||
default_val | 和field_type一致 | 否 | 指定自定义字段默认值,默认值详见 field_type 可选值说明。
| ||
dim | int | field_type 为vector 时必选 | 指定自定义字段向量维度。
| ||
is_primary_key | bool | 是 | False | 指定自定义字段是否为主键,主键用于唯一标识一行数据。
| |
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 | 默认版本 | 可选版本 |
---|---|---|---|---|---|---|---|
bge-large-zh | text | 1024 | 1024 | 否 | 否 | ||
bge-m3 | text | 1024 | 1024 | 是 | 否 | ||
bge-visualized-m3 | text_image、image | 1024 | 1024 | 否 | 否 | ||
doubao-embedding | text | 2048 | 512, 1024, 2048 | 否 | 是 | 240515 | 240515、240715 |
doubao-embedding-large | text | 2048 | 512, 1024, 2048, 4096 | 否 | 是 | 240915 | 240915 |
doubao-embedding-vision | text_image、image 说明 在纯图场景下也会有额外的少量文本token消耗(20tokens左右) | 3072 | 3072 | 否 | 是 | 241215 | 241215 |
若报错,则尝试更新一下SDK包:pip install --upgrade volcengine
# 定义数据集字段,包括主键、字符串字段、文本字段和图片字段 fields = [ Field(field_name="f_id", field_type=FieldType.String, is_primary_key=True), # 主键字段 Field(field_name="f_string", field_type=FieldType.String, default_val=""), # 字符串字段 Field(field_name="f_text1", field_type=FieldType.Text), # 文本字段1 Field(field_name="f_text2", field_type=FieldType.Text), # 文本字段2 Field(field_name="f_image1", field_type=FieldType.Image), # 图片字段1 Field(field_name="f_image2", field_type=FieldType.Image), # 图片字段2 ] # 定义向量化配置,包括密集向量和稀疏向量 vectorize = [ VectorizeTuple( dense=VectorizeModelConf( model_name="doubao-embedding-vision", # 使用的模型名称 model_version="241215", # 模型版本 text_field="f_text1", # 文本字段1 image_field="f_image1", # 图片字段1 dim=3072, # 向量的维度 ), sparse=VectorizeModelConf( model_name="bge-m3", # 使用的稀疏模型名称 text_field="f_text1", # 稀疏向量化文本字段 ) ) ] # 创建数据集,提供字段定义、描述和向量化配置 collection = vikingdb_service.create_collection( "test_coll_for_sdk_with_vectorize", # 数据集名称 fields=fields, # 字段定义 description="test for sdk", # 数据集描述 vectorize=vectorize # 向量化配置 ) # 打印数据集信息 print(collection.collection_name) # 输出数据集名称 print(collection.description) # 输出数据集描述 print(collection.vectorize) # 输出数据集的向量化配置
Python 调用执行上面的任务,返回 Collection 实例。Collection 实例包含的属性如下表所示。
属性 | 类型 | 说明 |
---|---|---|
collection_name | string | Collection 名称。 |
description | string | Collection 的描述。 |
fields | List | 字段列表。 |
indexes | List | 索引列表。 |
stat | map | 统计/状态信息。
|
create_time | string | 数据集创建时间。 |
update_time | string | 数据集更新时间。 |
update_person | string | 数据集更新人。 |