如何在Watson Conversation中触发对话框?

时间:2018-10-23 00:20:00

标签: ibm-watson watson-conversation botkit

我需要在ibm-watson对话中触发一个特定的对话框,但不要求用户键入某些内容(例如意图)。我需要使用botkit来初始化特定对话框。有可能吗我正在Google中寻找所有可能的文档和链接,但未成功:/

1 个答案:

答案 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
(我也是写的,所以有点太相似了。)

对话框示例: enter image description here