在使用对话流的聊天机器人对话中,有没有办法让机器人先说话?
Posted
技术标签:
【中文标题】在使用对话流的聊天机器人对话中,有没有办法让机器人先说话?【英文标题】:In a chatbot conversation using dialogflow, Is there a way to make the bot speak first? 【发布时间】:2018-12-13 12:18:11 【问题描述】:是否可以格式化对话,以便机器人在 Web 演示集成中使用对话流发起对话?
目标是说出类似“嗨,我是机器人,我可以做 x”之类的话来确定它是聊天机器人而不是人类。
任何人都可以为此提出任何想法吗?
【问题讨论】:
您是否尝试在意图中使用欢迎事件? 这个dialogflow.com/docs/events#default_welcome_intent ? Sir @RogersonNazário 我应该如何在意图中使用欢迎事件,以便机器人首先响应? 【参考方案1】:如果您使用 API 以外的其他工具与 Dialogflow 代理(Slack、Facebook Messenger 等)进行交互,则需要在控制台的“intents”下添加适当的事件(例如“Facebook Welcome”事件)。
有关通过 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
。以上是关于在使用对话流的聊天机器人对话中,有没有办法让机器人先说话?的主要内容,如果未能解决你的问题,请参考以下文章
将 botkit 用于 Slack 机器人,有没有办法在对话中更新消息?