标题:实验 10 - 创建具有代码解释能力的代理 权重:100
在这个实验中,我们提供了一个使用 Amazon Bedrock Agents 新的代码解释功能的分析代理的示例。
代码解释器是一个沙箱运行环境,代理可以在其中运行代码。
在这个示例中,我们将创建一个具有以下架构的测试代理:
代码解释通过预定义的操作组提供给代理。一旦创建了代理,我们可以通过 CreateAgentActionGroup
请求启用代码解释功能,并将 parentActionGroupSignature
参数设置为 AMAZON.CodeInterpreter
。
下面的代码显示了如何使用 boto3 SDK
中的 create_agent_action_group
函数配置代码解释功能。我们应该将 parentActionGroupSignature
设置为 AMAZON.CodeInterpreter
,并将 actionGroupState
状态设置为 ENABLED
。请注意,我们必须将 description
、apiSchema
和 actionGroupExecutor
字段留空。
当调用我们的代理时,我们应该提供一个包含查询文本、代理 ID、代理别名和会话 ID 的参数。其他参数允许启用跟踪、存储对话记忆、结束会话和维护会话状态。但是,代码解释不受任何参数的控制;具有 parentActionGroupSignature='AMAZON.CodeInterpreter'
的操作组使其可用于代理,并且在每次调用时,代理都会决定是否使用它。
要向代理传递文件,我们必须将它们添加到 sessionState
中。我们可以包括来自 S3 的文件或直接上传它们 - 将 sourceType
设置为 S3
或 BYTE_CONTENT
。
当发送来自 S3 的文件时,我们指定 S3 位置;当直接上传文件时,包含文件数据并设置 byteContent
中的 mediaType
。
发送文件时,useCase
指示代理文件是否应由代理直接使用(CHAT
)或用于代码解释环境(CODE_INTERPRETER
)。有关更多信息,请参见代码解释文档
。
代理在 JSON 响应流的 files
字段中返回文件。这里有一个简单的处理程序示例来保存返回的文件。
响应流包含大量其他信息的跟踪事件,包括代理的推理、模型调用的输入、代理生成并传递到代码解释环境的代码以及代码解释环境中代码执行的结果。请参阅 11-create-agent-with-code-interpreter.ipynb
笔记本以获取更详细的实现示例,包括更复杂的 process_response()
函数。
如果我们正在通过 workshop studio 参加研讨会,现在请转到 SageMaker Studio 中的 JupyterLab。
在 JupyterLab UI 中导航到 bedrock-agents-workshop/10-create-agent-with-code-interpreter/10-create-agent-with-code-interpreter.ipynb
这里有一个笔记本让我们尝试上述内容:创建具有代码解释器的代理 。