C Navegación con keepTurn y transition
keepTurn
y transition
para definir cómo continúa la conversación una vez que el componente ha terminado el procesamiento.invoke: (conversation, done) ==> {
...
conversation.keepTurn(true);
conversation.transition ("success");
done();
}
Caso de uso | Valores definidos para keepTurn y transition |
---|---|
Respuesta de un componente personalizado que no requiere interacción del usuario. |
Por ejemplo, un componente personalizado actualiza una variable de contexto con una lista de valores que, a continuación, es mostrada por un componente
System.List definido para el estado siguiente en la definición del flujo de diálogo. Si el componente no pasa al estado siguiente, debe realizar un seguimiento de su propio estado mediante la creación de una variable de tiempo de ejecución con el método conversation.variable (“name”, variable) .
|
Conversación de usuario secuencial en la que el usuario proporciona una entrada, el bot responde, etc. |
Por ejemplo:
|
El bot devuelve el control al usuario sin navegar al siguiente estado del diálogo. Esto permite al componente procesar la entrada del usuario. A continuación, se ofrecen unos ejemplos:
|
Por ejemplo:
|
El componente personalizado entra en un bucle que no puede ser detenido por la entrada de usuario. Por ejemplo, un componente sondea un servicio remoto en busca del estado de un pedido hasta que se devuelve el estado accepted o el componente sufre un timeout. Si el estado accepted no se devuelve tras el quinto sondeo, el componente pasa al estado failedOrder , definido en el flujo de diálogo.
El bot transfiere los usuarios a un agente en directo. En este caso, las respuestas y la entrada del usuario se envían al agente. El componente pasa al siguiente estado definido en el flujo de diálogo cuando el usuario o el agente finalizan la sesión. |
Por ejemplo:
Llame siempre a keepTurn después de reply y no antes, porque reply establece implícitamente keepTurn en false .
|