Defina las funciones Lambda para los grupos de acción de sus agentes en Amazon Bedrock - Amazon Bedrock

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Defina las funciones Lambda para los grupos de acción de sus agentes en Amazon Bedrock

Debe definir una función Lambda para programar la lógica empresarial de un grupo de acciones. Cuando un agente de Amazon Bedrock determina la operación de API que debe invocar en un grupo de acciones, envía la información del esquema de la API junto con los metadatos pertinentes como un evento de entrada a la función Lambda. Para escribir la función, debe comprender los siguientes componentes de la función Lambda:

  • Evento de entrada: contiene los metadatos relevantes y los campos rellenados del cuerpo de la solicitud de la operación de API que el agente determina que se debe llamar.

  • Respuesta: contiene los metadatos relevantes y los campos rellenados para el cuerpo de la respuesta devuelto por la operación de API.

Escribe la función Lambda para definir cómo gestionar un grupo de acciones y personalizar la forma en que desea que se devuelva la respuesta de la API. Las variables del evento de entrada se utilizan para definir las funciones y devolver una respuesta al agente.

nota

Un grupo de acciones puede contener hasta 5 operaciones de API, pero solo se puede escribir una función Lambda. Como la función Lambda solo puede recibir un evento de entrada y devolver una respuesta para una operación de API a la vez, debe escribir la función teniendo en cuenta las diferentes operaciones de API que se pueden invocar.

Para que su agente utilice una función Lambda, debe adjuntar una política basada en recursos a la función para proporcionar permisos al agente. Para obtener más información, siga los pasos que se indican en. Política basada en recursos que permite a Amazon Bedrock invocar una función Lambda de un grupo de acciones Para obtener más información sobre las políticas basadas en recursos en Lambda, consulte Uso de políticas basadas en recursos para Lambda en la Guía para desarrolladores. AWS Lambda

Evento de entrada de Lambda desde Amazon Bedrock

Cuando se invoca un grupo de acciones utilizando una función de Lambda, Amazon Bedrock envía un evento de entrada de Lambda con el siguiente formato general. Puede definir la función Lambda para utilizar cualquiera de los campos de eventos de entrada para manipular la lógica empresarial de la función y realizar la acción correctamente. Para obtener más información sobre las funciones Lambda, consulte Invocación controlada por eventos en la Guía para desarrolladores. AWS Lambda

{ "messageVersion": "1.0", "agent": { "name": "string", "id": "string", "alias": "string", "version": "string" }, "inputText": "string", "sessionId": "string", "actionGroup": "string", "apiPath": "string", "httpMethod": "string", "parameters": [ { "name": "string", "type": "string", "value": "string" }, ... ], "requestBody": { "content": { "<content_type>": { "properties": [ { "name": "string", "type": "string", "value": "string" }, ... ] } } }, "sessionAttributes": { "string": "string", }, "promptSessionAttributes": { "string": "string" } }

En la siguiente lista se describen los campos de eventos de entrada;

  • messageVersion: la versión del mensaje que identifica el formato de los datos del evento que se van a pasar a la función de Lambda y el formato previsto de la respuesta de una función de Lambda. Amazon Bedrock solo admite la versión 1.0.

  • agent: contiene información sobre el nombre, el ID, el alias y la versión del agente al que pertenece el grupo de acciones.

  • inputText: la entrada del usuario para el turno de conversación.

  • sessionId: el identificador único de la sesión del agente.

  • actionGroup: el nombre del grupo de acciones.

  • apiPath— La ruta a la operación de la API, tal como se define en el OpenAPI esquema.

  • httpMethod— El método de la operación de la API, tal como se define en el OpenAPI esquema.

  • parameters: contiene una lista de objetos. Cada objeto contiene el nombre, el tipo y el valor de un parámetro de la operación de la API, tal como se define en el OpenAPI esquema.

  • requestBody— Contiene el cuerpo de la solicitud y sus propiedades, tal y como se definen en el OpenAPI esquema.

  • sessionAttributes— Contiene los atributos de la sesión y sus valores. Estos atributos se almacenan durante una sesión y proporcionan contexto al agente.

  • promptSessionAttributes— Contiene los atributos de la sesión rápida y sus valores. Estos atributos se almacenan durante un turno y proporcionan contexto al agente.

Evento de respuesta de Lambda a Amazon Bedrock

Amazon Bedrock espera una respuesta de una función de Lambda que coincida con el siguiente formato. La respuesta consta de los parámetros devueltos por la operación de la API. El agente puede usar la respuesta de la función de Lambda para una mayor orquestación o para ayudarla a devolver una respuesta al cliente.

nota

Consulte la Cuotas de agentes cuota de respuesta de carga útil de Lambda.

{ "messageVersion": "1.0", "response": { "actionGroup": "string", "apiPath": "string", "httpMethod": "string", "httpStatusCode": number, "responseBody": { "<contentType>": { "body": "JSON-formatted string" } } }, "sessionAttributes": { "string": "string", }, "promptSessionAttributes": { "string": "string" } }

En la siguiente lista se describen los campos de respuesta:

  • messageVersion: la versión del mensaje que identifica el formato de los datos del evento que se van a pasar a la función de Lambda y el formato previsto de la respuesta de una función de Lambda. Amazon Bedrock solo admite la versión 1.0.

  • response: contiene la siguiente información acerca de la respuesta de la API.

    • actionGroup: el nombre del grupo de acciones.

    • apiPath— La ruta a la operación de la API, tal como se define en el OpenAPI esquema.

    • httpMethod— El método de la operación de la API, tal como se define en el OpenAPI esquema.

    • responseBody— Contiene el cuerpo de la respuesta, tal como se define en el OpenAPI esquema.

  • (Opcional) sessionAttributes: contiene los atributos de la sesión y sus valores.

  • (Opcional) promptSessionAttributes: contiene los atributos de la petición y sus valores.

Ejemplo de función de Lambda del grupo de acciones

El siguiente es un ejemplo mínimo de cómo se puede definir la función Lambda en. Python

def lambda_handler(event, context): response_body = { 'application/json': { 'body': "sample response" } } action_response = { 'actionGroup': event['actionGroup'], 'apiPath': event['apiPath'], 'httpMethod': event['httpMethod'], 'httpStatusCode': 200, 'responseBody': response_body } session_attributes = event['sessionAttributes'] prompt_session_attributes = event['promptSessionAttributes'] api_response = { 'messageVersion': '1.0', 'response': action_response, 'sessionAttributes': session_attributes, 'promptSessionAttributes': prompt_session_attributes } return api_response