
示例工程教程后端【免费下载链接】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),仅供参考