Type something to search...
构建 Agentic RAG(检索-增强生成)管道的实践演示

构建 Agentic RAG(检索-增强生成)管道的实践演示

插图展示了自主代理如何参与 RAG 系统,以检索最相关的信息片段。

什么是Agentic RAG?

我们都知道什么是检索增强生成(Retrieval Augmented Generation,RAG)。但让我们快速回顾一下。检索增强生成是一种强大且流行的管道,通过从大型语言模型中增强响应来提升其表现。它通过将从向量数据库中检索到的相关数据作为上下文添加到提示中,并将其发送给LLM进行生成。这使得LLM能够将其响应基于具体且准确的信息,从而提高响应的质量和可靠性。

让我快速描绘一下这个过程。假设我们有一个用户或一个应用程序。它们发送一个查询。现在,在没有检索增强生成的情况下,这个查询将被插入到提示中。然后,这将会传递给LLM,并生成一个输出,这就是一个简单的RAG工作流程。

接下来,我们可以在传统工作流程中添加一个向量数据库(vector DB)。因此,不再直接将其插入到提示中,而是先查询这个向量数据库。来自该向量数据库的响应将作为提示的上下文。在这个典型的管道中,我们仅调用一次LLM,并仅使用它来生成响应。

但如果我们不仅能利用LLM生成响应,还能用于额外的任务,比如决定查询哪个向量数据库呢?假设我们有多个数据库,或者甚至确定给出何种类型的响应?一个文本回答应该生成一个图表,还是提供一个代码片段?这将完全依赖于该查询的上下文。因此,这就是agentic RAG管道发挥作用的地方。

在agentic RAG中,我们将LLM作为一个代理,LLM不仅仅生成响应。它承担了一个主动角色,并可以做出决策,从而提高检索数据的相关性和准确性。

现在,让我们探索如何通过一个代理和几种不同的数据源来增强初始过程。因此,不仅仅是一个单一的数据源,让我们添加第二个。第一个可以是您已知的内部文档,第二个可以是一般行业知识。在内部文档中,我们将包含政策、程序和指南等内容。而一般知识库将包含行业标准、最佳实践和公共资源等内容。那么我们如何让LLM使用包含与查询最相关的数据的向量数据库呢?让我们将代理添加到下面概述的管道中。

现在,这个代理可以根据用户的问题智能地决定查询哪个数据库,代理并不是在随机猜测。它利用LLM的语言理解能力来解释查询并确定其上下文。因此,如果一名员工询问公司在假期期间的远程工作政策是什么,它将把该查询路由到内部文档,并将该响应用作提示的上下文。但如果问题更一般,比如技术公司远程工作的行业标准是什么,代理将把该查询路由到一般知识数据库,并在由LLM驱动的提示中使用该上下文,代理分析查询,并根据对内容和上下文的理解决定使用哪个数据库。但是,我们可能并不总是询问与此相关或真正相关的问题,或者说与我们在向量数据库中拥有的内容相关的问题。那么,如果有人问一个完全无关的问题,比如“谁赢得了2024年T20世界杯?”此时,代理可以将其路由到一个安全机制。因此,由于代理能够识别查询的上下文,它可以识别出这不属于我们拥有的两个数据库,能够将其路由到安全机制,并返回一条消息,比如“抱歉,我没有您要找的信息”。

潜在示例用法

现在,例如,这个代理 RAG 管道可以用于客户支持系统和法律科技。例如,律师可以从他们的内部简报中获取问题的答案,然后在另一个查询中,仅从公共案例数据库中获取信息。这个代理可以以多种方式使用。这种方法为客户服务、法律、科技、医疗等几乎所有领域的应用打开了许多可能性,因为信息技术持续发展。我们将看到真正理解上下文的 AI 系统,并能够为最终用户提供惊人的价值。

够了,正如—— “说话是便宜的。 给我看代码。”—— Linus Torvalds.

让我们深入探讨我们的演示示例。

DEMO — 使用 CrewAI、LangChain 和 Gradio 构建 Agentic RAG 应用程序

通过这个演示示例,我们将看到如何在 RAG 系统中涉及代理,以检索最相关的信息。

首先为您的项目创建一个文件夹,例如 — “llm_agentic_rag_app_demo”,然后使用 conda 创建一个虚拟环境

conda create -n llm_agentic_rag_venv python=3.10

或使用 Virtualenv

py -3.10 -m venv llm_agentic_rag_venv

接下来激活虚拟环境

一旦您的虚拟环境被激活,接下来我们需要安装所有需要的库。

安装所需的库

导入库

设置 API 密钥

加载我们需要使用的数据/自定义数据。在这里,我们使用一个公开可用的 pdf,标题为‘attention is all you need’。

下载 PDF,如果尚未存在

配置您的 LLM

我们创建了一个 RAG 工具和一个网络搜索工具。对于网络搜索工具,我们将使用 Tavily 作为我们的代理使用的工具。Tavily Search API 是一个针对 LLM 和 RAG 优化的搜索引擎,旨在提供高效、快速和持久的搜索结果。

创建一个 RAG 工具变量以传递我们的 PDF

让我们定义一个工具

创建代理以便使用

为这些代理定义任务

定义我们的 RAG 应用程序的流程

最后一步是创建我们的应用程序界面和 UI。为此,我们使用 GRADIO。使用它可以通过友好的网页界面演示您的 ML 模型。

使用 GRADIO 创建应用程序

运行 RAG 管道

