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.

Amazon Connect / Lex: Necesita activar la intención desde otro bot, encadenar intenciones, eliminar preguntas redundantes.

Tengo un escenario en el que tengo que llamar a dos bots de Lex consecutivamente mediante dos bloques ‘Obtener entrada de cliente’ en Connect.

El primero simplemente maneja una pregunta de sí/no (“¿Quieres usar este número para esta acción? – sí”). Luego hago una rama basada en la respuesta sí/no para ir al segundo bot de Lex.

Para activar ese segundo bot, hago una segunda pregunta (“¿Estás listo para continuar con esa acción? – sí”) en un segundo bloque de ‘Obtener entrada de cliente’. Con el segundo bot, se le solicita al usuario el tiempo y la temperatura.

El problema es que el llamador necesita decir “sí” dos veces, una vez cada vez para activar cada bot.

Me gustaría encontrar una manera de activar la intención del segundo bot sin solicitar al usuario una pregunta redundante.

Espero no tener que usar una función lambda.

Se agradecería mucho una orientación específica.

Flujo de contacto simplificado: https://i.stack.imgur.com/21S8y.png

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para activar la intención del segundo bot sin preguntar al usuario con una pregunta redundante, puede utilizar un solo bloque ‘Get Customer Input’ y configurarlo para manejar las dos preguntas en secuencia. Esto se puede lograr creando un tipo de slot personalizado que incluya ambas preguntas y sus posibles respuestas, y luego utilizando una función Lambda para analizar la entrada del usuario y activar el bot apropiado en función de la respuesta.

    Estos son los pasos generales para implementar esta solución:

    1. Cree un tipo de slot personalizado que incluya ambas preguntas y sus posibles respuestas. Por ejemplo:
      SampleSlotType
      - ¿Desea utilizar este número para esta acción?: sí, no
      - ¿Está listo para proceder con esa acción?: sí, no
      
    2. Modifique el bloque ‘Get Customer Input’ para usar el tipo de slot personalizado y habilitar el procesamiento de entrada de múltiples turnos. Esto permitirá al usuario responder dos preguntas en sucesión sin tener que decir “sí” dos veces.
    3. Cree una función Lambda que tome la entrada del usuario, extraiga los valores relevantes del slot y active el bot apropiado en función de los valores del slot. Por ejemplo:

      if event['currentIntent']['name'] == 'MyFirstLexBotIntent':
          if event['currentIntent']['slots']['SampleSlotType'] == 'sí':
              # Activar el segundo bot
          else:
              # Finalizar la llamada
      elif event['currentIntent']['name'] == 'MySecondLexBotIntent':
          # Extraer los valores de tiempo y temperatura y realizar la acción deseada
      

    4. Integre la función Lambda con el bloque ‘Get Customer Input’ especificándola como agente de cumplimiento.

    Una vez completados estos pasos, el usuario podrá responder ambas preguntas en sucesión diciendo simplemente “sí” una vez. La función Lambda manejará la lógica para activar el bot apropiado en función de las respuestas del usuario.

Comments are closed.