Documentation¶
Eva is an open source alternative to Amazon Echo or Google Home. The core of Eva is a simple service that provides hooks for plugins during interactions with users. On it’s own, Eva does very little. It’s potential comes from the plugins the user chooses to enable (or create).
Installation¶
If you wish to use docker-compose to run Eva, ensure you have installed Docker and the docker-compose utility.
If you wish to run Eva outside of Docker, install the required Python dependencies:
pip3 install -r requirements.txt
Todo
Allow for a proper pip install eva command.
First Steps¶
To run Eva with docker-compose, you simply have to run the following command:
docker-compose up
This may take a while on the first run as the Eva container is built and all the dependencies are installed.
To run Eva outside of Docker, you simply have to execute the
eva.directory.serve()
function. This is exactly what the serve.py
script
does for you:
python3 serve.py
The default setting for Eva is to install the Web UI Plugins
and Web UI Updater
plugins (and their dependencies) on first startup. This behaviour can be changed
by modifying the core Eva configuration file
(typically found at ~/eva/eva.conf
).
Alternatively, once Eva is started, you may navigate to the Web UI (https://localhost:8080) and enable/disable plugins as needed.
Note
A self-signed certificate warning from your browser is normal at this point.
While you’re in the Web UI, you may as well download and enable the Web UI Interact plugin which will allow you to test out Eva from the Web UI.
We discuss Eva clients more in depth on the Clients page.
Eva’s capabilities are entirely controlled by the plugins enabled by the user. Try enabling the echo plugin and see if Eva echos back the commands you send it. Also try the weather plugin and ask Eva for the current forecast (you’ll need to setup DarkSky API keys).
Note
You will need to have enabled a voice recognition plugin if you wish to speak to Eva instead of using text commands.
Note
You will need to enable a Text-to-Speech plugin if you wish to receive spoken words from Eva as a response.
- Clients
- Configuration
- Plugin Development
- Triggers
- eva.pre_boot
- eva.plugins_loaded
- eva.post_boot
- eva.voice_recognition
- eva.pre_interaction_context
- eva.pre_interaction
- eva.interaction
- eva.post_interaction
- eva.text_to_speech
- eva.pre_return_data
- eva.scheduler.job_failed
- eva.scheduler.job_succeeded
- eva.logger.debug
- eva.logger.info
- eva.logger.warning
- eva.logger.error
- eva.logger.critical
- eva.pre_publish
- eva.publish
- eva.post_publish
- eva.pre_set_input_text
- eva.post_set_input_text
- eva.pre_set_input_audio
- eva.post_set_input_audio
- eva.pre_set_output_text
- eva.post_set_output_text
- eva.pre_set_output_audio
- eva.post_set_output_audio
- API Reference