Wie wir in unserem
ersten Artikel geschrieben haben , sind wir bei Just AI auf Technologien für künstliche Intelligenz zum Verständnis der natürlichen Sprache (NLU) spezialisiert. Wir haben eine eigene Plattform für die Entwicklung von Gesprächsassistenten, sowohl für Text als auch für Sprache. Die Plattform hat Funktionen zur Lösung von NLP-Problemen (Protokollclustering, Suche nach semantisch engen Phrasen usw.) und eine eigene Entwicklungssprache (Just AI DSL) entwickelt. Mit DSL schreibt ein Team von Sprachentwicklern Chatbot-Skriptcode, Integrationsmodule für die Kommunikation mit externen Systemen sowie Autotests.
In diesem Artikel werden wir über das Tool sprechen, das wir für die Entwicklung von Bots für verschiedene Plattformen, einschließlich Yandex Dialogs, ohne Kenntnisse über DSL und Programmierkenntnisse erstellt haben.
Große Projekte, wie ein Autoinformer zur Unterstützung von Kunden von Telekommunikationsbetreibern oder ein Sprachassistent mit vollem Funktionsumfang, können mehr als 1000 klassifizierte Benutzerabsichten, Dutzende von Verzeichnissen zum Extrahieren von Entitäten und Integrationen mit mehreren externen Diensten umfassen. Daher wird die Entwicklung gleichzeitig von mehreren Linguisten und Entwicklern unter Verwendung von Versionskontrollsystemen und Tools für Stresstests unter Einbeziehung von Textern und UX-Designern durchgeführt.
Anfangs waren wir uns sicher, dass die Komplexität des Entwicklungsansatzes den Anforderungen von Chatbot-Entwicklern und Unternehmen entspricht, da die Erstellung eines intelligenten Chatbots keine einfache und ressourcenintensive Aufgabe ist. Wir haben eine ziemlich komplexe Architektur erstellt, um alle möglichen Fälle zu schließen, und sogar einen visuellen Editor in der Plattform erstellt, um Kunden die Verwaltung der Chatbot-Logik zu erleichtern. In der Praxis stellen wir jedoch häufig fest, dass selbst ein vorbereitetes Unternehmen mit einem bereits geplanten Budget für die Automatisierung nur langsam implementiert wird und nicht versteht, wie eine technische Spezifikation korrekt erstellt und die Implementierung von KI in seinen Prozessen korrekt geplant werden kann.
Wir wollten es Unternehmen erleichtern, mit künstlicher Intelligenz zu arbeiten, und ihnen gleichzeitig ein Tool zur Verfügung stellen, mit dem wir sofort mit dem Testen der Technologie beginnen können. Gleichzeitig musste das Produkt in der Lage sein, die natürliche Sprache zu verstehen (Anforderungen des normalen Benutzers) und typische Fragen nicht einsilbig zu beantworten („Ich habe Ihre Frage nicht verstanden, wiederholen Sie sie“). Im Allgemeinen war es notwendig, unsere coolen Technologien der Unternehmensplattform „unter der Haube“ zu verstecken, um den russischen Unternehmen den Einstieg in die Welt der künstlichen Intelligenz zu erleichtern. Im Allgemeinen war es erforderlich, ein Produkt für den Benutzer zu erstellen, damit Sie konfigurieren, berühren und sehen können, wie es funktioniert. Daher wurden die Innenseiten der Plattform unter der Hülle des Designers versteckt.
Ob es uns gelungen ist oder nicht, können Sie gut beurteilen (Links zur Registrierung beim Designer und zur Korrespondenz in der Community finden Sie am Ende des Artikels). Als Ergebnis erschien das Produkt Aimylogic - ein visueller Designer, mit dem Sie einen intelligenten Chatbot zusammenstellen können, der die natürliche Sprache aus einfachen Blöcken versteht: Benutzerrepliken, Botantworten, Aufrufe an externe Systeme. Die Arbeit mit Aimylogic erfordert keine Kenntnisse der DSL-Kernplattform, Kenntnisse im Schreiben von Mustern zum Erkennen von Absichten und Autotests.
Fall: Erstellen eines Chatbots für die Personalabteilung
Heute werden wir einen ziemlich einfachen Fall betrachten: Das Erstellen eines Chatbots für die Personalabteilung, der Mitarbeiter über Telegramm, die Website des Unternehmens oder Yandex.Alisa über die internen Prozesse des Unternehmens informiert, kann Anträge (für Urlaub, VHI usw.) annehmen und an das Board in Trello senden.
Der gesamte Prozess kann in folgende Phasen unterteilt werden:
- Erstellen eines Skripts für einen HR-Bot-Dialog mit einem Mitarbeiter des Unternehmens;
- Konfiguration der Benutzeranforderungssammlung (wir werden Trello verwenden);
- Bot-Tests;
- Bot Veröffentlichung in Telegramm, auf der Website oder in Yandex.Alice.
Also, das Wichtigste zuerst ...
1. Erstellen eines Skripts für die Kommunikation mit Mitarbeitern
In Aimylogic gibt es bereits eine Bot-Vorlage für die Personalabteilung mit Dialogen über das Gehaltsprojekt, Urlaub, Versicherung und andere Themen, die der Bot sofort verstehen wird. So können Sie das vorgefertigte Skript verwenden und es auf Wunsch selbst ändern. Wir beschreiben, wie diese Vorlage erstellt wurde.
Beim Erstellen eines Skripts in Aimylogic müssen Blöcke hinzugefügt und Übergänge zwischen ihnen hergestellt werden.
Der Screenshot oben zeigt, dass das Bot-Skript mit einer Begrüßung beginnt. Um den Benutzer zu begrüßen und zu erklären, welche Fragen er dem Bot stellen kann, verwenden wir einen Textblock. Sie können ein Bild hinzufügen.

