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

L' AIML

10 Avril 2011 , Rédigé par crriam Publié dans #l'aiml

"L’Artificial Intelligence Markup Language (AIML) est un langage dérivé de XML utilisé pour gérer la connaissance des avatars et bots (robots virtuels) autrement appelés agent conversationnels. Ce langage utilise une vingtaine de balises de base. L' AIML a été développé par Richard Wallace entre 1995 et 2002". cf wikipédia plus d'info ici

 

L'aiml a été créer pour l'Anglais, et notament le programme ALICE  voila pourquoi il est beaucoup plus difficile de faire un tchatbot ou tchatterbot en francais. en effet, notre langue est beaucoup plus riche, et compliqué, mais il est tout de même possible de créer un robot en aiml français.

 

Le principe :

l'utilisateur entre une texte, le robot sort une réponse.

 

Exemple :

 

-bonjour (humain)

- salut, comment tu vas ? (robot)

 

Pour cela pas besoin de beaucoup de commande ni de ligne de texte.

alors comment faire ?

 

tout d'abort, trouver un logiciel qui pourra à la fois editer et faire tourner le programme, le plus simple pour débuter, utiliser les services de pandorabots. Vous vous inscriver, et hop, vous pouvez commencer à fabriquer le cerveau de votre bot avec un simple navigateur internet.

 

