Sprinklr 如何利用 Qdrant 增强 AI 驱动的客户体验解决方案
Qdrant
·2024 年 10 月 17 日


Sprinklr 是统一客户体验管理(Unified-CXM)领域的领导者,帮助全球品牌在 30 多个数字渠道上与客户进行有意义的互动。为此,Sprinklr 需要一个可扩展的 AI 驱动搜索解决方案,以支持其 AI 应用程序,特别是在处理客户交互的庞大数据需求方面。
Sprinklr 机器学习工程副总监 Raghav Sonavane 领导应用 AI 团队,专注于生成式 AI (GenAI) 和检索增强生成 (RAG)。他的团队负责训练和微调内部模型,并为面向客户的应用程序(如常见问题解答机器人和其他GenAI 驱动服务)部署高级检索和生成系统。该团队通过一个集中式平台向 Sprinklr 产品工程团队提供所有这些功能。

图:Sprinklr 的 RAG 架构
Sprinklr 的平台由四个主要产品套件组成:Sprinklr 服务、Sprinklr 营销、Sprinklr 社交和 Sprinklr 洞察。每个套件都嵌入了 AI 优先功能,如辅助代理、通话后分析和实时分析,这些功能对于管理大规模联络中心运营至关重要。“这些由 Qdrant 高级向量搜索支持的 AI 驱动功能,增强了 Sprinklr 的客户工具,如常见问题解答机器人、交易机器人、会话服务和产品推荐引擎,”Sonavane 说。
这些自助服务应用程序高度依赖先进的向量搜索来分析和优化社区内容并完善知识库,确保高效且相关的响应。对于需要进一步协助的客户,Sprinklr 为支持代理配备了强大的搜索功能,使他们能够快速访问类似案例并借鉴过去的互动,从而提高客户支持的质量和速度。
向量数据库的需求
为了支持各种 AI 驱动的应用程序,Sprinklr 需要一个高效的向量数据库。“关键挑战在于为所有检索任务提供最高质量和最快的搜索功能,”Sonavane 解释道。
去年,Sprinklr 对其现有搜索基础设施进行了全面评估。目标是找出当前的能力差距,对速度和成本进行性能基准测试,并探索通过增强可扩展性和更强的数据隐私控制来改善开发者体验的机会。很明显,一个先进的向量数据库对于满足这些需求至关重要,而 Qdrant 成为了理想的解决方案。
为什么选择 Qdrant?
在评估了包括 Pinecone、Weaviate 和 ElasticSearch 在内的多种向量数据库选项后,Sprinklr 选择了 Qdrant,原因如下:
开发者友好的文档: “Qdrant 清晰的文档使我们的团队能够迅速将其整合到我们的工作流程中,”Sonavane 指出。
高度可定制性: Qdrant 通过高级抽象为 Sprinklr 提供了必要的灵活性,允许进行广泛的定制。Sprinklr 的不同团队在各种 GenAI 应用程序上工作,需要一个能够适应不同工作负载的解决方案。“在集合级别微调配置的能力对我们多样化的 AI 应用程序至关重要,”Sonavane 说。Qdrant 通过提供以下功能满足了这一需求:
速度和成本效益: Qdrant 提供了速度和成本的最佳组合,使其成为满足 Sprinklr 需求的最佳解决方案。“我们需要一个不仅能满足我们性能要求,还能控制成本的解决方案,而 Qdrant 在这两方面都表现出色,”Sonavane 说。
增强的监控: Qdrant 的监控工具进一步提高了系统效率,使 Sprinklr 能够在其平台中保持高性能。
实施与 Qdrant 的性能
Sprinklr 向 Qdrant 的过渡得到了精心管理,从 10% 的工作负载开始,然后逐步扩展。由于 Qdrant 可配置的Web UI,过渡过程非常顺利,这使得 Sprinklr 能够充分利用其现有基础设施中的功能。
Sonavane 指出:“Qdrant 同时索引多个向量并精确检索和重新排序的能力,显著改善了我们的工作流程。”这一功能减少了重复检索过程的需要,显著提高了效率。此外,Qdrant 的量化和内存映射功能使 Sprinklr 能够减少内存使用,从而节省了大量成本。
Qdrant 现在在增强 Sprinklr AI 驱动应用程序中的向量搜索能力方面发挥着关键支持作用,该应用程序旨在实现云和 LLM 无关。该平台支持各种 AI 驱动的任务,从检索和重新排序到提供高级客户体验。“检索是我们所有 AI 任务的基础,Qdrant 的弹性和速度使其成为我们系统中不可或缺的一部分,”Sonavane 强调说。Sprinklr 将 Qdrant 作为 AWS 上的托管服务运行,确保可扩展性、可靠性和易用性。
Qdrant 的关键成果
经过严格的内部评估,Sprinklr 凭借 Qdrant 取得了以下成果:
- 成本降低 30%:内部基准测试显示,Qdrant 将 Sprinklr 的检索基础设施成本降低了 30%。
- 提高开发者效率:Qdrant 友好的用户环境使维护实例变得更容易,从而提高了整体效率。
Sprinklr 团队对需要向量搜索的应用程序进行了彻底的内部基准测试,这些应用程序涉及 1 万到 100 万以上的向量,向量维度因用例而异。这些基准测试的主要结果包括:
- 卓越的写入性能:Qdrant 的写入性能在 Sprinklr 的基准测试中表现出色,10 万到 100 万向量的增量索引时间不到 Elasticsearch 的 10%,这使得它在处理高摄取用例中的更新和追加查询方面效率极高。
- 实时应用的低延迟: 在 Sprinklr 的基准测试中,Qdrant 对 100 万个向量的搜索提供了 20 毫秒的 P99 延迟,非常适合实时用例,例如实时聊天,而 Elasticsearch 和 Milvus 都超过了 100 毫秒。
- 高吞吐量以应对大量查询负载:在 Sprinklr 的基准测试中,Qdrant 在类似配置下处理了高达每秒 250 个请求(RPS),显著优于 Elasticsearch 的 100 RPS,使其成为处理大量查询负载环境的理想选择。
“Qdrant 是一个非常快速且高质量的检索系统,”Sonavane 指出。

