Olivia is an open-source chatbot built in Golang using Machine Learning technologies. Its goal is to provide a free and open-source alternative to big services like DialogFlow.

You can chat with her by speaking (STT) or writing, she replies with a text message but you can enable her voice (TTS).

You can clone the project and customize it as you want using GitHub Try it on her website!

Why Olivia?

  • The only chatbot project in Go that could be modulable and customizable.
  • Using daily a privacy-friendly chatbot is great.
  • The Website is a Progessive Web Application, which means you can add it to your phone and it seems like a native app!

Docker installation

docker installation

Pull the image from GitHub Packages

$ docker pull

Then start it

$ docker run -d -p 8080:8080

You can just use the websocket of Olivia now.

To stop it, get the container id:

$ docker container ls
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
311b3abb963a        olivia              "./main"            7 minutes ago       Up 7 minutes>8080/tcp   quizzical_mayer

and stop it

$ docker container stop 311b3abb963a 

The app will automatically check for res/training.json file which contains the save of the neural network. By default when you clone the repository from Github you have a stable save. If you want to train a new model just delete this file and rerun the app.

GitHub installation

Clone the project via GitHub:

$ git clone

Then download the dependencies

$ go mod download

And run it

$ go run main.go

Frontend and Backend

To install the frontend and the backend together, please use the docker-compose.yml file:

$ docker-compose up

And all done!