Build and deploy a RAG app with Pinecone Serverless

使用 Pinecone Serverless 构建和部署 RAG 应用

3 分钟阅读

背景

LLM 正在开启生成式 AI 应用的新纪元,成为 一种新型操作系统 的核心流程。正如现代计算机拥有 RAM 和文件访问权限一样,LLM 拥有一个上下文窗口,可以加载从外部数据源(如数据库或向量数据库)检索的信息。

检索到的信息可以加载到上下文窗口中,并在 LLM 输出生成中使用,这个过程称为 检索增强生成 (RAG)。RAG 是 LLM 应用开发中的核心概念,因为它可以减少幻觉,通过提供基础输出并添加训练数据中不存在的上下文。

生产中的挑战

考虑到这些要点,向量数据库在生产 RAG 应用中获得了相当大的普及,因为它们提供了一种存储和检索相关上下文的好方法。特别是,语义相似性搜索 通常用于检索与用户提供的输入相关的信息块。

在过去的几个月中,已经分享了大量的 RAG 演示,通常使用 Jupyter notebook 和本地向量数据库等工具。然而,一些痛点在这些演示和生产 RAG 应用之间造成了差距。下面,我们将讨论克服这些差距的几种方法,并提供一个仓库和一个手把手视频,从头开始构建一个生产 RAG 应用。

痛点

细节

解决方案

托管向量数据库管理

基于使用量的定价和无限可扩展性

Pinecone serverless

快速 RAG 应用部署

快速部署原型 RAG 应用

托管 LangServe

RAG 可观测性

RAG 应用的无缝可观测性

LangSmith

生产支持

Pinecone Serverless

Pinecone 是最受欢迎的 LangChain 向量数据库集成 合作伙伴 之一,并因其对托管的支持而在生产中得到广泛应用。然而,我们从社区听到的至少两个痛点包括:(1)需要配置您自己的 Pinecone 索引,以及(2)无论使用情况如何,都为索引支付固定的月费。Pinecone serverless 的推出解决了这两个挑战,通过云对象存储(例如 S3 或 GCS)提供“无限”索引容量,并大大降低了服务成本(允许用户按需付费)。

LangServe

虽然 LangChain 因其快速原型 RAG 应用而广受欢迎,但我们看到了支持将任何链快速部署到适用于生产的 Web 服务的机会。这促使了 LangServe 的诞生。任何使用 LCEL 组成的链都具有可运行的接口,其中包含一组通用的调用方法(例如,batch,stream)。借助 LangServe,这些方法被映射到 Web 服务的 HTTP 端点中,可以使用托管 LangServe 进行管理。

LangSmith

LangSmith 提供了一个 LLM 可观测性平台,可与 LangServe 无缝集成。我们可以使用 LCEL 组成一个连接到 Pinecone Serverless 的 RAG 链,使用 LangServe 将其转换为 Web 服务,使用托管 LangServe 部署它,并使用 LangSmith 监控输入/输出。 

示例应用

为了展示所有这些部分如何组合在一起,我们提供了一个 模板仓库

  • 它展示了如何将 Pinecone Serverless 索引连接到 LangChain 中的 RAG 链,其中包括用于索引的相似性搜索的 Cohere 嵌入,以及用于基于检索到的块进行答案合成的 GPT-4。
  • 它展示了如何使用 Langserve 将 RAG 链转换为 Web 服务。借助 LangServe,然后可以使用托管 LangServe 部署该链。

结论

我们看到了对弥合原型设计和生产之间差距的工具的需求。凭借基于使用量的定价和对无限扩展的支持,Pinecone Serverless 帮助解决了我们从社区看到的向量数据库生产化方面的痛点。Pinecone Serverless 与 LCEL、托管 LangServe 和 LangSmith 良好地结合使用,以支持 RAG 应用的轻松部署。