本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
步骤 5:通过Python代码呼叫代理
在本步骤中,您将学习如何使用以编程方式与您的代理进行交互。 AWS SDK for Python (Boto)示例代码演示了如何使用该InvokeAgent操作,该操作要求同时使用代理 ID 和 ALIAS ID 作为参数才能呼叫您的代理。该代码显示如何向代理发送提示、处理响应以及处理流式和非流式响应模式。这允许你将 Bedrock 代理集成到你自己的 Python 应用程序中。
有关更多信息,请参阅 从您的应用程序中调用代理。
通过Python代码呼叫代理
-
获取代理的 ID。有关更多信息,请参阅 查看关于代理的信息。
-
获取代理别名的 ID。有关更多信息,请参阅 在 Amazon Bedrock 中查看有关代理别名的信息。
-
运行以下代码。更新以下内容:
AGENT_ID — 发送到您的代理的 ID。
别名_ID-指向您的代理的别名 ID。
区域-指您在其中创建代理的 AWS 区域,例如
us-east-1
。
要流式传输来自代理的响应,请将的值更改
streamFinalResponse
为True
。import boto3 import logging from botocore.exceptions import ClientError logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) def invoke_agent(client, agent_id, alias_id, prompt, session_id): response = client.invoke_agent( agentId=agent_id, agentAliasId=alias_id, enableTrace=True, sessionId = session_id, inputText=prompt, streamingConfigurations = { "applyGuardrailInterval" : 20, "streamFinalResponse" : False } ) completion = "" for event in response.get("completion"): #Collect agent output. if 'chunk' in event: chunk = event["chunk"] completion += chunk["bytes"].decode() # Log trace output. if 'trace' in event: trace_event = event.get("trace") trace = trace_event['trace'] for key, value in trace.items(): logging.info("%s: %s",key,value) print(f"Agent response: {completion}") if __name__ == "__main__": client=boto3.client( service_name="bedrock-agent-runtime", region_name="
REGION
") agent_id = "AGENT_ID
" alias_id = "ALIAS_ID
" session_id = "123456" prompt = "What's the current time?" try: invoke_agent(client, agent_id, alias_id, prompt, session_id) except ClientError as e: print(f"Client error: {str(e)}") logger.error("Client error: %s", {str(e)})