接口定义
GetDocumentSetByName()
:根据文件名查询文件内容。GetDocumentSetById()
:根据文件 ID 查询文件内容。GetDocumentSetByName(ctx context.Context, documentSetName string) (*tcvectordb.GetAIDocumentSetResult, error)
GetDocumentSetById(ctx context.Context, documentSetId string) (*tcvectordb.GetAIDocumentSetResult, error)
使用示例
如下示例,获取文件名为
腾讯云向量数据库.pdf
的文件内容。var (ctx = context.Background()aiDatabase = "go-sdk-test-ai-db"collectionViewName = "go-sdk-test-ai-coll")col := client.AIDatabase(aiDatabase).CollectionView(collectionViewName)result, _ := col.GetDocumentSetByName(ctx, "腾讯云向量数据库.pdf")log.Printf("GetDocumentSetByName success: %+v", result)
如下示例,指定文件 ID ,查询文件 ID 对应的文件内容。
var (ctx = context.Background()aiDatabase = "go-sdk-test-ai-db"collectionViewName = "go-sdk-test-ai-coll")col := client.AIDatabase(aiDatabase).CollectionView(collectionViewName)res, _ := col.GetDocumentSetById(ctx, "11938357******")log.Printf("GetDocumentSetById success: %+v", res)
入参描述
参数名 | 是否必选 | 参数含义 | 获取方式 |
DocumentSetId | 否 | 文件上传在数据库之后,系统分配的文件 ID | 使用文件名获取文件 ID 之后,可使用文件 ID 查询文件 |
DocumentSetName | 否 | 文件名 | - |
出参描述
2024/01/08 16:37:41 GetDocumentSetByName success: &{AIDocumentSet:{AIDocumentSetInterface:0xc0003ce450 DatabaseName:db-test-ai CollectionViewName:coll-ai-files DocumentSetId:1193835783695106048 DocumentSetName:腾讯云向量数据库.pdf Text:本页面旨在通过回答几个问题来让您大致了解腾讯云向量数据库(Tencent Cloud VectorDB)。读完本页后,您将了解腾讯云向量数据库是什么、它是如何工作的、关键概念、为什么使用腾讯云向量数据库、支持的索引和指标、架构和相关连接方式。## 腾讯云向量数据库是什么?腾讯云向量数据库是一款全托管的自研企业级分布式数据库服务,专用于存储、检索、分析多维向量数据。该数据库支持多种索引类型和相似度计算方法,单索引支持10亿级向量规模,可支持百万级 QPS 及毫秒级查询延迟。腾讯云向量数据库不仅能为大模型提供外部知识库,提高大模型回答的准确性,还可广泛应用于推荐系统、NLP 服务、计算机视觉、智能客服等 AI 领域。## 关键概念如果您不熟悉向量数据库和相似性搜索领域,请优先阅读以下基本概念,便于您对向量数据库有一个初步的了解。### 什么是向量?向量是指在数学和物理中用来表示大小和方向的量。它由一组有序的数值组成,这些数值代表了向量在每个坐标轴上的分量。### 什么是非结构化数据?非结构化数据,是指图像、文本、音频等数据。与结构化数据相比,非结构化数据不遵循预定义模型或组织方式,通常更难以处理和分析。### 什么是 AI 中的向量表示?当我们处理非结构化数据时,需要将其转换为计算机可以理解和处理的形式。向量表示是一种将非结构化数据转换为嵌入向量的技术,通过多维度向量数值表述某个对象或事物的属性或者特征。腾讯云向量数据库提供的模型能力,目前在开发调试中。### 什么是向量检索?向量检索是一种基于向量空间模型的信息检索方法。将非结构化的数据表示为向量存入向量数据库,向量检索通过计算查询向量与数据库中存储的向量的相似度来找到目标向量。## 为什么是腾讯云向量数据库?腾讯云向量数据库作为一种专门存储和检索向量数据的服务提供给用户, 在高性能、高可用、大规模、低成本、简单易用、稳定可靠、智能运维等方面体现出显著优势。## 腾讯云向量数据库应用示例有哪些?腾讯云向量数据库可进行高性能向量存储和检索,主要适用于以下应用场景。- [大规模知识库]:企业的私域数据存储在向量数据库中可构建外部知识库,帮助企业更好地管理和利用自己的数据资源。- [推荐系统]:向量数据库会基于用户特征进行向量存储与检索,最终筛选用户可能感兴趣的物品推荐给用户。- [问答系统]:向量数据库会基于问题信息进行向量存储与检索,并返回最相关的问题与对应的答案。- [文本/图像检索]:向量数据库对输入的图像和文本信息进行向量存储与检索,会找到最匹配输入信息的文本或图像结果。## 腾讯云向量数据库支持哪些索引类型?索引是数据的组织单位。您必须先声明索引类型和相似性度量,然后才能搜索或查询向量数据。目前,腾讯云向量数据库支持如下类型。具体信息,请参见 [Index]。- FLAT 索引:向量会以浮点型的方式进行存储,不做任何压缩处理。搜索向量会遍历所有向量与目标向量进行比较。- HNSW 索引:全称为 Hierarchical Navigable Small World, 是基于图的索引,适合对搜索效率要求较高的场景。- IVF 系列:全称为 Inverted File,IVF 系列索引的核心思想是将高维空间划分为多个聚类,并为每个聚类构建一个倒排文件。适用于高维向量数据的快速检索。## 腾讯云向量数据库支持哪些相似度计算方法?在 VectorDB 中,相似度度量用于衡量向量之间的相似度。选择良好的距离度量有助于显著提高分类和聚类性能。根据输入数据形式,选择特定的相似性度量方法,获得数据库最佳性能。**相似性计算方法** | **方法说明**:-: | :-:内积(IP) | 全称为 Inner Product,是一种计算向量之间相似度的度量算法,它计算两个向量之间的点积(内积),所得值越大越与搜索值相似。 |欧式距离(L2) | 全称为 Euclidean distance,指欧几里得距离,它计算向量之间的直线距离,所得的值越小,越与搜索值相似。L2在低维空间中表现良好,但是在高维空间中,由于维度灾难的影响,L2的效果会逐渐变差。 |余弦相似度(COSINE) | 余弦相似度(Cosine Similarity)算法,是一种常用的文本相似度计算方法。它通过计算两个向量在多维空间中的夹角余弦值来衡量它们的相似程度。所得值越大越与搜索值相似。 |## 腾讯云向量数据库是如何设计的?- **部署架构**:腾讯云向量数据库采用分布式部署架构,每个节点相互通信和协调,实现数据存储与检索。客户端请求通过 **Load Balancer** 分发到各节点上。。- **逻辑架构**:实例是腾讯云中独立运行的数据库环境,是用户购买向量数据库服务的基本单位。腾讯云向量数据库数据存储的一个实例集群中包括 [Database]、[Collection]、[Document] 三个逻辑层级。其中,一个实例可以包含很多个 Database,一个 Database 可以包含多个 Collection,一个 Collection 可以包含多个 Document。- **数据安全**:腾讯云向量数据库的多副本设计、多可用区分布节点、API 密钥认证,并运行于私有网络环境,通过安全组控制访问来源,CAM 账户授权等多方面保护向量数据的完整性和隐私。- **鉴权方式**:腾讯云向量数据库使用账号(account)和 API 密钥(api_key)的组合进行鉴权,以验证用户身份并授权其访问。- **连接方式**:腾讯云向量数据库支持通过 HTTP 协议进行数据写入和查询等操作。- **检索方法**:腾讯云向量数据库支持通过精确检索、相似度检索、混合检索的方法。- 精确查询:基于标量(指一个单独的数值,例如文本字段、数值字段或日期字段,区别于向量等多维数据结构)字段精确查找数据的方式。- 相似度检索:基于向量相似度计算的检索方式,通过计算向量之间的相似度来找到与查询向量最相似的文档。- 混合检索:基于标量字段和向量字段,搭配自定义的标量字段的 Filter 表达式进行检索的方式。## 如何快速体验向量数据库?腾讯云向量数据库目前是公测阶段。免费测试版实例每个账号仅限申领1个,高可用版与单机版实例免费试用时长1个月,到期后可 [提交工单](https://console.cloud.tencent.com/workorder/category) 进行续期;若一个月内未使用实例,平台将自动回收。**序号** | **步骤描述** | **具体操作**:-: | :-: | :-:1 | 申请腾讯云账号并认证。 | - 如需注册腾讯云账号:请单击 [注册腾讯云账号](https://cloud.tencent.com/register?s_url=https%3A%2F%2Fcloud.tencent.com%2F)。 | - 如需完成实名认证:请单击 [实名认证](https://console.cloud.tencent.com/developer)。 |2 | 了解向量数据库所支持的规格与类型。 | 预估数据规模,选择合适的类型与规格。 |3 | 确定向量数据库所部署的地域。 | 当前支持的地域信息,请参见 [发布地域]|4 | 规划数据库实例的私有网络与安全组。 | 具体操作,请参见 [创建私有网络](https://cloud.tencent.com/document/product/215/36515)与 [创建安全组],并同时设置安全组入站规则。 |5 | 购买实例。 | 具体操作,请参见 [新建数据库实例]。购买实例中,直接选择上一步已准备的私有网络与安全组。 |6 | 申请与腾讯云向量数据库在同一地域同一个 VPC 内的 Linux 云服务器 CVM。 | 具体操作,请参见 [快速配置 Linux 云服务器](https://cloud.tencent.com/document/product/213/2936)。 |7 | 连接并操作向量数据库。 | [连接并写入数据库],本文使用 [API 接口] 从创建 DataBase 到 插入数据、检索数据到最终删除数据,均给出了具体的使用示例。您可以简单并快速体验向量数据库。 |8 | 管理向量数据库实例 | 您可以体验通过控制台直接管理实例,查看实例状态或销毁实例。 |9 | 智能运维 | 您可以在控制台查看监控数据库实例的各项指标。目前仅支持对节点信息的监控,后续还会支持更丰富的监控项目。 |## 开发者工具**开发者工具** | **API**:-: | :-:HTTP API | [API 接口](https://cloud.tencent.com/document/product/1709/98666) |Python SDK | [Python SDK Demo](https://cloud.tencent.com/document/product/1709/96724) |Java SDK | [Java SDK Demo](https://cloud.tencent.com/document/product/1709/97768) |TextPrefix:本页面旨在通过回答几个问题来让您大致了解腾讯云向量数据库(Tencent Cloud VectorDB)。读完本页后,您将了解腾讯云向量数据库是什么、它是如何工作的、关键概念、为什么使用腾讯云向量数据库、支持的索引和指标、架构和相关连接方式。## 腾讯云向量数据库是什么?腾讯云向量数据库是一款全托管的自研企业级分布式数据库服务,专用于存储、检索、分析多维向量数据。该数据库支持多种索引类型和相似 DocumentSetInfo:0xc0003b40c0 ScalarFields:map[author:Tencent] SplitterPreprocess:0xc0000125b8 ParsingProcess:0xc000382980} Count:1}
参数名 | 子参数 | 参数含义 |
databaseName | - | 数据库名。 |
collectionViewName | - | 集合视图名。 |
documnetSetId | - | 文件 ID。 |
documnetSetId | - | 文件名。 |
textPrefix | - | 文件内容前 200个字符。 |
textPrefix | - | 文件完整内容。 |
documentSetInfo | textLength | 文件的字符数。 |
| byteLength | 文件的字节数。 |
| indexedProgress | 文件被预处理、Embedding 向量化的进度。 |
|
indexedStatus
| 文件预处理、Embedding 向量化的状态。 New:等待解析。 Loading:文件解析中。 Failure:文件解析、写入出错。 Ready:文件解析、写入完成。 |
| createTime | 文件创建时间。 |
| lastUpdateTime | 文件最后更新时间。 |
| keywords | 文件关键字。 |
ScalarFields | - | 自定义的文件 Metadata 信息字段。 |
SplitterPreprocess | appendTitleToChunk | 在对文件拆分时,配置是否将 Title 追加到切分后的段落后面一并 Embedding。取值如下所示: false:不追加。 true:将段落 Title 追加到切分后的段落。 |
| appendKeywordsToChunk | 在对文件拆分时,配置是否将关键字 keywords 追加到切分后的段落一并 Embedding。取值如下所示: false:不追加。 true:将全文的 keywords 追加到切分后的段落。 |
ParsingProcess | ParsingType | 指定 PDF 类型文件的解析方式,取值如下所示: VisionModelParsing:文件依据解析模型解析,推荐使用,可解析 PDF 中双栏、表格等复杂格式。 AlgorithmParsing:文件依据算法解析,系统默认解析方式。Markdown、Word、PPT 类型,无需配置该参数,默认使用 AlgorithmParsing 解析。 |