Nachdem wir den Block mit dem Begrüßungstext erstellt haben, fügen wir den Block "Phrasen" in unseren Bot ein, mit dem wir den Bot anhand von Beispielen für Benutzeranforderungen trainieren können. Fügen Sie im Block "Phrasen" separate Gruppen von Phrasen hinzu, die den Absichten (Absichten) der Benutzer entsprechen, und füllen Sie jede mit Beispielen für Abfragen.
In diesem Beispiel erstellen wir mehrere Gruppen von Phrasen:
- Verbindung eines Gehaltsprojekts;
- VHI Unternehmensprogramm;
- Urlaubsantrag;
- Erhalt von Zertifikaten aus dem Rechnungswesen und der Personalabteilung;
- Leistungskompensation.
In Gruppen von Phrasen definieren wir Beispielsätze, die auf realen Anforderungen der Mitarbeiter an die Personalabteilung basieren. Für die Gruppe „VHI Corporate Program“ sind dies beispielsweise Anfragen:
- Wie beantrage ich DMS?
- Ich interessiere mich für Krankenversicherung
- Wie bekomme ich eine VHI-Richtlinie?
Gruppen von Phrasen können jederzeit durch Beispiele ergänzt werden, sodass Sie den Bot während des Betriebs schnell neu trainieren können.
Erstellen Sie für jede Gruppe von Phrasen eine eigene Abfolge von Aktionen im Skript. Für die Gruppe der Ausdrücke „Urlaubsantrag“ implementieren wir beispielsweise eine Anforderung für zusätzliche Daten vom Benutzer und speichern seinen Antrag in Trello zur weiteren Verarbeitung durch einen Mitarbeiter der Personalabteilung.
Um Daten vom Benutzer anzufordern, fügen wir dem Skript nacheinander Blöcke hinzu, in denen der Name des Mitarbeiters und die gewünschten Urlaubsdaten abgefragt werden.
Die vom Benutzer eingegebenen Informationen werden in den Variablen $ Name und $ Holiday_date gespeichert und stehen zur weiteren Verwendung im Skript zur Verfügung. Zum Beispiel, um diese Daten an ein externes System zu senden.
In zukünftigen Versionen von Aimylogic zum Empfangen von Daten verschiedener Typen (Text, Nummern, Telefonnummer) werden die entsprechenden Blöcke im System angezeigt, die Benutzereingaben automatisch validieren.Jetzt konfigurieren wir die Integration des Bots in Trello, wo die gesammelten Anwendungen von Benutzern gespeichert werden.
2. Speichern von Benutzeranforderungen in Trello
Trello bietet eine API für die Integration in seine Tools. Es gibt jedoch auch kostenlose Dienste, mit denen Sie diese verwenden können, ohne Zeit mit dem Schreiben eines Integrationscodes zu verschwenden. Ein solcher Dienst ist IFTTT. Der in Aimylogic erstellte Chatbot sendet die Daten an IFTTT und erscheint in Trello.
Erstellen Sie dazu in IFTTT ein Webhook-Applet, das beim Empfang einer HTTP-Anfrage vom Bot die Daten aus dem Anfragetext in Trello auf die Karte legt. Fügen Sie im Bot-Skript in Aimylogic den Block "HTTP-Anforderung" hinzu, der Daten an das Applet überträgt.
Applet-Erstellung
Erstellen Sie in der IFTTT-Oberfläche ein neues Applet (Meine Applets -> Neues Applet) und legen Sie den Auslöser für das auszulösende Applet fest (indem Sie auf
+ dies klicken). Geben Sie in der angezeigten Suche "Webhook" ein und wählen Sie den Auslöser aus, der unter dem Namen "Webhooks" gefunden wurde.
Klicken Sie auf "Webanforderung empfangen" und legen Sie den Namen des Auslöseereignisses fest (schreiben Sie es in lateinischer Sprache ohne Leerzeichen in das Feld "Ereignisname"). Klicken Sie auf "Trigger erstellen".
Jetzt konfigurieren wir die Aktion, die ausgeführt wird, wenn der Bot eine Anforderung für das Applet aus dem gerade konfigurierten Skript sendet - klicken Sie im Applet auf "
das ".

