IA et A.L.I.C.E - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Général (https://jeuweb.org/forumdisplay.php?fid=36) +--- Forum : Blabla (https://jeuweb.org/forumdisplay.php?fid=42) +--- Sujet : IA et A.L.I.C.E (/showthread.php?tid=3011) |
IA et A.L.I.C.E - Jeckel - 01-12-2010 Dans plusieurs jeux, on retrouve la possibilité de communiquer avec un PNJ, parfois le dialogue ce fait d'un choix entre plusieurs réponses prédéfinies, mais parfois on peut avoir envie d'essayer de mettre en place une "conversation" en langage naturel. J'aurai voulu savoir si certaines d'entre vu ce sont déjà intéressé au projet A.L.I.C.E ? Le projet A.L.I.C.E est grosso modo un algorithme inventé par le Dr. Richard Wallace, permettant avec un langage (AIML) de définir les concepts d'une conversation avec une pseudo IA. Il n'est pas question ici de passer le test de Thuring loin de là, mais de mettre en place des éléments permettant au bot de suivre un conversation, d'enregistrer certains éléments dans les réponse et de pouvoir les ressortir plus tard dans la conversation en reconnaissant l'interlocuteur... En gros, vous lui dite votre nom au début, et ensuite il vous appellera toujours par votre nom par exemple... mais cela peut s'appliquer à toute sorte de donnée qui seront utilisée dans la conversation. Il existe deux façon plus ou moins simple d'utiliser un A.L.I.C.E bot dans un projet en PHP. Le premier, le plus évident, mais pas le plus simple est d'utilisé un version toute faite de l'implémentation de l'algorithme, je crois que la version PHP s'appelle le Program O. La seconde solution, un peu plus sexy, c'est de partir sur une solution en cloud... c'est à dire de ne pas se casser le cul à télécharger, paramétrer le bot sur son serveur, mais d'utiliser un service web gratuit proposant d'héberger votre bot, et d'ensuite, faire un petit bout de programme en PHP qui va interroger ce service à chaque fois. Le site PandoratBots (rien à voir avec Avatar) propose justement d'héberger votre bot, ou même d'utiliser certains bots déjà bien avancé mis a disposition par la communauté. Un point intéressant, c'est que votre bot peut en quelque sorte apprendre (avec de l'aide), c'est à dire que chaque phrase à laquelle il n'aura pas sût répondre vont être stockée et disponible dans une interface qui vous permettra de lui enseigner comment répondre à cette phrase. Pour une liste des Bots les plus actifs vous pouvez aller ici :Most Active Bots Bref, ces bots sont actuellement utilisé souvent pour les systèmes d'aide en ligne, par exemple sur le site de la SNCF, la petite demoiselle virtuelle qui vous propose de répondre à vos question est basée sur ce type de bot. Voilà, donc je pensais, dans mon propre jeu, créer un bot de ce genre pour les PNJs (plusieurs en fait, histoire que les PNJ ne partagent pas leurs souvenirs) Qu'en pensez-vous ? avez-vous déjà fait des recherches dans cette direction ? Pour les débutants en PHP, l'utilisation d'un bot sur PandoraBots (distant) est très facile, si vous avez besoin, je vous fournirai un bout de code de test sans problèmes. Edit : j'ai retrouvé le site du Program-O (l'implémentation PHP à installer sur son serveur.. je déconseille personnellement) : http://www.program-o.com/ RE: IA et A.L.I.C.E - Dexyne - 01-12-2010 Ha super sympa je connaissais pas ! Moi qui m'intéressais au bot ou IA ça va m'intéresser ^^. J'ai tester en demandant "What is god ?" et il me répondait que ce serait plutôt "who" donc j'ai demandé "who is god" et ça répondait le maître de l'univers, mais le bot nommé God disait que c'était lui même dieu :lol:. Merci pour les infos et les liens . RE: IA et A.L.I.C.E - niahoo - 01-12-2010 La démo marche pas avec moi sur le site de program-o. Sinon c'est intéressant, t'aurais pas une implémentation en un truc un peu plus solide que le PHP, et qui reste actif sans rechargement de page ? En tout cas c'est cool, reste à voir comment ça pourrait être utilisé par des PNJ, si on peut simplifier et limiter les discussions, car si tout le monde se met à tailler une bavette avec les PNJ ça va bien lagger RE: IA et A.L.I.C.E - Dexyne - 01-12-2010 Moi non plus le program-o ne fonctionnait pas. Apparemment il est pas à jour ou un truc comme ça (écrit en dessous). Sinon c'est vrai que le serveur pourrait ne pas tenir si tout le monde parle avec mais si tu utilise un service externe comme PandoraBots ce n'est plus toi qui gère le bot en lui-même mais seulement les interactions non ? ('fin ça peut quand même faire lagguer les serveur après). Après c'est vrai que recharger la page chaque fois que tu veux lui parler c'est pas très pratique mais bon. RE: IA et A.L.I.C.E - Jeckel - 01-12-2010 Pour le site program-o, j'avoue ne pas avoir regardé, j'avais téléchargé le source il y a quelque temps, et l'ai trouvé inbitable (non franchement, le code est crade, on y comprend rien) Du coup, je conseille plutôt l'utilisation du site pandoraBot. Dans d'autre langage, il faut chercher sur le site d'ALICE, il existe diverses implémentations à chaque fois c'est program-X Je viens de trouver la liste des implémentations "officielles" (si quelque veut tester la version en LISP... hahaha... pardon) : http://www.alicebot.org/downloads/programs.html D'ailleurs, ils ne parlent pas de Program-O mais de Program-E pour le PHP, je ne connais pas, il est peut-être mieux finalement Sinon, pour aléger la charge du serveur local, ce que je conseil, c'est une interface AJAX, qui envoit la saisie (et les paramètres complémentaires) à un petit script PHP, qui lui tape sur un pandoraBot, recupère la réponse et la renvoie au nigateur... le site pandoraBot est assez résistant je crois. RE: IA et A.L.I.C.E - Globe - 01-12-2010 Ça peut effectivement être intéressant mais personnellement je ne me dirigerais pas vers une solution de ce type pour un jeu. pour moi tout l'intérêt d'une conversation dans un RPG est son affect sur l'histoire, et je ne ferais pas assez confiance à un joueur pour qu'il trouve de lui même l'un des chemins viables. Et je ne veux pas le faire patauger trop longtemps pour qu'il trouve le bon sujet de conversation qui lancera un event. Ça pourrait se faire mais je trouve ça trop compliqué, je préfère les dialogues à choix multiples, ça permet à la fois au joueur d'arriver directement au moment opportun s'il le souhaite, mais aussi de se renseigner sur le background si ça l'intéresse et finalement je pense que les joueurs cherchent rarement la liberté dans ce genre de jeu, ils cherchent l'illusion de liberté, avoir l'impression de faire ce qu'ils veulent tout en étant guidé pour qu'ils n'aient jamais à se dire "bon et je fais quoi maintenant ?". RE: IA et A.L.I.C.E - Jeckel - 01-12-2010 @Globe, je comprend très bien, et je pense que tu as tout à fait raison. D'ailleurs à te lire, je me dis que ce genre d'IA pourrait plutôt intervenir comme aide de jeu, le Jimmy Cricket du personnage par exemple. Ensuite, ce genre d'IA est totalement configurable, tu peux partir de 0 et lui donner un nombre limité de réponse avec des réponses par défaut (quand il n'a pas compris) qui indiqueront les sujets à aborder. Enfin (et c'est comme ça que je l'utiliserai, si je le fait) tu peux toujours "encapsuler" le bot dans un objet qui va rerouter certain message sans passer par le bot, ou fournir une liste de mots clés à utiliser... Bon, le jour où je m'emmerde, j'essaierai de faire un prototype pour voir ce que ça donne... RE: IA et A.L.I.C.E - Dexyne - 01-12-2010 C'est vrai que si on laisse une grosse marge le joueur peut ne pas trouver l'élément pour déclencher la suite et donc partir du jeu parce qu'il le trouve trop dur. Sinon ça peut donner un aspect plus réel et plus vivant pour le jeu (interaction avec un personnage "personne", comme si il existait quoi x) ) même si il sera limité mais bon. Après je pense pas qu'il faut le faire pour tous les PNJ ça rendra pas top, perso je comptais m'intéresser à un truc du genre pour l'aide moi aussi, tu poses une question puis le bot y répond si possible, sinon il te redirige vers un sujet proche éventuellement, et après essayer d'ajouter les réponses les plus recherchés. RE: IA et A.L.I.C.E - Jeckel - 01-12-2010 Je vous invite à créer un bot de test sur le site de pandorabot, pour voir réellement comment ça se configure. On peut très bien le limiter volontairement, qu'il n'ait qu'une vingtaine de réplique possible, et une réplique "par défaut" qui identifie un peu les autres... Ensuite (mais c'est la qu'il faut que je fasse un proto) il y a peut-être moyen d'ajouter des phrases système, c'est à dire une phrase qui ne sera pas envoyé par le joueur, mais par le jeu pour identifier au bot l'état d'avancement du joueur dans une quête et permettre au bot de modifier ses réponses en concéquence. Le truc important (et intéressant) avec ces bots c'est que lorsque l'on commence une conversation, on lui fournit un "identifiant de conversation" qui va lui permettre de conserver un contexte et un avancement de la conversation (il peut enregistrer une partie des réponses) cet identifiant peut-être le personnage, et ainsi avoir une conversation légèrement différente d'une personnage à l'autre (historique différent). Par contre, l'une des limites, c'est qu'il n'est pas possible de passer une donnée d'une conversation à une autre, autrement dit, un bot ne peut pas donner à un joueur une information qu'il a obtenu d'un autre joueur (dommage, pour le jeu de rôle, ca aurait pu donner de chouettes trucs) RE: IA et A.L.I.C.E - Dexyne - 01-12-2010 Bah si tu modifies le bot ou que tu trifouilles quelques trucs ça doit pouvoir se faire :p C'est vrai qu'après ça pourrais être sympa n'empêche, contre de l'argent le PNJ (bot) te fourni des infos sur tel joueur, quels renseignements a-t-il demandé ? (par exemple niveau stratégique pour arrêter son avancer militaire pour pas qu'il aille détruire un copinou ), etc. Quoi qu'après faudrait avoir la possibilité de lui donner un caractère, genre "je te filerais jamais d'infos même contre la terre entière", "Si ta de la thune je te file ce que tu veux", "La thune m'intéresse pas, mais si ta X objet(s) peut-être que..." Enfin après les possibilités sont déjà grandes avec un bot de ce type. |