向量接口合集
本文介绍云原生数据仓库 AnalyticDB PostgreSQL 版中向量相关接口。
初始化向量数据库
在使用AnalyticDB for PostgreSQL向量数据库前,需要初始化向量数据库,每个实例仅需执行一次,执行后将完成以下操作。
创建名为
knowledgebase
的数据库,用于存储所有向量数据。在该数据库中创建与全文检索相关的中文分词及检索功能的函数。
管理命名空间
命名空间(Namespace)在数据库中映射为Schema。创建Namespace,用于后续创建文档库。创建Namespace时,需要指定NamespacePassword参数。AnalyticDB for PostgreSQL服务将基于该密码自动创建一个与Namespace同名的用户,并限制该用户只能访问该Namespace下的数据。
您可以利用Namespace实现数据的租户隔离,建议使用非public
的命名空间以确保更好的安全性和管理灵活性。
以下是命名空间的相关接口。
LowLevel相关接口
当您已集成自有向量模型,并可直接使用现有向量数据与API交互时,建议使用 LowLevel 接口以获得更高的灵活性和控制能力。
管理向量集
向量集(Collection)是属于Namespace下的对象,用于存储向量数据。在数据库中,向量集映射为一张表,其中用于存储ID、向量数据和全文检索数据的列名已预定义。其他表结构字段可通过Metadata
参数定义。
在创建向量集时,可以通过参数同步创建向量索引、全文索引和标量索引。也可以在向量集创建完成后,通过索引管理功能接口单独创建这些索引。
以下是向量集的相关接口。
上传向量数据
在创建向量集后,可以将向量数据上传至该向量集。
如果单次上传的数据大小在10 MB以内,可以通过以下接口上传。
如果数据大于10 MB,但小于200 MB,可以通过以下接口上传。
取消上传接口。
检索向量
在完成向量数据上传后,即可通过以下接口实现多种检索方式,包括向量检索、全文检索、双路召回以及融合查询等。
管理向量数据
当上传向量数据后,如需对其更改,可以通过以下接口操作。
HighLevel相关接口
当您仅拥有原始文档或文本,并需要利用AnalyticDB for PostgreSQL的文档理解、分块(Chunk)、嵌入(Embedding)、重排序(Rerank)等相关能力时,可以选择使用HighLevel 接口。
管理文档库
文档库类似向量集(Collection),在数据库中映射为表。创建一个文档库(DocumentCollection)用于存储Chunks文本和向量数据。相比于向量集,在创建时不是指定向量维度,而是指定向量模型。
以下是文档库的相关接口。
上传文档
在创建了文档库后,就可以上传文档或Chunk。
如果已经切分好了Chunk,只需要利用AnalyticDB for PostgreSQL的Embedding能力,可调用以下接口上传切分后的文档。
如果只有原始文档(或图片),可以调用异步接口上传、查询或取消上传文档。
检索文档
完成文档数据上传后,可以调用以下接口检索文档内容。
管理文档
对于已经完成上传的文档,可以通过以下接口管理。
Embedding
调用TextEmbeding模型,对请求文本进行向量化处理,并直接返回生成的向量数据,无需存储到数据库中。
Rerank
调用Rerank模型,对请求的多个Chunks进行语义排序打分,以解决向量或全文检索的排序不够准确问题。
索引管理
创建向量集后,可以通过以下接口创建或删除向量索引、全文索引、标量索引。