集成 Qdrant 和 LangChain 实现高级向量相似性搜索
David Myriel
·2024年3月12日

“构建 AI 应用不必复杂。您可以通过几行代码利用预训练模型并支持复杂的流程。LangChain 提供了一个统一接口,让您避免编写样板代码,专注于您想带来的价值。” Kacper Lukawski,Qdrant 开发者倡导者
GenAI 应用的长期记忆
Qdrant 的向量数据库因其提升生成式 AI 效率的能力而迅速发展。LLM 本身可以用于构建改变流程的发明。而借助 Qdrant,您可以将这项发明转化为带来实际商业价值的生产级应用。
在生成式 AI 中使用向量搜索现在有了一个名称:检索增强生成(RAG)。 在我们之前的文章中,我们阐述了 RAG 为何是 AI 设置的关键组成部分,以及为何大规模 AI 离不开它。大量案例研究表明,仅使用 LLM 运行 AI 应用过于昂贵且资源密集。
展望未来,解决方案是利用结合模型和向量数据库的复合系统。
什么是 RAG? 本质上,RAG 设置将 Qdrant 变成了 LLM 的长期记忆存储。作为一个向量数据库,Qdrant 管理着用户数据的有效存储和检索。
为 LLM 添加相关上下文可以极大地改善用户体验,带来更高的检索准确性、更快的查询速度和更低的计算资源使用。使用向量搜索增强您的 AI 应用可以减少幻觉,即 AI 模型产生听起来合理但却是编造的回答的情况。
Qdrant 简化了这种检索增强过程,使其更快、更易于扩展且高效。当您访问大量数据(数百或数千文档)时,向量搜索可帮助您筛选出相关上下文。这使得 RAG 成为企业级使用案例的首要选择。
为何选择 LangChain?
检索增强生成并非没有挑战和限制。应用开发者面临的主要困难之一是管理整个设置。将检索器和生成器集成到单个模型中会增加复杂性,从而提高所需的计算资源。
LangChain 是一个框架,它使开发基于 RAG 的应用变得更加容易。它统一了不同库的接口,包括 OpenAI 或 Cohere 等主要嵌入提供商以及 Qdrant 等向量存储。使用 LangChain,您可以专注于创建有形的 GenAI 应用,而不是从头开始编写逻辑。
工作原理: LangChain 接收查询,并从嵌入模型中检索查询向量。然后,它将该向量发送到向量数据库,检索相关文档。最后,将查询和检索到的文档一起发送给大型语言模型以生成答案。
在 LangChain 的支持下,Qdrant 可以帮助您构建有效的问答系统、检测系统和聊天机器人,充分发挥 RAG 的潜力。在长期记忆存储方面,开发者可以利用 LangChain 轻松地通过 Qdrant 向 LLM 应用提示中添加相关文档、聊天历史记录记忆和丰富的用户数据。
常见使用案例
集成 Qdrant 和 LangChain 可以革新您的 AI 应用。让我们来看看这种集成能为您带来什么
增强自然语言处理(NLP): LangChain 非常适合开发问答聊天机器人,其中 Qdrant 用于为 LLM 提供上下文和检索结果。我们在我们的文章中,以及 OpenAI 的cookbook 示例中介绍了这一点,这些示例使用 LangChain 和 GPT 处理自然语言。
改进推荐系统: 外卖服务依赖于犹豫不决的客户。企业需要适应多目标搜索流程,客户通过语义搜索寻求推荐。使用 LangChain,您可以构建用于电子商务、内容分享甚至约会应用的系统。
推进数据分析和洞察: 有时您只是想浏览那些不一定最接近但仍然相关的结果。语义搜索帮助用户在在线商店中发现产品。客户不确定他们在寻找什么,但需要在一个受限的空间内进行搜索。
提供内容相似性分析: 是否曾因在您的本地新闻门户上看到相同的推荐而感到困扰?您可能被困在相似性泡沫中!随着输入变得越来越复杂,多样性变得稀缺,系统也越来越难以显示不同的内容。LangChain 开发者可以使用语义搜索来开发更深入的上下文。
使用 LangChain 构建聊天机器人
既然您了解了 Qdrant 和 LangChain 如何协同工作,是时候构建一些东西了!
观看 Daniel Romero 的视频,从头开始创建一个 RAG 聊天机器人。您只需使用 OpenAI、Qdrant 和 LangChain。这个基础教程将教您以下内容
1. 如何使用 Qdrant 和 LangChain 设置聊天机器人: 您将使用 LangChain 创建一个 RAG 流程,从数据集中检索信息并生成输出。这将演示仅使用 LLM 与利用 Qdrant 等向量数据库进行记忆检索之间的区别。
2. 预处理和格式化聊天机器人使用的数据: 首先,您将下载一个基于学术期刊的示例数据集。然后,您将把这些数据处理成嵌入,并将其作为向量存储在 Qdrant 中。
3. 实现向量相似性搜索算法: 其次,您将创建一个并测试一个仅使用 LLM 的聊天机器人。然后,您将启用 Qdrant 提供的记忆组件。这将使您的聊天机器人可以被修改和更新,从而获得长期记忆。
4. 优化聊天机器人的性能: 在最后一步,您将通过两种方式查询聊天机器人。第一次查询将从 LLM 中检索参数数据,而第二次查询将通过 Qdrant 获取上下文数据。
本练习的目标是展示 RAG 通过 LangChain 实现起来很简单,并且比单独使用 LLM 能产生更好的结果。
扩展 Qdrant 和 LangChain
如果您希望扩展并保持同等水平的性能,Qdrant 和 LangChain 是一个坚实可靠的组合。开始使用两者都很容易,并且文档涵盖了广泛的使用案例。然而,Qdrant 的主要优势在于,它可以在用户度过原型设计和发布阶段后,持续提供支持。
“我们全力投入性能和可靠性。每一次发布都让 Qdrant 对用户来说更快、更稳定、更具成本效益。当其他人专注于原型设计时,我们已经做好了生产准备。很快,我们的用户将构建成功的产品并推向市场。届时,我预计对可靠向量存储的需求将非常大。Qdrant 将会支持 LangChain 和整个社区。”
无论您是构建银行欺诈检测系统、电子商务 RAG,还是为联邦政府提供服务——您都需要为您的产品利用可扩展的架构。Qdrant 提供多种功能,可显著提升您的应用性能并降低托管成本。
详细了解我们如何推动大规模部署的最佳实践。
下一步
既然您了解了 Qdrant 和 LangChain 如何提升您的系统——是时候尝试一下我们了。
Qdrant 是开源的,您可以在本地快速开始,通过 Docker 安装,或安装到 Kubernetes。
我们还为原型设计和测试提供免费等级的 Qdrant 云。
为了与 LangChain 更好地集成,请阅读官方 LangChain 文档。
对于所有其他情况,Qdrant 文档是最佳起点。
我们提供根据您的业务需求量身定制的额外支持。联系我们,了解适合贵公司的实施策略和集成方案。