上传文件

最近更新时间:2024-09-27 18:00:11

我的收藏

接口定义

load_and_split_text() 接口用于上传文件于 AI 类向量数据库。
def load_and_split_text( local_file_path: str, document_set_name: str | None = None, metadata: dict | None = None, splitter_process: SplitterProcess | None = None, timeout: float | None = None ) -> DocumentSet
注意:
每次仅能上传一个文件,上传之后,将自动进行拆分、向量化等。
该接口当前不支持使用别名替换集合视图上传文件。

使用示例

import tcvectordb
from tcvectordb.model.ai_database import AIDatabase
from tcvectordb.model.collection_view import CollectionView
from tcvectordb.model.document import Filter, Document
from tcvectordb.model.document_set import DocumentSet
from tcvectordb.model.enum import ReadConsistency
from tcvectordb.model.collection_view import SplitterProcess

#create a database client object
client = tcvectordb.RPCVectorDBClient(url='http://10.0.X.X:80', username='root', key='eC4bLRy2va******************************', read_consistency=ReadConsistency.EVENTUAL_CONSISTENCY, timeout=30)

# Specify the database name
db = client.database('db-test-ai')
coll_view = db.collection_view('coll-ai-files')
# 上传文件
# 1. local_file_path:指定当前文件在客户端的路径
# 2. document_set_name:配置文件存储于向量数据库的名称
# 3. metadata:定义文件 meta 信息字段,示例中指定了author 与 tags
res = coll_view.load_and_split_text(
local_file_path="/data/home/../腾讯云向量数据库.md",
document_set_name="腾讯云向量数据库.md",
metadata={
'author': 'Tencent',
'tags': ['向量', 'Embedding', 'AI']
},
splitter_process=SplitterProcess(
append_keywords_to_chunk=True,
append_title_to_chunk=False,
# chunk_splitter 参数以正则表达式的方式配置文档拆分方式,如下:\\n{2,} 代表以两个及以上的换行进行拆分,常用在QA对文件拆分中。
# chunk_splitter="\\n{2,}",
),
)
print(vars(res))

入参描述

说明:
如果创建 CollectionView 和上传文件时同时配置了 chunk_splitter 参数,将使用上传文件时配置的文件拆分方式处理。
参数名
子参数
是否必选
参数含义
local_file_path
-
本地上传文件路径。
document_set_name
-
存储在向量数据库中的文件名。若不设置该参数,则默认使用 local_file_path 中的文件名。
metadata
-
文件的 Metadata 元数据信息,可自定义扩展字段。例如:author、tags 等。
上传文件时,可为创建 CollectionView 设置的 Filter 索引的字段赋值,以便在检索时,使用该字段的 Filter 表达式检索文件。
上传文件时,可以新增标量字段,但新增字段不会构建 Filter 索引。
splitter_process
append_title_to_chunk
在对文件拆分时,配置是否将 Title 追加到切分后的段落后面一并 Embedding。取值如下所示:
False:不追加。默认值为 False。
True:将段落 Title 追加到切分后的段落。
append_keywords_to_chunk
在对文件拆分时,配置是否将关键字 keywords 追加到切分后的段落一并 Embedding。取值如下所示:
False:不追加。
True:将全文的 keywords 追加到切分后的段落。默认值为 True。
chunk_splitter
以正则表达式的方式配置文档拆分方式,如下:\\n{2,} 代表以两个及以上的换行进行拆分,常用在 QA 对文件拆分中。

出参描述

输出信息,如下所示。
{'documentSetId': '11800467415********', 'documentSetName': '腾讯云向量数据库.md', 'documentSetInfo': {'indexedProgress': 0, 'indexedStatus': 'New'}}
参数名
子参数
参数含义
documnetSetId
-
文件 ID。
documnetSetName
-
文件名。
documentSetInfo
indexedProgress
文件被预处理、Embedding 向量化的进度。

indexedStatus
文件预处理、Embedding 向量化的状态。
New:等待解析。
Loading:文件解析中。
Failure:文件解析、写入出错。
Ready:文件解析、写入完成。