【问题标题】:In a chatbot conversation using dialogflow, Is there a way to make the bot speak first?在使用对话流的聊天机器人对话中,有没有办法让机器人先说话?
【发布时间】:2018-12-13 12:18:11
【问题描述】:

是否可以格式化对话,以便机器人在 Web 演示集成中使用对话流发起对话?

目标是说出类似“嗨,我是机器人,我可以做 x”之类的话来确定它是聊天机器人而不是人类。

任何人都可以为此提出任何想法吗?

【问题讨论】:

标签: nlp artificial-intelligence chatbot dialogflow-es


【解决方案1】:
  1. 如果您使用 API 以外的其他工具与 Dialogflow 代理(Slack、Facebook Messenger 等)进行交互,则需要在控制台的“intents”下添加适当的事件(例如“Facebook Welcome”事件)。

  2. 有关通过 API 与您的 Dialogflow 代理进行交互,请参见下文。

API interaction quickstart documentation 中,Dialogflow 为您提供了 SessionClient 的 detectIntent 方法,用于与您的机器人共享消息。

每种语言都有不同的解决方案。但在抽象层面上,您希望更改发送到 Dialogflow 的请求对象,以包含“欢迎”事件(不需要输入消息),正如 Omegastick 所述。

例如,在 Node.js 中,您的请求对象将如下所示:

// The text query request.
        const request = {
            session: sessionPath,
            queryInput: {
                event: {
                    name: "Welcome",
                    languageCode: languageCode
                }
            },
        };

这假设您在 Dialogflow 控制台中设置了适当的意图来处理欢迎事件。默认提供一个,您可以观察到。

您还可以添加上下文,以便您的代理根据某些条件给出不同的问候消息。

【讨论】:

    【解决方案2】:

    您可以设置欢迎意图,然后发送包含event 参数的/query 请求。将event 参数设置为WELCOME,您的聊天机器人将响应您设置的任何对话打开方式。

    更多信息在这里:https://dialogflow.com/docs/events

    【讨论】:

    • 当我创建了一个欢迎意图时,我做了一个“欢迎”事件,我收到错误消息:“带有空上下文和事件‘[WELCOME]’的意图已经存在”。我检查了所有意图仍然存在。之前我删除了一个受欢迎的意图是这个错误背后的原因吗?
    • 我不确定,也许你应该把它作为一个单独的问题发布。您是否尝试过创建新代理并使用默认的欢迎意图?
    • 先生,我无法通过任何给定的解决方案实现所述输出。有没有其他办法?
    • @Vadorequest 抱歉,我对 Facebook、Google Assistant 等集成没有任何经验,所以我无法告诉你这些,但通过 Web API 进行交互时答案有效。它是在 v2 API 发布之前编写的,我对 v2 API 没有任何经验,所以我自己无法更新答案。随意编辑问题。
    • @Vadorequest WELCOME 事件不会自行触发。要触发它,您需要向 Dialogflow(旧 API 上的 /query)发送一个请求,并将 event 参数设置为 WELCOME
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-14
    • 1970-01-01
    • 2020-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多