vanotix | Oui bonjour excusez moi de vous dérangez j'ai pour mon TPE (Oral/Dossier) choisis un code de chatbot que je ne comprend pas trop pouvez-vous me l'expliquer ?
Code :
- <!DOCTYPE html>
- <html>
- <head>
- <title>Chatbot</title>
- </head>
- <body>
- <div id="main">
- <div>user: <span id="user"></span></div>
- <div>chatbot: <span id="chatbot"></span></div>
- <div><input id="input" type="text" placeholder="say anything..." autocomplete="off"/></div>
- </div>
- <script type="text/javascript">
- var trigger = [
- ["salut","coucou","bonjour"],
- ["comment vas tu","comment te sens tu"],
- ["que fais tu","tu fais quoi"],
- ["quel age as tu"],
- ["qui es tu","es tu humaine","es tu un bot","es tu humaine ou un robot"],
- ["ton prenom s'il te plait", "ton prenom","puis je connaitre ton prenom","quel est ton nom"],
- ["heureux","bien"],
- ["mal"],
- ["aide moi","raconte moi une histoire","raconte moi une blague"],
- ["ah","oui","ok","okay","cool","merci"],
- ["bye","au revoir","ciao","a plus tard"],
- ];
- var reply = [
- ["salut","coucou","bonjour"],
- ["bien","vraiment bien et toi","fantastique"],
- ["rien de special","je vais aller au lit","peux tu deviner?","je ne sais pas vraiment"],
- ["on peut dire que j'ai 1 semaine maintenant"],
- ["je suis juste un bot","je suis un bot"],
- ["je suis Emy"],
- ["content d'entendre ca"],
- ["pourquoi?","essaye de regarder la TV alors"],
- ["je veux t'aider","a propos de quoi"],
- ["raconte moi une histoire","raconte moi une blague","parle moi de toi"],
- ["ciao", "salut", "a plus tard"],
- ];
- var alternative = ["Haha...", "Je n'ai pas compris"];
- document.querySelector("#input" ).addEventListener("keypress", function(e){
- var key = e.which || e.keyCode;
- if(key === 13){ //Enter button
- var input = document.getElementById("input" ).value;
- document.getElementById("user" ).innerHTML = input;
- output(input);
- }
- });
- function output(input){
- try{
- var product = input + "=" + eval(input);
- } catch(e){
- var text = (input.toLowerCase()).replace(/[^\w\s\d]/gi, "" ); //remove all chars except words, space and
- text = text.replace(/ a /g, " " ).replace(/i feel /g, "" ).replace(/whats/g, "what is" ).replace(/please /g, "" ).replace(/ please/g, "" );
- if(compare(trigger, reply, text)){
- var product = compare(trigger, reply, text);
- } else {
- var product = alternative[Math.floor(Math.random()*alternative.length)];
- }
- }
- document.getElementById("chatbot" ).innerHTML = product;
- speak(product);
- document.getElementById("input" ).value = ""; //clear input value
- }
- function compare(arr, array, string){
- var item;
- for(var x=0; x<arr.length; x++){
- for(var y=0; y<array.length; y++){
- if(arr[x][y] == string){
- items = array[x];
- item = items[Math.floor(Math.random()*items.length)];
- }
- }
- }
- return item;
- }
- function speak(string){
- var utterance = new SpeechSynthesisUtterance();
- utterance.voice = speechSynthesis.getVoices().filter(function(voice){return voice.name == "Jack";})[0];
- utterance.text = string;
- utterance.lang = "fr-EU";
- utterance.volume = 1; //0-1 interval
- utterance.rate = 1;
- utterance.pitch = 2; //0-2 interval
- speechSynthesis.speak(utterance);
- }
- </script>
- </body>
- </html>
|
Message édité par vanotix le 03-02-2019 à 16:31:37
|