An open-source assistant built for people
atlas is a totally open-source, self-hosted, interoperable assistant written in Python 3. It uses the MQTT protocol to communicate with third party skills.
Ever wanted to build your own Alexa, Siri or Google Assistant and host it yourself? That's why atlas has been created!
Have a look at the 📚 documentation folder.
pip install atlas-core or
pip install atlas-core[snips] to already include the snips backend.
- Build the image with
docker build . -t atlas
docker run --rm -it -v <a folder containing an atlas.yml file>:/atlas -p 5000:5000 atlas
git clone this repository and run
python setup.py install.
Once installed, atlas will not have any dependency with a NLU backend (unless you use
pip install atlas-core[snips]) . 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.
⚠️ As of now, the PWA exposed at
<server.url> lacks offline support.
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 or chatito to generates it.
- Drop your configuration files into the
- Drop some skills scripts inside
<executor.path>, each one should be in its own subfolder with an
atlasfile 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). By default it uses the
en-USlanguage, if you want to change it, just add a query parameters such as
- That's it!
I encourage you to read the architecture overview if you want to know how it works alltogether.
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 for the Web Speech API to use your mic.
Please note that the Web Speech API used by the PWA only works in Chrome as far as I know.
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.
- Photo Sphere by Denis Klyuchnikov from the Noun Project (Logo)
- Banner icons made by Freepik, Good Ware and Skyclick from flaticon
- snips-nlu (base interpreter)
- transitions (dialog management)