腾讯云向量数据库

腾讯云向量数据库

腾讯云全托管的分布式向量数据库,支持多种索引类型与相似度检索。

核心功能

腾讯云向量数据库是全托管的分布式向量数据库,数据按 Database、Collection、Document 三级组织。在控制台购买实例并取得密钥后,用 tcvectordb SDK 建库建集合并写入检索。相比自托管方案免去部署运维,代价是实例规格与单次检索条数由平台限定。

功能亮点

索引类型丰富

FLAT、HNSW、IVF 系列到 BIN_FLAT 均可选,按精度与成本取舍。

写入即向量化

开启 Embedding 后直接写原始文本,由数据库按 Token 计费调用模型生成向量。

文档直接入库

AI 套件支持上传 PDF、Word、PPT、Markdown,自动完成解析、分块与写入。

标量过滤

对 string、uint64、json 字段建 Filter 索引,检索时按条件收窄。

适用场景

• 用 AI 套件上传企业 PDF、Word 文档,快速搭出可检索的内部知识库
• 国内业务的 RAG 应用,把向量实例与 CVM 放在同地域并走内网访问
• 图文或商品检索场景中,先用 Filter 索引按类目过滤再做向量召回

安装配置

bash
开通服务:
1) 登录腾讯云向量数据库控制台,按规格选型购买实例(选择地域、节点规格、节点数与副本数)
2) 在控制台「密钥管理」页获取实例 API 密钥(account 默认为 root)
3) 配置网络:走内网需保证 CVM 与实例同地域且 VPC、安全组可连通;
   走外网需在控制台开启外网访问并手动配置 IP 白名单
4) 在「实例详情 - 网络信息」处复制访问地址,再建 Database 与 Collection
   (Collection 需指定主键索引、向量索引的维度与度量、以及 Filter 索引)

安装客户端 SDK(要求 Python 3.8 及以上):
pip3 install tcvectordb

使用方法

python
导入依赖并创建客户端:
import tcvectordb
from tcvectordb.model.enum import FieldType, IndexType, MetricType, ReadConsistency
from tcvectordb.model.index import Index, VectorIndex, FilterIndex, HNSWParams
from tcvectordb.model.document import Document, SearchParams, Filter

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

创建 Database:
db = client.create_database(database_name='db-test')

设计索引并创建 Collection:
index = Index(
            FilterIndex(name='id', field_type=FieldType.String, index_type=IndexType.PRIMARY_KEY),
            VectorIndex(name='vector', dimension=3, index_type=IndexType.HNSW,
                        metric_type=MetricType.COSINE, params=HNSWParams(m=16, efconstruction=200)),
            FilterIndex(name='bookName', field_type=FieldType.String, index_type=IndexType.FILTER)
        )

coll = db.create_collection(
            name='book-vector',
            shard=1,
            replicas=1,
            description='this is a collection book vector',
            index=index
        )

写入数据(动态 Schema,可写入未预定义的字段):
res = client.upsert(
            database_name='db-test',
            collection_name='book-vector',
            documents=[
                Document(id='0001', vector=[0.2123, 0.23, 0.213], author='罗贯中', bookName='三国演义', page=21),
                Document(id='0002', vector=[0.2123, 0.22, 0.213], author='吴承恩', bookName='西游记', page=22),
                Document(id='0003', vector=[0.2123, 0.21, 0.213], author='曹雪芹', bookName='红楼梦', page=23)
            ]
        )

相似性检索(filter 过滤 + HNSW 的 ef 参数):
doc_lists = client.search(
            database_name='db-test',
            collection_name='book-vector',
            vectors=[[0.3123, 0.43, 0.213], [0.315, 0.4, 0.216], [0.40, 0.38, 0.26]],
            filter='bookName in ("三国演义","西游记")',
            params=SearchParams(ef=200),
            limit=3
        )
for i, docs in enumerate(doc_lists):
        print(i)
        for doc in docs:
                print(doc)

关键指标

尚未核验对标产品,此处只列本工具自身指标,不做对比结论。

指标腾讯云向量数据库
价格免费增值
开源
上手难度进阶

相关工具

优点

  • 全托管免部署运维,控制台购买实例即可使用,并提供 DMC 数据管理与监控能力
  • 内置 Embedding 与 AI 套件,可直接写文本或上传文档,不必自建向量化管道
  • 索引类型覆盖 FLAT / HNSW / IVF 系列,IVF_RABITQ 可将存储压到原始的 1/32–9/32
  • 中文官方文档完整,提供 Python / Java / Go / Node.js SDK 与 HTTP API

缺点

  • 向量维度上限 4096,Document ID 长度上限 128 字符
  • 单次相似性检索最多返回 20 条数据;按 ID 的 Query / Update / Delete 单次上限 1000 条
  • 外网访问需在控制台手动开启并配置 IP 白名单,官方推荐仍走同地域内网
  • Embedding 开通后立即按 Token 计费、不提供免费 Token,默认限速每秒 100000 Token