Diese Video-Serie gibt Einsteigern eine kurze & kompakte Einführung in Cognigy.AI. In Schritt-für-Schritt Anleitungen zeigen wir den einfachen Zugang zu Hilfe & Dokumentation, eine Übersicht der Cognigy.AI Nutzeroberfläche und die wichtigsten Produktbereiche. Das Ziel: Der erfolgreichen Roll-out eines ersten Virtuellen Agenten. Viel Spaß beim Training!
Trainer: Derek Roberti
Dauer: 27 minutes
Version: Cognigy.AI v4.0
Kapitel 1: Erste Schritte
Wo finde ich Hilfe? Eine Übersicht über Dokumentation, Resourcen und hilfreiche Links zum Einstieg.
As you work with Cognigy, you'll need help and the best place to get started is on the "Agent Dashboard". If you look under the "Get Started" category, you'll see a number of helpful options to help you get started. And you'll also see a link to our Help Center.
In the Help Center, you're presented with four options: First, you can explore Cognigy and learn how to get started. Next, you can view our step-by-step How To's and Tutorials. You can ask questions of the Cognigy community, or you can file a support request.
To see more detailed documentation, you can click on "documentation" at the top of the page. And you'll be taken to our documentation site at "docs.cognigy.com".
To view API documentation, click "Guides" and then "API Reference". And you can choose the API version that you're looking for to view our OpenAPI Viewer.
Bei der Arbeit mit Cognigy benötigen Sie Hilfe und der beste Ort, um loszulegen, ist das „Agent Dashboard“. Unter der Kategorie „Get Started“ werden Ihnen eine Reihe hilfreicher Optionen angezeigt, die Ihnen den Einstieg erleichtern. Sie sehen dort auch einen Link zu unserem Help Center.
Im Help Center werden Ihnen vier Optionen angeboten: Zunächst können Sie Cognigy erkunden und alles über die ersten Schritte erfahren. Als Nächstes können Sie sich unsere Schritt-für-Schritt-Anleitungen und Tutorials ansehen. Sie können Fragen an die Cognigy Community stellen oder eine Supportanfrage senden.
Zu einer detaillierten Dokumentation gelangen Sie, indem Sie oben auf der Seite auf „Documentation“ klicken. Daraufhin werden Sie zu unserer Dokumentationsseite unter „docs.cognigy.com“ weitergeleitet.
Um die API-Dokumentation anzuzeigen, klicken Sie auf „Guides“ und dann auf „API Reference“. Sie können dann die gewünschte API-Version auswählen, um unseren OpenAPI Viewer zu öffnen.
Kapitel 2: Die Cognigy.AI Benutzeroberfläche
Eine Übersicht über die Cognigy.AI UI und die wichtigsten Produktbereiche.
- Not available for this chapter
How do you make your way around the Cognigy user interface? This video is all about clicking. So get your mouse or trackpad ready while we take a tour of Cognigy.AI. Let's start on the Agent overview screen. The screen, you see when you first log in. On the left side of the Dashboard, you'll see your Agents. I currently have none, some News, and some Getting Started resources. Be sure to click here on the "Help Center" for some great step-by-step tutorials. I'll create an Agent by clicking "Create Agent" and making my way through the wizard. I'll use the "Restaurant" template as our example when exploring the User Interface.
On the Agent Dashboard, I'll see some analytics. There's no data now, but more will show up once I go live. And I can click on this arrow to see more. Let's focus first on the left bar. Hover over it to see some top-level navigation categories. And click on a category to see the resources there. The first place I'll go is under Build. We'll open up Flows. Here, you'll see all of the Flows I have in this Agent and I'll click on my "Main" Flow. You can move around the Flow Editor by dragging and scrolling, pinching, and zooming. And you can also control the zoom in the lower right corner. To add a Node to your Chart, you can click any plus sign. There, you'll see a searchable list of Node Types.
I'll add a Say Node to the top of the tree. Notice that I can "control click" to see useful options like Copy, Paste, and Delete. And I can even expand and collapse whole branches of the tree by choosing that option in the "Context Menu". Or just double-clicking on the Node. Lastly, I can drag and drop to move Nodes around the tree. At the top, I can click on NLU to go to the Intent Editor. We'll review the Intent Editor in greater detail in another video. But for now, you'll see the existing Intents on the left side. At the top of the Intent Editor, you'll see the other options, such as attached Flows and attached Lexicons.
I'll switch back to Chart View.
To interact with my Flow. I can access the Interaction Panel by clicking the bubble icon on the top right corner of the page.
I can type in a message to start the Flow.
Within the Interaction Panel, I can click Chat, Info, or Settings to see more information and configuration options. When I click on Info, I see a submenu to view the Input, the Context, the State, or the Profile. To clear out the Chat, press "Control-B "on your keyboard. You can also click on the vertical ellipses, and select "Clear Chat". Back at the top, I can also click on the profile icon to see My Profile, set Access Controls, and other options. Finally, to return to Agent Dashboard, click on the Name of the Agent. To return to the Agent overview, click on AI.
Wie findet man sich auf der Cognigy-Benutzeroberfläche zurecht? In diesem Video wird sehr viel geklickt. Halten Sie also Ihre Maus oder Trackpad bereit für einen Rundgang durch Cognigy.AI. Beginnen wir mit der Agenten-Übersichtsseite. Also der Ansicht, die Ihnen direkt nach dem Einloggen angezeigt wird. Auf der linken Seite des Dashboards sehen Sie Ihre Agenten. Ich habe nur derzeit noch keine. Zudem sehen Sie einige Neuigkeiten und Ressourcen für den Einstieg. Klicken Sie hier auf „Help Center“, um zu einigen hilfreichen Schritt-für-Schritt-Tutorials zu gelangen. Ich erstelle einen Agenten, indem ich auf „Create Agent“ klicke und mich vom Assistenten leiten lasse. Ich verwende die „Restaurant“-Vorlage als Beispiel zum Erkunden der Benutzeroberfläche.
Im Agenten-Dashboard werden mir einige Statistiken angezeigt. Es gibt jetzt noch keine, aber sobald ich den Agenten starte, erscheinen hier die Daten. Und ich kann auf diesen Pfeil klicken, um noch mehr zu sehen.
Konzentrieren wir uns zuerst auf die linke Seitenleiste. Wenn Sie den Zeiger darüber bewegen, werden Ihnen einige Top-Level-Navigationskategorien angezeigt. Klicken Sie auf eine Kategorie, um die jeweiligen Ressourcen zu sehen.
Die erste, die ich öffnen werde, befindet sich unter „Build“: Wir öffnen „Flows“. Hier sehen Sie alle Flows dieses Agenten und ich klicke auf meinen „Main“-Flow. Sie können im Flow Editor durch Ziehen und Scrollen, Halten und Zoomen navigieren. Und Sie können den Zoom auch in der unteren linken Ecke steuern.
Sie können Ihrem Diagramm eine Node hinzufügen, indem Sie auf ein beliebiges Pluszeichen klicken. Dadurch wird eine durchsuchbare Liste von Node-Typen angezeigt. Ich füge eine Say-Node oben im Diagramm hinzu. Beachten Sie, dass durch die Kombination „Strg“-Taste und Mausklick hilfreiche Optionen wie Kopieren, Einfügen und Löschen erscheinen. Und ich kann sogar ganze Zweige der Baumansicht auf- und zuklappen, indem ich diese Option im Kontextmenü wähle. Oder auch einfach durch Doppelklicken der Node.
Schließlich kann ich Nodes durch Ziehen und Ablegen innerhalb des Baum-Diagramms umpositionieren.
Durch Klicken auf den Reiter „NLU“ oben gelange ich zum Intent Editor. Wir werden uns den Intent Editor in einem anderen Video im Detail ansehen. Fürs Erste genügt ein Blick auf die vorhandenen Intents auf der linken Seite. Oben im Intent Editor sehen Sie die anderen Optionen, wie verknüpfte Flows und verknüpfte Lexika.
Ich wechsle zurück zur Diagrammansicht.
Um mit meinem Flow zu interagieren, kann ich auf das Interaktionspanel zugreifen, indem ich auf das Sprechblasensymbol ganz oben rechts klicke.
Ich kann eine Nachricht eingeben, um den Flow zu starten.
Im Interaktionspanel kann ich auf „Chat“, „Info“ oder „Settings“ klicken, um weitere Informationen und Konfigurationsoptionen anzuzeigen.
Wenn ich auf „Info“ klicke, öffnet sich ein Untermenü, in dem ich „Input“, „Context“, „State“ und „Profile“ wählen kann.
Um den Chat zu löschen, geben Sie auf Ihrer Tastatur die Tastenkombination „Strg + B“ ein. Sie können auch auf die drei vertikalen Punkte klicken und „Clear Chat“ auswählen.
Wieder im Menü ganz oben kann ich auch auf das Profilsymbol klicken, um mein Profil anzuzeigen oder Zugriffsberechtigungen und andere Optionen festzulegen.
Um schließlich zum Agenten-Dashboard zurückzukehren, klicken Sie auf den Namen des Agenten. Um zur Agenten-Übersichtsseite zurückzukehren, klicken Sie auf AI.
Kapitel 3: Einführung in Cognigy.AI NLU
Wie mache ich meinen Bot smart? Eine Übersicht über Cognigy.AI's Natural Languge Understanding.
Let's learn more about Cognigy NLU or Natural Language Understanding. I'll click on NLU at the top of my Flow Editor to look at the Intent Editor. I can upload or download Intents by clicking here. To create a new Intent in the Intent Editor, just click Create Intent. And enter a name.
Once you save your Intent, you'll see the Intent listed along with the option to enter example sentences. Enter five example sentences, and click Save to create your Intent. Intents have other interesting configuration options, such as the ability to create "Default Replies". A Default Reply allows you to respond to the user without adding any Nodes to your Flow. This can be valuable for cases where you're just giving a simple output and there's no real logic to execute. You can also enter a confirmation sentence. If the user's input doesn't quite meet a confidence threshold, but it's close enough, you can ask the user a question to confirm that this Intent is exactly what they're looking for. And you can also choose an Intent entry point. By default, Intents will go to whatever was the last entry point in your Flow. But you can specify this if you want the Intent to start off on a different part of your Chart. Annotations provide a user interface for annotating your example sentences. So, for example here, if I choose a location, I can double click. And then click the plus sign.
I can specify which Slot match or Lexicon match this word is associated with. What this means is I can enter fewer example sentences because I don't have to enter one example sentence for any potential Slot match I might be looking for. After you train your Intents, Cognigy provides Intent feedback. The system shows red, yellow, or green dots on each example sentence, each Intent, and the model as a whole. And this feedback can help you identify overlapping example sentences, and sentences whose uniqueness could be improved. Your objective isn't to have all green lights. But it gives you useful feedback in case you're not getting the Intent accuracy you're looking for. Cognigy.AI also provides multi-step Intent detection and Flows using hierarchical Intents. To create a hierarchical Intent: first, create a Parent Intent then you can create Child Intents. Finally, go back to your Parent Intent and select Inherit Example Sentences from Child Intents. Save and train, and now your model will be able to be even more accurate in detecting a user's Intent. In addition to providing a more efficient and accurate approach to Intent detection, hierarchical Intents make it easy to organize Intents. Under attached Lexicons, you'll choose whatever Lexicon you want to attach to this Flow. I want to talk for a moment about "Slot Fillers". In normal human interactions, we sometimes convey information all at once. And at other times we convey information one piece at a time. For example, I might say "I want to travel with three people to San Francisco next week". Or I might say it one at a time:
"I want to travel ... to San Francisco ... with three people ... next week."
In Cognigy, we can understand users, regardless of which approach they take. We do this with what we call the "Missing Pattern". You can deploy the Missing Pattern by using Slot Fillers. Slot Fillers keep an eye out for Slot matches and store those matches in the Cognigy Context. Used in combination with Question Nodes, you can achieve the Missing Pattern in a more straightforward fashion without writing code. To learn more about Slot Fillers, take a look at the documentation in the Help Center. While your model is training, you can look at the activity monitor to see how things are going.
Lassen Sie uns mehr über Cognigy NLU oder Natural Language Understanding erfahren. Ich klicke oben im Flow Editor auf NLU, um zum Intent Editor zu gelangen. Ich kann Intents hoch- oder herunterladen, indem ich hier klicke. Um einen neuen Intent im Intent Editor zu erstellen, klicken Sie einfach auf „Create Intent“.
Geben Sie einen Namen ein.
Sobald Sie Ihren Intent gespeichert haben, wird der Intent zusammen mit der Option, Beispielsätze einzugeben, aufgeführt. Geben Sie fünf Beispielsätze ein und klicken Sie auf Speichern, um Ihren Intent zu erstellen. Intents haben weitere interessante Konfigurationsoptionen, wie z. B. die Möglichkeit, Standardantworten zu erstellen. Eine Standardantwort ermöglicht es Ihnen, Nutzern zu antworten, ohne Ihrem Flow Nodes hinzuzufügen. Dies kann hilfreich sein, wenn Sie nur eine einfache Antwort geben möchten, hinter der keine auszuführende Logik steht. Sie können auch einen Bestätigungssatz eingeben. Wenn eine Nutzer-Eingabe einem Intent nicht ganz sicher zugeordnet werden kann, aber sehr nahe dran ist, können Sie dem Nutzer eine Frage stellen, um sicherzustellen, dass dieser Intent passend ist. Und Sie können auch einen Intent-Einstiegspunkt wählen. Standardmäßig werden Intents mit dem letzten Einstiegspunkt in Ihrem Flow verknüpft. Sie können jedoch vorgeben, dass ein Intent an einem anderen Teil des Diagramms beginnen soll. Annotationen bieten eine Benutzeroberfläche zum Annotieren Ihrer Beispielsätze. Wenn ich zum Beispiel hier einen Standort auswähle, kann ich ihn durch Doppelklicken hervorheben.
Und dann klicke ich auf das Pluszeichen.
Ich kann festlegen, mit welcher Slot-Übereinstimmung oder Lexikon-Übereinstimmung dieses Wort verknüpft ist. Dies bedeutet, dass ich weniger Beispielsätze eingeben muss, da nicht für alle potenziellen Slot-Übereinstimmungen ein eigener Beispielsatz erforderlich ist. Nachdem Sie Ihre Intents trainiert haben, gibt Cognigy Intent-Feedback. Das System zeigt rote, gelbe oder grüne Punkte bei jedem Beispielsatz, jedem Intent und dem Modell als Ganzes an. Dieses Feedback unterstützt Sie beim Erkennen von sich überschneidenden Beispielsätzen sowie Sätzen, deren Einzigartigkeit verbessert werden kann. Das Ziel ist es nicht, ausschließlich grüne Punkte zu erreichen. Aber das Feedback ist nützlich für den Fall, dass Sie nicht die gewünschte Intent-Genauigkeit erzielen. Cognigy.AI bietet auch eine mehrstufige Intent-Erkennung und Flows mit hierarchischen Intents. So erstellen Sie einen hierarchische Intent: Erstellen Sie zuerst einen Parent Intent, dann können Sie Child Intents erstellen. Kehren Sie schließlich zu Ihrem Parent Intent zurück und wählen Sie die Option zum Übernehmen der Beispielsätze der Child Intents aus. Speichern Sie und lassen Sie die Intents trainieren. Danach wird Ihr Modell in der Lage sein, den Intent eines Nutzers noch genauer zu erkennen. Hierarchische Intents bieten nicht nur einen effizienteren und genaueren Ansatz zur Intent-Erkennung, sondern erleichtern auch die Organisation von Intents. Unter „Attached Lexicons“ können Sie ein beliebiges Lexikon auswählen, das Sie mit diesem Flow verknüpfen möchten. Ich möchte nun über „Slot Filler“ sprechen. In normalen zwischenmenschlichen Interaktionen übermitteln wir Informationen manchmal auf einen Schlag. Und in anderen Fällen übermitteln wir Informationen Stück für Stück. Zum Beispiel könnte ich sagen: „Ich möchte nächste Woche mit drei Personen nach San Francisco reisen“. Oder ich sage es nacheinander: „Ich möchte verreisen...
nach San Francisco... mit drei Personen... nächste Woche.“ Cognigy ist in der Lage, Nutzer unabhängig vom gewählten Ansatz zu verstehen.
Wir nutzen dafür das sogenannte „Missing Pattern“. Sie können das Missing Pattern mit Hilfe von Slot Filler anwenden. Slot Filler halten Ausschau nach Slot-Übereinstimmungen und speichern diese im Cognigy-Kontext. In Kombination mit Question-Nodes können Sie das Missing Pattern auf direktere Weise anwenden, ohne Code zu schreiben. Mehr Informationen über Slot Filler finden Sie in der Dokumentation im Help Center. Während Ihr Modell trainiert, können Sie in der Aktivitätsübersicht den Fortschritt überprüfen.
Kapitel 4: Bot-Building für Einsteiger
Schritt-für-Schritt Tutorial zum Bau eines ersten Virtuellen Agenten.
Let's build something! Let's start from scratch and create a simple Flow that asks about dietary preferences. Our requirements will be threefold: The user will ask if we have offerings that meet their dietary needs, then the bot will respond with menu recommendations based on the user's preference. We'll give a static example where we just output some content that we store in the bot itself. And we'll do a dynamic example where we pull in data from an external system and give an answer. To realize these requirements we'll need a Lexicon with different dietary restrictions, an Intent that will match inputs related to dietary requirements, and a Flow that will process the user input and respond back. We'll also use an Extension to query dietary information in an external database. First, I'll create a new Lexicon and call it "Diet". I could create Key Phrases manually in the UI, but instead, I'll just upload a Lexicon I already created. You'll see the Lexicon includes Key Phrases, Tags, which are just categories for the Key Phrases, and Synonyms, which are different words that could point to the same Key Phrase. Now we'll create a new Flow called Diet. I'll click on the NLU tab at the top and create my Intent. I can enter these Intents into the UI, but I'll go ahead and just upload these as well.
I want to add some annotations, I'm going to first associate the Lexicon I just created with this Flow. Now we'll go through each dietary restriction and annotate it. This saves me from having to create example sentences for each diet type. I'll save and I'll train.
The last step is to build the Flow in the Chart View. I'll create a Once Node and paste in the nice welcome message we saw earlier. I'll say to the user, "How may I help you today"? I'll handle the response by adding a Lookup Node. This lets me respond differently based on the user's Intent. I'll change one of the Case Nodes to use the Intent I created earlier. Finally, I'll respond by telling the user that we support a variety of dietary restrictions.
If they mentioned a specific one, we'll let them know something specific about their preference using another LookUp Node. I'll use CognigyScript here to check for the Slot match.
Alright, let's test it out. I'll create a Playbook so we can reuse this script in the future. As a final step, I want to retrieve data from an external system to give an example. To do this, I'll use a Cognigy Extension I created for this training.
I'll add the Extension Node to my Chart and I'll send a request for an option that matches the user's dietary preference. We can imagine that this is coming from a list in order management system or a content management system. I'll pass in the user's dietary preferences and return a result. Now let's run our Playbook again.
And that's how to get started building a simple bot using Cognigy.AI.
Lassen Sie uns einen Bot erstellen! Wir beginnen ganz am Anfang und erstellen einen einfachen Flow, der nach Essgewohnheiten fragt. Dabei stellen wir drei Anforderungen: Der Nutzer soll fragen, ob wir etwas im Angebot haben, das seinen Ernährungswünschen entspricht, woraufhin der Bot mit Menüempfehlungen antwortet, die auf den Vorlieben des Nutzers basieren. Wir geben ein statisches Beispiel, bei dem wir nur Inhalte anbieten, die wir im Bot selbst speichern. Und wir werden ein dynamisches Beispiel veranschaulichen, bei dem wir Daten aus einem externen System abrufen, um eine Antwort zu geben.
Um diese Anforderungen zu erfüllen, benötigen wir ein Lexikon mit verschiedenen Ernährungsvorgaben, einen Intent, der im Hinblick auf Ernährungsanforderungen zum Nutzer-Input passt, und einen Flow, der die Nutzereingaben verarbeitet und darauf antwortet. Wir verwenden zudem eine Extension, um Ernährungsinformationen aus einer externen Datenbank abzurufen. Zuerst erstelle ich ein neues Lexikon und nenne es „Diet“. Ich könnte Keyphrases manuell in der Benutzeroberfläche erstellen, lade aber stattdessen einfach ein Lexikon hoch, das ich bereits erstellt habe. Wie Sie sehen, enthält das Lexikon Keyphrases, Tags, die Kategorien für die Keyphrases darstellen, und Synonyme, bei denen es sich um verschiedene Wörter handelt, die auf dieselbe Keyphrase verweisen könnten. Jetzt erstellen wir einen neuen Flow namens „Diet“. Ich klicke oben auf den NLU-Reiter und erstelle meinen Intent. Ich könnte diese Intents über die Benutzeroberfläche eingeben, werde sie stattdessen aber auch einfach hochladen.
Ich möchte einige Annotationen hinzufügen. Zuerst verknüpfe ich das Lexikon, das ich gerade erstellt habe, mit diesem Flow. Dann gehen wir jede Ernährungsvorgabe durch und fügen Annotationen hinzu. Dies erspart mir die Erstellung von Beispielsätzen für jede Ernährungsweise.
Ich speichere meine Änderungen und trainiere die Intents.
Der letzte Schritt besteht darin, den Flow in der Diagrammansicht zu erstellen. Ich erstelle eine Once-Node und füge die nette Willkommensnachricht, die wir bereits kennen, ein. Ich sage zum Nutzer: „Wie kann ich Ihnen heute helfen“? Zum Verarbeiten der Antwort ergänze ich eine Lookup-Node. Dadurch kann ich je nach Nutzer-Intent unterschiedlich reagieren. Ich ändere eine der Case-Nodes, um den zuvor erstellten Intent zu verwenden. Abschließend antworte ich dem Nutzer, dass wir eine Vielzahl von Ernährungswünschen erfüllen können.
Wenn er einen bestimmten erwähnt, machen wir dem Nutzer über eine andere LookUp-Node ein spezifisches Angebot zu seiner Präferenz. Ich werde hier CognigyScript verwenden, um nach der Slot-Übereinstimmung zu suchen.
Sehr schön, Zeit für einen Test.
Ich erstelle ein Playbook, damit wir dieses Skript in Zukunft wiederverwenden können. Als letzten Schritt möchte ich beispielhaft Daten aus einem externen System abrufen. Dazu verwende ich eine Cognigy Extension, die ich für dieses Training erstellt habe.
Ich füge die Extension-Node zu meinem Diagramm hinzu und frage nach einer Option, die der Ernährungspräferenz des Nutzers entspricht. Diese könnte z. B. aus einer Liste in einem Bestellmanagement- oder Content-Management-System stammen. Ich übermittle die Ernährungsvorlieben des Nutzers und gebe das Ergebnis weiter. Spielen wir unser Playbook nun erneut ab.
Das war's! So starten Sie in die Erstellung eines einfachen Bots mit Cognigy.AI.
Bonus Episode: Bot-Building für Fortgeschrittene
In der Bonus Episode des Essentials Training zeigen wir, wie Virtuelle Agenten smart werden: Mit Lexikons, Intents, Slot Fillers, Flows, Extensions, Question Nodes, Context, Extensions, Webchat Plugins, Endpoints, CSS Customization und Webseiten-Integration. Viel Spaß!
- Aiport example and assets provided in Foundation Training and Flow Developer Training
This video is a follow-on to the basic training videos, and provides some inspiration on how to use more Cognigy features. I'm going to visit an imaginary site that lets me check flight status across multiple airlines. If I linger on the page, the bot asks me if I need help, and I do. I'll start by asking about my flight status. I'll give the chatbot some answers, one by one.
I get my results back from the Aviation Stack API. And now I'll click on a result to see the flight details.
Let's do another search. But this time I want to take more of a natural language approach. I'll say "I need to check my flight from ORD to SFO on United".
Note that the bot skips all of the questions it asked before because it has identified the airports and the airline automatically.
I can switch up my word order and use city names instead of airport codes. So, I can say "I need to check my flight arriving in San Francisco from Chicago on American".
The bot understands, regardless of how I express myself. If I leave out a detail, the bot will make sure it asks me. So, I'll say I need to check my flight arriving at LAX from Chicago.
Alright! So let's take this apart one by one and see how it's built in Cognigy. Let's start with looking at how Cognigy recognizes cities and airport names. I'll go to my Agent and look at my Lexicons. Out of the box, Cognigy ships with Lexicon for airport codes. So that gave me a head start in creating this Agent. I also created a Lexicon for airlines that are common in the US. Note a couple of things here. I've added Synonyms to a number of the airlines to reflect the ways that users might refer to these terms. I've also given each of them a Slot name.
You might remember from other videos that you can upload and download Lexicons as a CSV file if it's easier to edit them in Excel. I've also created a Miscellaneous icon for different entities that I might want to track in a conversation. In this case, I want Cognigy to recognize different ways of specifying an arrival destination and a departure destination. Ok! My Lexicons are all set up. Now let's switch over to the Flow and look at the NLU configuration.
We're tackling a simple use case here, "Checking flight status". So I've just set up one Flow. In a normal scenario, you'll have numerous different use cases. And you'll likely build them in separate Flows. This allows you to create your conversations modularly, making it easy to organize and reuse Flows. I'll click on NLU at the top of the screen. And I have just two Intents: A flight status Intent and a Search Again Intent. With just two Intents, I don't need to create any Intent hierarchy. So let's just click on flight status.
To recap our earlier video, to create an Intent in Cognigy, you add example sentences that teach the system how to recognize and predict user Intent. I've done that here with examples like "What's the status of my flight" and "Checking on my flight status". I've also added annotations to my sentences. So in the case of, Is my flight from SFO to ORD on time?, I've associated SFO and ORD to the Slots that I defined in my airport code Lexicon. Here, I also add an example of specifying the airline name.
The point of this is to reduce the number of example sentences you need to create manually. Essentially having placeholders that stand in for Slot matches. The Search Again Intent is a little different. This is just to reset the flight details when the user wants to search for another flight. I gave it a special casing to note that this Intent is typically triggered by a Quick Reply button. But I also added some example sentences in case a user writes a sentence instead of clicking on a button.
Let's quickly look at attached Lexicons. And you can see that I've turned on the airlines airport codes and Misc Lexicon so that I can use them with my Flow. Finally, I created a Slot Filler. Slot Fillers are helpful when you want the NLU to keep an eye out for a specific Slot match. I wanted to watch out for airline names. So I don't have to ask the user which airline they're on if they've already shared that information. Alright! Now let's look at the Flow. I'll open the Interaction Panel and say "Hi". You'll see that we immediately hit the Once Node, which then leads to the On First Time branch. This is where you can put any messages to the user that should only be output once in a conversation.
Now, I'll say "I want to check on my flight from SFO to ORD on United".
Let's see what's going on.
In the Chart, you'll see a couple of Nodes that we'll talk about later. Copy Data to Context and the If Node. For now, let's go to the Lookup Node where we check the user's Intent.
We get a match for the flight status Intent, and then we hit the Fill Aviation Slots Node. What's this? It's a special node created as a Cognigy Extension. Cognigy Extensions are Nodes you can create using the same pattern Cognigy uses to build out our out-of-box Nodes. If I click on the plus sign and go to Extensions, I can see all of the Aviation-oriented Extensions I created for this project. In many cases, you don't have to create Extensions. Cognigy gives a lot of flexibility in the Standard Nodes and Code Nodes and for retrieving external data HTTP Request Nodes. But it can be nice to package more complex logic up into Extensions just to make life easier for Flow Developers.
The Fill Aviation Slots Node is how I approached mapping the right Slot match to the departure or destination city. A user can say, "I'm leaving San Francisco", "I'm departing San Francisco", "My flight is from San Francisco". And they can say these things before or after they specify what their destination is. The logic for this isn't too complicated. But it's even simpler if I put it into its own Node type. Next, we hit this Question Node. What airline are you flying on? Now, We didn't hit this Node in the example I just showed. Why? Because if I go to context, you'll see I turned on "Skip if answer exists in context". Because I set up a Slot filler for this already, Cognigy is always on the lookout for the Slot match. If it's already in the Context, it will skip this question.
A similar logic applies for the subsequent questions, if the answer is already in the Context, Cognigy isn't going to ask the question.
Imagine if I said I want to check on my flight from SFO to ORD on United. And the next question the bot asks me was "where are you you flying from?" Well, it wouldn't be the best experience and the bot wouldn't be acting intelligently.
Alright, now I'll clear the Interaction Panel using my favorite shortcut, "Control-B"or "Command-B". I'll show you what happens if I leave out one piece of information. I'll say I want to check my flight from SFO on United.
Now it asks me for my departure city.
Once I provide all the information it needs, it gives me a confirmation message.
Here we use some CognigyScript to output the Context Variables I've collected so far. I get these values from the Cognigy Context, which you can see here.
The next step is I run another Cognigy Extension called "Get Schedule".
Get Schedule passes the Departure City, Arrival City, and airline to the Aviation Stack API and returns results. Behind the scenes, I'm just making an HTTP Request to the Aviation Stack API. And passing it the API key that I defined my connection here. I could have done the same thing using an HTTP Request Node. But it's cleaner and easier for a non-technical user to do it this way. And to make it even easier, I've defined Tokens that hide the underlying CognigyScript, I used to get to the Context Variables.
Finally, I use a Show Schedule Results Node to output the results. The reason I do this, rather than using a Say Node, is that I want to use a Webchat plugin to output that nice table we saw in the Chat Interface. I could achieve this in a Say Node just using a data payload. But using Extensions makes it less error-prone and it's simple for a non-technical user. So at this point, we've output the table of results, which you see here. And this is using one of our out-of-the-box Webchat plugins that you'll find on GitHub.
When you click on a row in the table, it passes some data back to you. This is why I added the copy data to Context Node at the beginning of my Flow. In the If, I check to see if I have table data passed back to me. That's the data from the table of flight results. And if so, I render that nice visual of the flight details. To do this, I'm using our Adaptive Cards plugin that lets me create some nice visualizations in the chatbot. Again, you can find this plugin on GitHub. If the user wants to search for another flight, I want to clear out all of the data we've collected so far. I present a button that says search for another flight. And I use this 'cIntent' notation to tell Cognigy that when the user clicks this button, I want to trigger the Search Again Intent. Let's look at that here. You can see I'm removing each Context Element from the Cognigy Context, using a Remove from Context Node. And finally, I let the user know they can search again.
How can we preview this? There's a quick way you can use for testing, and then there's the approach you'll actually use to embed the Chat on the website. The simple way to preview is go to Deploy Endpoints, and create a Webchat Endpoint, as I've done here.
If you look at my configuration, I've put links to the plugins I'm using. One for the Table Display and the other for Adaptive Cards. I've also set a nice background image. To preview, just click open Webchat.
To embed the Webchat on your website, you can use our simple Embed Codes. You'll find them on GitHub in the documentation for our Webchat Widget. I'll walk you through what I've done. In my HTML, I've linked to my Webchat Widget and my plugins, just like I did in the configuration in the UI. To start my Webchat, I've executed the "initWebchat" method. More on that in a moment. One of the things I've done is add some styling to my Webchat Widget. Cognigy makes it easy to customize any aspect of the Webchat. I wanted to make mine a little bit wider. So it would be comfortable for users to see the table of scheduled results. You can see full documentation on customizing the Webchat Widget here.
Let's take a quick look at options for the Embed Code. If I go to GitHub, I can see all of the options available to me and quickly see some examples on Code Sandbox. For example, see this one of embedding the Webchat using Webchat plugins. You can use Code Sandbox as a quick way to test your Embed Code. Just save and you can preview the change immediately. I hope you enjoyed learning about Cognigy from this video and got a little deeper into the possibilities of what you can build.
Thanks.
Dieses Video ist eine Ergänzung zu den Basis-Videos und soll Sie zur Verwendung weiterer Cognigy-Funktionen inspirieren. Ich werde eine imaginäre Website besuchen, auf der ich den Flugstatus mehrerer Fluggesellschaften überprüfen kann. Wenn ich auf der Seite verweile, fragt mich der Bot, ob ich Hilfe brauche, und das tue ich. Zunächst frage ich nach meinem Flugstatus und gebe dem Chatbot dann nacheinander einige Antworten.
Ich erhalte meine Ergebnisse von der Aviation-Stack-API. Und jetzt klicke ich auf einen Eintrag, um mir die Flugdetails anzusehen.
Lassen Sie uns noch eine Suche starten. Aber dieses Mal möchte ich einen etwas natürlicheren Sprachansatz wählen. Ich gebe folgendes ein: „Ich möchte meinen Flug von ORD nach SFO mit United überprüfen.“
Beachten Sie, dass der Bot alle zuvor gestellten Fragen überspringt, da er die Flughäfen und die Fluggesellschaft automatisch erkannt hat.
Ich kann meine Wortfolge auch ändern und Ortsnamen anstelle von Flughafencodes verwenden. Ich kann also eingeben: „Ich möchte meinen Flug überprüfen, Ankunft in San Francisco von Chicago mit American“.
Der Bot versteht mich, egal wie ich mich ausdrücke. Wenn ich ein Detail auslasse, wird der Bot mich danach fragen. Jetzt gebe ich an, dass ich meinen Flug überprüfen möchte, der in LAX aus Chicago ankommt.
Sehr schön! Lassen Sie uns nun die einzelnen Schritte analysieren und herausfinden, wie der Aufbau in Cognigy aussieht. Beginnen wir damit, wie Cognigy Städte und Flughafennamen erkennt. Ich wechsle zu meinem Agenten und sehe mir meine Lexika an. Cognigy enthält standardmäßig ein Lexikon für Flughafencodes, was mir einen Schnellstart bei der Erstellung dieses Agenten ermöglicht hat. Ich habe auch ein Lexikon mit allen bekannten Fluggesellschaften in den USA erstellt. Hier gibt es einige Aspekte zu beachten. Ich habe einer Reihe von Fluggesellschaften Synonyme hinzugefügt, um möglichst viele Ausdrücke miteinzubeziehen, die Nutzer für diese Begriffe verwenden könnten. Ich habe jeder von ihnen auch eine Slot-Bezeichnung zugewiesen.
Sie wissen vielleicht noch aus anderen Videos, dass Sie Lexika als CSV-Datei hoch- und herunterladen können, wenn es einfacher ist, sie in Excel zu bearbeiten. Ich habe auch eine Sonstige-Kategorie für verschiedene Elemente erstellt, nach denen ich in einer Konversation vielleicht suchen möchte. In diesem Fall möchte ich, dass Cognigy verschiedene Optionen zum Benennen eines Ankunftsziels und eines Abflugziels erkennt. Ok! Meine Lexika sind alle eingerichtet. Wechseln wir nun zum Flow und schauen uns die NLU-Konfiguration an.
Wir nehmen hier einen einfachen Anwendungsfall in Angriff: „Überprüfung des Flugstatus“. Entsprechend habe ich nur einen Flow eingerichtet. In einem normalen Szenario haben Sie zahlreiche verschiedene Anwendungsfälle, die Sie wahrscheinlich in separaten Flows abbilden. Auf diese Weise können Sie Ihre Konversationen modular erstellen, was die Organisation und Wiederverwendung von Flows erleichtert. Ich klicke ganz oben auf NLU und sehe nur zwei Intents: Einen Flugstatus-Intent und einen „Erneut suchen“-Intent. Mit nur zwei Intents muss ich keine Intent-Hierarchie festlegen. Also klicken wir einfach auf den Flugstatus.
Wie wir aus einem vorherigen Video wissen, erstellen wir einen Intent in Cognigy, indem wir Beispielsätze hinzufügen, mit denen das System lernt, einen Nutzer-Intent zu erkennen und vorherzusagen. Ich habe das hier mit Beispielen wie „Wie ist der Status meines Fluges“ und „Überprüfung meines Flugstatus“ gemacht. Ich habe auch Annotationen zu meinen Sätzen hinzugefügt. So habe ich für den Satz „Ist mein Flug von SFO nach ORD pünktlich?“ die Codes SFO und ORD mit den Slots verknüpft, die ich in meinem Flughafencode-Lekicon definiert habe. Hier gebe ich auch ein Beispiel für die Angabe der Fluggesellschaft.
Der Sinn besteht darin, die Anzahl der Beispielsätze zu reduzieren, die Sie manuell erstellen müssen. Im Wesentlichen geht es darum, Platzhalter zu haben, die durch Slot-Übereinstimmungen ersetzt werden können. Der „Erneut suchen“-Intent ist ein wenig anders. Dieser dient nur dazu, die Flugdaten zurückzusetzen, wenn der Nutzer nach einem anderen Flug suchen möchte. Ich habe ihm eine spezielle Schreibweise gegeben, um anzumerken, dass dieser Intent in der Regel durch einen Quick-Reply-Button ausgelöst wird. Aber ich habe auch einige Beispielsätze hinzugefügt, falls ein Nutzer doch lieber einen Satz schreibt, anstatt auf einen Button zu klicken.
Schauen wir uns schnell die verknüpften Lexika an. Wie Sie sehen, habe ich die Lexika für Fluggesellschaften und Flughafencodes sowie das Sonstige-Lexikon aktiviert, damit ich sie mit meinem Flow verwenden kann. Schließlich habe ich noch einen Slot Filler erstellt. Slot Filler sind nützlich, wenn Sie möchten, dass die NLU nach einer bestimmten Slot-Übereinstimmung Ausschau hält. Ich wollte besonderes Augenmerk auf Fluggesellschaften legen. So muss ich die Nutzer nicht fragen, mit welcher Fluggesellschaft sie fliegen, wenn sie diese Information bereits mitgeteilt haben. In Ordnung! Schauen wir uns jetzt den Flow an. Ich öffne das Interaktions-Panel und sage „Hi“. Wie Sie sehen, treffen wir sofort auf die Once-Node, die uns dann zum „On First Time“-Pfad weiterleitet. Hier können Sie dem Nutzer Nachrichten senden, die nur einmal in einer Konversation verwendet werden sollen.
Jetzt gebe ich ein: „Ich möchte meinen Flug von SFO nach ORD mit United überprüfen“.
Mal sehen, was passiert.
Im Diagramm sehen Sie ein paar Nodes, über die wir später sprechen werden: „Copy Data to Context“ und die If-Node. Gehen wir aber zunächst zur Lookup-Node, wo wir den Intent des Nutzers überprüfen.
Wir erhalten eine Übereinstimmung mit dem Flugstatus-Intent und treffen dann auf die „Fill Aviation Slots“-Node. Was das ist? Es ist eine spezielle Node, die als Cognigy-Extension erstellt wurde. Cognigy-Extensions sind Nodes, die Sie nach dem gleichen Muster erstellen können, das Cognigy zur Erstellung der vorgegebenen Standard-Nodes verwendet. Wenn ich auf das Pluszeichen klicke und zu Extensions wechsle, kann ich alle Luftfahrt-spezifischen Extensions sehen, die ich für dieses Projekt erstellt habe. In vielen Fällen müssen Sie keine Extensions erstellen. Cognigy bietet viel Flexibilität in Bezug auf die Standard-Nodes, Code-Nodes und, zum Abrufen externer Daten, „HTTP Request“-Nodes. Es kann jedoch hilfreich sein, eine komplexere Logik in Extensions zusammenzufassen, um Flow-Entwicklern die Arbeit zu erleichtern.
Die „Fill Aviation Slots“-Node ist meine Antwort auf die Frage, wie ich der Abflug- oder Zielstadt die korrekte Slot-Übereinstimmung zuordne. Ein Nutzer kann sagen: „Ich starte in San Francisco“, „Ich fliege von San Francisco ab“ oder „Mein Flug kommt aus San Francisco“. Und er kann dies sagen, bevor oder nachdem er sein Ziel genannt hat. Die Logik hierfür ist nicht allzu kompliziert. Aber alles wird noch viel einfacher, wenn ich sie als eigenen Node-Typ integriere. Als Nächstes gelangen wir zu dieser Question-Node: „Mit welcher Fluggesellschaft fliegen Sie?“ Nun, diese Node ist uns in dem Beispiel, das ich gerade gezeigt habe, nicht begegnet. Warum nicht? Wenn ich zu Kontext wechsle, sehen Sie, dass die Option zum Überspringen, wenn die Antwort im Kontext existiert, aktiviert ist. Da ich hierfür bereits einen Slot Filler eingerichtet habe, ist Cognigy immer auf der Suche nach einer Slot-Übereinstimmung. Wenn eine solche bereits im Kontext vorhanden ist, wird diese Frage übersprungen.
Eine ähnliche Logik gilt für die nachfolgenden Fragen. Wenn eine Antwort bereits im Kontext vorhanden ist, wird Cognigy die entsprechende Frage nicht stellen.
Stellen Sie sich vor, ich würde eingeben: „Ich möchte meinen Flug von SFO nach ORD mit United überprüfen“. Und der Bot würde mich als Nächstes fragen: „Von wo fliegen Sie ab?“. Nun, das wäre nicht die beste Erfahrung und der Bot würde nicht intelligent agieren.
In Ordnung, ich lösche jetzt die Interaktion im Panel mit meinem Lieblings-Shortcut „Steuerung + B" bzw. „Command + B“. Ich zeige Ihnen nun, was passiert, wenn ich eine Information auslasse. Ich gebe ein, dass ich meinen Flug von SFO mit United überprüfen möchte.
Jetzt fragt mich der Bot nach meiner Zielstadt.
Sobald ich alle benötigten Informationen eingegeben habe, erhalte ich eine Bestätigungsnachricht.
Hier verwenden wir etwas CognigyScript, um die bisher gesammelten Kontext-Variablen auszugeben. Ich erhalte diese Werte aus dem Cognigy-Kontext, den Sie hier sehen können.
Als nächsten Schritt führe ich eine weitere Cognigy-Extension namens „Get Schedule“ aus.
Diese leitet die Abflugstadt, die Zielstadt und die Fluggesellschaft an die Aviation-Stack-API weiter und übermittelt die Ergebnisse. Im Hintergrund stelle ich einfach eine HTTP-Anfrage an die Aviation-Stack-API und übermittle ihr den API-Schlüssel, mit dem ich meine Verbindung hier definiert habe. Ich hätte dies auch mit einer „HTTP Request“-Node machen können. Aber es ist übersichtlicher und einfacher für einen Nutzer ohne technischen Hintergrund, es auf diese Weise umzusetzen. Und um es noch einfacher zu machen, habe ich Token definiert, die das zugrunde liegende CognigyScript verbergen, mit dem ich die Kontext-Variablen abgefragt habe.
Schließlich verwende ich eine „Show Schedule Results“-Node, um die Ergebnisse zu übermitteln. Ich wähle diesen Ansatz, anstatt eine Say-Node zu verwenden, weil ich ein Webchat-Plugin verwenden möchte, um diese schöne Tabelle auszugeben, die wir im Chat-Interface gesehen haben. Ich könnte dies zwar mit einer Say-Node unter Verwendung einfacher Nutzdaten realisieren. Die Verwendung von Extensions ist jedoch weniger fehleranfällig und einfacher umsetzbar für Nutzer ohne technischen Hintergrund. An diesem Punkt geben wir also die Ergebnistabelle aus, die Sie hier sehen. Und dafür wird eines unserer Standard-Webchat-Plugins verwendet, das Sie auf GitHub finden.
Wenn Sie auf eine Zeile in der Tabelle klicken, werden einige Daten an Sie übermittelt. Aus diesem Grund habe ich am Anfang meines Flows die „Copy Data to Context“-Node hinzugefügt. Mit der If-Node überprüfe ich, ob Tabellendaten an mich übermittelt wurden. Das sind die Daten aus der Tabelle der Flugergebnisse. Und wenn dem so ist, präsentiere ich diese nette Visualisierung der Flugdetails. Dazu verwende ich unser Adaptive Cards-Plugin, mit dem ich schöne Visualisierungen im Chatbot erstellen kann. Auch dieses Plugin finden Sie auf GitHub. Wenn der Nutzer nach einem anderen Flug suchen möchte, muss ich alle bisher gesammelten Daten löschen. Ich verwende einen speziellen Button zum Suchen nach einem anderen Flug. Und ich verwende diese „cIntent“-Notation, um Cognigy mitzuteilen, dass ich den „Erneut suchen“-Intent auslösen möchte, wenn der Nutzer auf diesen Button klickt. Sehen wir uns das genauer an. Wie Sie sehen, entferne ich jedes Kontext-Element aus dem Cognigy-Kontext mit einer „Remove from Context“-Node. Und schließlich lasse ich den Nutzer wissen, dass er erneut suchen kann.
Wie können wir uns dies nun in einer Vorschau ansehen? Es gibt einen schnellen Weg zum einfachen Testen und dann gibt es den Ansatz, den Sie verwenden werden, um den Chat tatsächlich in die Website einzubetten. Für die einfache Test-Vorschau navigieren Sie zu „Deploy“, dann „Endpoints“ und erstellen einen Webchat-Endpoint, wie ich es hier getan habe.
Sie sehen in meiner Konfiguration, dass ich Links zu den Plugins angegeben habe, die ich verwende. Einen für die Tabellenanzeige und einen anderen für Adaptive Cards. Außerdem habe ich auch ein schönes Hintergrundbild angegeben. Um eine Vorschau anzuzeigen, klicken Sie einfach auf Webchat öffnen.
Um den Webchat in Ihre Website einzubetten, können Sie unsere einfachen Embed-Codes verwenden. Sie finden sie auf GitHub in der Dokumentation zu unserem Webchat-Widget. Ich zeige Ihnen, wie ich es gemacht habe. In meinem HTML-Editor habe ich Links zu meinem Webchat-Widget und meinen Plugins hinzugefügt, genau wie in meiner Konfiguration über die Benutzeroberfläche. Um meinen Webchat zu starten, führe ich die „initWebChat“-Methode aus. Dazu gleich mehr. Was ich noch gemacht habe, ist, das Design meines Webchat-Widgets etwas zu ändern. Cognigy ermöglicht eine einfache Anpassung von jedem Aspekt des Webchats. Ich wollte meinen ein wenig breiter machen, damit die Nutzer die Flugplan-Tabelle besser erkennen können. Die vollständige Dokumentation zum Anpassen des Webchat-Widgets finden Sie hier.
Werfen wir einen kurzen Blick auf die Optionen für den Embed-Code. Wenn ich zu GitHub gehe, finde ich eine Übersicht aller zur Verfügung stehenden Optionen und kann mir auch schnell einige Beispiele über CodeSandbox ansehen, wie zum Beispiel dieses zum Einbetten des Webchats über Webchat-Plugins. Sie können CodeSandbox als schnelle Test-Möglichkeit für Ihre Embed-Codes verwenden. Nach dem Speichern können Sie die Änderung sofort in der Vorschau anzeigen. Ich hoffe, Sie hatten Spaß mit diesem Video und konnten mehr über Cognigy und die vielfältigen Möglichkeiten beim Erstellen eigener Bots erfahren.
Danke.
Comments
0 comments