以下快速入门基于新版API V2,推荐使用此版本。
说明
以下快速入门基于新版本的控制台前端及新版本的API/SDK V2 实现,请您关注自己的版本对应使用:
如何判断自己是否是新版本?
若您是2025.08.14后开通的用户或控制台页面如下图所示,则默认使用新版本。
若您是2025.08.14前开通的用户或控制台如下图所示,可通过旧版本左上角升级至新版本,具体可参考:
向量库新版本(V2 )升级与迁移文档
向量数据库 VikingDB 是构建于火山引擎的云基础设施之上的向量数据库系统,其核心功能涵盖了对机器学习模型产生的海量向量数据进行生产、存储、索引以及分析等操作。
在本指南里,我们会引导您在短短几分钟内迅速完成首个向量库的开通、配置工作,让您能够在我们的配置页面走完数据集创建、索引创建以及检索查询的全部流程。
分为以下三个步骤:
登录 火山引擎控制台,找到 VikingDB,根据对应的提示按需开通 向量数据库服务。
(“已有向量”写入向量,“从向量化开始”写入原始数据)
(示例)
注意
text、image 、video类型字段仅作为存储数据用途,不会用于向量化,字段名称也不能与向量化字段重复。编号 | 参数名称 | 参数说明 |
|---|---|---|
1 | 基础信息(必填) |
|
2 | 向量信息(必填) |
|
3 | 字段配置(选填) |
|
4 | 主键(必填) |
|
5 | 费用细则与创建数据集 |
|
索引类型 | 索引算法 | 介绍 | 使用场景 |
|---|---|---|---|
内存索引 | HNSW | 首选,适合稠密向量、数据规模较大、对检索性能和延迟要求高的在线场景,具有查询延迟低、吞吐高的特点。 |
|
HNSW-Hybrid | 在 HNSW 的基础上,同时索引稠密向量和稀疏向量,在一次检索中综合“语义相似度 + 关键词匹配”两类信号。 |
| |
FLAT | 全量暴力检索索引,对每个向量都计算一次距离,查询速度相对较慢,但召回率最高 |
| |
磁盘索引 | DiskANN | 磁盘索引方案,大部分数据存储在 SSD 上,仅将少量结构放入内存,适合超大规模数据、内存资源有限但仍希望保持较高召回率的场景。 |
|
数据写入现在支持在线写入、本地数据导入、从TOS添加和单条数据插入四种形式(目前视频只支持在线写入)。
点击【写入数据】进入写入页面
如需使用向量库新版本SDK,需进行前期准备:
- 安装/升级 SDK
# 使用 pip 安装 SDK for Python,支持 Python 3.7 及其以上版本 uv add vikingdb-python-sdk // or python3 -m pip install -U vikingdb-python-sdk
- 初始化SDK
from vikingdb import IAM from vikingdb.vector import SearchByRandomRequest, UpsertDataRequest, VikingVector client = VikingVector( host="your host", region="your region", auth=IAM(ak="your ak", sk="your sk"), scheme="https", )
适用于在线服务数据实时写入生效场景,提供流式写入接口
写入数据:在写入数据时请根据选择**“从向量化开始”或“已有向量数据”**来决定上传时需要写入的参数。
写入示例:
请创建数据集、填入数据集名称、aksk、字段名、json文件地址
import os from vikingdb import IAM from vikingdb.vector import UpsertDataRequest, VikingVector auth = IAM( ak="your_ak", sk="your_sk", ) client = VikingVector( host="api-vikingdb.vikingdb.cn-beijing.volces.com", region="cn-beijing", auth=auth, scheme="https", ) collection_client = client.collection(collection_name="zyx_test_oncall1114") payload = { "title": "Python upsert demo", "score": 42.5, "text": "示例负载,省略其余业务字段", } request = UpsertDataRequest( data=[payload], ttl=3600, async_write=False, ignore_unknown_fields=True, ) response = collection_client.upsert(request) print(f"request_id={response.request_id}") if response.result: print(response.result.token_usage)
完成初始化的基础上,对于已有向量数据的数据集,您可以使用在线异步写入的方式写入数据。通过设置 async 参数为true。
说明
异步写入可以提供比同步写入大10倍的写入带宽,适用于更大规模数据量级的实时更新场景。
说明
支持图片文本,视频暂时不支持本地写入,正在努力更新
通过前端导入:导入json/parquet格式文档
注意
本地数据导入文件格式示例:
说明
支持图片文本,视频暂时不支持从TOS导入,正在努力更新
若需要上传多模态数据,请先将图片上传至TOS,并将图片的tos存储路径传入"image"字段。
{"animal_image": "tos://best-practice-pic-search-tos/pic_search_1000_images/0009fc27d9.jpg"}
直接导入:
import os import volcenginesdkcore import volcenginesdkvikingdb as vdb from volcenginesdkvikingdb.api.vikingdb_api import VIKINGDBApi configuration = volcenginesdkcore.Configuration() configuration.ak = os.environ["VIKINGDB_AK"] configuration.sk = os.environ["VIKINGDB_SK"] configuration.region = os.environ["VIKINGDB_REGION"] configuration.host = os.environ["VIKINGDB_HOST"] configuration.scheme = "https" volcenginesdkcore.Configuration.set_default(configuration) client = VIKINGDBApi() task_cfg = vdb.TaskConfigForCreateVikingdbTaskInput( file_type="parquet", tos_path="your-bucket/path/to/data.parquet", ignore_error=False, ) request = vdb.CreateVikingdbTaskRequest( project_name="default", collection_name="sdk_demo_collection", task_type="data_import", task_config=task_cfg, ) response = client.create_vikingdb_task(request) print("task id:", response.task_id) print("message:", response.message) ```
上传多模态数据:以上传图片格式为例,请先将图片上传至TOS,并将图片的tos存储路径传入"image"字段。具体执行逻辑可参考如下流程图。详见【向量库】多模态搜索最佳实践
此外,你还可以在数据集详情页面插入单条数据
写入数据后,您可以在数据集详情页面通过主键对数据进行查询
检索测试页会根据您的数据集配置给出对应的测试方法。
您可以按照检索过滤、后处理、结果配置进行检索参数的调试
如果您选择了全文检索,则可以在对话框上方的筛选条件中选择您希望的检索方式,并在检索方式上选择文本检索或者关键词检索。
多模态检索条件下会有dense_weight参数,用于控制混合检索中稠密向量的权重。
点击查询后,页面右侧会按照输入的查询向量检索出相似的 K 个向量,查询结果默认按照 score 从高到低排序。
如果您创建了直接导入向量的数据集,且包含了稠密向量和稀疏向量的混合索引,您需要同时输入稠密向量和稀疏向量进行检索。
在检索测试页面中,您可以通过点击左上角"API调用"查看基于检索配置自动生成的 API 调用代码示例。
此外,我们在开始使用页面还为您准备了探索指南,您可以根据需要按照指引深入探索VikingDB向量数据库: