VoiceBooker

Stacks e fluxos de chamada

Os assistentes de IA na VoiceBooker normalmente consistem em múltiplas stages. As stages podem estar ativas, o que significa que os prompts, ações/ferramentas e funções fazem parte da requisição ao LLM, para que ele possa chamar suas funções conforme o propósito e executar ações/funções.

A stack é uma simples lista/array de strings que contém os nomes de todas as stages atualmente ativas. Prompts, ferramentas e funções são adicionados à requisição do LLM na ordem das stages na stack. Isso significa que a stage listada por último é a mais recente — seu prompt é adicionado por último e define principalmente o comportamento da conversa/LLM.

Modificações na stack - transições de stage

Para definir um fluxo de chamada, cada função pode opcionalmente receber o estado da stack como parte do parâmetro params. Esse parâmetro é um array de strings e pode ser modificado adicionando ou removendo entradas e retornando a stack modificada. Isso permite que desenvolvedores construam fluxos complexos de agentes/bots de voz. Por exemplo, um cliente existente que deseja cancelar um contrato receberá um conjunto de perguntas diferente de um cliente que deseja reservar um produto específico.

Transições de stage no‑code

Transições de stage acontecem durante uma ação, ou seja, uma chamada de função. Uma transição de stage pode, portanto, ser configurada diretamente na seção ações/ferramentas da definição/configuração da função: Primeiro, você define a próxima stage que deve ser adicionada à stack, ou seja, a próxima stage ativa.

Depois, você pode especificar Drop current stage para remover a stage atual da stack. Isso significa que suas ações/ferramentas/funções não estarão mais disponíveis.

Transições de stage via código

Para realizar transições de stage programaticamente, primeiro é necessário habilitar o flag stack para a função para que a stack seja passada para a chamada de função via params.

O exemplo abaixo mostra como adicionar a stage "Next Stage" à stack e retorná-la ao sair da função:

function someFunction(params) {
    params["stack"].push("Next Stage");
    return { stack: params["stack"] };
}

Importante: se a stack não for retornada via return, as mudanças na stack não terão efeito.

Nesta página