Scalable Open Source Chatbot Platform. Build multiple conversational bots with NLP, Behavior Rules, API Connector, Templating. Developed in Java (with Quarkus), provided with Docker, orchestrated with Kubernetes or Openshift.
Latest stable version: 5.0.4
License: Apache License 2.0
Project website: here
Documentation: here
The Chatbot System - E.D.D.I (Enhanced Dialog Driven Intelligence), has been developed with the focus on running it in cloud environments such as plain docker, kubernetes or openshift
The most outstanding features are:
- Flexible in NLP and Behavior
- Fluently connect to REST APIs
- Powerful Templating
- Reuse Conversation Flows in multiple bots
technical spec:
- Resource- / REST-oriented architecture
- Java Quarkus
- JAX-RS
- Dependency Injection
- Prometheus integration (Metrics endpoint)
- Kubernetes integration (Liveness/Readiness endpoint)
- MongoDB for storing bot configurations and conversation memories
- OAuth 2.0 (Keycloak)
- HTML, CSS, Javascript (Dashboard & Basic Chat UI)
- Java 17
- Maven 3.8.4
- MongoDB > 4.0
- Setup a local mongodb (> v4.0)
- On a terminal, under project root folder, run the following command:
./mvnw compile quarkus:dev
- Go to Browser --> http://localhost:7070
Note: If running locally inside an IDE you need lombok to be enabled (otherwise you will get compile errors complaining about missing constructors). Either download as plugin (e.g. inside Intellij) or follow instructions here [https://projectlombok.org/](https://projectlombok.org/
./mvnw clean package '-Dquarkus.container-image.build=true'
docker pull labsai/eddi
https://hub.docker.com/r/labsai/eddi
For production, launch standalone mongodb and then start an eddi instance as defined in the docker-compose file
docker-compose up
For development, use
docker-compose -f docker-compose.yml -f docker-compose.local.yml up
For integration testing run
./integration-tests.sh
or
docker-compose -f docker-compose.yml -f docker-compose.local.yml -f docker-compose.testing.yml -p ci up -d
<eddi-instance>/q/metrics
Liveness endpoint:
<eddi-instance>/q/health/live
Readiness endpoint:
<eddi-instance>/q/health/ready