Chat virtuel

Soyez le premier à donner votre avis sur cette source.

Vue 7 617 fois - Téléchargée 1 006 fois

Description

Voici un script qui vous permet de dialoguer avec un fichier XML. Il s'agit en effet d'un chat virtuel. Le script suivant contient plusieurs fonctions qui nécessite un fichier XML contenant les tags suivant : "question" permet de repérer la question que l'on a posé "reponse" permet en fonction de la question posé, d'obtenir la réponse "enchaine" et un enchainement suite à la réponse qui permet à la réponse de réenchaîner sur une question ou une suggestion. "imbriquer" est une imbriquation qui permet d'indiquer une question ou une référence qui sera alors utilisé pour la prochaine réponse. C'est à dire que l'on peut créer un scénario de réponses à l'aide de l'imbrication sans se préoccuper de la question posé... A vous de composez votre fichier XML pour compléter le dialogue avec la machine !

Source / Exemple :


<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
//Le script suivant contient plusieurs fonctions qui nécessite un fichier XML contenant les tags
//suivant :
//<question> = Permet de repérer la question que l'on a posé
//<reponse> = En fonction de la question posé, cela permet d'obtenir la réponse
//<enchaine> = Enchainement permet à la réponse de réenchaîner sur une question ou une suggestion
//<imbriquer> = Imbriquation permet d'indiquer une question ou une référence qui sera utilisé pour la prochaine réponse
//C'est à dire que l'on peut créer un scénario de réponses à l'aide de l'imbrication sans se préoccuper de la question posé...
function PoserQuestion(){
//on pose la question
var message=prompt("Ecrivez votre message","");
if (message==""){
}else{
//On transforme la réponse toute en minuscule
message=message.toLowerCase();
RechercheReponse(message)
}
//Fin de la fonction
}
function PoserQuestionVide(strImbriquer){
//on pose une question mais dans le vide le message envoyé va être remplacer par l'imbrication
var message=prompt("Ecrivez votre message","");
if (message==""){
}else{
//Le message prend alors la valeur imbriquer et on transforme la réponse toute en minuscule
message=strImbriquer;
message=message.toLowerCase();
RechercheReponse(message)
}
//Fin de la fonction
}

function RechercheReponse(message){
//On recherche la question posé dans le fichier XML
doc = fichierxml.XMLDocument;
collectionxmldonnee = doc.documentElement.getElementsByTagName("xmldonnee");
nbrxmldonnee = collectionxmldonnee.length;

//Avant de rechercher une question à notre réponse, il faut analyser notre question
//1°) Combien de caractère compose notre question
x=message.length;
//2°) Il faut déterminer les mots clés de la question
//??

//On utise une boucle pour questionné le fichier XML :
i=0;
while (i<nbrxmldonnee) {
strQuestion = collectionxmldonnee.item(i).getElementsByTagName("question").item(0).text;
//On transforme la question cherchée toute en minuscule
strQuestion=strQuestion.toLowerCase();
strReponse = collectionxmldonnee.item(i).getElementsByTagName("reponse").item(0).text;
strEnchaine = collectionxmldonnee.item(i).getElementsByTagName("enchaine").item(0).text;
strImbriquer = collectionxmldonnee.item(i).getElementsByTagName("imbriquer").item(0).text;

Resultat=strQuestion.indexOf(message,0);
if(Resultat>-1){
alert (strReponse);
  if (strEnchaine!=""){
  alert(strEnchaine);
  }
i=nbrxmldonnee;
}else{
i++
  if(i==nbrxmldonnee){
  //Si aucune réponse trouvé
  alert("Oué");
  }
}//Fin de la condition Resultat
}//Fin de la boucle

//Le tag imbriquer va permettre de programmer une direction sur les questions / réponses souhaitez.
if (strImbriquer==""){
//Si pas d'imbrication, alors on pose une question normalement
PoserQuestion()
}else{
//Sinon on pose une question dite vide car quelque soit la question, la réponse est déjà tracé...
PoserQuestionVide(strImbriquer)
}

}//Fin de la fonction

</SCRIPT>

</HEAD>
<BODY onLoad="PoserQuestion()">
<xml id="fichierxml" src="Chat Virtuel.xml"/>
</BODY>
</HTML>

Conclusion :


Le xml est dans le zip.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
126
Date d'inscription
samedi 28 novembre 2009
Statut
Membre
Dernière intervention
9 juin 2013

marrant la source ^^, par contre j'aime pas les alertes comme ça :s ca pourrait etre une piste pour un support interactif intelligent( en gros une ia de support)
Messages postés
126
Date d'inscription
samedi 28 novembre 2009
Statut
Membre
Dernière intervention
9 juin 2013

WTF!!!??? j'arrive sur la page, et mon antivir detecte un virus dans les caches ie!
Messages postés
13
Date d'inscription
samedi 8 octobre 2005
Statut
Membre
Dernière intervention
12 octobre 2010

bonjour
j'aime bien cette source et j'aimerais savoir si il est possible de l'intégré dans une page html du style comme sur sfr ??

si oui comment faire parce ce que je n'y arrive pas j'aime pas les truc qui s'ouvre je préférerais que ca face comme un vrais chat mais tout en restent dans ce principe la ....
Messages postés
1
Date d'inscription
samedi 16 janvier 2010
Statut
Membre
Dernière intervention
16 janvier 2010

comment faire pour integrer ce script sur mon site avec toweb
Messages postés
647
Date d'inscription
samedi 30 décembre 2000
Statut
Membre
Dernière intervention
20 juillet 2012
5
Bonjour,

L'idée est très intérressante mais on pourrait améliorer le tout.

Il me semble que théoriquement, en javascript avec des Array se serait possible. Pour plus de possibilité, peut-être supprimer les signes de ponctuation (?!.). Par exemple, Bonjour fonctionne mais non Bonjour !

Finalement, peut-être détecter que si le prompt envoie NULL (donc que l'on a cliquer sur Annuler), qu'on nous affiche AU REVOIR ! au lieu de devoir toujours continuer à nous répondre jusqu'à tombe sur Oué.

Pour la compatibilité, je n'ai que testé avec IE7 et il n'y a aucun problème ;)

Sincérement,

JDMCreator

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.