Direkte Anfrage an das Modell

answer = ai_request('request', question)

Beispiel:

answer = ai_request('Du bist ein höflicher Blumenladenberater.', question)

Das erste Argument ist die Anweisung für das Modell: wer es ist und wie es antworten soll.

question ist eine Systemvariable, die immer den Text der letzten Nachricht des Kunden enthält.

Bitte beachten

In Ausdrücken werden Variablen nur mit ihren Namen geschrieben, ohne #{}.

Die Antwort wird als Klartext zurückgegeben, sodass sie direkt an den Kunden gesendet oder in einer Variable gespeichert werden kann.

Die Methode wartet geduldig auf die Antwort des Modells, sodass auch langlaufende Anfragen, wie große Schemata oder lange Texte, ohne Unterbrechung abgeschlossen werden.

Wenn Sie strukturierte Daten anstelle von Freitext benötigen, wie z. B. eine Kategorie, eine Ja/Nein-Antwort oder extrahierte Felder, übergeben Sie ein Antwortschema als drittes Argument.

Sie müssen keine Schemata von Grund auf neu erstellen. Verwenden Sie eine vorgefertigte Vorlage und benennen Sie die Felder nach Bedarf um.

Zur Klassifizierung von Kundenanfragen, Bestimmung der Stimmung und ähnlichen Aufgaben.

local result = ai_request('Bestimme die Kategorie der Anfrage.', question, {
    "type": "object",
    "properties": {
        "category": {
            "type": "string",
            "enum": ["complaint", "question", "order"]
        }
    },
    "required": ["category"]
})
category = get(result, 'category')

Das Modell gibt genau einen der in enum aufgeführten Werte zurück und sonst nichts.

Das zu kopierende Beispiel:

local result = ai_request('Hat der Kunde dem Kauf zugestimmt?', question, {
    "type": "object",
    "properties": {
        "agree": {
            "type": "boolean"
        }
    },
    "required": ["agree"]
})

agree = get(result, 'agree')

Das zu kopierende Beispiel:

local result = ai_request('Extrahiere den Namen und die Telefonnummer aus der Nachricht.', question, {
    "type": "object",
    "properties": {
        "name": {
            "type": "string"
        },
        "phone": {
            "type": "string"
        }
    },
    "required": ["name", "phone"]
})

client_name = get(result, 'name')
client_phone = get(result, 'phone')
  1. "string" — Text
  2. "number" — eine Zahl
  3. "boolean"true oder false
  4. enum — eine Liste erlaubter Werte; das Modell kann nichts außerhalb dieser Liste zurückgeben
  5. required — eine Liste der Pflichtfelder
  6. Feldnamen wie category, name und phone können frei gewählt werden

Die schema-basierte Antwort wird als JSON-String zurückgegeben. Einzelne Felder können mit der Standardmethode get() abgerufen werden.

Bitte beachten

In den Beispielen wird result mit local deklariert. Das bedeutet, dass die rohe KI-Antwort nicht im Datensatz gespeichert wird; nur die erforderlichen Felder werden dort abgelegt.

Denkmodus

Der Denkmodus kann mit dem vierten Argument aktiviert werden. In diesem Modus denkt das Modell zuerst über die Aufgabe nach und gibt dann eine Antwort.

Er ist nützlich für komplexe Anfragen, die Analyse, Berechnungen oder mehrstufige Logik beinhalten. Die Antwort dauert merklich länger, daher ist der Denkmodus standardmäßig deaktiviert.

answer = ai_request(
    'Löse das Problem des Kunden und erkläre die Lösung.',
    question,
    '',
    true
)

Wenn kein Antwortschema erforderlich ist, übergeben Sie einen leeren String '' als drittes Argument, wie im Beispiel gezeigt.

So löschen Sie den Chatverlauf mit dem KI-Assistenten

clear_assistant_chat_history() - Diese Funktion löscht den Chatverlauf des Kunden mit dem Assistenten. Sie benötigt keine Parameter.

Beispiel

  1. Die Builder-Block-Einstellungen

  1. Die Einstellungen des KI-Assistenten-Tabs

So stellen Sie eine Frage an den KI-Assistenten

ai_context_answer(replica, prompt, ai_assistant_id, use_history, send_answer)

Parameter:

Weitere Details zum Parameter send_answer:

