Instalación E.D.D.I se puede instalar tanto desde el código fuente como en un contenedor Docker. Procederé a realizar la instalación desde las fuentes.

Primero debemos instalar las siguientes aplicaciones:

Establecer variables de entorno para Java y Maven:

Establecer rutas para Java, Maven y MongoDB:

Probar rutas:

Descargar fuentes vía git:

Construir la aplicación con Maven:

  • mvn clean install

Con esto habremos completado la instalación.

Iniciar la base de datos

E.D.D.I requiere MongoDB. Para iniciar MongoDB, primero debemos crear localmente una carpeta vacía para la base de datos necesaria. La ruta predeterminada es:

  • C:\data\db

A continuación se puede iniciar MongoDB con el siguiente comando:

  • mongod

Iniciar E.D.D.I

Ejecutaré la aplicación con la ayuda de IntelliJ. Para ello, primero se debe importar el proyecto:

Configuración del entorno

Opciones de VM:

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

Directorio de trabajo:

%MODULE_WORKING_DIR%

Iniciar E.D.D.I

E.D.D.I el habla enseñar

Para que E.D.D.I aprenda a hablar, es necesario enseñarle, entre otras cosas, palabras y frases sencillas (regular dictionary). Los regular dictionary consisten tanto en palabras individuales y las retroalimentaciones o respuestas asociadas que el bot devuelve al introducir dichas palabras como en frases completas con sus respuestas correspondientes. El siguiente ejemplo ilustra la estructura de un ‘regular dictionary’:

[codesyntax]

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

[/codesyntax]

Para la inserción se puede utilizar, entre otras, la interfaz REST “POST /regulardictionarystore/regulardictionaries” que E.D.D.I pone a disposición mediante Swagger. Más información sobre Swagger pueden encontrarla, entre otros, en mi página.

Al crear la entrada, se genera un ID único para ella:

La entrada puede luego consultarse mediante el siguiente endpoint REST:

http://localhost:7070/regulardictionarystore/regulardictionaries/5b69eb53178a9d36482e4a43?version=1

En Windows se puede utilizar Cygwin para usar CURL. Para ello, es necesario seleccionar el paquete binario correspondiente durante la instalación.

Además de palabras simples y expresiones de ‘regular dictionary’, E.D.D.I puede aprender las llamadas reglas de comportamiento (Behavior Rules). Las reglas de comportamiento se dividen en grupos y se ejecutan secuencialmente dentro de cada grupo. En cuanto se ejecuta una regla de comportamiento en un grupo, se omiten todas las demás reglas del mismo grupo. Una regla de comportamiento puede incluir condiciones hijo adicionales (sub-conditions).

La estructura se muestra de forma ejemplar a continuación:

[codesyntax]

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

                        }
                     ]
                  }
               ]
            }
         ]
      }
   ]
}

[/codesyntax]

Las distintas condiciones (children) incluyen el campo ’type’. Con ’type’ se distinguen actualmente 4 tipos diferentes de condiciones.

  • Input Matcher
  • Context Matcher
  • Connector
  • Negation

Para más detalles sobre los tipos de condición, remito en este punto a la especificación.

Configuración próximamente…..