ZeusDB 是一个由 Rust 提供支持的高性能向量数据库,提供产品量化、持久化存储和企业级日志记录等高级功能。本文档展示了如何使用 ZeusDB 为您的 LangChain 应用程序带来企业级向量搜索功能。
快速入门
安装
入门
此示例使用 OpenAIEmbeddings,它需要一个 OpenAI API 密钥 - 在此获取您的 OpenAI API 密钥 如果您愿意,您也可以将此包与任何其他嵌入提供商(Hugging Face、Cohere、自定义函数等)一起使用。基本用法
工厂方法
为方便起见,您可以一步创建和填充向量存储示例 1:从文本创建(一步创建索引并添加文本)
示例 2:- 从文档创建(一步创建索引并添加文档)
高级功能
ZeusDB 的企业级功能已完全集成到 LangChain 生态系统中,提供量化、持久化、高级搜索功能和许多其他企业功能。采用量化的内存高效设置
对于大型数据集,请使用产品量化来减少内存使用持久化
ZeusDB 持久化允许您将完全填充的索引保存到磁盘,并在以后完全恢复状态地加载它。这包括向量、元数据、HNSW 图以及(如果启用)产品量化模型。 保存内容:- 向量和 ID
- 元数据
- HNSW 图结构
- 量化配置、质心和训练状态(如果启用了 PQ)
如何保存您的向量存储
如何加载您的向量存储
备注
- 路径是一个目录,而不是单个文件。请确保目标可写。
- 保存的索引是跨平台的,并包含格式/版本信息以进行兼容性检查。
- 如果您使用了 PQ,则压缩模型和状态都将被保留——加载后无需重新训练。
- 您可以继续在加载的存储上使用所有向量存储 API(similarity_search、retrievers 等)。
高级搜索选项
使用这些来控制您的搜索的评分、多样性、元数据过滤和检索器集成。带分数的相似性搜索
返回 ZeusDB 的(Document, raw_distance) 对——距离越小 = 越相似。如果您喜欢 [0, 1] 范围内的归一化相关性,请使用 similarity_search_with_relevance_scores。
MMR 搜索以实现多样性
MMR(最大边际相关性)平衡了两个因素:与查询的相关性和所选结果之间的多样性,从而减少了近乎重复的答案。使用 lambda_mult(1.0 = 全部相关性,0.0 = 全部多样性)控制权衡。带元数据过滤的搜索
使用您在添加文档时存储的文档元数据过滤结果作为检索器
将向量存储转换为检索器为您提供了一个标准的 LangChain 接口,链(例如 RetrievalQA)可以调用该接口来获取上下文。在底层,它使用您选择的搜索类型(相似性或 mmr)和 search_kwargs。异步支持
ZeusDB 支持异步操作,实现非阻塞的并发向量操作。 何时使用异步: Web 服务器 (FastAPI/Starlette)、进行并行搜索的代理/管道,或需要非阻塞/并发检索的笔记本。如果您正在编写简单的脚本,同步方法即可。 这些是异步操作——常规同步方法的 async/await 版本。它们各自的作用如下:await vector_store.aadd_documents(documents)- 异步将文档添加到向量存储(add_documents()的异步版本)await vector_store.asimilarity_search("query", k=5)- 异步执行相似性搜索(similarity_search()的异步版本)await vector_store.adelete(ids=["doc1", "doc2"])- 异步通过 ID 删除文档(delete()的异步版本)
- 您正在构建异步应用程序(使用
asyncio、FastAPI 等) - 您希望进行可以并发运行的非阻塞操作
- 您正在同时处理多个请求
- 您希望在 I/O 密集型应用程序中获得更好的性能
python my_script.py):await)
监控和可观察性
性能监控
企业日志记录
ZeusDB 包含企业级结构化日志记录,可通过智能环境检测自动工作配置选项
索引参数
搜索参数
错误处理
该集成包括全面的错误处理要求
- Python:3.10 或更高版本
- ZeusDB:0.0.8 或更高版本
- LangChain Core:0.3.74 或更高版本
从源代码安装
用例
- RAG 应用程序:用于问答的高性能检索
- 语义搜索:对大型文档集合进行快速相似性搜索
- 推荐系统:基于向量的内容和协同过滤
- 嵌入分析:高维嵌入空间分析
- 实时应用程序:用于生产系统的低延迟向量搜索
兼容性
LangChain 版本
- LangChain Core: 0.3.74+
距离度量
- 余弦:默认,归一化相似度
- 欧几里得 (L2):几何距离
- 曼哈顿 (L1):城市区块距离
嵌入模型
兼容任何嵌入提供商- OpenAI (
text-embedding-3-small,text-embedding-3-large) - Hugging Face Transformers
- Cohere Embeddings
- 自定义嵌入函数
支持
- 文档:docs.zeusdb.com
- 问题:GitHub 问题
- 电子邮件:contact@zeusdb.com
使向量搜索更快、可扩展、开发者友好。
以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。