updated asr model and intents model
parent
dea6a52e3c
commit
12d588fcd5
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,20 +1,25 @@
|
||||
1 good
|
||||
1 okay
|
||||
1 by no means
|
||||
1 amen
|
||||
1 yea
|
||||
1 nope
|
||||
1 never
|
||||
1 yeah
|
||||
1 fine
|
||||
1 affirmative
|
||||
1 nix
|
||||
1 no
|
||||
1 not
|
||||
1 not at all
|
||||
1 good
|
||||
1 okay
|
||||
1 yes
|
||||
1 fine
|
||||
1 no
|
||||
1 all right
|
||||
1 true
|
||||
1 stop it
|
||||
1 no way
|
||||
1 i don't think so
|
||||
1 not at all
|
||||
1 nay
|
||||
1 nope
|
||||
1 i think so
|
||||
1 sure
|
||||
1 go on
|
||||
1 amen
|
||||
1 never
|
||||
1 no not at all
|
||||
1 nix
|
||||
1 not
|
||||
1 true
|
@ -1,8 +1,8 @@
|
||||
{
|
||||
"choice": {
|
||||
"vanilla": "b048ef60-c29a-472d-bd67-8e5cc65a1e72.vanilla",
|
||||
"vanilla": "c183b0a5-c95a-4001-bd05-71518b89254a.vanilla",
|
||||
"ngram": true,
|
||||
"added": "b048ef60-c29a-472d-bd67-8e5cc65a1e72.added",
|
||||
"added": "c183b0a5-c95a-4001-bd05-71518b89254a.added",
|
||||
"pruningThresholds": [],
|
||||
"order": 3
|
||||
}
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,92 +1,126 @@
|
||||
<eps> 0
|
||||
's#1 1
|
||||
a#1 2
|
||||
affirmative#1 3
|
||||
all#1 4
|
||||
amen#1 5
|
||||
ask#1 6
|
||||
at#1 7
|
||||
by#1 8
|
||||
cancel#1 9
|
||||
choose#1 10
|
||||
fine#1 11
|
||||
for#1 12
|
||||
go#1 13
|
||||
good#1 14
|
||||
i#1 15
|
||||
is#1 16
|
||||
it#1 17
|
||||
me#1 18
|
||||
means#1 19
|
||||
nay#1 20
|
||||
never#1 21
|
||||
nix#1 22
|
||||
no#1 23
|
||||
nope#1 24
|
||||
not#1 25
|
||||
okay#1 26
|
||||
question#1 27
|
||||
right#1 28
|
||||
something#1 29
|
||||
that#1 30
|
||||
think#1 31
|
||||
to#1 32
|
||||
true#1 33
|
||||
want#1 34
|
||||
way#1 35
|
||||
yea#1 36
|
||||
yeah#1 37
|
||||
yes#1 38
|
||||
yo#1 39
|
||||
#0 40
|
||||
<s> 41
|
||||
</s> 42
|
||||
`ENTITY`b048ef60-c29a-472d-bd67-8e5cc65a1e72`END 43
|
||||
`INTENT`724cf256-45e2-4ab7-a741-5e7ca82a9756`END 44
|
||||
`INTENT`ca101149-1495-494f-92f6-e9e042eb9266`START 45
|
||||
`INTENT`ca101149-1495-494f-92f6-e9e042eb9266`END 46
|
||||
`ENTITY`b048ef60-c29a-472d-bd67-8e5cc65a1e72`START 47
|
||||
`INTENT`724cf256-45e2-4ab7-a741-5e7ca82a9756`START 48
|
||||
`INTENT`4c40d5ef-686e-489f-8dcf-175ea8eb7b82`END 49
|
||||
`INTENT`4c40d5ef-686e-489f-8dcf-175ea8eb7b82`START 50
|
||||
``ROOT 51
|
||||
b048ef60-c29a-472d-bd67-8e5cc65a1e72 52
|
||||
all 53
|
||||
right 54
|
||||
yea 55
|
||||
is 56
|
||||
it 57
|
||||
affirmative 58
|
||||
go 59
|
||||
at 60
|
||||
want 61
|
||||
cancel 62
|
||||
okay 63
|
||||
yes 64
|
||||
fine 65
|
||||
for 66
|
||||
no 67
|
||||
not 68
|
||||
means 69
|
||||
question 70
|
||||
to 71
|
||||
that 72
|
||||
choose 73
|
||||
way 74
|
||||
nay 75
|
||||
nope 76
|
||||
me 77
|
||||
good 78
|
||||
's 79
|
||||
yo 80
|
||||
amen 81
|
||||
never 82
|
||||
yeah 83
|
||||
nix 84
|
||||
ask 85
|
||||
true 86
|
||||
by 87
|
||||
a 88
|
||||
i 89
|
||||
think 90
|
||||
something 91
|
||||
act#1 3
|
||||
affirmative#1 4
|
||||
all#1 5
|
||||
am#1 6
|
||||
amen#1 7
|
||||
at#1 8
|
||||
by#1 9
|
||||
can#1 10
|
||||
cancel#1 11
|
||||
choose#1 12
|
||||
could#1 13
|
||||
do#1 14
|
||||
don't#1 15
|
||||
fine#1 16
|
||||
for#1 17
|
||||
give#1 18
|
||||
go#1 19
|
||||
good#1 20
|
||||
i#1 21
|
||||
introduce#1 22
|
||||
introduction#1 23
|
||||
is#1 24
|
||||
it#1 25
|
||||
let#1 26
|
||||
means#1 27
|
||||
nay#1 28
|
||||
never#1 29
|
||||
nix#1 30
|
||||
no#1 31
|
||||
nope#1 32
|
||||
not#1 33
|
||||
okay#1 34
|
||||
on#1 35
|
||||
play#1 36
|
||||
please#1 37
|
||||
ready#1 38
|
||||
right#1 39
|
||||
so#1 40
|
||||
start#1 41
|
||||
stop#1 42
|
||||
sure#1 43
|
||||
that#1 44
|
||||
the#1 45
|
||||
think#1 46
|
||||
to#1 47
|
||||
true#1 48
|
||||
want#1 49
|
||||
way#1 50
|
||||
yea#1 51
|
||||
yeah#1 52
|
||||
yes#1 53
|
||||
you#1 54
|
||||
yourself#1 55
|
||||
yourselves#1 56
|
||||
#0 57
|
||||
<s> 58
|
||||
</s> 59
|
||||
`INTENT`dd30ebee-ca03-4d21-a5ff-a136188e2576`END 60
|
||||
`INTENT`a2456c23-94f1-4dca-9fb4-bdb42d2a8cf5`START 61
|
||||
`ENTITY`c183b0a5-c95a-4001-bd05-71518b89254a`START 62
|
||||
`INTENT`3542d9f8-6645-4f99-b41b-8ad9e71e6460`END 63
|
||||
`INTENT`3542d9f8-6645-4f99-b41b-8ad9e71e6460`START 64
|
||||
`INTENT`a2456c23-94f1-4dca-9fb4-bdb42d2a8cf5`END 65
|
||||
`INTENT`dd30ebee-ca03-4d21-a5ff-a136188e2576`START 66
|
||||
`ENTITY`c183b0a5-c95a-4001-bd05-71518b89254a`END 67
|
||||
``ROOT 68
|
||||
c183b0a5-c95a-4001-bd05-71518b89254a 69
|
||||
all 70
|
||||
right 71
|
||||
give 72
|
||||
yea 73
|
||||
is 74
|
||||
ready 75
|
||||
am 76
|
||||
it 77
|
||||
affirmative 78
|
||||
cancel 79
|
||||
sure 80
|
||||
at 81
|
||||
want 82
|
||||
go 83
|
||||
okay 84
|
||||
yes 85
|
||||
fine 86
|
||||
for 87
|
||||
no 88
|
||||
introduction 89
|
||||
don't 90
|
||||
please 91
|
||||
start 92
|
||||
that 93
|
||||
choose 94
|
||||
way 95
|
||||
means 96
|
||||
nay 97
|
||||
nope 98
|
||||
do 99
|
||||
play 100
|
||||
good 101
|
||||
's 102
|
||||
to 103
|
||||
amen 104
|
||||
never 105
|
||||
stop 106
|
||||
introduce 107
|
||||
yeah 108
|
||||
nix 109
|
||||
let 110
|
||||
not 111
|
||||
yourselves 112
|
||||
yourself 113
|
||||
true 114
|
||||
by 115
|
||||
a 116
|
||||
on 117
|
||||
i 118
|
||||
could 119
|
||||
so 120
|
||||
can 121
|
||||
act 122
|
||||
you 123
|
||||
the 124
|
||||
think 125
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,17 +0,0 @@
|
||||
{
|
||||
"sample_rate": 16000,
|
||||
"frame_length_ms": 25.0,
|
||||
"frame_shift_ms": 10.0,
|
||||
"num_mfcc": 40,
|
||||
"num_mel_bins": 40,
|
||||
"mel_low_freq": 20,
|
||||
"cepstral_lifter": 0.0,
|
||||
"dither": 1.0,
|
||||
"window_type": "povey",
|
||||
"use_energy": false,
|
||||
"energy_floor": 0.0,
|
||||
"raw_energy": true,
|
||||
"preemphasis_coefficient": 0.0,
|
||||
"w_smooth": 30,
|
||||
"w_max": 100
|
||||
}
|
Binary file not shown.
@ -1,68 +0,0 @@
|
||||
[
|
||||
{
|
||||
"threshold": 0.99997336,
|
||||
"recall": 0.0013297872340425532,
|
||||
"sensitivity": 0,
|
||||
"far": 0.0
|
||||
},
|
||||
{
|
||||
"threshold": 0.48656777,
|
||||
"recall": 0.9295212765957447,
|
||||
"sensitivity": 0.1,
|
||||
"far": 0.0017921146953405018
|
||||
},
|
||||
{
|
||||
"threshold": 0.42605102,
|
||||
"recall": 0.9401595744680851,
|
||||
"sensitivity": 0.2,
|
||||
"far": 0.002986857825567503
|
||||
},
|
||||
{
|
||||
"threshold": 0.42605102,
|
||||
"recall": 0.9401595744680851,
|
||||
"sensitivity": 0.3,
|
||||
"far": 0.002986857825567503
|
||||
},
|
||||
{
|
||||
"threshold": 0.3095676,
|
||||
"recall": 0.9561170212765957,
|
||||
"sensitivity": 0.4,
|
||||
"far": 0.011350059737156512
|
||||
},
|
||||
{
|
||||
"threshold": 0.2795505,
|
||||
"recall": 0.961436170212766,
|
||||
"sensitivity": 0.5,
|
||||
"far": 0.016129032258064516
|
||||
},
|
||||
{
|
||||
"threshold": 0.2795505,
|
||||
"recall": 0.961436170212766,
|
||||
"sensitivity": 0.6,
|
||||
"far": 0.016129032258064516
|
||||
},
|
||||
{
|
||||
"threshold": 0.24352217,
|
||||
"recall": 0.964095744680851,
|
||||
"sensitivity": 0.7,
|
||||
"far": 0.022301871764237355
|
||||
},
|
||||
{
|
||||
"threshold": 0.24352217,
|
||||
"recall": 0.964095744680851,
|
||||
"sensitivity": 0.8,
|
||||
"far": 0.022301871764237355
|
||||
},
|
||||
{
|
||||
"threshold": 0.09038606,
|
||||
"recall": 0.9800531914893617,
|
||||
"sensitivity": 0.9,
|
||||
"far": 0.13102349661489446
|
||||
},
|
||||
{
|
||||
"threshold": 0.0,
|
||||
"recall": 1.0,
|
||||
"sensitivity": 1.0,
|
||||
"far": 1.0
|
||||
}
|
||||
]
|
@ -1,49 +0,0 @@
|
||||
# Generated Snips skill
|
||||
|
||||
This is a generated python script using the `snips-template` tool. It is supposed to be used by Home Assistant.
|
||||
It uses the `hass` object to call Home Assistant services, check https://www.home-assistant.io/components/python_script/
|
||||
|
||||
## Setup
|
||||
|
||||
Actions expected to happen when installing the final folder (on device)
|
||||
- move python code in the Hass `python_scripts` folder. Scripts name MUST be lowercased.
|
||||
- add `mqtt:` broker & port that Snips uses
|
||||
- add `python_script:` component
|
||||
- add `snips:` component to Hass configuration, see https://www.home-assistant.io/components/snips/
|
||||
- edit Hass' `configuration.yaml` to point to the scripts that were added.
|
||||
|
||||
For instance, if you use Snips' Smart lights bundle, this is what your `configuration.yaml` would look like:
|
||||
|
||||
```
|
||||
mqtt:
|
||||
broker: 127.0.0.1
|
||||
port: 1883
|
||||
|
||||
python_script:
|
||||
|
||||
snips:
|
||||
|
||||
intent_script:
|
||||
lightsTurnOnSet:
|
||||
action:
|
||||
- service: python_script.action_lightsTurnOnSet_Smart_lights
|
||||
data_template:
|
||||
house_room: "{{ house_room }}"
|
||||
number: "{{number}}"
|
||||
unit: "{{unit}}"
|
||||
|
||||
lightsTurnOff:
|
||||
action:
|
||||
- service: python_script.action_lightsTurnOff_Smart_lights
|
||||
data_template:
|
||||
house_room: "{{house_room}}"
|
||||
```
|
||||
|
||||
The `data_template` section is exposing Snips' intents `slot_value` to the python script. Therefore you'll be able to get slot values in the python script:
|
||||
`house_room = data.get('house_room')`
|
||||
|
||||
## Executables
|
||||
|
||||
This dir contains a number of python executables named `action_*.py`.
|
||||
One such file is generated per intent supported. These are standalone
|
||||
executables and will be run by Hass when an intent is triggered.
|
@ -1,2 +0,0 @@
|
||||
{{#each action_code as |a|}}{{a}}
|
||||
{{/each}}
|
@ -1,6 +0,0 @@
|
||||
{
|
||||
"name":"homeassistant",
|
||||
"language":"PYTHON",
|
||||
"prelude": "\"\"\"\n<intent_slot_name> = data.get('<intent_slot_name>')\nservice_data = {'entity_id': '<intent_slot_name>' }\nhass.services.call('<hass_component>', '<hass_component_method>', service_data, False)\"\"\"",
|
||||
"postlude": ""
|
||||
}
|
@ -1,17 +0,0 @@
|
||||
# Generated Snips skill
|
||||
|
||||
This is a generated javascript snips skill using the `snips-template` tool.
|
||||
It is compatible with the format expected by the `snips-skill-server`
|
||||
|
||||
## Setup
|
||||
|
||||
This skill requires some javascript dependencies to work properly, these are
|
||||
listed in the `package.json` file. You can use the `setup.sh` script to install
|
||||
them.
|
||||
|
||||
## Executables
|
||||
|
||||
This dir contains a number of javascript executables named `action-*.js`.
|
||||
One such file is generated per intent supported. These are standalone
|
||||
executables and will perform a connection to MQTT and register on the
|
||||
given intent using the `hermes-javascript` helper lib.
|
@ -1,23 +0,0 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
const ini = require('ini')
|
||||
const fs = require('fs')
|
||||
|
||||
const { withHermes } = require('hermes-javascript')
|
||||
const configFile = fs.readFileSync('./config.ini', 'utf8')
|
||||
const config = ini.parse(configFile)
|
||||
|
||||
withHermes((hermes, done) => {
|
||||
try {
|
||||
const dialog = hermes.dialog()
|
||||
|
||||
dialog.flow('intent/{{intent_id}}', async (message, flow) => {
|
||||
{{#each action_code as |a|}}
|
||||
{{a}}
|
||||
{{/each}}
|
||||
})
|
||||
} catch (error) {
|
||||
console.error(error.toString())
|
||||
done()
|
||||
}
|
||||
})
|
@ -1,9 +0,0 @@
|
||||
{
|
||||
"name": "snips-action-template",
|
||||
"description": "Auto-generated snips action template.",
|
||||
"version": "0.0.1",
|
||||
"dependencies": {
|
||||
"hermes-javascript": "^0.1.0",
|
||||
"ini": "^1.3.5"
|
||||
}
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
#/usr/bin/env bash -e
|
||||
|
||||
npm install
|
@ -1,6 +0,0 @@
|
||||
{
|
||||
"name":"javascript",
|
||||
"language":"JAVASCRIPT",
|
||||
"prelude": "/*\n Your action code will be wrapped inside a function with the following signature:\n\n function(message, flow, config) { /* action code */ }\n\n Where:\n - 'message' is the intent message object\n - 'flow' is the hermes-javascript flow object (see: https://github.com/snipsco/hermes-protocol/tree/develop/platforms/hermes-javascript#dialogflow for mode details)\n - 'config' is an object containing your App parameters\n `config.global.parameterName` or `config.secret.secretParameterName`\n*/\n",
|
||||
"postlude": ""
|
||||
}
|
@ -1,18 +0,0 @@
|
||||
# Generated Snips skill
|
||||
|
||||
This is a generated Python 2 snips app using the `snips-template` tool.
|
||||
It is compatible with the format expected by the `snips-skill-server`
|
||||
|
||||
## Setup
|
||||
|
||||
This app requires some python dependencies to work properly, these are
|
||||
listed in the `requirements.txt`. You can use the `setup.sh` script to
|
||||
create a python virtualenv that will be recognized by the skill server
|
||||
and install them in it.
|
||||
|
||||
## Executables
|
||||
|
||||
This dir contains a number of python executables named `action-*.py`.
|
||||
One such file is generated per intent supported. These are standalone
|
||||
executables and will perform a connection to MQTT and register on the
|
||||
given intent using the `hermes-python` helper lib.
|
@ -1,41 +0,0 @@
|
||||
#!/usr/bin/env python2
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import ConfigParser
|
||||
from hermes_python.hermes import Hermes
|
||||
from hermes_python.ffi.utils import MqttOptions
|
||||
from hermes_python.ontology import *
|
||||
import io
|
||||
|
||||
CONFIGURATION_ENCODING_FORMAT = "utf-8"
|
||||
CONFIG_INI = "config.ini"
|
||||
|
||||
class SnipsConfigParser(ConfigParser.SafeConfigParser):
|
||||
def to_dict(self):
|
||||
return {section : {option_name : option for option_name, option in self.items(section)} for section in self.sections()}
|
||||
|
||||
|
||||
def read_configuration_file(configuration_file):
|
||||
try:
|
||||
with io.open(configuration_file, encoding=CONFIGURATION_ENCODING_FORMAT) as f:
|
||||
conf_parser = SnipsConfigParser()
|
||||
conf_parser.readfp(f)
|
||||
return conf_parser.to_dict()
|
||||
except (IOError, ConfigParser.Error) as e:
|
||||
return dict()
|
||||
|
||||
def subscribe_intent_callback(hermes, intentMessage):
|
||||
conf = read_configuration_file(CONFIG_INI)
|
||||
action_wrapper(hermes, intentMessage, conf)
|
||||
|
||||
|
||||
def action_wrapper(hermes, intentMessage, conf):
|
||||
{{#each action_code as |a|}}{{a}}
|
||||
{{/each}}
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
mqtt_opts = MqttOptions()
|
||||
with Hermes(mqtt_options=mqtt_opts) as h:
|
||||
h.subscribe_intent("{{intent_id}}", subscribe_intent_callback) \
|
||||
.start()
|
@ -1,3 +0,0 @@
|
||||
# Bindings for the hermes protocol
|
||||
hermes-python>=0.2
|
||||
|
@ -1,20 +0,0 @@
|
||||
#/usr/bin/env bash -e
|
||||
|
||||
VENV=venv
|
||||
|
||||
if [ ! -d "$VENV" ]
|
||||
then
|
||||
|
||||
PYTHON=`which python2`
|
||||
|
||||
if [ ! -f $PYTHON ]
|
||||
then
|
||||
echo "could not find python"
|
||||
fi
|
||||
virtualenv -p $PYTHON $VENV
|
||||
|
||||
fi
|
||||
|
||||
. $VENV/bin/activate
|
||||
|
||||
pip install -r requirements.txt
|
@ -1,6 +0,0 @@
|
||||
{
|
||||
"name":"python2",
|
||||
"language":"PYTHON_2",
|
||||
"prelude": "\"\"\" Write the body of the function that will be executed once the intent is recognized. \nIn your scope, you have the following objects : \n- intentMessage : an object that represents the recognized intent\n- hermes : an object with methods to communicate with the MQTT bus following the hermes protocol. \n- conf : a dictionary that holds the skills parameters you defined. \n To access global parameters use conf['global']['parameterName']. For end-user parameters use conf['secret']['parameterName'] \n \nRefer to the documentation for further details. \n\"\"\" ",
|
||||
"postlude": ""
|
||||
}
|
@ -1,18 +0,0 @@
|
||||
# Generated Snips skill
|
||||
|
||||
This is a generated Python 3 snips app, using the `snips-template` tool.
|
||||
It is compatible with the format expected by the `snips-skill-server`
|
||||
|
||||
## Setup
|
||||
|
||||
This app requires some python dependencies to work properly, these are
|
||||
listed in the `requirements.txt`. You can use the `setup.sh` script to
|
||||
create a python virtualenv that will be recognized by the skill server
|
||||
and install them in it.
|
||||
|
||||
## Executables
|
||||
|
||||
This dir contains a number of python executables named `action-*.py`.
|
||||
One such file is generated per intent supported. These are standalone
|
||||
executables and will perform a connection to MQTT and register on the
|
||||
given intent using the `hermes-python` helper lib.
|
@ -1,41 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import configparser
|
||||
from hermes_python.hermes import Hermes
|
||||
from hermes_python.ffi.utils import MqttOptions
|
||||
from hermes_python.ontology import *
|
||||
import io
|
||||
|
||||
CONFIGURATION_ENCODING_FORMAT = "utf-8"
|
||||
CONFIG_INI = "config.ini"
|
||||
|
||||
class SnipsConfigParser(configparser.SafeConfigParser):
|
||||
def to_dict(self):
|
||||
return {section : {option_name : option for option_name, option in self.items(section)} for section in self.sections()}
|
||||
|
||||
|
||||
def read_configuration_file(configuration_file):
|
||||
try:
|
||||
with io.open(configuration_file, encoding=CONFIGURATION_ENCODING_FORMAT) as f:
|
||||
conf_parser = SnipsConfigParser()
|
||||
conf_parser.readfp(f)
|
||||
return conf_parser.to_dict()
|
||||
except (IOError, configparser.Error) as e:
|
||||
return dict()
|
||||
|
||||
def subscribe_intent_callback(hermes, intentMessage):
|
||||
conf = read_configuration_file(CONFIG_INI)
|
||||
action_wrapper(hermes, intentMessage, conf)
|
||||
|
||||
|
||||
def action_wrapper(hermes, intentMessage, conf):
|
||||
{{#each action_code as |a|}}{{a}}
|
||||
{{/each}}
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
mqtt_opts = MqttOptions()
|
||||
with Hermes(mqtt_options=mqtt_opts) as h:
|
||||
h.subscribe_intent("{{intent_id}}", subscribe_intent_callback) \
|
||||
.start()
|
@ -1,3 +0,0 @@
|
||||
# Bindings for the hermes protocol
|
||||
hermes-python>=0.2
|
||||
|
@ -1,20 +0,0 @@
|
||||
#/usr/bin/env bash -e
|
||||
|
||||
VENV=venv
|
||||
|
||||
if [ ! -d "$VENV" ]
|
||||
then
|
||||
|
||||
PYTHON=`which python3`
|
||||
|
||||
if [ ! -f $PYTHON ]
|
||||
then
|
||||
echo "could not find python"
|
||||
fi
|
||||
virtualenv -p $PYTHON $VENV
|
||||
|
||||
fi
|
||||
|
||||
. $VENV/bin/activate
|
||||
|
||||
pip install -r requirements.txt
|
@ -1,6 +0,0 @@
|
||||
{
|
||||
"name":"python3",
|
||||
"language":"PYTHON_3",
|
||||
"prelude": "\"\"\" Write the body of the function that will be executed once the intent is recognized. \nIn your scope, you have the following objects : \n- intentMessage : an object that represents the recognized intent\n- hermes : an object with methods to communicate with the MQTT bus following the hermes protocol. \n- conf : a dictionary that holds the skills parameters you defined. \n To access global parameters use conf['global']['parameterName']. For end-user parameters use conf['secret']['parameterName'] \n \nRefer to the documentation for further details. \n\"\"\" ",
|
||||
"postlude": ""
|
||||
}
|
Loading…
Reference in New Issue