atlas-core

An open-source assistant built for people


Keywords
assistant, atlas, bot, chatbot, nlu
License
GPL-3.0
Install
pip install atlas-core==1.2.0

Documentation

atlas

Photo Sphere by Denis Klyuchnikov from the Noun Project

⚠️ This is an early version, so API may change in the future if this is needed! I'll try not to do so unless if there's no other possibilities.

atlas is a totally open-source assistant written in Python 3 (not tested with Python 2). It is totally interopable since it uses the MQTT protocol to communicate with third party skills.

It manages dialog states with the help of the transitions library and parses natural language with snips. If snips doesn't fit your needs, you can subclass the Interpreter class and make your own 😉

Have a look at the 📚 documentation folder.

PWA Screenshot

Installation

pip maybe...

Docker too...

Since no pip packages are available for now, starts by installing the atlas-sdk using its own instructions.

Then, git clone this repository and run python setup.py install.

NLU backends

Once installed, atlas will not have any dependency with a NLU backend. So you may want to install it yourself. Once done, don't forget to use the appropriated interpreter in the atlas.yml configuration file.

For example, if you use snips-nlu, you must install it with pip install snips-nlu and use

interpreter: 
  type: 'atlas.interpreters.snips_interpreter.SnipsInterpreter'

in the atlas configuration file.

Quickstart

⚠️ As of now, the application accessed from your <server.url> is not a valid PWA but it will be in a near future to be able to install it on your phone homescreen.

Starts with the prebuilt sample or make your own by reading below.

Those quick steps use Snips as the NLU backend.

  • Once installed, you must configure it using a configuration file.
  • Drop your training files (appropriate for your backend) into the <loader.training_path>, you may use a tool such as tracy to generates it.
  • Drop your configuration files into the <loader.env_path>.
  • Drop some skills scripts inside <executor.path>, each one should be in its own subfolder with an atlas file containing the command to run to executes your skill
  • Start a MQTT broker, such as mosquitto
  • Start atlas with atlas -c <your_configuration_file_path>.yml
  • Go to the <server.url> in your favorite browser to access the exposed PWA! (you may use another channel if you prefer)
  • That's it!

I encourage you to read the architecture overview if you want to know how it works alltogether.

Deploying

If you want the exposed PWA to work on your mobile device, you will have to use a valid certificate since this is required by web browsers.

Please note that the Web Speech API used by the PWA only works in Chrome as far as I know.

Contributing

Contributions are welcome!

You're a developer or just want to know where this project is heading to? Have a look at the extended TODO file.

You want to support atlas by giving some money? Head over to Liberapay with this tiny button Donate using Liberapay, thanks ❤️!

Credits

  • Photo Sphere by Denis Klyuchnikov from the Noun Project (Logo)