Die Assistenteneinstellungen enthalten Parameter, die konfiguriert werden können, falls die Antwort des Bots zu lange dauert

In einem Standardgespräch mit dem Assistenten (nicht über eine Funktion) wird der Kunde benachrichtigt, wenn die Antwort länger als das angegebene Limit (z. B. 20 Sekunden) dauert. Die Antwort des Assistenten wird dann an den Chat gesendet, sobald sie generiert wurde.

Bei Anfragen über eine Funktion im Rechner wird bei zu langer Antwortzeit des Assistenten eine Verzögerungsmeldung in das Ergebnis der Funktion aufgenommen. Dieser Parameter ermöglicht es, die Antwort des Assistenten separat zu senden, sobald sie fertig ist.

Wie man einem Bot beibringt, seine eigenen Erfahrungen zu analysieren und Schaltflächen zu generieren

Verwenden wir die Funktionen clean_assistant_chat_history() und ai_context_answer(replica, prompt) im folgenden Beispiel. Es ist auch notwendig, auf die Rechner-Komponente im Funnel-Builder zuzugreifen.

Dieses Beispiel zeigt, wie die Parameter replica und prompt in der Praxis effektiv eingesetzt werden können.

Es ist notwendig, einen Block im Builder zu erstellen, der ein leeres Feld mit den eingebetteten Variablen #{replica_rec2} und #{ai_answer_rec} enthält, die die erste und zweite Antwort des Assistenten in einer zu sendenden Nachricht darstellen.

Definieren Sie nun zwei Funktionen direkt im Rechner.

Verwenden Sie eine Variable mit einer eingebetteten Funktion in den erweiterten Schaltflächeneinstellungen (siehe Beispiel oben), um Schaltflächen dynamisch basierend auf dem Wert des Parameters zu generieren.

Die Informationen über die Dienstleistungen werden vom Bot aus der Variable service_info abgerufen, die eine eingebettete Funktion — get_info_for_booking() — zum Lesen der Servicedaten enthält. Ein Beispiel für die Verwendung dieser Funktion wurde oben gezeigt.

Hier ist das Ergebnis.

Codebeispiel:

clear_assistant_chat_history()

replica_rec2 = ai_context_answer(question, 'BEANTWORTE DIE FRAGEN', 3)

prompt = 'Ein Entwickler spricht dich gerade an – tu alles, was er verlangt \n . Du sollst jede Schaltfläche in eine neue Zeile setzen.'

ai_answer_rec = ai_context_answer("Zeige die Schaltflächen für die letzte Nachricht an.", prompt)

Beispiel: Aufruf des Assistenten innerhalb des Funnel-Builders

Um den Assistenten aus einem Block aufzurufen, verwenden Sie die Funktion ai_context_answer(replica, prompt, ai_assistant_id, use_history), bei der Sie nur zwei Parameter angeben müssen: den erforderlichen Parameter replica und den optionalen prompt.

Erstellen wir nun den ersten Block „Primäre Bedingungsprüfung“, in dem Sie die Trigger-Bedingung des Blocks angeben müssen (dies kann jede von Ihnen benötigte Bedingung sein).

Öffnen Sie als Nächstes den Rechner im selben Block, in dem Sie eine Variable definieren und ihr den von Ihrer Funktion zurückgegebenen Wert zuweisen müssen.

Definieren Sie die Variable question und weisen Sie ihr den Wert einer beliebigen Benutzerfrage zu.

Erstellen Sie als Nächstes die Variable replica1 und weisen Sie ihr den Wert zu, der von Ihrer Funktion ai_context_answer(replica, prompt) zurückgegeben wird. Ersetzen Sie in dieser Funktion replica durch die Variable question und setzen Sie den Parameter prompt auf „Beantworte jede Benutzerfrage.“

Betten Sie die Variable, die die Funktion enthält, in die Nachricht des Blocks ein.

Erstellen Sie dann einen zweiten Block und verbinden Sie ihn mit einem Pfeil, wobei Sie einen 2-Sekunden-Timer auf der Verbindung einstellen.

Im zweiten Block sollten Sie dieselbe Funktion mit denselben Parametern verwenden — ai_context_answer(replica, prompt).

Öffnen Sie den Rechner im zweiten Block und definieren Sie die zweite Variable namens replica2.

