As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Invocar um agente por meio de sua aplicação
Use o agente em uma aplicação fazendo uma solicitação InvokeAgent com um endpoint de runtime do recurso Agentes para Amazon Bedrock.
Por padrão, a resposta de InvokeAgent inclui um fragmento que contém a resposta completa do agente, que pode levar algum tempo para ser concluída. Como alternativa, você pode configurar InvokeAgent para transmitir a resposta em vários fragmentos menores. Isso diminui a latência da resposta inicial do agente.
Respostas de streaming
Opcionalmente, é possível habilitar o streaming da resposta definindo streamFinalResponse como true nas configurações de streaming (StreamingConfigurations). O fluxo de resposta contém vários eventos com fragmentos em ordem para cada parte da resposta.
Para transmitir respostas, o perfil de execução do agente deve incluir a permissão bedrock:InvokeModelWithResponseStream para o modelo de agente configurado. Para obter mais informações, consulte Permissões baseadas em identidade para o perfil de serviço de agentes.
Se o agente estiver configurado com uma barreira de proteção, também será possível especificar applyGuardrailInterval em StreamingConfigurations, para controlar a frequência com que uma chamada ApplyGuardrail é feita em caracteres de resposta de saída (por exemplo, a cada cinquenta caracteres).
Por padrão, o intervalo da barreira de proteção é definido como cinquenta caracteres. Se um intervalo maior for especificado, a resposta será gerada em fragmentos maiores com menos chamadas ApplyGuardrail. Os exemplos a seguir mostram a resposta gerada para a string de entrada Hello, I am an Agent.
Exemplo de resposta em fragmentos: intervalo definido para três caracteres
'Hel', 'lo, ', 'I am', ' an', ' Age', 'nt'
Cada fragmento tem pelo menos três caracteres, exceto o último fragmento.
Exemplo de resposta em fragmentos: intervalo definido para vinte caracteres
'Hello, I am an Agent'
Invocar um agente
O exemplo Python a seguir mostra como chamar a operação InvokeAgent e exibir a saída do agente, bem como qualquer informação de rastreamento gerada pela chamada.
Como invocar um agente
-
Crie um agente seguindo as instruções em Criar e configurar o agente manualmente. Anote o ID do agente. Se necessário, você pode obter o ID posteriormente. Para obter mais informações, consulte Obter informações sobre um agente.
Crie um alias para o agente seguindo as instruções em Criar um alias para o agente. Anote o ID do alias. Se necessário, você pode obter o ID posteriormente. Para obter mais informações, consulte Visualizar as informações sobre os aliases de agentes no Amazon Bedrock..
Execute o código a seguir. Atualize o valor
agent_idpara o ID do agente e o valoralias_idpara o ID do alias do agente. Para transmitir a resposta do agente, altere o valor destreamFinalResponseparaTrue. Também é possível alterar o intervalo da barreira de proteção alterando o valor deapplyGuardrailInterval.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" ) agent_id = "AGENT_ID" alias_id = "ALIAS_ID" session_id = "MY_SESSION_ID" prompt = "Prompt to send to agent" 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)})