我正在构建一个聊天机器人,一些脚本如下
var convpatterns = new Array (
new Array (".*hi.*", "Hello there! ","Greetings!"),
new Array (".*ask me*.", Smoking),
new Array (".*no*.", "Why not?"),
如您所见,如果用户输入“hi”,聊天机器人会回复 Hello there 或 Greetings!如果用户输入“问我一个问题”,它会链接到 Smoking() 函数。
function Smoking(){
window.iSpeech.speak(speakPluginResultHandler,nativePluginErrorHandler,"Do you smoke?");
return field
SmokingAnswer()
}
function SmokingAnswer(){
var userinput=document.getElementById("messages").value;
if (userinput="yes"){
window.iSpeech.speak(speakPluginResultHandler,nativePluginErrorHandler,"Oh no! Smoking is not good for your health!");
}else if(userinput="no"){
window.iSpeech.speak(speakPluginResultHandler,nativePluginErrorHandler,"Good to hear that you are not smoking!");
}
return field
}
所以在 Smoking() 函数中,聊天机器人会口头询问用户“你吸烟吗?”,然后它应该链接到下一个函数 SmokingAnswer() ,用户可以在其中输入是或否和聊天机器人然后将根据用户的回复给出回复。但是现在如果我输入“问我一个问题”,聊天机器人会问“你吸烟吗?”,但是当我输入“不”时,聊天机器人不会说“很高兴听到你不吸烟!”说“为什么不呢?” 基于新的数组。
更新(根据建议更改,但仍然无效):
function initialCap(field) {
field = field.substr(0, 1).toUpperCase() + field.substr(1);
return field
}
function Smoking(){
window.iSpeech.speak(speakPluginResultHandler,nativePluginErrorHandler,"Do you smoke?");
SmokingAnswer()
}
function SmokingAnswer(){
var userinput=document.getElementById("messages").value;
if (userinput=="yes"){
window.iSpeech.speak(speakPluginResultHandler,nativePluginErrorHandler,"Oh no! Smoking is not good for your health!");
}else if(userinput=="no"){
window.iSpeech.speak(speakPluginResultHandler,nativePluginErrorHandler,"Good to hear that you are not smoking!");
}
return field
}