编者按:这篇文章由 Qdrant 团队撰写,并从他们的博客交叉发布。随着越来越多的 LLM 应用程序投入生产,速度、稳定性和成本将变得比以往任何时候都更加重要。而且,随着越来越多的 LLM 应用程序利用 RAG(以及长期记忆),这变得更具挑战性。我们对 Qdrant 在这方面所做的工作感到非常兴奋——他们的异步支持尤其有帮助!
LangChain 目前支持 40 多种向量数据库,每种数据库都提供自己的特性和功能。在制作原型时,您可以使用一些真正出色的选项。然而,虽然有些选项在性能和适用性方面可能胜过其他选项,但为您的应用程序的生产场景选择最佳选项需要仔细考虑。
如果您希望扩展并保持相同的性能水平,Qdrant 和 LangChain 是一个非常可靠的组合。开始使用两者都轻而易举,并且文档涵盖了广泛的用例。然而,Qdrant 的主要优势在于它可以始终如一地为用户提供原型设计和发布阶段之后的支持。例如,您只需要最多 18GB 的 RAM,以及最少 2GB 的 RAM 即可支持 100 万个 OpenAI 向量!这使得 Qdrant 成为最大化资源使用和数据连接的最佳向量数据库。
Qdrant 向量数据库的核心优势在于语义搜索。在 LangChain 的支持下,Qdrant 可以帮助您设置有效的QA 系统、检测系统和聊天机器人,这些系统和聊天机器人充分利用检索增强生成 (RAG) 的潜力。Qdrant 简化了检索增强的过程,使其更快、更易于扩展和高效。向 LLM 添加相关上下文可以极大地改善用户体验,尤其是在大多数商业案例中,LLM 以前从未访问过此类数据。当可用数据量巨大(有时是数百甚至数千个文档)时,向量搜索更擅长筛选相关上下文。
Qdrant 如何与 LangChain 协同工作?
Qdrant 向量数据库作为 AI 模型的长期记忆发挥作用。作为向量存储,它管理向量的高效存储和检索,向量代表用户数据。
在 RAG 方面,LangChain 接收查询,将其分派到向量数据库(例如 Qdrant),检索相关文档,然后将查询和检索到的文档都发送到大型语言模型以生成答案。

通过检索系统增强您的 AI 应用程序可以减少幻觉,幻觉是指 AI 模型产生听起来合理但却是编造的回答的情况。
在 LLM 应用程序的长期记忆存储方面,开发人员可以轻松地将相关文档、聊天历史记录记忆和丰富的用户数据添加到 LLM 应用程序提示中。Qdrant 负责文档和聊天历史记录存储、嵌入、富集等等。
优化资源使用
检索增强生成并非没有挑战和局限性。应用程序开发人员面临的主要障碍之一是管理模型的复杂性。将检索器和生成器集成到单个模型中可能会导致复杂性提高,从而增加所需的计算资源。
Qdrant 经过完全优化以实现性能,并不断添加新功能,以减少运行应用程序所需的计算负载。特别是,Qdrant 是 LangChain 提供的唯一支持异步操作的向量存储。Qdrant 支持基于 GRPC 协议的完整异步 API。
此功能在我们的开源 Qdrant 向量数据库以及 Qdrant Cloud SaaS 产品中均可用。这带来了性能优势,因为应用程序可以最大限度地利用计算资源,而不会浪费时间等待外部服务的响应。
向量数据库作为单独的服务运行,这使得它们从基于 LLM 的应用程序的角度来看是 I/O 绑定的。使用 `async` 可以让您更好地利用资源,特别是当 LangChain 与 `async` 框架(例如 FastAPI)结合使用时。使用异步 API 很简单 - 所有方法都有其对应的异步定义(similarity_search -> asimilarity_search 等)。FastAPI 在他们的文档中很好地描述了异步操作。

应用程序不等待 I/O 操作,当应用程序与外部系统(例如任何数据库)交互时,这会带来回报。这样,计算能力就不会闲置,而是得到充分利用。
io_uring 的实现证明了 Qdrant 对性能和资源使用的关注。Qdrant 提供的一项重要优化是量化(标量或基于 乘积)。Uring 通过改进异步吞吐量来缓解磁盘 IO 的使用,无论何时 OS 系统调用开销变得过高,这种情况都往往发生在软件变得受 IO 限制的情况下,Uring 对此进行补充。
您的最终目标是什么?
“先试后买”的明智格言在向量存储选择领域同样适用。LangChain 上有许多选项可供选择,因此务必尝试此选项是否最适合您的用例。
入门的最佳方式是注册我们的 Qdrant Cloud 免费套餐。加入官方 Discord 社区以获得技术支持和集成建议。
“我们全力以赴追求性能和可靠性。我们发布的每个版本都使 Qdrant 更快、更稳定且对用户更具成本效益。当其他人专注于原型设计时,我们已经为生产做好了准备。很快,我们的用户将构建成功的产品并推向市场。此时,我预计对可靠的向量存储有很大的需求。Qdrant 为 LangChain 和整个社区提供支持。” ––David Myriel,Qdrant 产品教育总监
相关链接
- Qdrant 是开源的,您可以在本地模式下快速启动,通过 Docker 安装它,或安装到 Kubernetes。SDK 可用于 Python、TypeScript、Rust 和 GoLang。
- 还建议使用 Qdrant Cloud 的免费套餐进行原型设计和测试。
- 有关更多信息,请查看 Qdrant 官方文档。
- 为了与 LangChain 最佳集成,请查看 LangChain 官方文档以及 Qdrant 向量数据库的 LangChain API 规范。