我正在构建一个聊天机器人。聊天脚本的一些示例如下:
var convpatterns = new Array (
new Array (".*ask me a question*", Question1),
new Array ("I need (.*)" , "Why do you need $1?" , "Are you sure you need $1?"),
new Array (".*sorry.*", "Please dont apologise", "Apologies are not necessary", "it is ok, it didn't bother me")
);
所以基本上如果用户输入“问我一个问题”,它会将用户引导到该Question1()
功能。如果用户输入“我需要一个朋友”,聊天机器人会回答“你为什么需要一个朋友?” 或“你确定你需要一个朋友吗?”。
function Question1(){
var textbox=document.getElementById("messages").value;
window.iSpeech.speak(speakPluginResultHandler,nativePluginErrorHandler,"Do you smoke?");
if (textbox="Yes"){
window.iSpeech.speak(speakPluginResultHandler,nativePluginErrorHandler,"Oh, do you know smoking is bad for your health?");
} else if (textbox="No"){
window.iSpeech.speak(speakPluginResultHandler,nativePluginErrorHandler,"That's great to hear that you don't smoke!");
}
}
这window.ispeech.speak
将允许聊天机器人口头说出这些话。
因此,当聊天机器人问“你吸烟吗?”,并且用户在文本框中输入“是”或“否”时,聊天机器人会根据回复做出响应。
我想要的是Question1()
函数在聊天机器人开始并询问其他事情之前完成运行(因此它等待用户在函数完成之前输入“yes”或“no”并且可以开始新脚本),因为我不希望用户的响应与数组中可用的其他脚本发生冲突(例如,文本框的输入“是”可能与脚本中的另一个“是”数组发生冲突)。