上传文件

最近更新时间:2024-09-29 15:47:41

我的收藏

接口定义

loadAndSplitText() 接口用于上传文件至 AI 类向量数据库。
public void loadAndSplitText(LoadAndSplitTextParam loadAndSplitTextParam, Map<String, Object> metaDataMap )

约束限制

每次仅能上传一个文件,上传之后,将自动进行拆分、向量化等。
该接口当前不支持使用别名替换集合视图上传文件。

使用示例

// link database, client 为 VectorDBClient() 创建的客户端对象
AIDatabase db = client.aiDatabase("db-test-ai");
// link collectionView
CollectionView collection = db.describeCollectionView("coll-ai-files");
// LocalFilePath 配置上传文件的本地路径
// DocumentSetName 指定文件存储于数据库的名称
LoadAndSplitTextParam param = LoadAndSplitTextParam.newBuilder()
.withLocalFilePath("/tmp/腾讯云向量数据库.md")
.withDocumentSetName("腾讯云向量数据库.md")
.withSplitterProcess(SplitterPreprocessParams.newBuilder()
.withAppendKeywordsToChunkEnum(true)
.withAppendTitleToChunkEnum(false)
// ChunkSplitter 参数以正则表达式的方式配置文档拆分方式,如下:\\n{2,} 代表以两个及以上的换行进行拆分,常用在QA对文件拆分中。
//.withChunkSplitter("\\n{2,}")
.Build())
.Build();
// 配置文件 Meatdata 标量字段的值
Map<String, Object> metaDataMap = new HashMap<>(); metaDataMap.put("author", "Tencent"); metaDataMap.put("tags", Arrays.asList("Embedding","向量","AI"));
// 调用 loadAndSplitText() 上传文件
collection.loadAndSplitText(param, metaDataMap);

入参描述

说明:
如果创建 CollectionView 和上传文件时同时配置了ChunkSplitter 参数,将使用上传文件时配置的文件拆分方式处理。
参数名
子参数
是否必选
参数含义
LocalFilePath
-
本地上传文件路径。
DocumentSetName
-
存储在向量数据库中的文件名。若不设置该参数,则默认使用 LocalFilePath 中的文件名。
splitter_process
AppendTitleToChunkEnum
在对文件拆分时,配置是否将 Title 追加到切分后的段落后面一并 Embedding。取值如下所示:
true:将段落 Title 追加到切分后的段落。
false:不追加。默认值为 false。
AppendKeywordsToChunkEnum
在对文件拆分时,配置是否将关键字 keywords 追加到切分后的段落一并 Embedding。取值如下所示:
true:将全文的 keywords 追加到切分后的段落。默认值为 true。
false:不追加。

ChunkSplitter
以正则表达式的方式配置文档拆分方式,例如:
\\n{2,} 代表以两个及以上的换行进行拆分,常用在QA对文件拆分中。
metaDataMap
-
文件的 Metadata 元数据信息,可自定义扩展字段。例如:author、tags 等。
上传文件时,可为创建 CollectionView 设置的 Filter 索引的字段赋值,以便在检索时,使用该字段的 Filter 表达式检索文件。
上传文件时,可以新增标量字段,但新增字段不会构建 Filter 索引。

输出说明

说明:
loadAndSplitText() 执行之后如果抛出异常,说明上传文件失败。具体异常原因,可根据提示信息进行分析。无任何提示信息说明执行成功,可使用 getFile() 查看上传的文件内容。