Awesome
Snips Manager [❗️DEPRECATED]
❗️ The SnipsManager project is now deprecated. We now offer a more native way to run intents actions with the
snips-skills-server
. A migration guide can be found here.
Notice of Deprecation
As of 30/04/2018, the snipsmanager
project is now deprecated as the snips platform now offers a more native way to run skills actions.
All skills written with snipsmanager
can easily be ported to the snips-skills-server
. It is also possible to run snipsmanager
within snips-skills-server
.
A migration guide can be found here.
Introduction
The Snips Manager is a tool for easily setting up and managing a Snips assistant.
A single configuration file, the Snipsfile, is required to create a Snips assistant. In it, you specify:
- The URL of your assistant model, as created in the Snips Console
- The lambdas you want to install
- Bindings between intents and lambdas
- If required, additional parameters for your lambdas, such as an API key or the address of a lamp
- Various configuration parameters, such as language and logging preferences.
Check out Awesome Snips, a curated list of Snips assistants, lambdas and other resources to get you started.
Installation
Debian package
Snips Manager is available as an apt-get
package. To install it, run the following:
$ sudo apt-get update
$ sudo apt-get install -y dirmngr
$ sudo bash -c 'echo "deb https://raspbian.snips.ai/$(lsb_release -cs) stable main" > /etc/apt/sources.list.d/snips.list'
$ sudo apt-key adv --keyserver pgp.mit.edu --recv-keys D4F50CDCA10A2849
$ sudo apt-get update
$ sudo apt-get install -y snipsmanager
Python package
Snips Manager also comes as a pip
package. This however requires installing a few dependencies beforehand. Start by running:
$ sudo apt-get update
$ sudo apt-get install git python-pip libsdl-mixer1.2 libusb-1.0 \
python-pyaudio libsdl1.2-dev cython cython3 libudev-dev \
python-dev libsdl-image1.2-dev libsdl-mixer1.2-dev \
libsdl-ttf2.0-dev libsmpeg-dev python-numpy libportmidi-dev \
libswscale-dev libavformat-dev libavcodec-dev \
portaudio19-dev nodejs build-essential -y
Next, create a Python virtual environment to avoid conflicts with existing dependencies, and to be able to run Snips Manager without root privileges:
$ sudo pip install --upgrade virtualenv
$ virtualenv --python=/usr/bin/python2.7 snips
$ source snips/bin/activate
(snips) $ pip install pip --upgrade
You may replace snips
with any name for your virtual environment.
We are ready to install the snipsmanager
package:
(snips) $ pip install snipsmanager
macOS
On macOS, Snips Manager is also available as a pip
package. To install, Portaudio, Pyaudio and SDL are needed:
$ sudo easy_install pip
$ brew install portaudio
$ brew install sdl
$ pip install --global-option='build_ext' \
--global-option='-I/usr/local/include' \
--global-option='-L/usr/local/lib' pyaudio
Next, like with Raspbian, we create a Python virtual environment in which Snips Manager will be run:
$ sudo pip install --upgrade virtualenv
$ virtualenv --python=/usr/bin/python2.7 snips
$ source snips/bin/activate
(snips) $ pip install pip --upgrade
Snips Manager can now be installed:
(snips) $ pip install snipsmanager
Usage
Creating the Snipsfile
Start your project by creating a Snipsfile
, which is where all the configuration is set. This is a simple text file, adhering to the YAML format. Here is a basic configuration:
assistant_url: <YOUR ASSISTANT URL>
default_location: Paris,fr
skills:
- package_name: snipshue
class_name: SnipsHue
url: https://github.com/snipsco/snips-skill-hue
params:
hostname: <PHILIPS HUE IP>
username: <PHILIPS HUE USERNAME>
light_ids: [1, 2, 3, 4, 5, 6]
intents:
- intent: ActivateLightColor
action: "turn_on"
- intent: DeactivateObject
action: "turn_off"
For further explanations and examples, check out our Snipsfile Wiki.
Installing the lambdas
Next, setup the assistant by running the install
command:
$ snipsmanager install
The snipsmanager
service will automatically start on boot. You can also start it manually by running:
$ snipsmanager run
Contributing
Please see the Contribution Guidelines.
Copyright
This library is provided by Snips as Open Source software. See LICENSE.txt for more information.