这个 Agentic RAG 管道 — 通过代理处理用户查询,检索最相关的信息,过滤掉幻觉,并提供准确简洁的答案。

在这里访问完整代码

总结

Agentic RAG 是我们增强 RAG 流程的一种进化,它超越了简单的响应生成,朝着更智能的决策制定迈进。通过允许代理选择最佳数据源,甚至可能整合实时数据或第三方服务等外部信息,我们可以创建一个更具响应性、更准确且更具适应性的流程。

结合 CrewAI、LangChain 和 Gradio 等框架,我们构建了一个功能性代理 RAG 应用,不仅生成信息——而且能够主动检索、验证和过滤信息,以确保响应的准确性和高质量。

如果你喜欢这篇博客文章,请通过你的支持和鼓励来促使我发布更多内容,给我一个点赞 👏

联系我

您可以通过 ajay.arunachalam08@gmail.com 联系我,或通过 Linkedin 与我建立联系。

感谢您的阅读。

“知识就是力量”——所以,请始终保持学习!!!查看我的 Git Repo 这里

关于我

我是一名 AWS 认证云解决方案架构师 & AWS 认证机器学习专家。在过去,我曾在 电信零售银行与金融医疗保健媒体市场营销教育农业制造业 等行业工作。我在交付数据科学与分析解决方案方面拥有 7*+** 年的经验,其中 6**+** 年是与客户直接接触的经验。我曾 领导与管理 大量数据工程师、机器学习工程师、数据科学家、数据分析师和业务分析师团队。此外,我在商业智能、数据仓库、报告与分析领域拥有技术/管理技能,并持有 微软认证 Power BI 助理 认证。我曾参与多个关键的战略与数据货币化项目。作为一名认证的 Scrum Master,我在专注于协作、客户、持续改进和可持续发展的同时,实践敏捷原则。*

参考文献

Related Posts

使用 ChatGPT 搜索网络功能的 10 种创意方法

使用 ChatGPT 搜索网络功能的 10 种创意方法

例如,提示和输出 你知道可以使用 ChatGPT 的“搜索网络”功能来完成许多任务,而不仅仅是基本的网络搜索吗? 对于那些不知道的人,ChatGPT 新的“搜索网络”功能提供实时信息。 截至撰写此帖时,该功能仅对使用 ChatGPT 4o 和 4o-mini 的付费会员开放。 ![](https://images.weserv.nl/?url=https://cdn-im

阅读更多
在人工智能和技术领域保持领先地位的 10 项必学技能 📚

在人工智能和技术领域保持领先地位的 10 项必学技能 📚

在人工智能和科技这样一个动态的行业中,保持领先意味着不断提升你的技能。无论你是希望深入了解人工智能模型性能、掌握数据分析,还是希望通过人工智能转变传统领域如法律,这些课程都是你成功的捷径。以下是一个精心策划的高价值课程列表,可以助力你的职业发展,并让你始终处于创新的前沿。 1. 生成性人工智能简介课程: [生成性人工智能简介](https://genai.works

阅读更多
10 个强大的 Perplexity AI 提示,让您的营销任务自动化

10 个强大的 Perplexity AI 提示,让您的营销任务自动化

在当今快速变化的数字世界中,营销人员总是在寻找更智能的方法来简化他们的工作。想象一下,有一个个人助理可以为您创建受众档案,建议营销策略,甚至为您撰写广告文案。这听起来像是一个梦想? 多亏了像 Perplexity 这样的 AI 工具,这个梦想现在成为现实。通过正确的提示,您可以将 AI 转变为您的 个人营销助理。在本文中,我将分享 10 个强大的提示,帮助您自动

阅读更多
10+ 面向 UI/UX 设计师的顶级 ChatGPT 提示

10+ 面向 UI/UX 设计师的顶级 ChatGPT 提示

人工智能技术,如机器学习、自然语言处理和数据分析,正在重新定义传统设计方法。从自动化重复任务到实现个性化用户体验,人工智能使设计师能够更加专注于战略思维和创造力。随着这一趋势的不断增长,UI/UX 设计师越来越多地采用 AI 驱动的工具来促进他们的工作。利用人工智能不仅能提供基于数据的洞察,还为满足多样化用户需求的创新设计解决方案开辟了机会。 1. 用户角色开发 目的

阅读更多
在几分钟内完成数月工作的 100 种人工智能工具

在几分钟内完成数月工作的 100 种人工智能工具

人工智能(AI)的快速发展改变了企业的运作方式,使人们能够在短短几分钟内完成曾经需要几周或几个月的任务。从内容创作到网站设计,AI工具帮助专业人士节省时间,提高生产力,专注于创造力。以下是按功能分类的100个AI工具的全面列表,以及它们在现实世界中的使用实例。 1. 研究工具 研究可能耗时,但人工智能工具使查找、分析和组织数据变得更加容易。**ChatGPT, Cop

阅读更多
你从未知道的 17 个令人惊叹的 GitHub 仓库

你从未知道的 17 个令人惊叹的 GitHub 仓库

Github 隐藏的宝石!! 立即收藏的代码库 学习编程相对简单,但掌握编写更好代码的艺术要困难得多。GitHub 是开发者的宝藏,那里“金子”是其他人分享的精心编写的代码。通过探索 GitHub,您可以发现如何编写更清晰的代码,理解高质量代码的样子,并学习成为更熟练开发者的基本步骤。 1. notwaldorf/emoji-translate *谁需

阅读更多