¿Qué es ZoE?

ZoE es el asistente virtual creado por el Grupo de Usuarios Linux de la Universidad Carlos III de Madrid.

ZoE se creó con un único objetivo en mente: Realizar las tareas que nadie quiere hacer.
Con esta premisa en mente y la filosofía del software libre surge el asistente virtual del GUL UC3M.

Actualmente está en su versión 2.0.

icono de código abierto

100% Software libre

icono de muchas personitas para representar escalabilidad

Escalable

icono de idiomas que representa agnóstico al lenguaje

Agnóstico al lenguaje

icono de llave inglesa para representar que es modificable

Fácilmente modificable

robot de juguete

Core

ZoE está formada por una librería principal que nos proporciona todas sus funcionalidades básicas y las funciones y utilidades necesarias para empezar a construir agentes de ZoE.

Actualmente están disponibles librerías tanto en Python como en Java.

Agentes

ZoE, al igual que casi todos los asistentes virtuales funciona mediante agentes, o llámalo skills, o llámalo funciones, o llámalo extensiones.

Cada Agente sigue la filosofía de UNIX, por lo que debe realizar una única tarea y realizarla lo mejor posible. Esto quiere decir que los agentes que encontrarás aquí hacen lo que dicen hacer. "msglog" loguea los mensajes, "mail" manda correos electrónicos y "shell" proporciona una consola interactiva.

robot de juguete

Instalación

Empezar a utilizar ZoE es muy sencillo. Su funcionamiento se basa en el patrón Publicador/Suscriptor y tiene dos dependencias para funcionar correctamente: Kafka y Zookeeper.

En el repositorio que encontrarás en esta sección zoe-docker, encontrarás toda la información necesaria para desplegar ZoE por tu propia cuenta de dos formas totalmente distinta:

  • . En esta aproximación tendrás que leer el readme titulado "README-DOCKER.md" y seguir sus pasos al pie de la letra.
  • . En esta aproximación instalarás todo en tu propia máquina y no usarás contenedores para gestionar Kafka, Zookeeper ni ninguno de los agentes. Para ello deberás leer el readme titulado "README-VENV.md".

En el GUL recomendamos la aproximación con Docker-Compose ya que es la que solemos utilizar, dado que es la que permite trastear y romper cosas con menor miedo.

Las personas más avispadas ya se habrán dado cuenta en que los agentes serán nuestros suscriptores y publicadores en nuestro sistema. De esta manera los agentes se comunican entre sí dentro del sistema. Existirán agentes que solamente estén suscritos, otros que solamente públicos y otros que hagan ambas funciones.