project
Zvec - 阿里开源的轻量级嵌入式向量数据库
Zvec是阿里巴巴开源的轻量级嵌入式向量数据库,基于内部Proxima引擎构建。与传统独立部署方案不同,Zvec直接嵌入应用进程运行,无需额外服务器或配置,安装即...
Zvec是什么
Zvec是阿里巴巴开源的轻量级嵌入式向量数据库,基于内部Proxima引擎构建。与传统独立部署方案不同,Zvec直接嵌入应用进程运行,无需额外服务器或配置,安装即用。Zvec支持毫秒级十亿向量搜索、密集与稀疏向量混合查询,提供简洁Python API。Zvec适用于RAG、图像/代码搜索等AI场景。
Zvec的主要功能
-
进程内架构:作为嵌入式库直接运行在应用程序进程中,无需部署独立服务器或管理外部基础设施。
-
高性能向量检索:基于阿里巴巴Proxima引擎,能在毫秒级时间内完成对数十亿规模向量的相似性搜索。
-
多类型向量支持:同时支持密集向量和稀疏向量,支持在单次查询中执行混合搜索。
-
过滤与分组查询:支持将语义搜索与属性过滤条件结合,以及按指定维度对搜索结果进行分组聚合。
-
极简开发体验:提供直观的Python API,通过pip安装后即可在60秒内完成配置并开始使用。
-
广泛部署能力:可在笔记本、服务器、CLI工具及边缘设备等多种环境中运行,适用RAG、图像搜索和代码检索等AI应用场景。
如何使用Zvec
- 安装
pip install zvec # Python 3.10-3.12 环境下执行 pip 命令安装 zvec 库。
- 定义数据结构
import zvec
schema = zvec.CollectionSchema(name="my_db", vectors=zvec.VectorSchema("vec", zvec.DataType.VECTOR_FP32,
128))
# 创建名为 my_db 的集合结构,定义 128 维 32 位浮点向量字段 vec。
- 创建/打开数据库
collection = zvec.create_and_open(path="./data", schema=schema)
# 在本地 ./data 目录创建并打开数据库,若已存在则直接打开。
- 插入向量数据
collection.insert(zvec.Doc(id="1", vectors={"vec":
[0.1,
0.2,
...]}))
# 将包含 ID 为 "1" 的 128 维向量数据插入到集合中。
- 执行相似度搜索
results = collection.query(zvec.VectorQuery("vec", vector=[0.1,
0.2,
...]), topk=10)
# 用查询向量在集合中搜索最相似的 10 条结果并返回。
Zvec的项目地址
- 项目官网:https://zvec.org/
- GitHub仓库:https://github.com/alibaba/zvec
Zvec的应用场景
- RAG 知识库问答:将文档切片生成向量存入 Zvec,用户提问时检索相关片段注入大模型上下文,实现精准的知识增强生成。
- 电商商品搜索:把商品图片和描述转为多模态向量,用户上传参考图或输入关键词时,快速返回视觉或语义相似的商品。
- 代码智能检索:将代码片段和注释编码为向量,开发者用自然语言描述需求可定位功能相似的代码实现。
- 推荐系统召回:把用户行为和物品特征向量化,实时检索相似用户或物品作为候选集,支撑个性化推荐的首轮召回。
- 生物信息学分析:将蛋白质序列或基因表达数据编码为向量,通过相似度搜索快速发现功能相近的生物分子或疾病靶点。