Étape 5 : appeler l’agent à partir du code Python - Amazon Bedrock

Étape 5 : appeler l’agent à partir du code Python

Au cours de cette étape, vous allez apprendre à interagir par programme avec votre agent à l’aide du kit AWS SDK for Python (Boto). L’exemple de code montre comment utiliser l’opération InvokeAgent, qui nécessite à la fois l’ID AGENT et l’ID ALIAS comme paramètres pour appeler votre agent. Le code indique comment envoyer une invite à votre agent, traiter la réponse et gérer à la fois les modes de réponse en streaming et hors streaming. Cela vous permet d’intégrer votre agent Bedrock dans vos propres applications Python.

Pour plus d’informations, consultez Invocation d’un agent depuis votre application.

Pour appeler l’agent à partir du code Python
  1. Obtenez l’identifiant de l’agent. Pour plus d’informations, consultez Affichage d’informations sur un agent.

  2. Obtenez l’ID de l’alias de l’agent. Pour plus d’informations, consultez Affichage d’informations sur les alias d’agents dans Amazon Bedrock.

  3. Exécutez le code suivant. Mettez à jour les éléments suivants :

    • AGENT_ID : par l’identifiant de votre agent.

    • ALIAS_ID : par l’identifiant de l’alias de votre agent.

    • REGION : par la région AWS dans laquelle vous avez créé votre agent, par exemple us-east-1.

    Pour diffuser la réponse de l’agent, modifiez la valeur de streamFinalResponse sur 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)})