Stacks & Call Flows
KI-Assistenten in VoiceBooker bestehen meist aus mehreren Stages. Stages können aktiv sein, d. h. die Prompts und Aktionen/Werkzeuge/Tools sowie Funktionen sind Teil der LLM-Anfrage, sodass das LLM Ihre Funktionen abhängig von ihrem Zweck aufrufen und somit Aktionen bzw. Funktionen ausführen kann.
Der Stack ist eine einfache String-Liste, die alle Namen der aktuell aktiven Stages enthält. Prompts, Tools und Funktionen werden in der Reihenfolge der Stages im Stack zur LLM-Anfrage hinzugefügt. Das heißt: Die Stage, die im Stack zuletzt steht, ist die aktuellste – ihr Prompt wird zuletzt hinzugefügt und definiert maßgeblich das Verhalten der Konversation bzw. des LLM.
Stack-Änderungen – Stage-Übergänge
Um einen Call-Flow zu definieren, kann jede Funktion optional den Stack-Zustand als Teil des Parameters params erhalten.
Dieser Parameter ist ein String-Array und kann durch Hinzufügen oder Entfernen von Einträgen verändert und zurückgegeben werden.
Damit können Entwickler komplexe KI-Assistenten/Bot-Flows erstellen.
Beispielsweise wird ein Bestandskunde, der einen Vertrag kündigen möchte, nach anderen Informationen gefragt als ein Kunde, der ein bestimmtes Produkt buchen möchte.
No-Code-Stage-Übergänge
Stage-Übergänge passieren während einer Aktion, d. h. eines Funktionsaufrufs.
Ein Stage-Übergang wird daher direkt im Abschnitt Aktionen/Werkzeuge/Tools einer Funktionsdefinition/-konfiguration konfiguriert:
Zuerst definieren Sie die nächste Stage, die dem Stack hinzugefügt werden soll, also die nächste aktive Stage sein soll.
Zweitens können Sie mit Aktuelle Stage entfernen angeben, ob die aktuelle Stage aus dem Stack entfernt werden soll. Dadurch sind deren Aktionen/Werkzeuge/Tools nicht mehr für das LLM sichtbar/verfügbar und somit ausführbar.
Codebasierte Stage-Übergänge
Um Stage-Übergänge per JavaScript-Code innerhalb einer Funktion durchzuführen, müssen Sie zunächst das Stack-Flag für die Funktion aktivieren, damit der Stack im params-Parameter im Funktionsaufruf übergeben wird.
Das folgende Beispiel zeigt, wie die Stage Next Stage zum Stack hinzugefügt und beim Verlassen der Funktion zurückgegeben wird:
function someFunction(params) {
params["stack"].push("Next Stage");
return { stack: params["stack"] };
}Wichtig: Wird der Stack nicht mittels return wieder zurückgegeben, werden die Veränderungen am Stack nicht wirksam.