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 zvecschema = 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,用户提问时检索相关片段注入大模型上下文,实现精准的知识增强生成。
- 电商商品搜索:把商品图片和描述转为多模态向量,用户上传参考图或输入关键词时,快速返回视觉或语义相似的商品。
- 代码智能检索:将代码片段和注释编码为向量,开发者用自然语言描述需求可定位功能相似的代码实现。
- 推荐系统召回:把用户行为和物品特征向量化,实时检索相似用户或物品作为候选集,支撑个性化推荐的首轮召回。
- 生物信息学分析:将蛋白质序列或基因表达数据编码为向量,通过相似度搜索快速发现功能相近的生物分子或疾病靶点。