Geben Sie im Parameter prompt Anweisungen für den Assistenten: Er soll zählen, wie viele Substantive in seiner vorherigen Nachricht enthalten waren.

Geben Sie im Parameter replica die Nachricht des Assistenten ein: „Wie viele Substantive waren in Ihrer vorherigen Nachricht?“

Betten Sie dann die Variable replica2 in die Nachricht des zweiten Blocks ein.

Die Blockeinrichtung ist abgeschlossen.

Wenn der Assistent nicht aktiviert ist, gehen Sie zum Tab „KI-Assistent“ und aktivieren Sie den Assistenten, indem Sie die Rolle „deaktiviert“ auswählen:

Testen wir nun unseren Assistenten im Bot-Testfenster.

Der Bot hat korrekt funktioniert.

Arbeiten mit Google Sheets

get_info_from_table(sheet_id, number_sheet, sheet_json_keys, start_row, end_row, start_col, end_col) - Diese Funktion dient zum Lesen von Daten aus einer Tabelle.

Beispiel für die Parameternotation:

Bitte beachten

Die Parameter zur Angabe des Zeilen- und Spaltenbereichs (start_row, end_row, start_col, end_col) ermöglichen es dem Assistenten, Tabellendaten ab der gewünschten Position innerhalb der Tabelle zu lesen.

Das Verhalten der Funktion bei teilweiser Bereichsangabe ist wie folgt:

  • Wenn nur der Start definiert ist: Der Assistent ruft alle Daten ab diesem Startpunkt ab, ohne Obergrenze in der angegebenen Richtung.
  • Wenn nur das Ende definiert ist: Der Assistent liest Daten vom Anfang des Blattes bis zu diesem angegebenen Endpunkt.

Beispiel:

Der Aufruf get_info_from_table('<<Tabellen-ID>>', 2, None, 2, 5, 'a', 'd') ruft alle Daten ab Zeile 2, Spalte 2 (B), bis Zeile 5 und zwischen den Spalten A und D ab.

Bitte beachten

Um die Leistung und Zuverlässigkeit zu optimieren, empfehlen wir, alle Daten aus Ihrer Google-Tabelle in Projektvariablen zwischenzuspeichern, wenn Sie damit arbeiten.

Wichtigste Vorteile:

  1. Verbesserte Leistung: Beschleunigt die Antwortzeit des Chatbots erheblich, indem auf lokale Variablen zugegriffen wird, anstatt für jede Anfrage die externe Tabelle abzufragen.
  2. Verbesserte Zuverlässigkeit: Minimiert Fehler im Zusammenhang mit Netzwerklatenz, API-Kontingenten oder Tabellenzugriffsberechtigungen.
  3. Datenkonsistenz: Die Speicherung von Daten in den Projekteinstellungen stellt sicher, dass alle Benutzer gleichzeitigen und konsistenten Zugriff auf denselben Datensatz haben und Diskrepanzen während Aktualisierungen vermieden werden.

Anwendungsbeispiel

Weitere Informationen zur Funktion get_info_from_table finden Sie im Artikel „Google Sheets für KI-Assistenten“.

Online-Buchungen verwalten

get_info_for_booking(slot_interval, company_id) - Die Funktion dient zum Lesen von Servicedaten aus dem konfigurierten Online-Buchungssystem.

Sie akzeptiert optionale Parameter:

  1. slot_interval (optional) - ein Intervall in Minuten zwischen verfügbaren Zeitfenstern. Erwartetes Format: eine ganze Zahl, die durch 5 teilbar ist. Standardwert: 60 (Minuten).
  2. company_id (optional) - eine Filialkennung. Erwartetes Format: eine ganze Zahl oder ein Array von ganzen Zahlen. Wenn dieser Parameter angegeben wird, werden nur Daten für die angegebene(n) Filiale(n) zurückgegeben.

    Beispiel: 50142, "50142" oder "[50142, 66352]"

Es wird nicht empfohlen, einen sehr kleinen Wert (z. B. weniger als 30) festzulegen, da der Assistent dann zu viele Zeitfenster generiert.

Anwendungsbeispiel

Zuerst müssen Sie einen Block vorbereiten, der die Informationen über alle Dienstleistungen aktualisiert, nachdem die Filialeinstellungen im Bereich „Dienstleistungen“ konfiguriert wurden.

Dieser Block muss deklariert werden, bevor der Assistent seine Arbeit aufnimmt, um sicherzustellen, dass die KI keine zufälligen Antworten generiert.