图:P95 查询时间与不同索引大小的平均精度基准
展望
展望未来,Sprinklr 的应用 AI 团队专注于为公司、组织和员工开发 Sprinklr 数字孪生技术,旨在将 AI 代理与人工员工无缝集成到业务流程中。Sprinklr 数字孪生由一个流程引擎提供支持,该引擎包含角色、技能、任务和活动,旨在优化运营效率。

图:Sprinklr 数字孪生
向量搜索将发挥至关重要的作用,因为每个 AI 代理都将拥有自己的知识库、技能集和工具集,从而实现精确和自主的任务执行。Qdrant 的集成进一步增强了系统有效管理和利用大量数据的能力。
基准测试结论
配置详情
- 我们对需要搜索不同大小(从 1 万到 1 百万以上)向量的应用程序进行了基准测试,向量的维度根据使用情况而异。我们的基础设施主要由 Elasticsearch 和内存 Faiss 向量搜索组成。
关键观察
- 索引速度:Qdrant 快速索引向量,使其适用于需要快速数据摄取的应用程序。在尝试的替代方案中,Milvus 在给定精度下的索引时间与 Qdrant 不相上下。Elasticsearch 的最新版本比以前的版本有很大改进,但效率不如 Qdrant。
- 写入性能: 对于我们的一些用例,更新查询和追加查询的频率显著更高。对于 ES,点数的增加对总上传时间产生了严重影响。对于 10 万到 100 万向量索引,Qdrant 的增量索引时间不到 Elasticsearch 的 10%。
- 低延迟:尾部延迟对于实时应用程序(如实时聊天)至关重要,需要较低的 P95 和 P99 延迟。对于需要搜索 100 万个向量的工作负载,Qdrant 提供了 20 毫秒的 P99 推理延迟,而 ES 和 Milvus 则超过了 100 毫秒。
- 高吞吐量:Qdrant 支持高并发请求量,使其成为处理高查询负载环境的理想选择。在相似配置下,Qdrant 的吞吐量达到 250 RPS,而 ES 约为 100 RPS。




data = [
{'system': 'Qdrant', 'index_size': '1,000', 'MAP': 0.98, 'P95 Time': 0.22, 'Mean Time': 0.1, 'QPS': 280,
'Upload Time': 1},
{'system': 'Qdrant', 'index_size': '10,000', 'MAP': 0.99, 'P95 Time': 0.16, 'Mean Time': 0.09, 'QPS': 330,
'Upload Time': 5},
{'system': 'Qdrant', 'index_size': '100,000', 'MAP': 0.98, 'P95 Time': 0.3, 'Mean Time': 0.23, 'QPS': 145,
'Upload Time': 100},
{'system': 'Qdrant', 'index_size': '1,000,000', 'MAP': 0.99, 'P95 Time': 0.171, 'Mean Time': 0.162, 'QPS': 596,
'Upload Time': 220},
{'system': 'ElasticSearch', 'index_size': '1,000', 'MAP': 0.99, 'P95 Time': 0.42, 'Mean Time': 0.32, 'QPS': 95,
'Upload Time': 10},
{'system': 'ElasticSearch', 'index_size': '10,000', 'MAP': 0.98, 'P95 Time': 0.3, 'Mean Time': 0.24, 'QPS': 120,
'Upload Time': 50},
{'system': 'ElasticSearch', 'index_size': '100,000', 'MAP': 0.99, 'P95 Time': 0.48, 'Mean Time': 0.42, 'QPS': 80,
'Upload Time': 1100},
{'system': 'ElasticSearch', 'index_size': '1,000,000', 'MAP': 0.99, 'P95 Time': 0.37, 'Mean Time': 0.236,
'QPS': 348, 'Upload Time': 1150}
]