如何从URL触发IBM Watson Assistant中的特定节点

时间:2018-10-05 00:41:28

标签: ibm-cloud watson-conversation watson-dialog

我有一个网站,该网站链接到基于IBM Watson Assistant构建的聊天机器人。网站上有一些超链接,我想触发watson对话框的特定节点/意图。

示例:用户单击“提供反馈”链接,watson聊天机器人启动,并基于该链接识别“ provide_feedback”意图(从而避免用户在单击链接后需要指定意图)。

以前有人尝试过吗?

2 个答案:

答案 0 :(得分:0)

The Watson Assistant service basically is used via a REST API。该API是从工作区编辑器from your dedicated application中的“尝试”窗格中调用的,或者也可以从嵌入网站的窗口小部件中调用。 message call用于将用户输入发送到Watson Assistant并接收聊天机器人响应。

您可以做的是从您的应用中调用消息API,并传递一个特定的术语作为输入消息。该术语将与意图匹配,因此触发特定的对话框节点。举例来说,如果您为短语“用户按下的反馈按钮”定义了意图“ provide_feedback”,而您恰好传递了该短语作为输入消息,那么意图“ provide_feedback”将匹配。

答案 1 :(得分:0)

我也遇到了这个要求,并想在这里提及另一种选择:

除了发送与所需节点的意图匹配的输入文本外,还可以传递

  

评估用户输入时要使用的意图。doc

并告诉助手以1.0的置信度进行匹配。

我认为这是一种干净的方法,因为您无需处理输入文本的歧义处理。 然后,您根本不需要发送输入文本,并且意图实际上甚至不需要示例短语:-)

例如,如果要触发意图为#provide_feedback的节点

您可以调用以下python示例代码:

send_message_to_chatbot(text="", intent="provide_feedback")

def send_message_to_chatbot(text="", intent=""):
    message = assistant.message(
        assistant_id=ASSISTANT_ID,
        session_id=SESSION_ID,
        input=MessageInput(
            text=text,
            intents=[RuntimeIntent(intent=intent, confidence=1.0)]
        )            
    ).get_result()

    return message

当然,前提条件是该节点位于对话框的根分支中,以便可以触发它。