E.D.D.I – Open Source Chatbot Platform Installation

Installation
E.D.D.I kann sowohl aus den Quellen als auch als Docker Container installiert werde.  Ich werde die Installation aus den Quellen vornehmen.

Zunächst müssen wir die folgenden Anwendungen installieren:

Umgebungsvariablen für Java und Maven setzen:

Pfade für Java, Maven und mongoDB setzen:

Pfade testen:

Quellen via git downloaden:

  • cd <Zielordner>
  • git clone https://github.com/labsai/EDDI.git

Anwendung via Maven bauen:

  • mvn clean install

Damit wären wir mit der Installation durch.

 

Datenbank starten

E.D.D.I benötigt mongoDB. Um mongoDB zu starten, müssen wir zunächst local einen leeren Ordner für die benötigte Datenbank erstellen. Der Standardpfad lautet:

  • C:\data\db

Anschließend kann mongoDB mit dem folgenden Befehl gestartet werden:

  • mongod

 

E.D.D.I starten

Ich werde die Anwendung mit Hilfe von IntelliJ starten. Hierfür muss das Projekt zunächst importiert werden:

 

 

Konfiguration der Umgebung 

VM options:

-DEDDI_ENV=development
-Xbootclasspath/p:D:\Sources\git\EDDI\alpn\alpn-boot-8.1.11.v20170118.jar

Working directory:

%MODULE_WORKING_DIR%

 

E.D.D.I starten

 

E.D.D.I das Sprechen beibringen

Damit E.D.D.I das Sprechen erlernt, muss man Ihm unter anderem einfache Wörter und Sätze (regular dictionary) beibringen. Regular dictionary bestehen sowohl aus einzelne Wörter und die dazugehörigen Rückmeldungen bzw. Antworten, die der Bot bei Eingabe dieser Wörter zurück gibt als auch aus ganzen Sätzen mit den dazugehörigen Antworten. Das folgende Beispiel veranschaulicht den Aufbau von ‚regular dictionary‘:

[codesyntax]

{
    "language" : "en",
    "words" : [
            {
                "word" : "hello",
                "exp" : "greeting(hello)",
                    "frequency" : 0
            }
      ],
    "phrases" : [
            {
                "phrase" : "good afternoon",
                "exp" : "greeting(good_afternoon),language(english)"
            }
      ]
}

[/codesyntax]

Für die Eingabe kann unter anderem die REST Schnittstelle „POST /regulardictionarystore/regulardictionaries“, die E.D.D.I über Swagger zur Verfügung stellt verwendet werden.
Weitere Informationen zu Swagger findet ihr unter anderem auf meiner Seite.

Bei der Erstellung des Eintrags wird für den entsprechenden Eintrag eine eindeutige ID generiert:
Der Eintrag kann anschließend über den folgende REST Endpoint aufgerufen werden:
http://localhost:7070/regulardictionarystore/regulardictionaries/5b69eb53178a9d36482e4a43?version=1
Unter Windows kann Cygwin für die Nutzung von CURL verwendet werden. Hierfür muss jedoch das entsprechende Binary Paket bei der Installation ausgewählt werden.
E.D.D.I kann zusätzlich zu einfachen Wörtern und Ausdrücken ‚regular dictionary‘ sogenannte Verhaltensregeln (Behavior Rules) erlernen. Verhaltensregeln werden in Gruppen unterteilt und werden innerhalb der einzelnen Gruppen sequentiell ausgeführt. Sobald eine Verhaltensregel innerhalb einer Gruppe ausgeführt wird, werden alle anderen Regeln der gleichen Gruppe übersprungen. Eine Verhaltensregel kann weitere Unterbedingungen (sub-conditions) beinhalten.
Der Aufbau sieht exemplarisch wie folgt aus:

[codesyntax]

{  
   "behaviorGroups":[  
      {  
         "name":"Group1",
         "behaviorRules":[
            {  
               "name":"Rule1",
               "actions":[  
                  "Kill Batman"
               ],
               "children":[  
                  {  
                     "type":"inputmatcher",
                     "values":{  
                        "expressions":"greeting(*)",
                        "occurrence":"currentStep"
                     },
                     "children":[  
                        {  

                        }
                     ]
                  }
               ]
            }
         ]
      }
   ]
}

[/codesyntax]

Die einzelnen Bedingungen (children) beinhalten das Feld ‚type‘. Durch ‚type‘ werden aktuell 4 unterschiedliche Arten von Bedingungen voneinander unterschieden.

  • Input Matcher
  • Context Matcher
  • Connector
  • Negation

Für weitere Details zu den Bedingungstypen verweise an dieser Stelle auf die Spezifikation.

 

Einrichtung folgt…..