Stacks y flujos de llamada
Los asistentes de IA en VoiceBooker suelen constar de varias stages. Las stages pueden estar activas, lo que significa que los prompts, acciones/herramientas y funciones forman parte de la solicitud al LLM, de modo que el LLM pueda llamar a tus funciones según su propósito y ejecutar acciones/funciones.
La stack es una simple lista/array de cadenas que contiene los nombres de todas las stages activas en ese momento. Los prompts, herramientas y funciones se agregan a la solicitud del LLM en el orden de las stages en la stack. Esto significa que la stage listada al final es la más reciente — su prompt se agrega al final y define principalmente el comportamiento de la conversación/LLM.
Modificaciones de la stack - transiciones de stage
Para definir un flujo de llamada, cada función puede opcionalmente recibir el estado de la stack como parte del parámetro params.
Este parámetro es un array de cadenas y puede modificarse agregando o quitando entradas y devolviendo la stack modificada.
Esto permite a los desarrolladores construir flujos complejos de agentes/bots de voz.
Por ejemplo, un cliente existente que quiere cancelar un contrato recibirá un conjunto de preguntas diferente al de un cliente que quiere reservar un producto específico.
Transiciones de stage sin código
Las transiciones de stage ocurren durante una acción, es decir, una llamada de función.
Por lo tanto, una transición de stage puede configurarse directamente en la sección acciones/herramientas de la definición/configuración de una función:
Primero, defines la siguiente stage que debe añadirse a la stack, es decir, la próxima stage activa.
Luego, puedes especificar Drop current stage para eliminar la stage actual de la stack. Esto significa que sus acciones/herramientas/funciones ya no estarán disponibles.
Transiciones de stage por código
Para realizar transiciones de stage de forma programática, primero debes habilitar el flag stack para la función, de modo que la stack se pase a la llamada de función mediante params.
El siguiente ejemplo muestra cómo añadir la stage "Next Stage" a la stack y devolverla al salir de la función:
function someFunction(params) {
params["stack"].push("Next Stage");
return { stack: params["stack"] };
}Importante: si la stack no se devuelve mediante return, los cambios en la stack no surtirán efecto.