承接上篇,亚马逊云科技 AI Agent 凭什么能擦出火花?!
我们接着来完成这个实战内容。
以下是基于Amazon Bedrock Agent 的两个服务示例的完整流程与详细内容,包含技术架构、实现细节、交互逻辑及扩展能力。
另外,再跟大家偷偷说一下,Free Tier 2.0 免费套餐有新升级,
Free Tier 2.0 vs Legacy Free Tier(可根据自己所需来进行选择)☞ 传送门
产品信息查询助手
通过自然语言交互,帮助用户快速获取电商平台的产品全维度信息(价格、库存、规格、评价等),支持多条件组合查询(如“黑色+42码+运动鞋”),并自动整合多源数据生成结构化回答。
1. 系统架构设计
| 组件 | 作用 | 技术选型(亚马逊云科技生态) |
|---|---|---|
| 数据源 | 存储产品全量信息 | DynamoDB(产品主表、评价表) |
| 接口层 | 暴露数据查询能力 | API Gateway + Lambda |
| 智能交互层 | 意图识别、工具调用、响应生成 | Amazon Bedrock Agent(基于Claude/LLaMA) |
| 监控与日志 | 跟踪请求链路、错误排查 | Amazon CloudWatch |
2. 数据源设计(DynamoDB)
- 产品主表(ProductTable) 主键:
product_id(字符串)字段:name:产品名称(如“专业跑步运动鞋”)category:品类(如“鞋靴>运动鞋”)attributes:规格属性(JSON,如{"color":"黑色","size":"42","material":"网面"})price:当前价格(数值,如899.00)stock:库存数量(数值,如32)update_time:信息更新时间(时间戳)review_id(字符串)字段:product_id:关联产品IDrating:评分(1-5)content:评价内容create_time:评价时间user_id:评价用户ID3. API接口设计
通过API Gateway定义3个核心接口,由Amazon Lambda实现业务逻辑:
| 接口名称 | 作用 | 请求参数 | 返回示例 |
|---|---|---|---|
/product/query | 按条件查询产品基本信息 | filters(JSON,如{"color":"黑色","category":"运动鞋"}) | [{"product_id":"P123","name":"黑色专业跑鞋","price":899,"stock":32,...}] |
/product/reviews | 查询产品评价 | product_id、limit(默认10) | {"avg_rating":4.8,"count":236,"recent_reviews":["舒适度高...","尺码标准..."]} |
/product/spec | 查询详细规格 | product_id | {"weight":"350g","warranty":"1年","material":"透气网面+橡胶底"} |
4. Amazon Bedrock Agent配置
- 工具定义:在Agent中注册上述3个API,配置参数映射规则(如将用户输入的“黑色”映射到
filters.color)。意图训练:提供样本语料训练Agent识别查询意图,示例:- 基础查询:“XX产品多少钱?”→ 调用
/product/query多条件查询:“黑色42码运动鞋有货吗?”→ 调用/product/query(带color/size/category过滤)评价查询:“这个商品的用户评价怎么样?”→ 先调用/product/query获取product_id,再调用/product/reviews5. 完整交互流程
用户输入:“帮我看看黑色42码运动鞋的库存、价格和最近评价”
- 意图解析:Agent识别到用户需要“库存+价格+评价”,且过滤条件为“color=黑色,size=42,category=运动鞋”。工具调用:
- 第一步:调用
/product/query,传入filters={"color":"黑色","size":"42","category":"运动鞋"},返回匹配的产品列表(假设唯一匹配product_id=P123)。第二步:提取P123,调用/product/reviews?product_id=P123&limit=2,获取平均评分4.8及两条最新评价。6. 错误处理
- 无匹配产品:“未找到符合‘黑色42码运动鞋’的商品,建议尝试调整颜色或尺码(如‘白色43码运动鞋’)。”库存不足:“黑色42码专业跑鞋当前库存仅剩2件,建议尽快下单。”API调用失败:“暂时无法查询产品信息,请稍后重试(错误码:503)。”
订单状态跟踪器
支持用户通过订单号或模糊描述(如“上周买的衣服”)查询订单全链路状态,自动关联物流信息,提供实时进度与预计送达时间。
1. 系统架构设计
| 组件 | 作用 | 技术选型(亚马逊云科技生态) |
|---|---|---|
| 订单数据源 | 存储订单基础信息 | Aurora MySQL(订单表) |
| 物流数据源 | 对接第三方物流系统 | 物流API(如顺丰/京东物流开放平台) |
| 接口层 | 订单/物流查询接口 | API Gateway + Lambda |
| 智能交互层 | 订单号提取、模糊查询解析、多步调用 | Amazon Bedrock Agent(基于Claude 3) |
2. 核心数据模型
- **订单表(OrderTable)**主键:
order_id(字符串,格式如“ORD20231001XXXX”)字段:user_id:用户ID(关联用户账户)status:订单状态(枚举:pending/paid/shipped/delivered/cancelled)items:商品列表(JSON,如[{"product_id":"P123","name":"跑鞋","quantity":1}])create_time:下单时间ship_time:发货时间(状态为shipped时非空)logistics_company:快递公司(如“顺丰”)tracking_number:运单号(如“SF67890123456”)user_id + create_time(排序键)作用:支持模糊查询(如“上周的订单”)时快速定位用户近期订单。3. API接口设计
| 接口名称 | 作用 | 请求参数 | 返回示例 |
|---|---|---|---|
/order/query | 查询订单基础信息 | order_id 或 user_id+time_range | {"order_id":"ORD202310011234","status":"shipped","ship_time":"2023-10-02 10:30",...} |
/logistics/track | 查询物流详情 | company、tracking_number | {"status":"配送中","current_location":"上海市浦东新区","estimated_delivery":"2023-10-03 18:00"} |
4. Amzon Bedrock Agent配置
- 工具定义:注册
/order/query和/logistics/track,配置条件调用规则(如订单状态为shipped时自动调用物流接口)。意图与实体识别:- 订单号识别:训练Agent识别平台订单号格式(如“ORD+日期+4位数字”)。模糊查询解析:将“上周买的衣服”解析为
user_id=当前用户+time_range=近7天+items.name包含“衣服”。5. 完整交互流程
用户输入:“订单号ORD202310011234的状态是什么?”
- 意图解析与实体提取:Agent提取
order_id=ORD202310011234,识别意图为“查询订单状态”。订单信息查询:调用/order/query?order_id=ORD202310011234,返回:{"status":"shipped","logistics_company":"顺丰","tracking_number":"SF67890123456","ship_time":"2023-10-02 10:30"}物流信息查询(条件触发):因订单状态为shipped,自动调用/logistics/track?company=顺丰&tracking_number=SF67890123456,返回:{"status":"配送中","current_location":"上海市浦东新区","estimated_delivery":"2023-10-03 18:00"}响应生成:整合信息后返回:“订单ORD202310011234已发货(发货时间:10月2日10:30),由顺丰快递配送(运单号SF67890123456)。当前状态:配送中(位于上海市浦东新区),预计10月3日18:00前送达。”6. 扩展场景
- 异常通知:若物流信息显示“派送失败”,自动附加:“如需重新派送,可回复‘安排重派’”。跨账户查询:支持用户查询他人代付订单(需验证权限:“请提供下单人手机号后4位以确认权限”)。
总结
两个示例均体现了Amazon Bedrock Agent的核心价值:将自然语言转化为结构化工具调用,通过整合多源数据简化用户交互。实际落地时可进一步扩展:
- 产品助手:结合用户历史浏览数据增加个性化推荐(如“你可能还喜欢同款蓝色跑鞋”);订单跟踪器:对接售后系统,支持“申请退款”“修改收货地址”等操作触发。
通过亚马逊云科技的 Serverless 架构(Lambda+API Gateway)和Bedrock的低代码配置,开发者可快速实现从“功能设计”到“生产部署”的全流程。
以上就是本文的全部内容啦。最后提醒一下各位工友,如果后续不再使用相关服务,别忘了在控制台关闭,避免超出免费额度产生费用~