Konfigurieren der IFTTT-Integration mit Trello
Nachdem Sie in IFTTT auf "
das " geklickt haben, wird die Suche erneut angezeigt. Wir suchen dort nach Trello und melden uns bei diesem Service an.
Nachdem Sie die Berechtigungen für den Zugriff auf Ihr Konto in Trello erteilt haben, wählen Sie in IFTTT die Aktion "Karte erstellen".
Geben Sie als Nächstes die Tafel an, auf der die Karten angezeigt werden sollen, und geben Sie im Feld "Titel" (Name der Karte) "Wert1" an. Dies ist eine Variable aus dem Anfragetext des Bots, in der das Wesentliche der Bewerbung des Mitarbeiters übertragen wird ("<Name des Mitarbeiters> möchte in den Urlaub fahren <) Urlaubszeit> ”).
Klicken Sie auf "Aktion erstellen", wenn alles nach Bedarf konfiguriert ist. Als nächstes ist "Fertig stellen".
Wenn der Bot nun eine HTTP-Anfrage an den von uns konfigurierten Webhook sendet, übernimmt IFTTT die Variable "Value1" aus dieser Anfrage und fügt Trello automatisch eine Karte mit diesem Namen hinzu.
Abrufen einer Webhook-Adresse in IFTTT
Vielleicht ist dies der nicht trivialste Teil der Integration.
Klicken Sie oben auf der IFTTT-Seite auf das Menü „Suchen“. Suchen Sie als Nächstes nach "Webhook". Klicken Sie auf die gefundenen Webhooks. Klicken Sie anschließend auf "Einstellungen".
Eine Seite wird mit einer URL geöffnet.
Dies ist noch keine Webhook-Adresse! Sie müssen diese URL kopieren und in einem neuen Browser-Tab öffnen.
Die Webhook-Testseite wird geöffnet. Hier können Sie den Namen des Auslöseereignisses (das wir uns beim Erstellen des Applets im Abschnitt „Applet erstellen“ ausgedacht haben) und den Wert der Variablen „Value1“ eingeben. Wenn Sie nun auf "Test it" klicken, wird Trello eine Karte mit dem Wert der Variablen "Value1" in der Kopfzeile hinzugefügt.
Kopieren Sie nun die resultierende Webhook-URL (in der letzten Zeile über der Schaltfläche "Test it") -
dies ist die Webhook-Adresse , die wir in der HTTP-Anforderung im Bot verwenden müssen.
Konfigurieren einer HTTP-Anforderung in Aimylogic
Wir fügen dem Skript einen Block mit einer HTTP-Anforderung hinzu, wenn wir bereits Daten vom Benutzer gesammelt haben (in den Variablen $ Name und $ Holiday_date).
In den Einstellungen für HTTP-Anforderungen geben wir als URL die Webhook-Adresse an, die wir von IFTTT erhalten haben.
Wir platzieren den Wert der Variablen "Value1" im Anfragetext - wir bilden darin Text mit der Variablen $ Name, in der der Benutzername gespeichert ist, sowie der Variablen $ Holiday_date, in der die Urlaubsdaten gespeichert sind. Das heißt, es sollte sich so herausstellen:
{ "value1" : "$Name $vacation_date" }
Bei der Ausführung dieser Anforderung ersetzt der Bot nun die Werte $ Name und $ Holiday_date im Anforderungshauptteil und sendet die Anforderung an das IFTTT-Applet. Dadurch wird eine Karte auf dem Trello-Brett erstellt.

3. Testen des Bots
Nachdem Sie ein Dialogskript vorbereitet haben, können Sie es sofort in Aimylogic überprüfen, indem Sie auf die Schaltfläche „Test“ klicken. Auf dem Bildschirm wird ein Widget angezeigt, in dem Sie mit dem Bot chatten können. Das Widget unterstützt sowohl die Texteingabe als auch die Verwendung von Schaltflächen, sofern dies vom Skript bereitgestellt wird. In Alice ist es beispielsweise üblich, die Benutzerschaltflächen als Hinweise anzubieten, um ihn mit den Fähigkeiten der Fertigkeit vertraut zu machen.
In dieser Phase können Sie den Dialog debuggen und überprüfen, wie korrekt und verständlich er ist, ohne zusätzliche Prototyping-Tools zu verwenden.
Bitte beachten Sie, dass der Bot dank NLU-Technologien (einschließlich übereinstimmender Synonyme, normaler Wortformen, ihrer Vektordarstellungen und syntaktischen Abfragestrukturen) nicht nur Phrasen versteht, die den Beispielen entsprechen, sondern auch in ihrer Bedeutung nahe beieinander liegen. Wenn dies nicht der Fall ist, können Sie den Bot trainieren, indem Sie die Liste der relevanten Beispiele erweitern.
Jetzt kann der Chatbot mit dem Mitarbeiter kommunizieren und Daten in Trello speichern. Es bleibt, den Bot im gewünschten Kanal zu platzieren.
4. Veröffentlichen Sie einen Chatbot
Mit Aimylogic kann der erstellte Bot in einem oder mehreren Kanälen platziert werden. Derzeit in Aimylogic verfügbar: Chat-Widget für die Site, Telegramm oder Sprachassistent Yandex.Alice.
Bald werden wir neue Kanäle hinzufügen: VK, Facebook, Slack und andere. Überall ist das Verhaltensszenario des HR-Bots nahezu gleich, und Anwendungen aus allen Kanälen werden an das Trello-Board gesendet.
Abhängig vom ausgewählten Kanal generiert Aimylogic automatisch ein Skript, das in die Website oder die Webhook-Adresse eingefügt wird, um es in Yandex.Dialogs anzugeben. Um Telegramm verwenden zu können, reicht es aus, das Token Ihres von BotFather empfangenen Telegramm-Bots anzugeben.
Aimylogic zeigt alle mit dem Bot verbundenen Kanäle und deren Status an.
Wo kann ich es testen?
Wir öffnen Aimylogic im Beta-Modus. Ehrlich gesagt ist es immer noch "feucht", aber Sie können es testen und verschiedene Fälle ausprobieren: Erstellen Sie Skripte von Dialogen in verschiedenen Kanälen, experimentieren Sie mit dem Verbinden externer Systeme, erstellen Sie FAQ-Bots mit einem Verständnis der natürlichen Sprache.
Die Veröffentlichung der nächsten Version wird Verzeichnisse benannter Entitäten enthalten, wodurch die Funktionen des Produkts erheblich erweitert werden.
Wir haben mit der Entwicklung von Aimylogic begonnen, um Benutzern das Erstellen einfacher Bots auf unserer Plattform zu erleichtern und gleichzeitig den Zugriff auf die Hauptfunktionen zu gewährleisten - NLU, einfache Integration in externe Systeme und Kanäle. Wir werden das Produkt weiterentwickeln, seine Benutzeroberfläche verbessern und neue nützliche Funktionen von der Hauptplattform entfernen. Wir freuen uns auf Feedback und Anregungen.
Sie können
die Plattform hier
testen :
app.aimylogic.comSie können mit uns oder anderen Entwicklern im
Telegrammkanal chatten. Oder geben Sie einfach "Aimylogic" in die Telegrammsuche ein.