es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El código de Python en Lambda de Amazon Lex V2 para obtener el nombre de un intento o cualquier respuesta de vuelta no está funcionando.

Intentando obtener una respuesta de devolución como nombre del intento desde lambda para Amazon Lex v2. Puede ser una cadena o cualquier respuesta de devolución en un programa simple.

He consultado la documentación de Lex V2, pero no logro obtener el siguiente código que muestra un error después de varios intentos.

error: “Respuesta no válida de Lambda: Se recibió una respuesta de error de Lambda: no gestionada”

“`python
def lambda_handler(event, context):
entity = event["currentIntent"]["slots"]["Nm"].title()
intent = event["currentIntent"]["name"]

response = {
'sessionState': {
'dialogAction': {
'type': 'Close'
},
'state': 'Fulfilled'
},
'messages': [
'contentType': 'PlainText',
'content': "¡El intento en el que te encuentras ahora es "+intent+"!"
],

<pre><code>}
</code></pre>

return response
“`

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para resolver el error “Invalid Lambda Response: Received error response from Lambda: Unhandled” y obtener el nombre de la intención como respuesta de Lambda para Amazon Lex V2, podemos modificar el código de la siguiente manera:

    import json
    
    def lambda_handler(event, context):
        entity = event["currentIntent"]["slots"]["Nm"].title()
        intent = event["currentIntent"]["name"]
    
        response = {
            'sessionState': {
                'dialogAction': {
                    'type': 'Close'
                },
                'state': 'Fulfilled'
            },
            'messages': [
                  {
                      'contentType': 'PlainText',
                      'content': f"¡La intención en la que te encuentras ahora es {intent}!"
                  }
            ]
        }
    
        return {
            'statusCode': 200,
            'body': json.dumps(response),
            'headers': {
                'Content-Type': 'application/json',
            }
        }
    

    En el código anterior, hemos agregado la declaración de importación para el módulo json y también hemos incluido una respuesta JSON correctamente construida con el encabezado Content-Type establecido en application/json. Esto debería resolver el error y devolver el nombre de la intención como respuesta de Lambda para Amazon Lex V2.

Comments are closed.