Type something to search...
释放代理智能:使用 Bedrock 构建文档摘要器!

释放代理智能:使用 Bedrock 构建文档摘要器!

本博客旨在解释使用 AWS Bedrock 和 AWS Textract 开发智能、代理化和容器化应用程序以总结文档的逐步过程。

来源:由 GoogleDeepMind 提供的图像,来自 Unsplash

所以我们现在处于代理的世界,所有事物都开始朝着代理智能(Agentic AI)发展。甚至萨蒂亚·纳德拉先生预测过 “基于代理的软件将取代 SaaS 应用程序。”

因此,理解代理并获得开发我们代理的能力在这个快速变化的世界中至关重要。本文将帮助您开发自己的“代理智能文档摘要器”。

为什么要花时间阅读这篇文章/博客?

这篇博客将帮助您了解开发自己的 “Agentic Intelligent Document Summarizer” 所需的所有步骤,该工具不仅可以将任何文档作为输入,并且其内容可以通过智能代理进行总结,还可以在任何地方部署(因为容器化)。

每个步骤的代码在博客的相应位置都有解释,在本文的最后提到项目的完整代码链接。

该应用程序将使用以下工具和技术开发:

  • AWS Bedrock
  • AWS Textract
  • AWS S3
  • Docker
  • FastAPI
  • Python
  • REST API 概念
  • Generative AI
  • Agents

要充分理解这篇文章/博客,您至少需要对上述主题有一定的了解。我强烈建议您仔细阅读下面提到的文章;这将使您熟悉许多上述概念并提升您的信心。它还将解释如何访问一些仅在请求后可用的 AWS Bedrock 模型。

不要被上述提到的名称所压倒;这篇博客将以尽可能简单的方式解释一切,以使您对所有内容感到舒适,并传授足够的知识,以便您能够创建自己的自定义代理来解决即使是最复杂的用例。

开发此应用程序的先决条件

要运行我开发的应用程序,或运行您将要开发的应用程序,您需要以下内容:

  • 具有足够权限的 AWS 账户密钥: 用于使用 AWS 服务
  • 一个 AWS S3 存储桶: 用于存储需要摘要的文档
  • 任何 AWS Bedrock 文本模型: 用于总结内容并作为代理中的 LLM 使用。
  • 任何容器执行/编排工具: 如果您希望将应用程序容器化,则需要此工具;否则,您可以直接使用 Python 运行应用程序。如果您选择将应用程序容器化,则可以使用 Docker、Podman、Kubernetes、OpenShift 或任何其他同类云服务。

在提到的所有先决条件下,让我们开始开发“Agentic Intelligent Document Summarizer 应用程序”。

Agentic Intelligent Document Summarizer

通过遵循最佳实践并简化应用程序开发,其代码被划分为模块。让我们为每个模块编写代码。

定义 AWS 客户端

要访问每个 AWS 服务,需要定义相应的 AWS 客户端。

上述代码正在为以下 AWS 服务创建客户端:

  • AWS S3: 上传需要汇总的文档。
  • AWS Textract: 从文档中提取内容。
  • AWS Bedrock: 汇总从文档中提取的内容。

AWS 密钥通过环境变量传递(这是最佳实践)在上述代码中。您可以使用您知道的任何方法来做到这一点;最简单的方法是硬编码,但从安全角度来看,这是最糟糕的方法。如果您使用 Docker 或等效工具对应用程序进行容器化,可以在 Dockerfile 中传递密钥,或者在运行容器时作为环境变量传递(从安全角度推荐)。如果您使用 Kubernetes 或等效工具,则还可以使用秘密。

定义工具

工具是代理用来独立执行操作/行动的助手。每个工具的文档字符串必须包含该工具的目的,因为这是代理决定是否使用特定工具进行操作的唯一依据。

注意 1: 所有工具将使用 langchain 模块中存在的“@tool”装饰器进行定义,这是定义工具的最佳实践。

注意 2: 不用担心运行代码所需导入的库。本文的目的是解释重要的代码,而不是样板代码或运行代码所需的库。完整代码的 GitHub 仓库链接(包括所有内容)在博客的最后提到。

AWS S3 工具

上述代码将创建一个工具,用于将文件上传到 S3,这将被我们在本文后面定义的代理利用。

任何 LangChain 工具不能有超过 1 个参数;然而,这个工具将需要 2 个参数:file_pathobject_name(S3 中的目标文件名)来上传文件到 S3。因此,为了实现这一点,使用了一个提示技巧,其中所需的输入格式在工具的文档字符串中定义,代理将根据该格式传递参数。由于参数的格式与提示中提到的相同,上传文档到 S3 所需的两个参数通过 split() 方法获取,并且文档被上传到 AWS S3。

AWS Textract 工具

上述代码将使用 AWS Textract 从 AWS S3 存储桶中的文档提取内容。这个工具也将被我们在本文后面定义的代理利用。

与上述工具(AWS S3 工具)类似,这个工具也需要 2 个参数,并且在这个工具中使用了与上述工具相同的问题及其解决方案。

AWS Bedrock 工具

上述代码将使用 AWS Bedrock 对从 AWS S3 存储桶中的文档提取的内容进行总结。这个工具也将被我们在本文后面定义的代理利用。

定义代理

Agent 是智能实体,它将决定采取哪些行动以及以何种顺序来实现用例/目标,利用其智能。

