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.
[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…..