Passaggio 5: chiama l'agente dal Python codice - Amazon Bedrock

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Passaggio 5: chiama l'agente dal Python codice

In questo passaggio, imparerai come interagire a livello di codice con il tuo agente utilizzando il. AWS SDK for Python (Boto) Il codice di esempio mostra come utilizzare l'InvokeAgentoperazione, che richiede sia l'AGENT ID che l'ID ALIAS come parametri per chiamare l'agente. Il codice mostra come inviare un prompt all'agente, elaborare la risposta e gestire le modalità di risposta in streaming e non in streaming. Ciò consente di integrare il proprio agente Bedrock nelle proprie applicazioni Python.

Per ulteriori informazioni, consulta Richiama un agente dalla tua applicazione.

Per chiamare l'agente dal codice Python
  1. Ottieni l'ID dell'agente. Per ulteriori informazioni, consulta Visualizzare informazioni su un agente.

  2. Ottieni l'ID per l'alias dell'agente. Per ulteriori informazioni, consulta Visualizza informazioni sugli alias degli agenti in Amazon Bedrock.

  3. Eseguire il seguente codice. Aggiorna quanto segue:

    • AGENT_ID: all'ID del tuo agente.

    • ALIAS_ID — all'ID alias del tuo agente.

    • REGIONE: nella AWS regione in cui hai creato il tuo agente, ad esempio. us-east-1

    Per trasmettere in streaming la risposta dell'agente, modifica il valore di streamFinalResponse toTrue.

    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)})