示例工程教程后端【免费下载链接】aws-doc-sdk-examplesWelcome to the AWS Code Examples Repository. This repo contains code examples used in the AWS documentation, AWS SDK Developer Guides, and more. For more information, see the Readme.md file below.项目地址https://gitcode.com/gh_mirrors/aw/aws-doc-sdk-examples点击查看免费下载本指南以aws-doc-sdk-examples仓库中 php/example_code/bedrock-agent-runtime/README.md 为骨架结合该目录下的服务封装、场景脚本与集成测试源码讲解如何用 AWS SDK for PHP v3 与 Amazon Bedrock Agent Runtime 交互构建客户端、提交提示词、消费流式响应并借助会话 ID 实现多轮连续对话。读完本文你将掌握从环境准备、模型访问授权、InvokeAgent调用到运行与测试的完整链路。Amazon Bedrock Agent Runtime 与 SDK for PHP 概览Amazon Bedrock Runtime 是一项全托管的服务可让开发者方便地使用来自第三方提供商和 Amazon 的基座模型Foundation Models。在此基础上Amazon Bedrock Agent Runtime 提供了与Bedrock Agent代理对话的运行时接口你无需手动拼装提示词、管理与知识库的检索流程而是把输入文本交给已配置好的 Agent由其完成推理与工具调用再返回最终回答。本仓库在 php/example_code/bedrock-agent-runtime 目录下给出了用 SDK for PHP 完成这一流程的最小实现核心文件包括BedrockAgentRuntimeService.php封装BedrockAgentRuntimeClient与InvokeAgent调用的服务类GettingStartedWithBedrockRuntime.php演示与 Agent 进行多轮对话的入门场景注意该文件在仓库中同时承担 “Getting Started” 场景脚本的角色类名为GettingStartedWithBedrockAgentRuntimeRunner.php通过命令行直接运行场景的入口tests/BedrockAgentRuntimeTests.php覆盖客户端构造与invokeAgent的集成测试。环境与前置条件要运行这些示例你需要先满足 README 中列出的条件PHP 8.2 或更高版本仓库 php/README.md 中的通用要求为 8.1本目录 README 明确要求 8.2Composer用于依赖管理一个AWS 账号并按 AWS Tools and SDKs Shared Configuration and Credentials Reference Guide 的说明配置好默认凭据与默认区域。⚠ 在使用任何模型之前必须先申请模型访问权限。如果在请求访问权限之前就尝试通过 API 或控制台使用模型你会收到错误消息。更多细节参见 Amazon Bedrock 用户指南中的 Model access 章节。此外运行本示例前需要准备一个已部署的Bedrock Agent以及对应的Agent ID与Agent Alias ID——这两个值将作为调用参数传入服务类具体见下文。代码示例结构单一动作InvokeAgent本目录展示的核心动作是通过 BedrockAgentRuntimeService.php 中的invokeAgent()方法调用InvokeAgentAPI对应 PHP SDK 客户端方法$client-invokeAgent($payload)。该方法位于该文件第 3767 行public function invokeAgent(string $prompt, string $sessionId): string { $payload [ agentId $this-agentId, agentAliasId $this-agentAliasId, sessionId $sessionId, enableTrace false, inputText $prompt ]; $completion ; try { $response $this-bedrockAgentRuntimeClient-invokeAgent($payload); foreach ($response[completion] as $chunkEvent) { $chunk $chunkEvent[chunk]; $decodedResponse utf8_decode($chunk[bytes]); $completion . $decodedResponse; } return $completion; } catch (AwsException $e) { throw new Exception(Bedrock Agent invocation failed: . $e-getMessage()); } }从源码结构看InvokeAgent的请求体核心参数及作用如下参数类型作用说明agentIdstring要调用的 Bedrock Agent 的唯一标识由服务类构造函数注入agentAliasIdstringAgent 版本别名的标识例如TSTALIASID指向草稿版本同样由构造函数注入sessionIdstring会话标识用于维持多轮对话的上下文详见下文场景部分enableTracebool是否返回 Agent 推理过程的 trace 信息示例中置为false以精简输出inputTextstring发送给 Agent 的提示词文本需要注意的是仓库源码注释中明确说明Bedrock Agents Runtime API 还支持更多参数例如过滤知识库完整参数列表可参考 PHP SDK 的InvokeAgent文档。InvokeAgent的响应是流式事件序列。响应体中的completion字段是一个事件流每个事件包含一个chunk文本内容存放在chunk[bytes]中示例代码通过utf8_decode()解码后逐段拼接成完整回答。源码将该逻辑封装在 BedrockAgentRuntimeService.php。服务类与客户端的构建构造函数在 BedrockAgentRuntimeService.php 中展示了两种初始化方式public function __construct( string $agentId, string $agentAliasId, BedrockAgentRuntimeClient $client null ) { if ($client) { $this-bedrockAgentRuntimeClient $client; } else { $this-bedrockAgentRuntimeClient new BedrockAgentRuntimeClient([ region us-east-1, profile default ]); } $this-agentId $agentId; $this-agentAliasId $agentAliasId; }默认情况下客户端以us-east-1区域和default配置文件创建也支持通过第三个参数注入自定义客户端例如指定其他区域这一设计在集成测试中得到了验证便于在测试中替换客户端实现。多轮会话场景与 Agent 连续对话README 中列出的场景 Invoke multiple foundation models on Amazon Bedrock 在目录中的落地实现是 GettingStartedWithBedrockRuntime.php其用途是演示“如何与 Agent 聊天”chat with an agent。场景脚本的runExample()方法完整展示了会话 ID 如何维系多轮上下文$agent_id YOUR_AGENT_ID; $agent_alias_id YOUR_AGENT_ALIAS_ID; $sessionId uniqid(); $bedrockAgentRuntimeService new BedrockAgentRuntimeService($agent_id, $agent_alias_id); $prompt Hello, I am Mateo. Who are you?; echo \nSession ID: . $sessionId; echo \nInput Text: . $prompt; echo \n\nAgent:; echo $bedrockAgentRuntimeService-invokeAgent($prompt, $sessionId); $prompt Do you remember my name?; echo \nSession ID: . $sessionId; echo \nInput Text: . $prompt; echo \n\nAgent:; echo $bedrockAgentRuntimeService-invokeAgent($prompt, $sessionId);这段脚本揭示了两个实战要点会话 ID 的生成使用 PHP 的uniqid()生成会话标识。由于两次invokeAgent调用复用同一个$sessionIdAgent 能够记住第一轮对话中 Mateo 的名字从而在第二轮回答 Do you remember my name? 时给出基于上下文的回应——这正是 Bedrock Agent 区别于无状态模型调用的关键能力。运行时替换占位符运行前必须把YOUR_AGENT_ID与YOUR_AGENT_ALIAS_ID替换为你在 Bedrock 控制台创建的 Agent 及其别名 ID。仓库还提供了 Runner.php 作为统一入口它引入vendor/autoload.php实例化GettingStartedWithBedrockAgentRuntime并调用runExample()任何异常都会以Error: ({code}) - {message}的格式打印出来。运行示例从 php/README.md 的说明可知这类 PHP 示例的通用运行方式如下克隆完整仓库示例依赖仓库内的支撑文件不能只下载单个文件进入bedrock-agent-runtime目录并安装依赖composer install依赖定义在 composer.json 中核心依赖为aws/aws-sdk-php ^3.324.10与guzzlehttp/guzzle ^7.9.2同时通过 PSR-4 自动加载将BedrockAgentRuntime\命名空间映射到本目录、AwsUtilities\映射到../aws_utilities/因此必须保持仓库目录结构完整。从包含启动代码的目录内运行场景php Runner.php默认情况下示例通过 AWS 默认凭据提供链包括共享凭据与配置文件中的defaultprofile获取认证信息。注意运行示例可能会在你的 AWS 账号产生费用。运行集成测试README 中给出了本目录的测试运行方式。从aws-doc-sdk-examples/php/example_code/bedrock-runtime即本示例所在目录执行composer install ../vendor/bin/phpunit tests/BedrockAgentRuntimeTests.php⚠ 运行测试同样可能产生 AWS 费用因为其中的 invoke 测试会对真实的 Bedrock Agent 发起调用。BedrockAgentRuntimeTests.php 中包含了三个集成测试标注group integ从源码可以清楚地看到测试的覆盖范围test_default_constructor_creates_client验证默认构造函数会创建客户端且区域为us-east-1test_constructor_uses_injected_client验证注入自定义客户端如us-west-2后服务类会正确使用该实例test_agent_can_be_invoked使用uniqid()生成会话 ID 调用invokeAgent(A test prompt, $sessionId)并断言返回结果非空。测试代码中的 Agent ID / Alias ID 使用FAKE_AGENT_ID、FAKE_AGENT_ALIAS_ID占位实际运行时同样需要替换为真实值。重要注意事项根据 README 的 Important 部分运行与测试本示例前请留意费用运行这些代码可能产生 AWS 费用详情见 AWS Pricing 与 Free Tier最低权限建议为代码授予最小权限least privilege仅授予完成任务所需的最低权限参见 IAM 最佳实践中的 Grant least privilege区域支持这些代码并未在每一个 AWS 区域经过测试使用前请确认目标模型与 Agent 服务在你的区域可用AWS Regional Services 页面可查询。附加资源与许可Amazon Bedrock Runtime 用户指南Amazon Bedrock Runtime API 参考SDK for PHP 的 Amazon Bedrock Runtime 客户端参考本示例代码以 Apache-2.0 许可发布见仓库根目录 LICENSE版权归 Amazon.com, Inc. 或其关联公司所有。阅读 CONTRIBUTING.md 可了解如何参与贡献通用前置条件、测试过滤方式phpunit --testsuite、--group integ与 Docker 镜像等更多说明可参阅 php/README.md。赞分享示例工程教程后端【免费下载链接】aws-doc-sdk-examplesWelcome to the AWS Code Examples Repository. This repo contains code examples used in the AWS documentation, AWS SDK Developer Guides, and more. For more information, see the Readme.md file below.项目地址https://gitcode.com/gh_mirrors/aw/aws-doc-sdk-examples点击查看免费下载相关推荐aws-doc-sdk-examples用 AWS SDK for Go V2 管理 Amazon Aurora 集群的完整实战指南aws doc sdk examples用 AWS SDK for Go V2 管理 Amazon Aurora 集群的完整实战指南 本文基于 gov2/au示例工程教程后端使用AWS SDK for Python调用Amazon Bedrock Runtime服务的完整指南使用AWS SDK for Python调用Amazon Bedrock Runtime服务的完整指南 Amazon Bedrock是一项完全托管的服务它通过示例工程教程后端使用 AWS SDK for .NET 调用 Amazon Rekognition图片与人脸分析完整实战指南基于 aws-doc-sdk-examples使用 AWS SDK for .NET 调用 Amazon Rekognition图片与人脸分析完整实战指南基于 aws doc sdk examples示例工程教程后端上一篇基于FastEmbed的云原生向量搜索架构设计与性能优化下一篇FastRTC用户体验研究案例优化实时通信界面的实例创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
复现作者的测试:Claude-BugHunter的CVE验证实验室与Playwright浏览器自动化实战指南 复现作者的测试:Claude-BugHunter的CVE验证实验室与Playwright浏览器自动化实战指南 【免费下载链接】Claude-BugHunter A Claude Code skill bundle for bug hunting and external red-team work - 82 skills, 15 slash commands, 681 disclosed-report patterns c… · 2026/9/26 2:26:24
C++ const 相关的面试八股 1 const 的本质与承诺
const 关键字的核心是做出一个“承诺”:承诺其所修饰的对象(变量、指针、引用、成员函数等)的“不变性”。它告诉编译器和代码的阅读者:“这个值/这个对象的状态,在这里不会被改变。”
编译器会强… · 2026/9/26 2:26:24
百度地图微信小程序JSAPI接入实战指南 简介:本资源是面向微信小程序开发者的技术支持包,专为在小程序中集成百度地图服务而设计,适用于具备基础前端开发能力的工程师,解决地图展示、定位、路径规划、地点检索等核心地理功能嵌入难题。压缩包共35个文件,含10… · 2026/9/26 2:26:18
88万篇文本实测:AI改稿同质化与保住人味的实操方法 1. 88万篇文本背后,我看到的不是效率革命第一次看到“88万篇文本实测”这个数字的时候,我正坐在电脑前改一份拖了三天的稿子。说实话,第一反应是羡慕——88万篇,哪怕每篇只花十分钟,那也是十几万小时的产出。但紧接着往… · 2026/9/26 18:11:41
shp转kml带名称标注:ArcGIS、QGIS、GDAL与Python批量实现 简介:本资源面向GIS数据处理人员与测绘工程从业者,提供一套基于FME的SHP转KML完整工具方案,重点解决矢量数据转换后地物名称无法同步标注的问题。包内共11个文件,以FME工作流文件(.fme、.fmw)为核心&#x… · 2026/9/26 18:11:41
读懂ISG Index:亚太科技服务市场回落信号与应对策略 要说最近行业里讨论度最高的一份报告,ISG Index™ 第四季度数据绝对排得上号。圈子里不少老朋友都在转这份报告,核心信号就一句话:亚太地区科技服务市场明显回落。这个“回落”不是某个小领域的小波动,而是整个亚太市场在第四季度… · 2026/9/26 18:11:41
环形缓冲区实现无锁队列的核心原理与工程实践 1. 为什么高性能系统里,大家不约而同地选环形缓冲区做无锁队列?我第一次在生产环境里撞上环形缓冲区,是在给一个高频交易中间件做压测时。当时吞吐量卡在每秒12万笔订单,CPU利用率却只用了不到40%,线程调度开销却高得反… · 2026/9/26 18:11:41
原生JavaScript前端能力单元:防抖节流、表单校验与本地存储封装 简介:这是一套面向Web前端开发者与全栈学习者的综合性技术实践源码集合,聚焦JavaScript核心生态及现代前端工程化能力培养,适用于从基础交互开发到复杂单页应用构建的多种实战场景。资源共2000个文件,主体为1747个JavaScript文件&… · 2026/9/26 18:11:34
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍 简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践 一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46