Making Data Ingestion Production Ready: a LangChain-Powered Airbyte Destination

使数据摄取为生产就绪:LangChain 驱动的 Airbyte 目的地

3 分钟阅读

在过去的几个月中,我们一直非常关注帮助团队从原型走向生产。将他们在短短一小时内开发的应用转变为可以可靠使用的状态。可以说,LangChain 帮助实现的最大应用类别是基于检索的应用(将 LLM 连接到您自己的数据)。将基于检索的应用从原型转变为生产需要几个要素。

其中一个组成部分是与数据查询相关的一切。这就是我们推出 LangSmith 的原因 - 帮助调试和监控 LLM 如何与用户查询以及检索到的文档交互。另一个重要方面是查询算法和围绕它的用户体验 - 这就是我们推动对话检索代理等内容的原因。(如果您对这部分特别感兴趣,我们将在 8 月 9 日举办一场关于“高级检索”的网络研讨会)。第三个 - 也是最重要的部分 - 是摄取逻辑本身。当将应用程序投入生产时,您希望连接到的数据能够以可靠且高效的方式按计划刷新。

我们首次尝试解决这个问题是与 Airbyte 进行更深入的集成。之前的 Airbyte 集成展示了如何使用他们的一个源作为 LangChain 中的文档加载器。这次集成反其道而行之,在 Airbyte 中添加了一个 LangChain 目的地。

要了解有关此集成的更多信息,您可以查看 Airbyte 的发布博客 此处。我们将尽量避免重复该博客的太多内容,而是介绍我们为何认为这是重要一步。

LangChain 提供我们自己的“源”和“目的地” - 我们有数百个文档加载器和 50 多个向量存储/检索器集成。但这远非相互替代,而是一个互惠互利的集成,为社区提供了很多好处。

首先,Airbyte 提供了数百个更多源、强大的编排逻辑以及用于创建更多源的工具。让我们关注编排逻辑。当您创建一个可以访问数据索引的聊天机器人时,您不希望只索引一次数据就忘记它。您希望按计划重新索引它,以便它保持最新。这种类型的数据管道正是 Airbyte 擅长并一直在构建的。

其次,摄取过程不仅是将数据从源移动到目的地。还有一些重要的、非平凡的和细致的转换是实现有效检索所必需的。其中两个最重要的 - 文本拆分和嵌入。

拆分文本很重要,因为您需要创建数据块以放入向量存储中。您希望这些块本身在语义上开源托管了一个游乐场,以便于探索。意义 - 以便在检索时它们有意义。这就是为什么它通常比每 1000 个字符拆分文本要棘手一点。LangChain 提供了 15 多种不同的文本拆分方式的实现,由不同的算法驱动并针对不同的文本类型(markdown 与 Python 代码等)进行了优化。为了帮助探索这些不同的文本拆分器提供的功能,我们开源并托管了一个游乐场,以便于探索。

嵌入对于实现对这些块的检索非常重要,这通常通过比较用户查询的嵌入与摄入文档的嵌入来完成。有许多不同的嵌入提供商和托管平台 - LangChain 提供了与 50 多个平台的集成。

总的来说,我们对 LangChain - Airbyte 集成感到非常兴奋。它为摄取作业提供强大的编排和调度,同时利用 LangChain 的转换逻辑和集成。我们还认为,为了使数据摄取为生产就绪,还需要添加更多功能(和集成) - 请关注未来几周内的更多内容。