通过亚马逊云科技Bedrock打造自定义AI智能体Agent(上)

大家对于智能体代理Agent一定已经非常熟悉,自主代理(Autonomous Agents) 目前在AI行业极其热门并具有巨大的潜力,能够显著提升开发者日常的工作效率、自动化日常琐碎、重复性任务,并生成全新的内容。Agent可以理解用户的请求,并通过后端集成的工具来满足用户们这些需求,而无需手动设置具体的执行步骤。

在本篇文章中,小李哥会带大家手把手了解如何使用Amazon Bedrock和其标准化Converse API轻松创建一个自定义AI智能体。下面我将通过利用Streamlit框架开发的应用,在浏览器中与后端代理进行交互分析自媒体文章里的情感倾向。我为代理配备了一个网页检索服务用于获取网页内容和总结网页信息,最后将以上信息总结分析社交媒体帖子的情感倾向。除了本文介绍的场景外,智能体也可以应用于来许多实用的应用场景。

解决方案概览

本次介绍的云端解决方案由几个关键组件组成,我们将通过这些组件搭建代理,关键组件如下:

  • agent.py - 运行代理的核心逻辑
  • tools.py - 定义代理可使用的工具
  • utils.py - 代理辅助函数
  • streamlit_app.py - 与代理交互的前端UI

方案架构图如下:

AI智能体核心运行逻辑解析

我们方案中的agent.py文件包含代理运行的核心逻辑,下面是工作流程图和逐步解析:

1. 用户输入一条消息,该消息会按照Converse API的格式转换为为用户消息(User Message)。

2. 格式化后的用户消息被添加到消息列表(Message List)中。

3. 代理通过Converse API调用Bedrock上的大语言模型(LLM),并传递第二步中包括用户输入的消息列表,以及代理可用的工具类型。

4. Bedrock上的大语言模型会返回助手消息(Assistant Message),其中可能包含文本、工具调用记录以及会话停止标识(stopReason)。

6.代理检查stopReason,它可能是:

tool_use:表示LLM已决定调用某个工具;

end_turn:表示LLM已完成工具调用,并结束当前的用户交互会话;

7. 如果stopReason是tool_use,则会话未结束,代理接下来会继续调用其集成的工具完成任务。

8. 继续执行被调用的工具后返回调用结果(toolResult)。

9. toolResult被封装为用户消息,并追加到消息列表末尾。

10. 代理再次开启新一轮调用Converse API,并重复执行步骤4至9,直到接收到stopReason的值为end_turn。

11. 当stopReason为end_turn时,裁表示该代理需要执行的全部任务已完成,代理的任务周期结束。

12. 最终代理调用AI模型的的响应会作为回复在用户界面返回给用户。用户此时可以继续输入新的消息,该流程将从步骤1重新开始。

使用场景测试展示

下图展示了该Agent在Streamlit框架开发的前端UI界面中的使用案例。我们输入提示词,请求代理对提供的链接进行总结。我们Agent中使用AI模型会自动决策需要使用后端集成工具,并首先调用 RetrieveUrlTool工具来获取网页内容。在该工具检索网页内容后,代理使用html2text工具预处理了提取内容,最后将网页转换为Markdown格式,作为toolResult结果返回给代理。代理处理了 toolResult结果生成最终响应返回给用户,UI中展示响应则为包含网页内容的总结摘要。

以上就是亚马逊云科技上通过自定义智能体抓取网页结果、进行格式转换,并在streamlit框架的用户界面中展示网页提取内容的全部内容,在本系列的下篇中,小李哥将分享构建该自定义智能体的全部代码和实操步骤。欢迎大家关注小李哥和本系列的下篇,不要错过未来更多国际前沿的AWS云开发/云架构方案。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/960681.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

汇编的使用总结

一、汇编的组成 1、汇编指令(指令集) 数据处理指令: 数据搬移指令 数据移位指令 位运算指令 算术运算指令 比较指令 跳转指令 内存读写指令 状态寄存器传送指令 异常产生指令等 2、伪指令 不是汇编指令,但是可以起到指令的作用,伪…

S4 HANA定义税码(FTXP)

本文主要介绍在S4 HANA OP中S4 HANA定义税码相关设置。具体请参照如下内容: 定义税码(FTXP) 以上界面是根据国家的“定价过程”确定的。蓝色的行项目表示目前已经激活的行项目。 不可抵扣进项税一般用于采购业务中,因此用在进项税码中。 消费税和营业…

Git进阶笔记系列(01)Git核心架构原理 | 常用命令实战集合

读书笔记:卓越强迫症强大恐惧症,在亲子家庭、职场关系里尤其是纵向关系模型里,这两种状态很容易无缝衔接。尤其父母对子女、领导对下属,都有望子成龙、强将无弱兵的期望,然而在你的面前,他们才是永远强大的…

多级缓存(亿级并发解决方案)

多级缓存(亿级流量(并发)的缓存方案) 传统缓存的问题 传统缓存是请求到达tomcat后,先查询redis,如果未命中则查询数据库,问题如下: (1)请求要经过tomcat处…

场景设计学习-积分系统

