from_documents 作为程序入口,用于向数据集 Collection 插入文本数据。
参数 | 一级子参数 | 二级子参数 | 类型 | 是否必选 | 默认值 | 参数说明 |
---|---|---|---|---|---|---|
document | List[Document] | 是 | Document 是 langchain 定义的类,包含 page_content 和metadata。
| |||
embedding_function | Embeddings | 是 | embedding函数类型,详见 langchain Embeddings,如OpenAIEmbeddings()。 | |||
connection_args | VikingDBConfig | 否 | VikingDBConfig 实例,包含属性如下:
| |||
collection_name | string | 否 | LangChainCollection | 数据集名称,默认值为 LangChainCollection。如果存在该数据集则使用该数据集,不存在则创建数据集。 | ||
index_params | vector_index | index_type | string | 是 | IndexType.HNSW | 向量索引类型。取值如下:
|
distance | string | 否 | DistanceType.IP | 距离类型,衡量向量之间距离的算法。取值如下:
| ||
quant | string | 否 | QuantType.Int8 | 量化方式。量化方式是索引中对向量的压缩方式,可以降低向量间相似性计算的复杂度。基于向量的高维度和大规模特点,采用向量量化可以有效减少向量的存储和计算成本。取值如下:
| ||
hnsw_m | 数值 | 否 | 20 | hnsw 索引参数,表示邻居节点个数。
| ||
hnsw_cef | 数值 | 否 | 400 | hnsw 索引参数,表示构建图时搜索邻居节点的广度。
| ||
hnsw_sef | 数值 | 否 | 800 | hnsw 索引参数,表示线上检索的搜索广度。
| ||
cpu_quota | int | 否 | 2 | 索引检索消耗的 CPU 配额,格式为正整数。
| ||
partition_by | string | 否 | “” | partition_by 用于划分子索引 partition 。根据某个标量字段可以将数据集划分成不同的子数据集,不同的子数据集构建为不同的子索引,实现混合检索时在子索引内检索并减少过滤,从而提升检索性能。
| ||
scalar_index | array | 否 | None | 标量字段列表。
| ||
drop_old | bool | 否 | False | 是否删除原数据集。当用户不想要原数据集中的数据,也不想改数据集名称时,将参数配置为 true 即可删除 collection_name 对应的数据集,并创建同名数据集。
|
loader = TextLoader("./test.txt") documents = loader.load() text_splitter = RecursiveCharacterTextSplitter(chunk_size=10, chunk_overlap=0) docs = text_splitter.split_documents(documents) # 将文件中数据转化为Document类型 # print(docs) db = VikingDB.from_documents( docs, OpenAIEmbeddings(), connection_args=VikingDBConfig(host="host", region="region", ak="ak", sk="sk", scheme="http"), collection_name = "collection", index_params = {"cpu_quota":3} drop_old=False )
调用执行上面的任务,返回 VikingDB。