重要链接
背景
LLM 正在开启生成式 AI 应用的新纪元,成为 一种新型操作系统 的核心流程。正如现代计算机拥有 RAM 和文件访问权限一样,LLM 拥有一个上下文窗口,可以加载从外部数据源(如数据库或向量数据库)检索的信息。
检索到的信息可以加载到上下文窗口中,并在 LLM 输出生成中使用,这个过程称为 检索增强生成 (RAG)。RAG 是 LLM 应用开发中的核心概念,因为它可以减少幻觉,通过提供基础输出并添加训练数据中不存在的上下文。
生产中的挑战
考虑到这些要点,向量数据库在生产 RAG 应用中获得了相当大的普及,因为它们提供了一种存储和检索相关上下文的好方法。特别是,语义相似性搜索 通常用于检索与用户提供的输入相关的信息块。
在过去的几个月中,已经分享了大量的 RAG 演示,通常使用 Jupyter notebook 和本地向量数据库等工具。然而,一些痛点在这些演示和生产 RAG 应用之间造成了差距。下面,我们将讨论克服这些差距的几种方法,并提供一个仓库和一个手把手视频,从头开始构建一个生产 RAG 应用。
生产支持
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 应用的轻松部署。