Fase 5: chiamare l’agente dal codice Python - 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à.

Fase 5: chiamare l’agente dal codice Python

In questa fase viene descritto come interagire a livello di codice con l’agente utilizzando AWS SDK per Python (Boto). Il codice di esempio dimostra come utilizzare l’operazione InvokeAgent, che richiede sia l’ID AGENTE sia 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 di Bedrock nelle proprie applicazioni Python.

Per ulteriori informazioni, consulta Invocazione di un agente dalla propria applicazione.

Come chiamare l’agente dal codice Python
  1. Acquisire l’ID dell’agente. Per ulteriori informazioni, consulta Visualizzazione di informazioni su un agente.

  2. Acquisire l’ID dell’alias dell’agente. Per ulteriori informazioni, consulta Visualizzazione di informazioni sugli alias degli agenti in Amazon Bedrock.

  3. Eseguire il seguente codice. Imposta gli elementi seguenti sui valori indicati:

    • AGENT_ID: ID dell’agente.

    • ALIAS_ID: ID dell’alias dell’agente.

    • REGION: Regione AWS in cui hai creato l’agente, ad esempio us-east-1.

    Per trasmettere in streaming la risposta dell’agente, modifica il valore di streamFinalResponse in 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)})