Overblog Suivre ce blog
Editer l'article Administration Créer mon blog
Le blog du CRRIAM

Module deconnection

2 Mai 2012 , Rédigé par crriam Publié dans #Organisation des fichiers aiml

Pour une raison ou pour une autre (insulte, mise en veille, aurevoir etc.) , vous voulez que votre robot ne réponde plus.

comment faire ?

 

Rien de plus simple :

 

Par exemple vous voulez qu'en cas d'insulte il se déconnecte et que l'utilisateur ne puisse plus lui parler :

D'abord, faire un paterne insulte

 

<category>
        <pattern> insulte </pattern>
        <template>

      Je ne parle pas au gens qui m'insulte, mode deconnection activé

      <srai>deconnectioninsulte</srai>

       </template>

</category>

 

 

ce pattern renvois à l'aide de srai sur le module (pattern) deconnectioninsulte

qui sera comme ça :

 

 

<category>
 <pattern>deconnectioninsulte</pattern>
 <template>

<think><set name="topic">deconnectioninsulte</set></think>
</template>
</category>

 

Là, le module se contentera de mettre deconnectioninsulte comme sujet de conversation

Pourquoi faire un moduledeconnection insulte à part alors que l'on aurait pu intégrer directement la ligne

<think><set name="topic">deconnectioninsulte</set></think>

entre les balise template du patern insulte ?

 

réponse : pour pouvoir envoyer d'autre commande lors de l'utilisation de ce module, comme ici, on pourrai rajouter entre les balise template <srai>botdeconnection</srai> pour gèrer l'interface et mettre un écran noir par exemple. Et pour que l'on puisse utiliser ce module avec d'autre patern comme au revoir, salut, bonne nuit, je vais manger etc.

 

en suite, il faudra faire en sorte que n'importe quel entrée utilisateur soit rediriger vers soit une réponse soit une réponse vide.

 

<topic name="deconnectioninsulte">
<category>
 <pattern> _ </pattern> 

<template>
<think><set name="codereinitialisation"><star/></set></think>
<condition name="codereinitialisation">
<li value="code secret">remise en marche
<think><set name="topic">remise en marche</set></think>

Robot pret à répondre à nouveau

</li>
<li>connection interompue</li>
</condition>
</template>
</category>

</topic>

 

explication :

 

la première ligne <topic name="deconnectioninsulte"> dis au robot de ne prendre en compte les lignes suivantes que si le sujet de conversation est "deconnectioninsulte"

de cette façon, le module ne pourra pas se déclancher autrement.

 

la ligne <pattern> _ </pattern>  dit au robot que pour n'importe quel touche, entrée, on effectura le code entre les template.

 

on aurait put se contenter de mettre

<template> connection interompue</template>

 

ou un template vide qui ne ferais afficher aucune réponse

<template> </template>

 

Alors pourquoi le reste ?

 

Pour pouvoir reprendre la main sur le robot ! Car une fois le module lancer,

aucune entrée ne pourrait stoper le module deconnection et l'on ne pourrait plus parler avec le robot.

 

Donc pour éviter ça, on mets l'entré utilisateur dans une variable :

 

<think><set name="codereinitialisation"><star/></set></think>

 

On teste la variable pour voir si elle correspond au code de réactivation du robot que l'on a choisi ici, la phrase code secret, mais on aurait pu choisir un code à chiffre comme 1234 par exemple

 

<condition name="codereinitialisation">
<li value="code secret">remise en marche

 

si l'entrée est

"code secret"   alors

on mets le sujet de conversation "remise en marche" ou ce que l'on veut d'autre du moment que ce n'est plus "deconnectioninsulte"

et on lui fait dire  : "Robot pret à répondre à nouveau" pour que l'on sache que tout fonctionne.

 

Sinon, on

lui fait dire "connection interompue"

 

Voilà, c'est aussi simple que ça.

Bien sur, au cas ou le code secret soit tapper on peut rajouter des actions à effectuer, comme réalumer l'interface, réinitialiser des variables etc. etc.

 

 

 

Partager cet article

Repost 0

Commenter cet article