在使用Dialogflow进行聊天机器人对话时,是否有办法让机器人先说话?

9

在使用Dialogflow进行Web演示集成时,是否可以格式化对话,使得机器人发起对话?

目的是说“你好,我是一个机器人,我可以做x”来表明这是一个聊天机器人而不是人类。

有没有人有任何想法建议?


1
你尝试过在意图中使用欢迎事件吗? - Rogerson Nazário
这是关于Dialogflow中的事件文档,具体可以参考https://dialogflow.com/docs/events#default_welcome_intent。 - Mehdi
@RogersonNazário先生,我应该如何在意图中使用欢迎事件,以便机器人首先响应? - amy
2个回答

3
你可以设置一个欢迎意图,然后发送一个包含event参数的/query请求。将event参数设置为WELCOME,你的聊天机器人将会回复任何你设置的对话开场白。
更多信息请参见:https://dialogflow.com/docs/events

当我创建一个欢迎意图时,其中包含“欢迎”事件,我会收到错误提示:“具有空上下文和事件'[WELCOME]'的意图已存在”。我检查了所有意图,但仍然显示已存在。之前我删除了一个欢迎意图,这是导致错误的原因吗? - amy
我不确定,也许你应该将其作为一个单独的问题发布。你尝试过创建一个新的代理并使用默认的欢迎意图吗? - Omegastick
我觉得这个答案并不是很有用,解释太模糊了。你怎么发送一个/query请求?你是指使用v2.beta API吗?它适用于Web集成还是仅适用于其他集成(Facebook、Google助手等)?我考虑使用Webhook fulfillment,但没有用户输入就不会触发它。我在“默认欢迎意图”中有一个WELCOME事件,但据我所知它不会自动触发。绝对不适用于Web集成。 - Vadorequest
1
@Vadorequest 抱歉,我没有任何关于Facebook、Google助手等的集成经验,所以无法告诉您相关信息,但是当通过Web API进行接口交互时,该答案是有效的。它是在v2 API发布之前编写的,而且我自己也没有使用过v2 API,因此无法更新答案。请随意编辑问题。 - Omegastick
1
@Vadorequest,“WELCOME”事件本身不会自动触发。要触发它,您需要向Dialogflow发送一个带有“event”参数设置为“WELCOME”的请求(在旧API上为/query)。 - Omegastick
显示剩余5条评论

0
  1. 如果您使用的不是API与Dialogflow代理进行交互(如Slack、Facebook Messenger等),您需要在控制台下的“意向”中添加一个适当的事件(例如“Facebook Welcome”事件)。

  2. 要通过API与Dialogflow代理进行交互,请参见以下内容。

API交互快速入门文档中,Dialogflow提供了SessionClient的detectIntent方法,以与您的机器人共享消息。

每种语言都有不同的解决方案。但在抽象层面上,您需要更改发送到Dialogflow的请求对象,以包含一个“欢迎”事件(无需输入消息),就像Omegastick描述的那样。

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

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

假设您在Dialogflow控制台中设置了相应的意图来处理欢迎事件。默认情况下提供了一个您可以观察的意图。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接