C# 如何通过webhook(api v2)基于用户输入评估终止对话
假设我的机器人正在与用户进行对话,我的webhook问“完成了吗?”用户回答“是”。 如何通过webhook结束对话? 我怀疑这是通过FollowEventInput实现的,但我无法让任何东西正常工作 我没有使用nodeJS库。用C#编码 下面是我尝试过的:我用一个输出上下文和一个事件来响应:该事件与位于intent窗口底部的Google助手下的“End conversation”相关联C# 如何通过webhook(api v2)基于用户输入评估终止对话,c#,dialogflow-es,C#,Dialogflow Es,假设我的机器人正在与用户进行对话,我的webhook问“完成了吗?”用户回答“是”。 如何通过webhook结束对话? 我怀疑这是通过FollowEventInput实现的,但我无法让任何东西正常工作 我没有使用nodeJS库。用C#编码 下面是我尝试过的:我用一个输出上下文和一个事件来响应:该事件与位于intent窗口底部的Google助手下的“End conversation”相关联 { "fulfillmentText": "OK. The note was recorded."
{
"fulfillmentText": "OK. The note was recorded.",
"fulfillmentMessages": [
{
"text": {
"text": [
"OK. The note was recorded."
]
}
}
],
"outputContexts": [
{
"lifespanCount": 2,
"name": "projects/xxx/agent/sessions/1512399774430/contexts/note-end"
}
],
"followupEventInput": {
"name": "end-event",
"languageCode": "en"
}
}
在上面的代码中,用户从未听到过“OK,便条被录制了”。会话突然结束,Google Home说“应用程序不再响应”(或类似的话)。工作正常,但不可接受
如果我不放置followupEvent,用户会听到“OK,便条已录制”。但对话不会结束。。。然后我需要依靠用户使用另一个意图来关闭它,这是我想要避免的,因为这是多余的。好的。经进一步调查,似乎:
- 履行的文本永远不会发送给用户,但需要将其设置为“有效”,否则用户将被告知应用程序没有响应,他/她必须稍后重试
- 上下文和事件是正确和必要的。(我发现)让用户听到“OK.注释已录制”的唯一方法是将此消息作为与事件相关的意图的文本响应。当设置为这种方式时,应用程序将以可接受的方式关闭
Google Assistant
,然后选中标有End conversation
注意:这只适用于Dialogflow控制台中定义的响应,而不适用于由履行创建的响应
{
“完成消息”:[
{
{
“平台”:“谷歌行动”,
“paylaod”:{
{
“expectUserResponse”:false,
...
}
}
}
}
],
...
}
使用这两种方法中的任何一种,你的应用程序都会说出控制台(对于#1)或webhook(对于#2)中指定的内容,并结束与用户的对话。在Dialogflow intent(用于#1)或payload对象(用于#2)的response部分中填写值,以便在结束对话时向用户发送响应 来源 Dialogflow Webhook响应v2文档:
对Google webhook响应文档的操作:如果您尝试了一些方法,发布您使用的无效代码将有助于我们帮助您。刚刚编辑了我的问题。