Hello,
C’est tout à fait possible, et c’est une des grande force de Gladys aussi, elle est customisable !
pour rappel, lorsque tu parles à Gladys, elle classifie ta demande dans un label.
Exemple : Je dis “Hello” à Gladys
les logs :
0|gladys | brain : classify : Identified label brain;greeting
0|gladys | Getting conversation 3be40d6f-49bc-4aeb-b434-ca7b4903028d, found 1 messages.
0|gladys | Brain : answer : Answering with label greeting in language fr-FR
Elle a attribué cette sentence au label greeting
. Et va répondre avec un phrase choisie au hasard parmi les answer ayant un label greeting
Voici un script que tu peux exécuter pour attribuer une réponse à un label :
var answer={
uuid: “87d0983d-b5c9-45a9-8745-bae592daef14”,
label: “user-leaving-home”,
text: “Tu me quittes ? Reviens vite !”,
language: “fr”,
needAnswer: false,
};
gladys.answer.create(answer);
Dans la variable answer il faut :
- Créer un
uuid
à chaque nouvelle réponse, j’utilise ce site pour un générer un nouveau à chaque fois : https://www.uuidgenerator.net/
- Donner le
label
auquel ta réponse correspond
- changer le
text
pour en faire ta réponse
Pour connaitre tes labels disponibles je ne connais que cette méthode :
En SSH taper :
- -> mysql -uNOMUTILISATEUR -pMOTDEPASSE
- use gladys;
- SELECT DISTINCT label FROM answer ORDER BY label ASC; (En italique : pour trier en ordre alphabétique)
Utile à préciser je pense :
Concernant les labels : Il y a une subtilité (si je dis n’importe quoi corrigez moi !) :
Quand tu envoies une commande (sentence) à Gladys, La classification fais 2 choses :
-
Attribution d’un service : deviceType, brain etc… qui va catégoriser ta demande et appeler la bonne fonction “command” du bon module/core.
-
Attribution d’un label : set-deviceType-on; set-deviceType-off, greeting ; whats-up… qui va décrire ta demande (allumer ou éteindre; salutation ou comment ca va ? ) et être le paramètre de ta fonction “command” afin d’exécuter la bonne tache.
Il y a donc une petite confusion qui peut être faite, entre le label des sentences (commandes) et le label des answer (réponse). Il ne s’agit pas du même label. Si je dis à Gladys “Allume la lumière de ma chambre”
les logs :
0|gladys | brain : classify : Identified label deviceType;set-device-on
0|gladys | Getting conversation 3ee3f11a-5801-4736-9adc-35272be7d687, found 1 messages.
0|gladys | option [object Object]
0|gladys | DeviceType.command : Found 1 deviceType in room Chambre
0|gladys | Event : create : new Event with code : devicetype-new-value
0|gladys | Scenario : Trigger : New event : devicetype-new-value
0|gladys | Scenario : Trigger : Found 24 launchers with code devicetype-new-value.
0|gladys | Brain : answer : Answering with label default in language fr-FR
Label de la sentence : set-deviceType-on
Label de la réponse : default
Lien entre les deux labels :
Dans chaque fonction “command” des module/core tu définis le label de réponse, c’est comme ça que Gladys sait quel label de réponse associer à quelle sentence.
Le label de la sentence permet d’attribuer le label de l’answer.
Si aucun label de réponse n’est défini, Galdys attribura “default”
Puis les labels des réponses sont appelés pour envoyer une réponse aléatoire parmi toutes les phrases du label choisie.