接口用于创建向量数据库的数据集(Collection),单账号下最多创建 200 个数据集。
__AUTO_ID__。运行示例前,请完成以下准备:
- 在 Java 项目中引入对应版本的 VikingDB SDK,并将示例放入可执行的
main方法后编译运行。- AK/SK 在火山引擎控制台“密钥管理”中创建;Host 和 Region 取自地域和访问域名。请按代码的参数或环境变量读取方式完成配置。
- Collection、Index 名称从 VikingDB 控制台对应资源详情获取;Task ID 使用创建或查询任务接口返回的 ID。请将
<YOUR_...>占位符替换为真实值。- 若示例包含 TOS 路径,请从 TOS 控制台确认桶名和对象路径,并替换为真实的
<YOUR_BUCKET_NAME>/<YOUR_TOS_PATH>。
public CreateVikingdbCollectionResponse createVikingdbCollection(CreateVikingdbCollectionRequest body) throws ApiException
下表仅列出该接口特有的请求参数和部分公共参数。更多信息请见公共参数。
参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
projectName | String | 否 | 项目的名称。对应火山引擎“项目”(project)的概念。不填则默认按 default 处理。 |
collectionName | String | 是 | 数据集的名称,对应 API 字段
|
description | String | 否 | 数据集的描述 |
fields | List[FieldForCreateVikingdbCollectionInput] | 是 | 数据集中的字段。 |
vectorize | VectorizeForCreateVikingdbCollectionInput | 否 | 数据集的向量化配置。 |
参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
fieldName | String | 是 | 字段名。 |
fieldType | FieldTypeEnum(枚举类型) | 是 | 字段类型。 |
defaultValue | Object | 否 | 字段默认值。省略时 int64、float32、string、bool、list<int64>、list<string>、date_time、geo_point、list<geo_point> 分别使用 |
dim | Integer | fieldType 为 vector 时必填 | 稠密向量维度,范围 |
isPrimaryKey | Boolean | 否 | 是否为主键字段。可以为数据集指定1个主键字段(string或int64类型)。若没有指定,则使用自动生成的主键,字段名为"AUTO_ID"。 |
参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
dense | DenseForCreateVikingdbCollectionInput | 是 | 稠密向量化模型配置 |
sparse | SparseForCreateVikingdbCollectionInput | 否 | 稀疏向量化模型配置 |
参数 | 类型 | 是否必选 | 描述 |
|---|---|---|---|
modelName | ModelNameEnum(枚举类型) | 是 | 模型名称。 |
modelVersion | String | 否 | 模型版本。若为doubao系模型,则必选模型版本。若为bge系模型,默认为default。 |
dim | Integer | 否 | 稠密向量维度。显式值必须属于所选模型在 embedding 模型列表中声明的可选维度;省略时使用模型默认维度。 |
textField | String | 否 | 文本向量化字段名称。 |
imageField | String | 否 | 图片向量化字段名称。 |
videoField | String | 否 | 视频向量化字段名称。 |
字段类型 | 格式 | 可为主键 | 说明 |
|---|---|---|---|
int64 | 整型数值 | 是 | 整数
|
float32 | 浮点数值 | 否 | 浮点数 |
string | 字符串 | 是 | 字符串
|
bool | true/false | 否 | 布尔类型 |
list[string] | 字符串数组 | 否 | 字符串数组
|
list[int64] | 整型数组 | 否 | 整数数组
|
vector |
| 否 | 稠密向量
|
sparse_vector | 输入格式<token_id ,token_weight>的字典列表,来表征稀疏向量的非零位下标及其对应的值,其中 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 | String | 有关请求状态的消息。 |
resourceId | String | 新数据集的ID。 |
import com.volcengine.ApiClient; import com.volcengine.ApiException; import com.volcengine.sign.Credentials; import com.volcengine.vikingdb.VikingdbApi; import com.volcengine.vikingdb.model.*; import java.util.Arrays; public class TestCreateVikingdbCollectionWithVector { public static void main(String[] args) { String ak = System.getenv("AK"); // input your ak String sk = System.getenv("SK"); // input your sk String endpoint = "vikingdb.cn-beijing.volcengineapi.com"; // 填写向量库控制面v2的域名 https://www.volcengine.com/docs/84313/1792715 String region = "cn-beijing"; // 服务区域 ApiClient apiClient = new ApiClient() .setEndpoint(endpoint) .setCredentials(Credentials.getCredentials(ak, sk)) .setRegion(region); VikingdbApi api = new VikingdbApi(apiClient); CreateVikingdbCollectionRequest request = new CreateVikingdbCollectionRequest() .collectionName("test_coll_for_java_sdk_with_vector") .description("this is a test collection of vikingdb") .fields(Arrays.asList( new FieldForCreateVikingdbCollectionInput().fieldName("f_int64_id").fieldType(FieldForCreateVikingdbCollectionInput.FieldTypeEnum.INT64).isPrimaryKey(true), // 主键字段 new FieldForCreateVikingdbCollectionInput().fieldName("f_string_1").fieldType(FieldForCreateVikingdbCollectionInput.FieldTypeEnum.STRING), new FieldForCreateVikingdbCollectionInput().fieldName("f_int64_1").fieldType(FieldForCreateVikingdbCollectionInput.FieldTypeEnum.INT64), new FieldForCreateVikingdbCollectionInput().fieldName("f_float_1").fieldType(FieldForCreateVikingdbCollectionInput.FieldTypeEnum.FLOAT32), new FieldForCreateVikingdbCollectionInput().fieldName("f_list_string_1").fieldType(FieldForCreateVikingdbCollectionInput.FieldTypeEnum.LIST_STRING_), new FieldForCreateVikingdbCollectionInput().fieldName("f_vector").fieldType(FieldForCreateVikingdbCollectionInput.FieldTypeEnum.VECTOR).dim(4), // 稠密向量字段,并设置维度 new FieldForCreateVikingdbCollectionInput().fieldName("f_sparse_vector").fieldType(FieldForCreateVikingdbCollectionInput.FieldTypeEnum.SPARSE_VECTOR) // 稀疏向量字段 )); try { CreateVikingdbCollectionResponse response = api.createVikingdbCollection(request); System.out.println("all response content: " + response); System.out.println("response getResponseMetadata: " + response.getResponseMetadata()); System.out.println("response getResponseMetadata: " + response.getResponseMetadata().getAction()); System.out.println("response getMessage: " + response.getMessage()); System.out.println("response getResourceId: " + response.getResourceId()); System.out.println("response RequestId: " + response.getResponseMetadata().getRequestId()); System.out.println("response Action: " + response.getResponseMetadata().getAction()); System.out.println("response Region: " + response.getResponseMetadata().getRegion()); System.out.println("response Service: " + response.getResponseMetadata().getService()); } catch (ApiException e) { System.out.println("exception http code: " + e.getCode()); System.out.println("exception RequestId: " + e.getResponseMetadata().getRequestId()); System.out.println("exception Action: " + e.getResponseMetadata().getAction()); System.out.println("exception Region: " + e.getResponseMetadata().getRegion()); System.out.println("exception Service: " + e.getResponseMetadata().getService()); System.out.println("exception Error.Code: " + e.getResponseMetadata().getError().getCode()); System.out.println("exception Error.Message: " + e.getResponseMetadata().getError().getMessage()); System.out.println("exception http response body: " + e.getResponseBody()); } } }
import com.volcengine.ApiClient; import com.volcengine.ApiException; import com.volcengine.sign.Credentials; import com.volcengine.vikingdb.VikingdbApi; import com.volcengine.vikingdb.model.*; import java.util.Arrays; public class TestCreateVikingdbCollectionWithVectorize { public static void main(String[] args) { String ak = System.getenv("AK"); // input your ak String sk = System.getenv("SK"); // input your sk String endpoint = "vikingdb.cn-beijing.volcengineapi.com"; // 填写向量库控制面v2的域名 https://www.volcengine.com/docs/84313/1792715 String region = "cn-beijing"; // 服务区域 ApiClient apiClient = new ApiClient() .setEndpoint(endpoint) .setCredentials(Credentials.getCredentials(ak, sk)) .setRegion(region); VikingdbApi api = new VikingdbApi(apiClient); CreateVikingdbCollectionRequest request = new CreateVikingdbCollectionRequest() .collectionName("test_coll_for_java_sdk_with_vectorize") .description("this is a test collection of vikingdb") .fields(Arrays.asList( new FieldForCreateVikingdbCollectionInput().fieldName("f_int64_id").fieldType(FieldForCreateVikingdbCollectionInput.FieldTypeEnum.INT64).isPrimaryKey(true), // 主键字段 new FieldForCreateVikingdbCollectionInput().fieldName("f_string_1").fieldType(FieldForCreateVikingdbCollectionInput.FieldTypeEnum.STRING), new FieldForCreateVikingdbCollectionInput().fieldName("f_int64_1").fieldType(FieldForCreateVikingdbCollectionInput.FieldTypeEnum.INT64), new FieldForCreateVikingdbCollectionInput().fieldName("f_float_1").fieldType(FieldForCreateVikingdbCollectionInput.FieldTypeEnum.FLOAT32), new FieldForCreateVikingdbCollectionInput().fieldName("f_list_string_1").fieldType(FieldForCreateVikingdbCollectionInput.FieldTypeEnum.LIST_STRING_), new FieldForCreateVikingdbCollectionInput().fieldName("f_text_1").fieldType(FieldForCreateVikingdbCollectionInput.FieldTypeEnum.TEXT), new FieldForCreateVikingdbCollectionInput().fieldName("f_image_1").fieldType(FieldForCreateVikingdbCollectionInput.FieldTypeEnum.IMAGE) )) .vectorize(new VectorizeForCreateVikingdbCollectionInput() .dense(new DenseForCreateVikingdbCollectionInput() .modelName(DenseForCreateVikingdbCollectionInput.ModelNameEnum.DOUBAO_EMBEDDING_VISION) .modelVersion("250615") .dim(1024) .textField("f_text_1") .imageField("f_image_1") ) .sparse(new SparseForCreateVikingdbCollectionInput() .modelName(SparseForCreateVikingdbCollectionInput.ModelNameEnum.BGE_M3) .modelVersion("default") .textField("f_text_1") ) ); try { CreateVikingdbCollectionResponse response = api.createVikingdbCollection(request); System.out.println("all response content: " + response); System.out.println("response getMessage: " + response.getMessage()); System.out.println("response getResourceId: " + response.getResourceId()); System.out.println("response RequestId: " + response.getResponseMetadata().getRequestId()); System.out.println("response Action: " + response.getResponseMetadata().getAction()); System.out.println("response Region: " + response.getResponseMetadata().getRegion()); System.out.println("response Service: " + response.getResponseMetadata().getService()); } catch (ApiException e) { System.out.println("exception http code: " + e.getCode()); System.out.println("exception RequestId: " + e.getResponseMetadata().getRequestId()); System.out.println("exception Action: " + e.getResponseMetadata().getAction()); System.out.println("exception Region: " + e.getResponseMetadata().getRegion()); System.out.println("exception Service: " + e.getResponseMetadata().getService()); System.out.println("exception Error.Code: " + e.getResponseMetadata().getError().getCode()); System.out.println("exception Error.Message: " + e.getResponseMetadata().getError().getMessage()); System.out.println("exception http response body: " + e.getResponseBody()); } } }