本节将说明如何创建一个新的知识库实例
说明
create_collection 用于创建一个新的知识库 Collection
参数 | 子参数 | 类型 | 是否必选 | 默认值 | 参数说明 |
---|---|---|---|---|---|
collection_name | -- | string | 是 | -- | 知识库的名字
|
project | -- | string | 否 | default | 知识库所属项目 |
description | -- | string | 否 | "" | 知识库描述信息
|
index | object | 否 | -- | 索引配置 | |
index_config | object | 否 | -- |
| |
index_type | string | 否 | HNSW_HYBRID | 指定索引类型
| |
preprocessing | object | 否 | -- | 文档处理策略 | |
chunking_strategy | string | 否 | default | 选用的切片策略
| |
chunk_length | int | 否 | 500 | 最大切片长度
默认为 500,超出所选模型支持范围会报错 | |
merge_small_chunks | bool | 否 | True | 是否合并短文本片 | |
multi_mode | -- | 否 | -- | 图片召回策略
不传值即代表不开启图片ocr |
向量化模型 | 产出类型 | 索引类型 | 检索类型 |
---|---|---|---|
doubao-embedding | 稠密向量 | HNSW、FLAT | 语义检索(字节自研模型) |
EmbeddingModelBgeLargeZh | 稠密向量 | HNSW、FLAT | 语义检索 |
EmbeddingModelBgeM3 | 稠密向量和稀疏向量 | HNSW_HYBRID | 混合检索(兼顾语义检索和关键词匹配) |
HNSW、FLAT | 语义检索(此时稀疏向量被忽略,适用于只需要长文本窗口、多语言检索的纯语义检索场景) | ||
EmbeddingModelBgeLargeZhAndM3 | 稠密向量和稀疏向量 | HNSW_HYBRID | 混合检索(兼顾语义检索和关键词匹配) |
请先完成SDK初始化,再运行代码,详见初始化SDK
collection_name = "example" description = "This is an example" # 自定义index配置、preprocess文档配置构建知识库 index = { "index_type": IndexType.HNSW_HYBRID, "index_config": { "fields": [{ "field_name": "chunk_len", "field_type": FieldType.Int64, "default_val": 32 }], "cpu_quota": 1, "embedding_model": EmbddingModelType.EmbeddingModelBgeLargeZhAndM3 } } preprocessing = { "chunk_length": 200, } my_collection = viking_knowledgebase_service.create_collection(collection_name = collection_name, description = description, index = index, preprocessing = preprocessing)
Python 调用执行上面的任务,返回 Collection 实例。Collection 实例包含的属性如下表所示。
属性 | 类型 | 说明 |
---|---|---|
collection_name | string | collection 名字,即知识库名称 |
description | string | 描述 |
doc_num | int | 知识库下文档数量 |
create_time | string | 创建时间 |
update_time | string | 更新时间 |
creator | string | 创建人 |
pipeline_list | string | 知识库下 pipeline 列表 |
preprocessing | string | 文档预处理配置 |
fields | list | 字段列表 |
project | string | 所在 project 的名称 |
resource_id | string | 唯一资源 id |
返回示例如下:
{ "collection_name": "collection_test", "description": "This is an example", "doc_num": "None", "create_time": "1721727269", "update_time": "1817251812", "creator": "user@bytedance.com", "pipeline_list": [ {'pipeline_type': 'user_define', 'pipeline_stat': {'doc_num': 0, 'finish_doc_num': 0, 'point_num': 0, 'success_doc_num': 0}, 'index_list': [ {'index_type': 'hnsw_hybrid', 'index_config': { 'vector_field': {'field_name': '_sys_auto_content_vector', 'field_type': 'vector', 'dim': 1024}, 'sparse_vector_field': {'field_name': '_sys_auto_content_sparse_vector', 'field_type': 'sparse_vector'}, 'cpu_quota': 1, 'distance': 'ip', 'quant': 'int8', 'embedding_model': 'bge-large-zh-and-m3', 'embedding_dimension': 1024, 'need_instruction': True, 'fields': [ {'field_name': '_sys_auto_id', 'field_type': 'string'}, {'field_name': '_sys_auto_doc_id', 'field_type': 'string'}, {'field_name': '_sys_auto_chunk_id', 'field_type': 'int64'}, {'field_name': '_sys_auto_doc_type', 'field_type': 'string'}, {'field_name': '_sys_auto_add_type', 'field_type': 'string'}, {'field_name': 'chunk_len', 'field_type': 'int64', 'default_val': 32} ] }, 'primary_key': '', 'status': 1} ], 'preprocessing_list': [{'chunking_strategy': 'default', 'chunking_identifier': None, 'chunk_length': 200, 'merge_small_chunks': True}] } ], "preprocessing": "", "fields": "", "project": "", "resource_id": "" }