2016-08-30 8 views
1

Désolé pour mon mauvais anglais, mais je donne mon meilleur :) J'ai quelques questions et j'espère que je suis ici pour trouver une réponse. Je souhaite créer un chatbot hors ligne dans html/css/js et utiliser le programme Intel XDK.Chatbot réponse/temps de réponse Code en js

  1. Je ne sais pas, comment donner au chatbot une commande spéciale? Donc, qu'il répond sur des mots/sujets spéciaux. Voici un exemple: "Moi: hey" "Bot: hey/salut"

2.Les problème suivant est de créer un temps de réponse à des mots/sujets particuliers. Un exemple: Si je dis "hey", il doit s'agir du temps de réponse de Chatbot de "1min".

J'utilise ce code index.js

var $messages = $('.messages-content'), 
    d, h, m, 
    i = 0; 

$(window).load(function() { 
    $messages.mCustomScrollbar(); 
    setTimeout(function() { 
    fakeMessage(); 
    }, 100); 
}); 

function updateScrollbar() { 
    $messages.mCustomScrollbar("update").mCustomScrollbar('scrollTo', 'bottom', { 
    scrollInertia: 10, 
    timeout: 0 
    }); 
} 

function setDate(){ 
    d = new Date() 
    if (m != d.getMinutes()) { 
    m = d.getMinutes(); 
    $('<div class="timestamp">' + d.getHours() + ':' + m + '</div>').appendTo($('.message:last')); 
    } 
} 

function insertMessage() { 
    msg = $('.message-input').val(); 
    if ($.trim(msg) == '') { 
    return false; 
    } 
    $('<div class="message message-personal">' + msg + '</div>').appendTo($('.mCSB_container')).addClass('new'); 
    setDate(); 
    $('.message-input').val(null); 
    updateScrollbar(); 
    setTimeout(function() { 
    fakeMessage(); 
    }, 1000 + (Math.random() * 20) * 100); 
} 

$('.message-submit').click(function() { 
    insertMessage(); 
}); 

$(window).on('keydown', function(e) { 
    if (e.which == 13) { 
    insertMessage(); 
    return false; 
    } 
}) 

var Fake = [ 
    'Hi there, I\'m Fabio and you?', 
    'Nice to meet you', 
    'How are you?', 
    'Not too bad, thanks', 
    'What do you do?', 
    'That\'s awesome', 
    'Codepen is a nice place to stay', 
    'I think you\'re a nice person', 
    'Why do you think that?', 
    'Can you explain?', 
    'Anyway I\'ve gotta go now', 
    'It was a pleasure chat with you', 
    'Time to make a new codepen', 
    'Bye', 
    ':)' 
] 

function fakeMessage() { 
    if ($('.message-input').val() != '') { 
    return false; 
    } 

Répondre

0

La façon la plus simple d'y parvenir est défini un tableau associatif avec des messages, des réponses et les délais d'attente. Comme:

var Fake = { 
    "Hi": ['Hi there, I\'m Fabio and you?', 6000] 
} 

Et puis obtenir votre message à l'intérieur fakeMessage comme

var msg = Fake[$('.message-input').val()]; 

Comme amélioration du code ci-dessus, vous pouvez utiliser une boucle $.each sur la matrice Fake et .indexOf chaque clé dans votre message pour bien répondre à des messages comme "Bonjour" ou "Bonjour Fabio"