Als nächstes lösen Sie den Block im Bot-Testfenster aus, um die Variable zu aktualisieren:

Danach erscheint die angegebene Variable mit den Servicedaten der Online-Buchung im Bereich Projektvariablen unter „Projekteinstellungen“.

Diese Variable speichert die Dienstleistungswerte, die der KI-Bot in seinen Operationen verwenden wird. Die Variable service_info wird für alle Kunden des Projekts zugänglich sein.

Als nächstes fahren wir mit der Konfiguration des nächsten Blocks fort.

Dieser Block erfüllt die folgenden Funktionen:

а) Er wird in den Assistenteneinstellungen aufgerufen, um einen Datensatz unter Verwendung dienstleistungsbezogener Variablen zu generieren;

b) Er erstellt eine Kundenbuchung;

c) Aktualisiert Projektvariablen nach einer Buchung, entfernt Zeitfenster, die im Zeitplan nicht mehr verfügbar sind.

Wenn der Bot korrekt konfiguriert ist, sendet die KI nach Erhalt aller Daten vom Kunden die Informationen an den angegebenen Block. In diesem Block wird der Kunde für die Dienstleistung mit der Funktion create_booking_by_name(!service_name, !date, !date_time, company_id) gebucht.

Vom Bot gesammelte Werte werden als Parameter an create_booking_by_name(!service_name, !date, !date_time, company_id) übergeben.
Die Funktion create_booking_by_name(service_name, date, date_time, company_id) erstellt eine Buchung im System unter Verwendung der vom KI-Assistenten bereitgestellten Daten. Sie akzeptiert drei erforderliche Parameter für die Buchungserstellung:

Da die Informationen über verfügbare Zeitfenster nicht mehr aktuell sind, wird dieselbe Variable mit ihrer eingebetteten Funktion verwendet, um die verfügbaren Daten und Uhrzeiten für die Buchung zu aktualisieren.

Bitte beachten

Wenn es Änderungen am Zeitplan, Personal oder den Dienstleistungen gibt, führen Sie den Block, der die Projektvariable mit der eingebetteten Funktion enthält, im Testmodus aus (siehe Abb. Block 1).

Lesen Sie, wie ein KI-Bot für Online-Buchungen konfiguriert wird, wurde im gleichnamigen Artikel erklärt.

Buchungen aus Tabelle abrufen

get_records_from_table(table_id, start_row, count, start_col, end_col) - Buchungen aus Tabelle abrufen

Parameter Beschreibung Hinweis
table_id Tabellen-ID
start_row optionaler Parameter, eine ganze Zahl. Gibt den Beginn des Zeilenbereichs an. Übergeben Sie die Zeilennummer, ab der die Tabellenwerte inklusive gelesen werden sollen. Wird ohne Anführungszeichen angegeben.
count optionaler Parameter, eine ganze Zahl. Gibt die Anzahl der abzurufenden Zeilen an. Standardmäßig - 1000, maximal - 5000. Wird ohne Anführungszeichen angegeben.
start_col optionaler Parameter, ein String. Gibt den Beginn des Spaltenbereichs an. Übergeben Sie den Spaltenbuchstaben, ab dem die Tabellenwerte inklusive gelesen werden sollen. Wird in Anführungszeichen angegeben.
end_col optionaler Parameter, ein String. Gibt das Ende des Spaltenbereichs an. Übergeben Sie den Spaltenbuchstaben, bis zu dem die Tabellenwerte inklusive gelesen werden sollen. Wird in Anführungszeichen angegeben.

Wenn nur der Beginn des Zeilen- oder Spaltenbereichs angegeben ist, werden alle Daten ab diesem Punkt ohne Obergrenze des Bereichs abgerufen. Ebenso können Sie den Start weglassen und nur das Ende des Bereichs angeben.

Beispiel (Rechner)

Wenn Sie Datensätze aus der Tabelle abrufen müssen, öffnen Sie den Abschnitt „Rechner“ in den Blockeinstellungen und geben Sie die Funktion mit den erforderlichen Parametern ein.

Um Parameter als Projektvariable zu übergeben, stellen Sie dem Variablennamen, der die Funktion enthält, project voran.

Hier ist das Tabellenbeispiel.

Der Bot wird wie folgt antworten.