上述代码定义了代理以满足我们的目标,即对文档进行摘要。它利用了所有已创建的工具,代理将自动决定何时使用哪个工具,并将满足我们的用例。

在代理中使用的 LLM 是具有 80 亿参数的 Llama 3 指令变体,可在 AWS Bedrock 上获得。

定义主要应用程序路由

在这里,定义了主要应用程序路由,该路由负责将文档作为输入,执行所有必要的操作以实现目标,然后在最后返回文档的摘要。

上述代码定义了主要应用程序路由,按顺序执行以下操作:

  • 将文档作为输入
  • 在应用程序使用的文件系统中创建一个名为“media_files”的目录。如果您在Docker中运行它,则会在Docker容器中创建该目录。
  • 将文件(名称与文档名称相同)及其内容保存在本地。
  • 调用方法以初始化Agent。
  • 以满足我们目标所需的指令调用Agent。
  • Agent将利用定义的工具执行所有必要的操作。
  • 应用程序返回文档的摘要。

这标志着我们“Agentic Intelligent Document Summarizer”的开发完成。

代理的示例运行!

从维基百科获取关于Generative AI的示例内容,并根据该内容创建PDF文档,然后将该文档传递给应用程序;所有步骤如下所述。

注意:正在使用Postman工具与应用程序的API进行交互。

Image 16

对应用程序API的输入请求—作者提供的图片!

Image 17

代理执行步骤 1:利用AWS S3工具—作者提供的图片!

Image 18

代理执行步骤 2:利用AWS Textract工具—作者提供的图片!

Image 19

代理执行步骤 3:利用AWS Bedrock工具—作者提供的图片!

Image 20

代理执行步骤 4:AWS Bedrock工具的输出,最终总结—作者提供的图片!

Image 21

应用程序API的输出—作者提供的图片!

应用代码的完整链接

完整应用的 GitHub 仓库链接如下;您可以从那里获取代码进行快速测试,或者根据需要自定义以适应您的用例。

应用的即插即用容器镜像!

如果您想直接使用该应用程序或希望快速测试而无需考虑代码,则该应用程序的容器镜像链接如下所示。

https://hub.docker.com/r/harshitdawar/agentic-intelligent-document-summariser

要使用该镜像创建容器,您需要提供以下几个详细信息:

  • AWS Keys
  • AWS S3 Bucket

使用的命令:

docker run -dit -p <your system available port>:80 -e AWS_ACCESS_KEY="<your aws access key>" -e AWS_SECRET_ACCESS_KEY="<your aws secret access key>" -e S3_BUCKET="<S3 Bucket name to use>"  harshitdawar/agentic-intelligent-document-summariser:latest

一旦您的应用程序使用上述命令运行,您可以调用应用程序端点,端点将是 “<your application IP/DNS>:/”。然后将文档作为 “form-data,” 示例在上面的图像中展示,标题为:“输入请求到应用程序的 API—作者提供的图像!”

这篇精彩的博客到此结束。我希望我的文章解释了与主题相关的每一个细节,并提供了所有详细的概念和解释。非常感谢您花时间阅读我的博客并提升您的知识。

Related Posts

结合chatgpt-o3-mini与perplexity Deep Research的3步提示:提升论文写作质量的终极指南

结合chatgpt-o3-mini与perplexity Deep Research的3步提示:提升论文写作质量的终极指南

AI 研究报告和论文写作 合并两个系统指令以获得两个模型的最佳效果 Perplexity AI 的 Deep Research 工具提供专家级的研究报告,而 OpenAI 的 ChatGPT-o3-mini-high 擅长推理。我发现你可以将它们结合起来生成令人难以置信的论文,这些论文比任何一个模型单独撰写的都要好。你只需要将这个一次性提示复制到 **

阅读更多
让 Excel 过时的 10 种 Ai 工具:实现数据分析自动化,节省手工作业时间

让 Excel 过时的 10 种 Ai 工具:实现数据分析自动化,节省手工作业时间

Non members click here作为一名软件开发人员,多年来的一个发现总是让我感到惊讶,那就是人们还在 Excel

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

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

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

阅读更多
掌握Ai代理:解密Google革命性白皮书的10个关键问题解答

掌握Ai代理:解密Google革命性白皮书的10个关键问题解答

10 个常见问题解答 本文是我推出的一个名为“10 个常见问题解答”的新系列的一部分。在本系列中,我旨在通过回答关于该主题的十个最常见问题来分解复杂的概念。我的目标是使用简单的语言和相关的类比,使这些想法易于理解。 图片来自 [Solen Feyissa](https://unsplash.com/@solenfeyissa?utm_source=medium&utm_medi

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

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

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

阅读更多
揭开真相!深度探悉DeepSeek AI的十大误区,您被误导了吗?

揭开真相!深度探悉DeepSeek AI的十大误区,您被误导了吗?

在AI军备竞赛中分辨事实与虚构 DeepSeek AI真的是它所宣传的游戏规则改变者,还是仅仅聪明的营销和战略炒作?👀 虽然一些人将其视为AI效率的革命性飞跃,但另一些人则认为它的成功建立在借用(甚至窃取的)创新和可疑的做法之上。传言称,DeepSeek的首席执行官在疫情期间像囤积卫生纸一样囤积Nvidia芯片——这只是冰山一角。 从其声称的550万美元培训预算到使用Open

阅读更多
Type something to search...