mardi, juin 20, 2006

amaroK chat bot plugin

Bonsoir,
l'avant dernier post n'a été qu'une mise en bouche pour réaliser quelque chose de plus intéressant. Au menu du jour, je propose encore un nouveau plugin pour aMSN.

OK, cette fois j'évite le listing de code, le jargon technique et toutes ces choses qui font du blog «encore un autre blog par un informaticien pour informaticiens». Tous doivent s'y retrouver!

Le chat botté.

En quelques mots, un «chat bot» ou «chat robot» est un logiciel qui mène une conversation avec un humain. Ce logiciel prétend être intelligent en essayant de répondre de façon cohérente aux messages envoyés par l'interlocuteur.

..au pays des merveilles

A.L.I.C.E ou Alice est un chat bot qui est fondé sur une base de connaissances écrite dans un langage XML nommé AIML. Le plugin que je propose, intègre Alice à aMSN et permet de laisser le bot faire la conversation à votre place.

Par exemple, une fois le chat bot activé, celui-ci mène la conversation engagée par un de vos contacts MSN.

Les outils

Pour réaliser cela j'ai utilisé le langage Python qui est disponible sur la majorité des distributions Linux. Le binding Python pour le SDK de KDE est aussi nécessaire dans la mesure où DCOP est utilisé comme protocole de communication inter-processus. Pour manipuler la base de connaissance en AIML, pyAIML a été utilisé. Et enfin, pour réaliser le plugin, on peut reprendre, moyennant quelques modifications, le code TCL de l'avant dernier post.

La conception

Le script Python sera utilisé pour:
  1. Charger les fichiers AIML.
  2. Transmettre le message de l'interlocuteur à Alice.
  3. Renvoyer la réponse.

L'idée est d'utiliser DCOP pour la communication entre notre script TCL et notre script Python. Une fois le plugin activé, les messages entrant sont soumis par le biais de DCOP au script Python. Ensuite, la réponse trouvée de la base de connaissances de Alice est relayée par le script TCL au contact.

TCL <--> DCOP <--> Python

Les seuls messages DCOP exposés par le script Python sont:

ask: Pour soumettre un message à Alice et obtenir une réponse

syntaxe: dcop Alice bot ask "" ""

exemple: dcop Alice-6466 "what is the date today?" "david"

exit: Pour arrêter le programme Python.

syntaxe: dcop Alice bot exit

Télécharger le script python ici.

Le plugin TCL

Inutile de publier le code du plugin. Pour le réaliser, il suffit de repartir du dernier plugin et de coder la procédure received dans laquelle on fait cette fois l'appel DCOP ask.

Pour appeler ask on peut écrire quelque chose comme ça:
set reponse [exec dcop `dcop | grep -i alice` bot ask $question $identifiant]


La réponse obtenue, on l'envoi à l'interlocuteur en utilisant la procédure MessageSend définie dans le fichier gui.tcl. Comme pour le dernier plugin, rien n'est prévu pour l'arrêt, ni pour le chargement. Je laisse le soin à l'intéressé de compléter.

3 Comments:

Anonymous Anonyme said...

Une idée (débile) pour une autre version de chat bot : un répondeur automatique et intelligent de messages "roses" pour solitaires endurcis. Déclinable en version masculine et féminine... Idée de nom du logiciel : Chocolo Bot

2:59 AM  
Blogger Myelin Operation said...

Facile il suffit d'avoir une nouvelle base de connaissances.

Monsieur est toujours frivole.

3:17 AM  
Blogger Sds said...

bonjour,
Je suis preneuse si vous avez une version toute prête de ce repondeur automatique et intelligent de messages rose, c'est justement ce que je cherchais pour notre salle quand je vous ai lu.
Ou faut il signer ?
(je suis affreusement nulle en technique) mais je peux vous indiquer la salle voir si votre idée lumineuse est compatible avec notre joujou.
Merci de votre réponse,
Sourire de sables

8:09 AM  

Enregistrer un commentaire

<< Home