Comment créer et utiliser un bot avec pandorabot ? (le texte entre guillement provient de : http://ssm2017.free.fr/index.php/Technique/Scripts/pandorabots.html le reste est posté par Bruno Claret du CRRIAM )

"Il suffit d'aller sur le site pandorabots.com et de s'inscrire en allant dans "account signup".
Ensuite vous avez acces à la page "mes pandorabots"
Vous allez dans "creer" puis vous donner un nom à votre bot et vous choisissez une librairie AIML à utiliser (Soit vous laissez celle par defaut ( votre bot parlera anglais par contre ))" 

soit vous le prenez vide et vous créer vous même ce que vous voulez que votre bot dise avec l'interface simple de pandorabots et l'onglet 'entrainement'

 

Pour ce faire, Vous entrez votre texte comme dans l'exemple du dessus (bonjour) clikez sur ask et entrez la réponse du robot dans le champ du robot (salut, comment tu vas ?)  et cliquez sur 'dire plutot ceci' et voila, c'est fait ! vous avez fait vos premiers pas, votre robot sait déjà dire un minimum.vous pouvez voir a quoi ressemble le fichier aiml que vous venez de créer en allant dans l'ongler aiml et en choisissant le fichier update

 

Ces premiers pas étant limité, vous alles vite vouloire allez plus loin, et la vous pouvez utiliser lors de l'entrainement le bouton reponse differente avancé, où vous aurez le choix d'insérer directement plusieurs balises.

 

 

OU alors,

 

. Vous pouvez aussi aller dans l'onglet aiml, et télécharger des fichiers de votre crue ou fait par d'autres comme celà :
"( on peut trouver des "dictionnaires aiml" gratuits à cette adresse )

 

 

  Pour que tout le monde puisse parler à votre bot, on vous demande de le "publier" il faut donc le faire en cliquant sur le lien "publier", et ne pas oublier de republier chaque fois que vous aurez modifier celui ci et que vous voudrez que ces modification soit visible par le public.


"Une fois le bot crée, vous le voyez dans la liste des bots ( vous pouvez en creer plusieurs )

Chaque bot possede un numero permettant de l'identifier : le botid

On peut voir le botid de son bot en cliquant sur le nom du bot ( ou voir le botid dans l'url )
Par exemple, pour le bot ssm2017, je vois que l'url est : http://www.pandorabots.com/botmaster/fr/summary?botid=c515e91c1e36b68b
donc le botid de ssm2017 est c515e91c1e36b68b."

Comment parler avec le bot ?

(le texte entre guillement provient de : http://ssm2017.free.fr/index.php/Technique/Scripts/pandorabots.html )

Le Plus simple, "On peut deja utiliser le bot par l'interface html fournie par le serveur.
Pour cela, il suffit d'aller dans la liste des bots et de cliquer sur le nom du bot voulu.
On peut ensuite voir "Ce Pandorabot est publié à cette adresse:"
Le premier lien propose une page simple avec juste un champ dans lequel on ecrit un texte, on appuie sur le bouton "say" et il repond.
Le deuxieme lien propose une demo de la version "parlé" qui deviendra payante si l'on ne veut pas la pub et le mettre sur son site."

 

On peut aussi utilisé l'onglet html customisé pour fabriquer simplement votre propre page. et obtenire ceci : http://tungstene.free.fr/bot.html

 

Il existe aussi une interface flash, mais je la trouve limitée. L'html permetant d'utiliser toute la puissance du javascript !

 

Vous pouvez vous faire des choses beaucoup plus élaborés en utlisiant les méthode ci dessous :

"Comment y acceder par formulaire html ?

(le texte entre guillement provient de : http://ssm2017.free.fr/index.php/Technique/Scripts/pandorabots.html )

On peut acceder au bot en envoyant un formulaire à l'adresse : http://www.pandorabots.com/pandora/talk-xml
La reponse sera un document xml.
On peut utiliser GET ou POST
Les champs necessaires sont :

  • botid ( contenant l'id du bot )
  • input ( contenant la phrase à envoyer au bot )
  • custid (optionnel)( contenant l'id de la personne qui parle au bot pour que le bot se souvienne de vous ( le custid est donne à la premiere reponse et il est bien de le reutiliser ) )

Il faut que le champ "input" soit filtre en "urlencode" pour ne pas avoir de probleme avec les accents.

Exemple de lien : http://www.pandorabots.com/pandora/talk-xml?botid=c515e91c1e36b68b&custid=&input=salut

Exemple de formulaire html

<form action="http://www.pandorabots.com/pandora/talk-xml">
<input type="hidden" name="botid" value="c515e91c1e36b68b"/>
<input type="hidden" name="custid" value=""/>
<input name="input" type="text" value="salut"/>
<input name="submit" type="submit"/>
</form>

Comment y acceder par php ?

On peut utiliser CURL + simplexml

exemple de code :

 
<?php
// definition des variables
$uri = "http://www.pandorabots.com/pandora/talk-xml";
$botid = 'c515e91c1e36b68b'; // ce bot s'appelle ssm2017 et il me sert de test ( ne vous attendez pas à ce qu'il vous parle de shakespeare )
$input = 'salut';
$custid = '';

// construction de la chaine à poster
$post = "botid=$botid&input=$input&custid=$custid";

// ouverture d'un "buffer" ( mettre les donnees en cache )
ob_start();

// definition des options de curl
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $uri); // uri où aller
curl_setopt($ch, CURLOPT_TIMEOUT, 9); // arret au bout de 9 secondes si aucune reponse
curl_setopt($ch, CURLOPT_POST, TRUE); // oui monsieur, on envoie des donnees en POST
curl_setopt($ch, CURLOPT_POSTFIELDS, $post); // les donnees à envoyer
curl_setopt($ch, CURLOPT_POSTFIELDSIZE, strlen($post)); // la quantite de donnees à envoyer ( optionnel )

// execution de curl
curl_exec($ch);

// recuperation du contenu du cache
$string = ob_get_contents();

// affichage du message d'erreur si il y en a un
if (curl_errno($ch)) {
echo "Error: " . curl_error($ch);
return; // on se casse, on a plus rien à faire ici, ca deconne :)
}

// arret de curl
curl_close($ch);

// vidage du cache
ob_end_clean();

// convertion du resultat en objet xml
$xml = simplexml_load_string($string);

// utilisation d'une requete "xpath" pour "pointer" l'element "that"
$result = $xml->xpath('/result/that');

// balayage des reponses
while(list( , $node) = each($result)) {
// affichage du/des resultat(s)
echo 'that = ',$node,"\n";
}

Comment y acceder en LSL ?

Il existe un script qui peut faire ca pour vous à cette adresse

Existent ils des bots sl pour pandorabots ?

Oui il en existe un mais je trouve qu'il manque d'options comme par exemple il ne gere pas le custid et il n'est pas discret dans ses reponses.
Il s'appelle avapet et peut etre telecharge à cette adresse.

J'ai fait un bot qui gere le custid et qui est discret ( on ne croirait pas que c'est un bot ) Disponible ici : http://ssm2017.free.fr/index.php/Technique/Scripts/ssmbot.html"

 


Partager cet article

Repost 0

Commenter cet article