Skip to content
This repository has been archived by the owner on Mar 25, 2019. It is now read-only.

snipsco/snipsmanager

Repository files navigation

Snips Manager [❗️DEPRECATED]

Build Status PyPi MIT License

❗️ 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.

About

The Snips Assistant Manager

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published