GithubHelp home page GithubHelp logo

sibest19 / intents Goto Github PK

View Code? Open in Web Editor NEW

This project forked from home-assistant/intents

0.0 0.0 0.0 5.54 MB

Intents to be used with Home Assistant

Home Page: https://developers.home-assistant.io/docs/voice/overview/

License: Creative Commons Attribution 4.0 International

Shell 3.70% JavaScript 0.21% Python 90.27% CSS 1.44% HTML 4.37%

intents's Introduction

Intents for Home Assistant

This repository contains training data for Home Assistant's local voice control.

Repository layout:

  • languages.yaml
    • Supported languages and their language leader.
  • intents.yaml
    • Supported intents
  • sentences/<language>
    • Intent matching sentences in YAML files for <language> with the name <domain>_<intent>.yaml.
    • File format
  • responses/<language>
    • YAML files for <language> with responses for intents.
    • File format
  • tests/<language>
    • YAML files for <language> with test sentences and corresponding intents.
    • File format

See the documentation for more information.

Development

Checkout the repository and get a development environment with script/setup. This will create a new virtual environment in the venv directory of the repository, and install all necessary requirements.

Before developing, always activate your virtual environment with source venv/bin/activate.

Run tests

Validate that the data is correctly formatted:

python3 -m script.intentfest validate --language nl

Run the tests. This will parse the sentences and verifies them with the test sentences.

pytest tests --language nl -k fan_HassTurnOn

Leave off --language to test all languages. Leave off -k to test all files.

Test parsing sentences

You can try parsing sentences for a specific language with:

python3 -m script.intentfest parse --language en --sentence 'turn on the lights in the kitchen'

This will print a line of JSON for each --sentence:

{
  "text": "turn on the lights in the kitchen",
  "match": true,
  "intent": "HassTurnOn",
  "slots": {
    "area": "kitchen",
    "domain": "light"
  }
}

Test sampling sentences

You can sample the possible sentences for a specific language with:

python3 -m script.intentfest sample --language en -n 1

This will print a line of JSON for each possible sentence:

python3 -m script.intentfest sample --language en -n 1
{"intent": "HassTurnOff", "text": "turn off all the fan in the kitchen"}
{"intent": "HassTurnOn", "text": "turn on the light in the kitchen"}
{"intent": "HassCloseCover", "text": "close the bedroom lamp"}
{"intent": "HassClimateSetTemperature", "text": "set the temp to 0 degrees celsius"}
{"intent": "HassLightSet", "text": "set the bedroom lamp brightness to 0 percent"}
{"intent": "HassOpenCover", "text": "open the bedroom lamp"}
{"intent": "HassClimateGetTemperature", "text": "what's the temp "}

You can filter for specific intents by adding --intents HassTurnOn HassTurnOff.

Leave off -n to generate all possible sentences.

Test sampling template

To quickly test a sentence template, use:

python3 -m script.intentfest sample_template <template>

For example:

python3 -m script.intentfest sample_template 'open [the] door'
open the door
open door

You can add lists, ranges, and expansion rules as well:

python3 -m script.intentfest sample_template 'set color to <color> and brightness to {brightness}' --values color red green --range brightness 1 2 --rule color '[the] {color}'

Add new language

python3 -m script.intentfest add_language <language code> <language name>

<language code> should be something like en or pl according to ISO 639.

Language name should be the name of the language in its own language.

intents's People

Contributors

synesthesiam avatar balloob avatar dependabot[bot] avatar thefes avatar tetele avatar andrejs2 avatar steffenrapp avatar davefx avatar slegars56 avatar luboskadasi avatar spuljko avatar v1k70rk4 avatar schizza avatar dontinelli avatar skynetua avatar bluefoxlee avatar hepoh3 avatar arunshekher avatar jlpouffier avatar ahmed-farag36 avatar hristo-atanasov avatar nikito7 avatar mib1185 avatar limitless00net avatar svarthvitt avatar natfaji avatar aaliankhan avatar mojikosu avatar al-one avatar abmantis avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.