You need to enable JavaScript to run this app.
导航
create_collection
最近更新时间:2024.06.13 16:53:43首次发布时间:2024.05.31 15:28:51

概述

create_collection 用于创建一个新的知识库 Collection。

请求参数

参数

类型

是否必选

子参数

类型

默认值

参数说明

collection_name

string

知识库的名字。

  • 只能使用英文字母、数字、下划线_,并以英文字母开头,不能为空。
  • 长度要求:[1, 64]。
  • 知识库描述信息。

project

string

default

知识库所属项目,即在【访问控制】-【资源管理】-【项目】中创建的项目。

description

string

""

  • 长度要求:[0, 65535]。

index

object

index_type

string

HNSW_HYBRID

指定索引类型。枚举值如下:

  • HNSW:全称是 Hierarchical Navigable Small World,一种用于在高维空间中采用 ANN 搜索的数据结构和算法,是基于图的索引。HNSW通过构建多层网络减少搜索过程中需要访问的节点数量,实现快速高效地搜索最近邻,适合对搜索效率要求较高的场景。
  • HNSW_HYBRID:支持混合索引的 hnsw 算法。混合索引算法可以同时对数据集中的稠密向量和稀疏向量进行索引,并在检索时返回兼顾两种类型相似性的结果。适用于对搜索效率要求较高,且需要同时检索稀疏和稠密向量的场景。

使用 HNSW_HYBRID 索引时,必须选择 EmbeddingModelM3 或者 EmbeddingModelBgeLargeZhAndM3 作为向量化模型。

  • FLAT:暴力索引,搜索时遍历整个向量数据库的所有向量与目标向量进行距离计算和比较,查询速度较慢,但是 flat 能提供100%的检索召回率,适用于向量候选集较少,且需要100%检索召回率的场景。

index_config

object

指定索引构建配置。

  • "fields":为一个list,指定需要在search时做筛选的字段,字段来源于doc的meta信息。支持的筛选字段类型和筛选规则参考VikingDB的标量索引字段设置规则,具体支持的字段类型为int64,float32,string,bool,list和list,字段规则和默认值参考VikingDB的field_type。每个字段需要分别设置field_name、field_type和default_val。
  • "cpu_quota":int类型,指定索引检索消耗的 CPU 配额,1CPU 核约为 100QPS;如果检索消耗的 CPU 超过配额,该索引会被限流。需要大于0,默认值2。
  • "embedding_model":string类型,指定向量化模型,当前支持的模型的枚举值为
    • EmbeddingModelBgeLargeZhAndM3(默认)
    • EmbeddingModelBgeLargeZh
    • EmbeddingModelBgeM3

preprocessing

object

chunking_strategy

string

default

选用的切片策略,枚举值:

  • “default”:默认切片策略
  • “custom”:自定义切片策略

chunk_length

int

500

范围 [100,500]或[100,8000],根据选择的embedding_model判定。

  • bge-large-zh-and-m3和bge-large-zh范围为[100,500]
  • bge-m3 为[100,8000]

默认为 500,不在范围内会报错。

merge_small_chunks

bool

True

打开后会在不超出 chunk_length的前提下将短小的多个文本片合并为一个 chunk。默认为 true。
注意:"merge_small_chunks"参数只有在切片策略为自定义“custom”时传入才生效。

不同的向量化模型及其支持的索引类型组合,以及该组合的检索类型如下表:

向量化模型

产出类型

索引类型

检索类型

EmbeddingModelBgeLargeZh

稠密向量

hnsw、flat

语义检索

EmbeddingModelBgeM3

稠密向量和稀疏向量

hnsw_hybrid

混合检索(兼顾语义检索和关键词匹配)

hnsw、flat

语义检索(此时稀疏向量被忽略,适用于只需要长文本窗口、多语言检索的纯语义检索场景)

EmbeddingModelBgeLargeZhAndM3

稠密向量和稀疏向量

hnsw_hybrid

混合检索(兼顾语义检索和关键词匹配)

示例

请求参数
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": 0
            }],
        "cpu_quota": 1,
        "embedding_model":EmbddingModelType.EmbeddingModelBgeLargeZhAndM3
  }
}
preprocessing = {
    "chunk_length" :200
}
my_collection = viking_knowledgebase_service.create_collection(collection_name, index, 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的name

resource_id

string

唯一资源id