{"id":39834,"date":"2023-03-29T16:02:34","date_gmt":"2023-03-29T14:02:34","guid":{"rendered":"https:\/\/www.inovex.de\/?p=39834"},"modified":"2023-06-07T07:57:27","modified_gmt":"2023-06-07T05:57:27","slug":"chatbot-open-source-framework-rasa","status":"publish","type":"post","link":"https:\/\/www.inovex.de\/de\/blog\/chatbot-open-source-framework-rasa\/","title":{"rendered":"Entwicklung eines Chatbots mit dem Open Source Framework Rasa"},"content":{"rendered":"<p>Chatbots sind seit einigen Jahren eine moderne L\u00f6sung f\u00fcr automatisierte Prozesse und werden viel im Bereich des Supports eingesetzt. Durch ihre st\u00e4ndige Verf\u00fcgbarkeit und die einfache Nutzung gewinnen sie immer mehr an Beliebtheit. Wir m\u00f6chten herausfinden, wie man einen Chatbot aufsetzen und ihn in einen internen Prozess integrieren kann.<!--more--><\/p>\n<p>Im Zuge eines Studierendenprojektes befassten wir uns mit dem Aufbau eines Chatbots in der Cloud und seiner Integration in unser zentrales Kommunikationstool Slack. In diesem Blogpost berichten wir von unseren Erfahrungen, eine Chatbot-Infrastruktur\u00a0aufzusetzen, und wie wir einen ersten Use Case bei inovex intern implementiert haben.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\"><p class=\"ez-toc-title\" style=\"cursor:inherit\"><\/p>\n<\/div><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.inovex.de\/de\/blog\/chatbot-open-source-framework-rasa\/#Zielsetzung\" >Zielsetzung<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.inovex.de\/de\/blog\/chatbot-open-source-framework-rasa\/#Use-Case\" >Use Case<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.inovex.de\/de\/blog\/chatbot-open-source-framework-rasa\/#Chatbot-Features\" >Chatbot Features<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.inovex.de\/de\/blog\/chatbot-open-source-framework-rasa\/#Flexibilitaet\" >Flexibilit\u00e4t<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.inovex.de\/de\/blog\/chatbot-open-source-framework-rasa\/#Unterstuetzung-und-Dokumentation\" >Unterst\u00fctzung und Dokumentation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.inovex.de\/de\/blog\/chatbot-open-source-framework-rasa\/#Feedback\" >Feedback<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.inovex.de\/de\/blog\/chatbot-open-source-framework-rasa\/#Vereinfachung\" >Vereinfachung<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.inovex.de\/de\/blog\/chatbot-open-source-framework-rasa\/#Architektur\" >Architektur<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.inovex.de\/de\/blog\/chatbot-open-source-framework-rasa\/#Lessons-Learned\" >Lessons Learned<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.inovex.de\/de\/blog\/chatbot-open-source-framework-rasa\/#Rasa-Framework\" >Rasa Framework<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.inovex.de\/de\/blog\/chatbot-open-source-framework-rasa\/#Entwicklung-und-Evaluierung-der-Benutzereingaben\" >Entwicklung und Evaluierung der Benutzereingaben<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.inovex.de\/de\/blog\/chatbot-open-source-framework-rasa\/#Deployment-und-Versionierung\" >Deployment und Versionierung<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/www.inovex.de\/de\/blog\/chatbot-open-source-framework-rasa\/#Zusammenfassung\" >Zusammenfassung<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Zielsetzung\"><\/span>Zielsetzung<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Im Vordergrund steht die Entwicklung eines intelligenten Assistenten, der Kolleg:innen im Alltag f\u00fcr h\u00e4ufige Fragen zur Seite steht. Wir nennen ihn\u00a0inovex Digital Assistant, kurz iDA. Mit iDA setzen wir uns das Ziel, einen modernen Ansatz f\u00fcr einen bestehenden Prozess zu entwickeln, der sich leicht in den Alltag integrieren l\u00e4sst. iDA kann dabei als Anlaufstelle f\u00fcr einen internen Prozess dienen und ihn vereinfachen, indem er durch einen Chatverlauf abgearbeitet und beschleunigt wird. Daf\u00fcr binden wir einen Chat-Client sowie die bisherige Datenquelle an. Am Ende der Konversation soll eine E-Mail mit den gesammelten Informationen geschickt werden. Dar\u00fcber hinaus f\u00fchren wir weitere Funktionen ein, die den Nutzer:innen helfen, Eingaben freundlich und umgangssprachlich zu gestalten. Mehr dazu sp\u00e4ter in der \u00dcbersicht der Features!<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Use-Case\"><\/span>Use Case<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Chatbots k\u00f6nnen f\u00fcr unterschiedliche Einsatzbereiche interessant sein \u2013 ob in der Vorbereitung, Mitarbeit oder dem Abarbeiten von Prozessen. Wir m\u00f6chten uns im ersten Ansatz einem internen Prozess widmen, den der Chatbot vollst\u00e4ndig erledigt: Derzeit wickeln wir die Reiseplanung intern \u00fcber Google Forms ab, d. h. wir sammeln bestimmte Informationen zu der Reise und bearbeiten sie im Nachgang anhand der im Formular gemachten Angaben. Die Abfrage \u00fcber Google Forms ist jedoch statisch und nicht sehr attraktiv. Daher m\u00f6chten wir einen digitalen Assistenten bauen, der sowohl einfach im Alltag integrierbar ist und ebensolche statische Prozesse vereinfacht. Bei inovex bilden wir unsere zentrale Kommunikation \u00fcber den Chat-Client Slack ab. Demzufolge entwickelten wir einen Chatbot, den wir in Slack aufrufen k\u00f6nnen und der den Reiseplanungsprozess abdeckt. Dabei legen wir Wert auf die Modularit\u00e4t, sodass die Komponenten klar getrennt sind und den Betrieb dadurch vereinfachen.<\/p>\n<figure style=\"width: 870px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.inovex.de\/wp-content\/uploads\/blogpost_ida_2.png\" alt=\"Konversation mit einem Chatbot in Slack\" width=\"870\" height=\"740\" \/><figcaption class=\"wp-caption-text\">Die Reisebuchung mit unserer neuen L\u00f6sung<\/figcaption><\/figure>\n<h2><span class=\"ez-toc-section\" id=\"Chatbot-Features\"><\/span>Chatbot Features<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Der Chatbot sollte den bestehenden Formularprozess sowohl vollst\u00e4ndig abbilden als auch optimieren. Im Folgenden stellen wir einige Features vor, die das Gespr\u00e4ch ein wenig interessanter gestalten k\u00f6nnten.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Flexibilitaet\"><\/span>Flexibilit\u00e4t<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Wir f\u00fchrten User-Profile ein, die mit Benutzereingaben gef\u00fcllt und in die n\u00e4chste Buchung mit einbezogen werden. Das bedeutet, dass h\u00e4ufig auftretende Fragen \u00fcbersprungen werden und sich der Prozess dadurch beschleunigt. Beispiele hierf\u00fcr sind hinterlegte Dokumente, Reisepr\u00e4ferenzen und mehr. Zudem war es uns wichtig, nicht nur die vorgemerkten, statischen Eingaben, sondern auch freie Nachrichten zu erlauben. Neben Synonymen konnten wir die Datumsangaben nat\u00fcrlichsprachlich wie \u201emorgen\u201c oder \u201e1 Woche sp\u00e4ter\u201c formulieren. Dies ist ein Punkt, der sich wesentlich vom Formular unterscheidet. Chatbots sind dynamischer und verifizieren die Antworten der Nutzer:innen direkt.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/www.inovex.de\/wp-content\/uploads\/blogpost_ida_3.png\" alt=\"Konversation mit Chatbot zur Reisebuchung\" width=\"926\" height=\"682\" \/><\/p>\n<p>W\u00e4hrend der Buchung werden Nutzereingaben direkt gemappt (siehe Screenshot weiter unten). Beispielsweise wird der Reisegrund \u201eSprintwechsel\u201c als \u201eProjekt\u201c erkannt und die Datumsangaben werden entsprechend des Formats angepasst.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Unterstuetzung-und-Dokumentation\"><\/span>Unterst\u00fctzung und Dokumentation<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Damit wir den weiteren internen Prozess vereinfachen, merkt sich der Chatbot die Buchungsdaten und erinnert Nutzer:innen kurz vor der Reise an wichtige Dokumente per E-Mail. Dadurch garantieren wir, dass nichts vergessen wird und manuelle Eingriffe nicht mehr notwendig sind. Und wenn der Chatbot mal nicht weiter wei\u00df, verlinkt er relevante Quellen, die wir intern f\u00fcr die Dokumentation verwenden.<\/p>\n<figure style=\"width: 884px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.inovex.de\/wp-content\/uploads\/blogpost_ida_4-1.png\" alt=\"Exemplarischer Reminder Email f\u00fcr die Dokumenterfassung bei der R\u00fcckreise\u00a0\" width=\"884\" height=\"314\" \/><figcaption class=\"wp-caption-text\">Exemplarischer Reminder E-Mail f\u00fcr die Dokumenterfassung bei der R\u00fcckreise<\/figcaption><\/figure>\n<h3><span class=\"ez-toc-section\" id=\"Feedback\"><\/span>Feedback<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Am Ende jeder Konversation geben wir Nutzer:innen die M\u00f6glichkeit, Feedback zu geben. Die Antworten pflegen wir in unserer Datenbank ein und verwenden sie als Basis f\u00fcr die Weiterentwicklung des Chatbots.<\/p>\n<figure style=\"width: 700px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.inovex.de\/wp-content\/uploads\/blogpost_ida_5.png\" alt=\"Zusammenfassung der Inhalte und Feedback-Funktion des Chatbots\" width=\"700\" height=\"617\" \/><figcaption class=\"wp-caption-text\">Zum Ende einer Reisebuchung werden alle Eintr\u00e4ge nochmals aufgezeigt und es besteht die M\u00f6glichkeit, Feedback zu geben.<\/figcaption><\/figure>\n<h3><span class=\"ez-toc-section\" id=\"Vereinfachung\"><\/span>Vereinfachung<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Neben Texteingaben bietet unser Chatbot zudem grafische Elemente, u. a. Buttons oder die Eingabe des Feedbacks \u00fcber Sterne. Die Konversation sollte nicht statisch klingen, indem sie einfach die Fragen des Formulars \u00fcberf\u00fchrt. Wir wollten sie so einfach wie m\u00f6glich halten und bieten zum Ende der Buchung an, in einem Fenster weitere\/seltene Felder zu f\u00fcllen oder die bestehenden zu ver\u00e4ndern.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-39945 alignnone\" src=\"https:\/\/www.inovex.de\/wp-content\/uploads\/blogpost_ida_7.png\" alt=\"\" width=\"448\" height=\"382\" srcset=\"https:\/\/www.inovex.de\/wp-content\/uploads\/blogpost_ida_7.png 1718w, https:\/\/www.inovex.de\/wp-content\/uploads\/blogpost_ida_7-300x256.png 300w, https:\/\/www.inovex.de\/wp-content\/uploads\/blogpost_ida_7-1024x874.png 1024w, https:\/\/www.inovex.de\/wp-content\/uploads\/blogpost_ida_7-768x655.png 768w, https:\/\/www.inovex.de\/wp-content\/uploads\/blogpost_ida_7-1536x1311.png 1536w, https:\/\/www.inovex.de\/wp-content\/uploads\/blogpost_ida_7-400x341.png 400w, https:\/\/www.inovex.de\/wp-content\/uploads\/blogpost_ida_7-360x307.png 360w\" sizes=\"auto, (max-width: 448px) 100vw, 448px\" \/> <img loading=\"lazy\" decoding=\"async\" class=\" wp-image-39943 alignnone\" src=\"https:\/\/www.inovex.de\/wp-content\/uploads\/blogpost_ida_6.png\" alt=\"\" width=\"444\" height=\"382\" srcset=\"https:\/\/www.inovex.de\/wp-content\/uploads\/blogpost_ida_6.png 1750w, https:\/\/www.inovex.de\/wp-content\/uploads\/blogpost_ida_6-300x259.png 300w, https:\/\/www.inovex.de\/wp-content\/uploads\/blogpost_ida_6-1024x882.png 1024w, https:\/\/www.inovex.de\/wp-content\/uploads\/blogpost_ida_6-768x662.png 768w, https:\/\/www.inovex.de\/wp-content\/uploads\/blogpost_ida_6-1536x1324.png 1536w, https:\/\/www.inovex.de\/wp-content\/uploads\/blogpost_ida_6-400x345.png 400w, https:\/\/www.inovex.de\/wp-content\/uploads\/blogpost_ida_6-360x310.png 360w\" sizes=\"auto, (max-width: 444px) 100vw, 444px\" \/><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Architektur\"><\/span>Architektur<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/www.inovex.de\/wp-content\/uploads\/blogpost_ida_8.png\" alt=\"Architektur-Schema der Chatbot-Anwendung\" width=\"1191\" height=\"529\" \/><\/p>\n<p>Die Applikation besteht im Wesentlichen aus vier Komponenten. F\u00fcr den Nachrichtenverkehr ist der Webserver verantwortlich. Er ist mit dem Web Framework Django implementiert und beinhaltet gunicorn zum Umgang mit erh\u00f6htem eingehenden Nachrichtenverkehr. Um die parallel ankommenden Anfragen zu verarbeiten, wird das Task Queue Modell von Celery verwendet.<\/p>\n<p>Erreicht den Webserver eine Nachricht von Slack, wird eine Anfrage zur Verarbeitung dieser an das Sprachmodell geschickt. Dieses besteht aus der Rasa NLU\/Core und dem Rasa Action Server. Die Rasa NLU\/Core wendet das trainierte Sprachmodell auf die eingehende Nachricht an und f\u00fchrt auf Basis eines konfigurierten Regelsatzes die n\u00e4chste Aktion aus. Eine Aktion ist entweder eine Textantwort zur\u00fcck an Slack oder die Ausf\u00fchrung von benutzerdefiniertem Code mit Hilfe des Rasa Action Servers. In unserem Use Case verschickt der Action Server E-Mails und versendet Anfragen an die Datenbank-API.<br \/>\nAls Ged\u00e4chtnis des Sprachmodells dient der Redis Tracker-Store. Darin werden die aktuellen Konversationsverl\u00e4ufe der Nutzer gespeichert, um diese in die Vorhersage einflie\u00dfen zu lassen. Redis wird gleichzeitig von Celery als Task Queue verwendet.<\/p>\n<p>F\u00fcr die langfristige Weiterentwicklung des Bots werden Nutzerfeedback und abgeschlossene Konversationen in einer persistenten Datenbank (mongoDB) gespeichert.\u00a0Alle Komponenten laufen als Docker Container auf unserem internen Computing\/Hosting Cluster (inovex Cloud Service, kurz iCS).<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Lessons-Learned\"><\/span>Lessons Learned<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"Rasa-Framework\"><\/span>Rasa Framework<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Das Open Source Framework Rasa umfasst klar verst\u00e4ndliche Konstrukte und kann einfache Konversationsstr\u00e4nge gut einbinden. Es stellte sich heraus, dass das Tool viele M\u00f6glichkeiten f\u00fcr unseren Use Case bietet und sich gut mit anderen Services integrieren l\u00e4sst. Auf der einen Seite erlaubten es uns die sogenannten custom actions, eigenen Code zu integrieren, wodurch wir sehr flexibel in der Anbindung Use-Case-spezifischer Logik waren. Auf der anderen Seite agiert Rasas Natural Language Understanding (NLU) oft als Black Box. Unter einer NLU versteht man die Komponente, die relevante Informationen des Texts zu verstehen versucht. Diese basiert auf konfigurierbaren neuronalen Modellen, kann dar\u00fcber hinaus aber auch regelbasierte Methoden verwenden. Neuronale Ans\u00e4tze werden vor allem f\u00fcr flexible Gespr\u00e4che pr\u00e4feriert und verbessern sich, indem wir Trainingsdaten f\u00fcr das Modell bereitstellen. Zus\u00e4tzlich kann man das Modell anhand einiger Parameter steuern, doch die Klassifizierung der Benutzereingaben war nicht immer komplett transparent.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Entwicklung-und-Evaluierung-der-Benutzereingaben\"><\/span>Entwicklung und Evaluierung der Benutzereingaben<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Die Intransparenz des Rasa-Modells erforderte tiefere Einblicke in die Klassifizierung. <a href=\"https:\/\/rasa.com\/docs\/rasa-enterprise\/\" target=\"_blank\" rel=\"noopener\">Rasa X<\/a> (nun kostenpflichtig) bietet eine Oberfl\u00e4che f\u00fcr das Testen und Debugging von Gespr\u00e4chsverl\u00e4ufen sowie das Re-Training von Modellen. Das Tool zeigt Wahrscheinlichkeiten zu Vorhersagen auf und bietet die M\u00f6glichkeit an, durch die Analyse das Modelltraining direkt zu beeinflussen.<\/p>\n<p>Wenn man nicht in Rasa X investieren m\u00f6chte, ist es au\u00dferdem m\u00f6glich, \u00fcber den \u2018interactive\u2019-Mode in der Konsole zu debuggen, um Einblicke in die NLU zu erlangen. Der \u2018interactive\u2019-Mode erleichtert ebenfalls durch interaktive Dialoge die Generierung neuer Trainingsdaten. In den Anfangsphasen eines Chatbot-Projekts l\u00e4sst es sich nicht vermeiden, dass die Auswahl der Trainingsdaten durch die Entwickler:innen selbst passiert. Jedoch sollten Endnutzer:innen fr\u00fchestm\u00f6glich in den Entwicklungszyklus eingebunden werden. Auf diesem Wege lassen sich Trainingsdaten sammeln, die realen Konversationen \u00e4hneln.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Deployment-und-Versionierung\"><\/span>Deployment und Versionierung<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Bisher f\u00fchrten wir das Framework Rasa f\u00fcr die Abbildung unserer Konversationen sowie die Datenbank zum Persistieren vor. Nun m\u00f6chten wir die Komponenten in Produktion bringen. Daf\u00fcr setzen wir auf einen automatisierten Entwicklungsprozess anhand von Gitlab CI\/CD, einer Pipeline, mit der wir die Komponenten kontinuierlich testen und ausrollen. Diese Pipeline rollt die Container versioniert in der Cloud (iCS) aus.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Zusammenfassung\"><\/span>Zusammenfassung<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>In diesem Blogpost geben wir einen \u00dcberblick \u00fcber die Implementierung und Integration eines Chatbots bei inovex. Diesen entwickelten wir anhand eines internen Use Cases der Reiseplanung, der einfach erweitert werden kann.<\/p>\n<p>In den technischen Deep Dives erfuhren wir, dass sich ein digitaler Assistent recht modular aufbauen l\u00e4sst. Dabei bot sich Rasa als Framework aufgrund der einfachen Bedienung gut an. Wir konnten neben den Fragen aus einer Wissensquelle, in unserem Fall GForms, verschachtelte Gespr\u00e4chsverl\u00e4ufe modellieren und die Eingaben der Benutzer erweitern, sodass die Konversation freier und nat\u00fcrlicher wirkt. Dar\u00fcber hinaus wollten wir bekannte Tools nicht vermissen, die wir intern bereits viel im Einsatz haben. Der Assistent konnte problemlos in den Alltag integriert werden und dies war nur der erste Schritt in der Entwicklung von iDA.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Chatbots sind seit einigen Jahren eine moderne L\u00f6sung f\u00fcr automatisierte Prozesse und werden viel im Bereich des Supports eingesetzt. Durch ihre st\u00e4ndige Verf\u00fcgbarkeit und die einfache Nutzung gewinnen sie immer mehr an Beliebtheit. Wir m\u00f6chten herausfinden, wie man einen Chatbot aufsetzen und ihn in einen internen Prozess integrieren kann.<\/p>\n","protected":false},"author":134,"featured_media":43774,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"ep_exclude_from_search":false,"footnotes":""},"tags":[373,71,375,141,131],"service":[76,75],"coauthors":[{"id":134,"display_name":"Phuong Mai Mai","user_nicename":"pmai"},{"id":317,"display_name":"Thomas Jonas","user_nicename":"tjonas"}],"class_list":["post-39834","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-chatbot","tag-cloud","tag-conversational-ai","tag-nlp","tag-ui-ux","service-artificial-intelligence","service-nlp"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Entwicklung eines Chatbots mit Rasa - inovex GmbH<\/title>\n<meta name=\"description\" content=\"In diesem Blogpost berichten wir davon, wie wir eine Chatbot-Infrastruktur\u00a0aufgesetzt und einen ersten Use Case implementiert haben.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.inovex.de\/de\/blog\/chatbot-open-source-framework-rasa\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Entwicklung eines Chatbots mit Rasa - inovex GmbH\" \/>\n<meta property=\"og:description\" content=\"In diesem Blogpost berichten wir davon, wie wir eine Chatbot-Infrastruktur\u00a0aufgesetzt und einen ersten Use Case implementiert haben.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.inovex.de\/de\/blog\/chatbot-open-source-framework-rasa\/\" \/>\n<meta property=\"og:site_name\" content=\"inovex GmbH\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/inovexde\" \/>\n<meta property=\"article:published_time\" content=\"2023-03-29T14:02:34+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-06-07T05:57:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.inovex.de\/wp-content\/uploads\/rasa-chatbot-entwicklung.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Phuong Mai Mai, Thomas Jonas\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.inovex.de\/wp-content\/uploads\/rasa-chatbot-entwicklung-1024x576.png\" \/>\n<meta name=\"twitter:creator\" content=\"@inovexgmbh\" \/>\n<meta name=\"twitter:site\" content=\"@inovexgmbh\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Phuong Mai Mai\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"7\u00a0Minuten\" \/>\n\t<meta name=\"twitter:label3\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data3\" content=\"Phuong Mai Mai, Thomas Jonas\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/chatbot-open-source-framework-rasa\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/chatbot-open-source-framework-rasa\\\/\"},\"author\":{\"name\":\"Phuong Mai Mai\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/person\\\/5e2bbb473b66fde9f90e5b66a8e05e7f\"},\"headline\":\"Entwicklung eines Chatbots mit dem Open Source Framework Rasa\",\"datePublished\":\"2023-03-29T14:02:34+00:00\",\"dateModified\":\"2023-06-07T05:57:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/chatbot-open-source-framework-rasa\\\/\"},\"wordCount\":1483,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/chatbot-open-source-framework-rasa\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/rasa-chatbot-entwicklung.png\",\"keywords\":[\"Chatbot\",\"Cloud\",\"Conversational Ai\",\"nlp\",\"UI\\\/UX\"],\"articleSection\":[\"General\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/chatbot-open-source-framework-rasa\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/chatbot-open-source-framework-rasa\\\/\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/chatbot-open-source-framework-rasa\\\/\",\"name\":\"Entwicklung eines Chatbots mit Rasa - inovex GmbH\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/chatbot-open-source-framework-rasa\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/chatbot-open-source-framework-rasa\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/rasa-chatbot-entwicklung.png\",\"datePublished\":\"2023-03-29T14:02:34+00:00\",\"dateModified\":\"2023-06-07T05:57:27+00:00\",\"description\":\"In diesem Blogpost berichten wir davon, wie wir eine Chatbot-Infrastruktur\u00a0aufgesetzt und einen ersten Use Case implementiert haben.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/chatbot-open-source-framework-rasa\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/chatbot-open-source-framework-rasa\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/chatbot-open-source-framework-rasa\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/rasa-chatbot-entwicklung.png\",\"contentUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/rasa-chatbot-entwicklung.png\",\"width\":1920,\"height\":1080,\"caption\":\"Ein abstrahierter Chatbot als 3D Modell schwebt \u00fcber dem Logo von Rasa\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/chatbot-open-source-framework-rasa\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Entwicklung eines Chatbots mit dem Open Source Framework Rasa\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#website\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/\",\"name\":\"inovex GmbH\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#organization\",\"name\":\"inovex GmbH\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/inovex-logo-16-9-1.png\",\"contentUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/inovex-logo-16-9-1.png\",\"width\":1921,\"height\":1081,\"caption\":\"inovex GmbH\"},\"image\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/inovexde\",\"https:\\\/\\\/x.com\\\/inovexgmbh\",\"https:\\\/\\\/www.instagram.com\\\/inovexlife\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/inovex\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UC7r66GT14hROB_RQsQBAQUQ\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/person\\\/5e2bbb473b66fde9f90e5b66a8e05e7f\",\"name\":\"Phuong Mai Mai\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/cropped-IMG_7444_mai_mai-klein-1-96x96.jpg6dc7434b1b9095f65ee9a77997b0dc5f\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/cropped-IMG_7444_mai_mai-klein-1-96x96.jpg\",\"contentUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/cropped-IMG_7444_mai_mai-klein-1-96x96.jpg\",\"caption\":\"Phuong Mai Mai\"},\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/author\\\/pmai\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Entwicklung eines Chatbots mit Rasa - inovex GmbH","description":"In diesem Blogpost berichten wir davon, wie wir eine Chatbot-Infrastruktur\u00a0aufgesetzt und einen ersten Use Case implementiert haben.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.inovex.de\/de\/blog\/chatbot-open-source-framework-rasa\/","og_locale":"de_DE","og_type":"article","og_title":"Entwicklung eines Chatbots mit Rasa - inovex GmbH","og_description":"In diesem Blogpost berichten wir davon, wie wir eine Chatbot-Infrastruktur\u00a0aufgesetzt und einen ersten Use Case implementiert haben.","og_url":"https:\/\/www.inovex.de\/de\/blog\/chatbot-open-source-framework-rasa\/","og_site_name":"inovex GmbH","article_publisher":"https:\/\/www.facebook.com\/inovexde","article_published_time":"2023-03-29T14:02:34+00:00","article_modified_time":"2023-06-07T05:57:27+00:00","og_image":[{"width":1920,"height":1080,"url":"https:\/\/www.inovex.de\/wp-content\/uploads\/rasa-chatbot-entwicklung.png","type":"image\/png"}],"author":"Phuong Mai Mai, Thomas Jonas","twitter_card":"summary_large_image","twitter_image":"https:\/\/www.inovex.de\/wp-content\/uploads\/rasa-chatbot-entwicklung-1024x576.png","twitter_creator":"@inovexgmbh","twitter_site":"@inovexgmbh","twitter_misc":{"Verfasst von":"Phuong Mai Mai","Gesch\u00e4tzte Lesezeit":"7\u00a0Minuten","Written by":"Phuong Mai Mai, Thomas Jonas"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.inovex.de\/de\/blog\/chatbot-open-source-framework-rasa\/#article","isPartOf":{"@id":"https:\/\/www.inovex.de\/de\/blog\/chatbot-open-source-framework-rasa\/"},"author":{"name":"Phuong Mai Mai","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/person\/5e2bbb473b66fde9f90e5b66a8e05e7f"},"headline":"Entwicklung eines Chatbots mit dem Open Source Framework Rasa","datePublished":"2023-03-29T14:02:34+00:00","dateModified":"2023-06-07T05:57:27+00:00","mainEntityOfPage":{"@id":"https:\/\/www.inovex.de\/de\/blog\/chatbot-open-source-framework-rasa\/"},"wordCount":1483,"commentCount":0,"publisher":{"@id":"https:\/\/www.inovex.de\/de\/#organization"},"image":{"@id":"https:\/\/www.inovex.de\/de\/blog\/chatbot-open-source-framework-rasa\/#primaryimage"},"thumbnailUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/rasa-chatbot-entwicklung.png","keywords":["Chatbot","Cloud","Conversational Ai","nlp","UI\/UX"],"articleSection":["General"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.inovex.de\/de\/blog\/chatbot-open-source-framework-rasa\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.inovex.de\/de\/blog\/chatbot-open-source-framework-rasa\/","url":"https:\/\/www.inovex.de\/de\/blog\/chatbot-open-source-framework-rasa\/","name":"Entwicklung eines Chatbots mit Rasa - inovex GmbH","isPartOf":{"@id":"https:\/\/www.inovex.de\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.inovex.de\/de\/blog\/chatbot-open-source-framework-rasa\/#primaryimage"},"image":{"@id":"https:\/\/www.inovex.de\/de\/blog\/chatbot-open-source-framework-rasa\/#primaryimage"},"thumbnailUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/rasa-chatbot-entwicklung.png","datePublished":"2023-03-29T14:02:34+00:00","dateModified":"2023-06-07T05:57:27+00:00","description":"In diesem Blogpost berichten wir davon, wie wir eine Chatbot-Infrastruktur\u00a0aufgesetzt und einen ersten Use Case implementiert haben.","breadcrumb":{"@id":"https:\/\/www.inovex.de\/de\/blog\/chatbot-open-source-framework-rasa\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.inovex.de\/de\/blog\/chatbot-open-source-framework-rasa\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.inovex.de\/de\/blog\/chatbot-open-source-framework-rasa\/#primaryimage","url":"https:\/\/www.inovex.de\/wp-content\/uploads\/rasa-chatbot-entwicklung.png","contentUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/rasa-chatbot-entwicklung.png","width":1920,"height":1080,"caption":"Ein abstrahierter Chatbot als 3D Modell schwebt \u00fcber dem Logo von Rasa"},{"@type":"BreadcrumbList","@id":"https:\/\/www.inovex.de\/de\/blog\/chatbot-open-source-framework-rasa\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.inovex.de\/de\/"},{"@type":"ListItem","position":2,"name":"Entwicklung eines Chatbots mit dem Open Source Framework Rasa"}]},{"@type":"WebSite","@id":"https:\/\/www.inovex.de\/de\/#website","url":"https:\/\/www.inovex.de\/de\/","name":"inovex GmbH","description":"","publisher":{"@id":"https:\/\/www.inovex.de\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.inovex.de\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/www.inovex.de\/de\/#organization","name":"inovex GmbH","url":"https:\/\/www.inovex.de\/de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/logo\/image\/","url":"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/03\/inovex-logo-16-9-1.png","contentUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/03\/inovex-logo-16-9-1.png","width":1921,"height":1081,"caption":"inovex GmbH"},"image":{"@id":"https:\/\/www.inovex.de\/de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/inovexde","https:\/\/x.com\/inovexgmbh","https:\/\/www.instagram.com\/inovexlife\/","https:\/\/www.linkedin.com\/company\/inovex","https:\/\/www.youtube.com\/channel\/UC7r66GT14hROB_RQsQBAQUQ"]},{"@type":"Person","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/person\/5e2bbb473b66fde9f90e5b66a8e05e7f","name":"Phuong Mai Mai","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.inovex.de\/wp-content\/uploads\/cropped-IMG_7444_mai_mai-klein-1-96x96.jpg6dc7434b1b9095f65ee9a77997b0dc5f","url":"https:\/\/www.inovex.de\/wp-content\/uploads\/cropped-IMG_7444_mai_mai-klein-1-96x96.jpg","contentUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/cropped-IMG_7444_mai_mai-klein-1-96x96.jpg","caption":"Phuong Mai Mai"},"url":"https:\/\/www.inovex.de\/de\/blog\/author\/pmai\/"}]}},"_links":{"self":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts\/39834","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/users\/134"}],"replies":[{"embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/comments?post=39834"}],"version-history":[{"count":5,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts\/39834\/revisions"}],"predecessor-version":[{"id":43787,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts\/39834\/revisions\/43787"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/media\/43774"}],"wp:attachment":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/media?parent=39834"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/tags?post=39834"},{"taxonomy":"service","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/service?post=39834"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/coauthors?post=39834"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}