Schritt 5: Aufrufen des Agenten aus dem Python-Code
In diesem Schritt erfahren Sie, wie Sie mithilfe des AWS SDK for Python (Boto) programmgesteuert mit Ihrem Agenten interagieren. Der Beispielcode zeigt, wie Sie die InvokeAgent-Operation verwenden, die sowohl die AGENT ID als auch die ALIAS ID als Parameter benötigt, um Ihren Agenten aufzurufen. Der Code zeigt, wie Sie einen Prompt an Ihren Agenten senden, die Antwort verarbeiten und sowohl Streaming- als auch Nicht-Streaming-Antwortmodi handhaben. Auf diese Weise können Sie Ihren Bedrock-Agenten in Ihre eigenen Python-Anwendungen integrieren.
Weitere Informationen finden Sie unter Aufrufen eines Agenten über Ihre Anwendung.
So rufen Sie den Agenten aus dem Python-Code auf
-
Rufen Sie die ID für den Agenten ab. Weitere Informationen finden Sie unter Anzeigen von Informationen über einen Agenten.
-
Rufen Sie die ID für den Agentenalias ab. Weitere Informationen finden Sie unter Anzeigen von Informationen zu Aliasen von Agenten in Amazon Bedrock.
-
Führen Sie folgenden Code aus. Aktualisieren Sie Folgendes:
AGENT_ID – auf die ID Ihres Agenten
ALIAS_ID – auf die Alias-ID Ihres Agenten
REGION – auf die AWS-Region, in der Sie Ihren Agenten erstellt haben, z. B.
us-east-1
Wenn Sie die Antwort des Agenten streamen möchten, ändern Sie den Wert von
streamFinalResponseinTrue.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)})