我需要在ibm-watson对话中触发一个特定的对话框,但不要求用户键入某些内容(例如意图)。我需要使用botkit来初始化特定对话框。有可能吗我正在Google中寻找所有可能的文档和链接,但未成功:/
答案 0 :(得分:1)
在对话框中发送初始空消息触发器welcome
事件。
要使其有所不同,可以在上下文中设置一些变量,并为该变量添加条件以欢迎对话框中的分支。
这是我在漫游器中实现的方式:
function handleHelloEvent(bot, message) {
message.type = 'welcome';
const contextDelta: any = {};
if (message.intent) {
contextDelta.initialIntent = message.intent;
}
//more fields here
watsonMiddleware.sendToWatsonAsync(bot, message, contextDelta).catch((error) => {
message.watsonError = error;
}).then(() => {
//this is the same function which handles message_received events
return handleWatsonResponse(bot, message);
});
}
function handleWatsonResponse(bot, message) {
bot.reply(message, message.watsonData.output.text.join('\n'));
}
controller.on('hello', handleHelloEvent);
controller.on('message_received', handleWatsonResponse);
hello
事件特定于任何地方的webchat / botkit,您可能需要为不同的平台处理不同的事件。
代码处理欢迎事件的类似示例:https://github.com/watson-developer-cloud/botkit-middleware/#dynamic-workspace
(我也是写的,所以有点太相似了。)