场景设计-积分系统 1.概念和规则 积分:用户在网站的各种交互行为都可以产生积分,积分值与行为类型有关天梯榜:按照每个用户的总积分排序得到的排行榜,称为天梯榜。排名靠前的有奖励。天梯榜每个自然月为一个赛季,月初…

ML基础3-sklearn中的1个简单的分类器例子

Scikit-learn(通常缩写为sklearn)是一个流行的Python机器学习库,用于数据挖掘和数据分析任务。它建立在NumPy、SciPy和matplotlib等科学计算/可视化库的基础上,提供了丰富的工具和算法,用于处理各种机器学习问题&#…

The Simulation技术浅析(二):模型技术

一、物理模型(Physical Models) 1. 概述 物理模型基于物理定律和原理,通过模拟现实世界中物理系统的行为和相互作用来构建模型。物理模型通常用于工程、物理和化学等领域,用于预测系统在不同条件下的表现。 2. 关键技术 力学定律:例如牛顿运动定律,用于模拟物体的运动…

006 mybatis关联查询(一对一、一对多)

文章目录 一对一查询SQL语句方法一:resultType方法二:resultMap创建扩展po类Mapper映射文件Mapper接口测试代码小结 一对多查询SQL语句修改po类Mapper映射文件Mapper接口测试代码 注意:因为一个订单信息只会是一个人下的订单,所以…

linux asio网络编程理论及实现

最近在B站看了恋恋风辰大佬的asio网络编程,质量非常高。在本章中将对ASIO异步网络编程的整体及一些实现细节进行完整的梳理,用于复习与分享。大佬的博客:恋恋风辰官方博客 Preactor/Reactor模式 在网络编程中,通常根据事件处理的触…

渗透测试之WAF规则触发绕过规则之规则库绕过方式

目录 Waf触发规则的绕过 特殊字符替换空格 实例 特殊字符拼接绕过waf Mysql 内置得方法 注释包含关键字 实例 Waf触发规则的绕过 特殊字符替换空格 用一些特殊字符代替空格,比如在mysql中%0a是换行,可以代替空格 这个方法也可以部分绕过最新版本的…

环境搭建--vscode

vscode官网下载合适版本 安装vscode插件 安装 MinGW 配置环境变量 把安装目录D:\mingw64 配置在用户的环境变量path里即可 选择用户环境变量path 点确定保存后开启cmd输入g,如提示no input files 则说明Mingw64 安装成功,如果提示g 不是内…

橙河网络:市场调研都会用到哪些工具?

一般市场调研会用到多种工具,以获取全面、准确的市场信息。以下是一些常用的市场调研工具: 一、在线调查平台 问卷星:提供在线问卷编制、分发和数据分析功能,适用于大规模的市场调研。 SurveyMonkey:可用于市场调查…

996引擎 - NPC-添加NPC引擎自带形象

996引擎 - NPC-添加NPC引擎自带形象 截图参考添加NPC参考资料截图参考 添加NPC 编辑NPC表:Envir\DATA\cfg_npclist.xls 1.1. 需要临时隐藏NPC时可以在id前加 // 1.2. 如果NPC朝向不对,可以调整dir 列。(按8方向,上是0顺时针数。我这里给的4) 1.3. 形象代码:NPC代码、怪物…

登录Ubuntu论坛报错:Your username cannot be shorter than 1000 characters.

网址 Ubuntu Forums 报错 The following errors occurred during your registration:Your username cannot be shorter than 1000 characters. 截图

【Linux基础指令】第三期

近期更新的基础指令链接: 【Linux基础指令】第一期-CSDN博客 【Linux基础指令】第二期-CSDN博客 本期博客的主题依旧是 "基础指令" ;话不多说,正文开始。 一、Linux的指令 1.zip / unzip 功能:打包压缩 命令格式&…

深入浅出 AB 压测工具:从入门到精通

AB(ApacheBench)是一款轻量级、易用且功能强大的 HTTP 服务器性能测试工具。它能够模拟多个并发用户对服务器发起请求,并统计服务器的响应时间、吞吐量等性能指标,帮助开发者评估服务器性能、发现性能瓶颈。本文将深入探讨 AB 压测…

如何将电脑桌面默认的C盘设置到D盘?详细操作步骤!

将电脑桌面默认的C盘设置到D盘的详细操作步骤! 本博文介绍如何将电脑桌面(默认为C盘)设置在D盘下。 首先,在D盘建立文件夹Desktop,完整的路径为D:\Desktop。winR,输入Regedit命令。(或者单击【…

网络工程师 (3)指令系统基础

一、寻址方式 (一)指令寻址 顺序寻址:通过程序计数器(PC)加1,自动形成下一条指令的地址。这是计算机中最基本、最常用的寻址方式。 跳跃寻址:通过转移类指令直接或间接给出下一条指令的地址。跳…

Games104——高级动画技术:动画树、IK和表情动画

这里写目录标题 动画混合数学混合:线性插值混合空间Blend Space1D Blend Space2D Blend SpaceSkeleton Masked Blending骨骼遮罩混合Addictive Blending 动画状态机Animation State Machine(ASM)动画状态机定义节点:分为clip和ble…

【Rust自学】15.6. RefCell与内部可变性:“摆脱”安全性限制

题外话,这篇文章一共4050字,是截止到目前为止最长的文章,如果你能坚持读完并理解,那真的很强! 喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以…