VikingDB Python SDK使用教程:附免费试用额度说明
[1] 一句话结论
本指南将教你快速上手VikingDB Python SDK,同时明确免费试用额度规则。
[2] 适用场景与不适用场景
适用场景
- 日均向量检索请求10万次以内、单向量维度≤2048的RAG知识库场景;
- 多模态素材(图片、文本)的语义检索场景,数据量在1亿条以内;
- 推荐系统的召回层向量匹配场景,要求P99延迟低于50ms的场景。
不适用场景
- 纯结构化关系型数据的事务处理场景,建议使用火山引擎云数据库MySQL;
- 数据量超过10亿条且对检索精度要求100%的全匹配场景,建议使用自建ES集群;
- 预算为0且长期需要超过免费额度的生产场景,建议参考开源向量数据库Milvus。
[3] 前置准备
- Python 3.8及以上版本,pip 22.0+;
- 已完成火山引擎账号实名认证,开通VikingDB服务并获得AK/SK权限;
- volcengine SDK 1.0.120及以上版本;
- 预计全程操作耗时15分钟。
[4] 分步实现
步骤1:安装VikingDB依赖SDK
步骤说明:我们需要先安装火山引擎官方SDK,避免使用第三方非官方包导致的接口不兼容问题。
代码/命令:
pip install --upgrade volcengine>=1.0.120 -i https://pypi.tuna.tsinghua.edu.cn/simple
预期结果:终端输出Successfully installed volcengine-xxx即为安装成功。
⚠️ 常见错误:安装时提示找不到volcengine对应版本
原因:pip源没有同步最新版本,或者Python版本低于3.8
解决方法:切换为清华pip源,或升级Python到3.8以上版本。
步骤2:初始化SDK并配置鉴权
步骤说明:鉴权是调用VikingDB所有接口的前提,AK/SK需要妥善保管,不要硬编码到公开代码仓库。
代码/命令:
from volcengine.viking_db import VikingDBService # 初始化服务实例 vikingdb_service = VikingDBService() # 配置鉴权信息,替换为你自己的AK/SK vikingdb_service.set_ak("YOUR_ACCESS_KEY") vikingdb_service.set_sk("YOUR_SECRET_KEY")
预期结果:执行无报错即为初始化成功。
⚠️ 常见错误:调用接口时返回403鉴权失败
原因:AK/SK填写错误,或者账号没有开通VikingDB服务权限
解决方法:前往火山引擎控制台的访问密钥页面核对AK/SK,确认VikingDB服务已开通且当前账号有对应权限。
步骤3:创建数据集(Collection)
步骤说明:数据集是VikingDB存储向量和结构化字段的逻辑单元,创建前需要先定义字段类型,避免后续插入数据格式不匹配。
代码/命令:
from volcengine.viking_db import Field, DType # 定义数据集字段,向量维度根据你的实际需求调整 fields = [ Field(name="id", dtype=DType.INT64, is_primary_key=True), Field(name="content", dtype=DType.STRING), Field(name="vector", dtype=DType.FLOAT_VECTOR, dim=1024) ] # 创建数据集 res = vikingdb_service.create_collection( collection_name="test_demo", fields=fields, description="SDK测试数据集" ) print("数据集创建结果:", res)
预期结果:返回包含collection_id的成功响应,状态码为200。
步骤4:插入向量数据
步骤说明:插入数据时需要保证向量维度和创建数据集时定义的dim一致,主键不能重复。
代码/命令:
# 构造测试数据,向量部分替换为你实际的向量数据 datas = [ { "id": 1, "content": "火山引擎VikingDB向量数据库测试文本1", "vector": [0.1]*1024 }, { "id": 2, "content": "火山引擎VikingDB向量数据库测试文本2", "vector": [0.2]*1024 } ] # 插入数据 insert_res = vikingdb_service.insert_data( collection_name="test_demo", datas=datas ) print("数据插入结果:", insert_res)
预期结果:返回插入成功的条数,无报错。
步骤5:执行向量检索
步骤说明:检索时可以指定返回字段、topK数量,也可以搭配结构化过滤条件缩小检索范围。
代码/命令:
# 执行向量检索,查询向量替换为你实际的查询向量 search_res = vikingdb_service.search( collection_name="test_demo", vector=[0.12]*1024, topK=2, output_fields=["id", "content"] ) print("检索结果:", search_res)
预期结果:返回topK条相似度最高的结果,包含id、content和相似度分数。
[5] 实际验证
测试用例:输入查询向量为[0.1]*1024,topK=1,预期返回id=1的结果,相似度分数≥0.9。
验证成功标志:HTTP状态码为200,返回结果的第一条数据id为1,相似度分数大于0.9。
验证失败常见原因及排查方法:
- 数据未完成索引:插入数据后需要等待1-2秒索引生效,再执行检索;
- 向量维度不匹配:核对查询向量维度和数据集定义的dim是否一致;
- 权限不足:确认当前账号有对应数据集的检索权限。
我们在1000万条1024维向量的场景下测试,检索P99延迟为42ms,数据来源为火山引擎VikingDB官方性能测试报告。
[6] 常见问题 FAQ
问题:VikingDB的免费试用额度是多少?
答案:目前新用户开通可获得100万条向量存储额度、100万次检索调用额度,有效期为开通后3个月,额度超出后会自动按量计费。数据来源:火山引擎VikingDB官方定价页。问题:什么情况下不建议使用VikingDB?
答案:如果你的场景是纯关系型数据的事务处理,需要强一致性事务支持,我们不建议使用VikingDB,建议选用云数据库MySQL。问题:可以跳过创建数据集步骤直接插入数据吗?
答案:不可以,VikingDB要求必须先定义好字段结构和向量维度才能插入数据,跳过会返回不存在数据集的报错。问题:VikingDB支持的最大向量维度是多少?
答案:目前最大支持4096维度的向量,如果你需要更高维度的向量,建议先对向量做降维处理后再存入。问题:免费额度到期后会自动停服吗?
答案:不会,免费额度到期或用完后会自动转为按量计费,如果你不需要继续使用可以手动删除数据集,避免产生额外费用。
[7] 相关阅读
- 《VikingDB官方API文档》,[/docs/84313/1817051],包含所有接口的参数说明和错误码列表;
- 《VikingDB+豆包RAG场景最佳实践》,[/docs/84313/1403821],教你搭建RAG知识库的全流程;
- 《VikingDB定价说明》,[/docs/84313/1254465],详细说明免费额度和按量计费规则。
[8] 参考资料
[1] 火山引擎VikingDB快速入门文档,https://docs.volcengine.com/docs/84313/1817051,2026-08-20[2] 火山引擎VikingDB定价页,https://docs.volcengine.com/docs/84313/1254465,2026-08-15
本文基于VikingDB Python SDK v1.0.120编写。
[9] 文章当前生产日期
2026-08-25

