我在Watson Assistant中有一个应用程序,该应用程序使用其他端点的许多服务。并且我想以某种意图在Google助手对话中调用此对话(来自Watson)。例如,我将在Google Assistant上进行丰富的对话,而在其中一个选项中,我将称为watson的对话。我尝试如下,但是没有用。有谁知道可以帮助我的例子吗?
{"locale": "pt-BR",
"actions": [
{
"description": "Launch intent",
"name": "MAIN",
"fulfillment": {
"conversationName": "mainConversation"
},
"intent": {
"name": "actions.intent.MAIN"
}
},
{
"description": "Direct access",
"name": "BUY",
"fulfillment": {
"conversationName": "ExampleAction"
},
"intent": {
"name": "com.example.ExampleAction.BUY",
"trigger": {
"queryPatterns": [
"teste",
"azul",
"start"
]
}
}
}
],
"conversations": {
"mainConversation": {
"name": "mainConversation",
"url": "https://us-central1-ericanovo-798cc.cloudfunctions.net/webhook",
"fulfillmentApiVersion": 2
},
"BUY": {
"name": "ExampleAction",
"url": "https://orquestrador-sulamerica-teste.mybluemix.net/api/v1/chat/google?externaltoken=574213c0-e904-11e9-9970-ff484aa25334",
"fulfillmentApiVersion": 2
}
}
}
感谢
这不起作用,因为在同一项目下发布的所有内容的Webhook必须具有相同的URL。您应该处理该Webhook上的所有Intent和“操作”。
在您的情况下,您还需要确保以Watson API期望的方式格式化请求。助手将使用Conversation Webhook Format发送它,听起来好像您将使用Watson's Analyze Text API发送它。
您没有显示任何代码,因此很难确定-但是第一个将采用可提取的JSON格式。然后,您可以使用Node中的库(例如request-promise来调用Watson。基于Watson的结果,您需要将结果格式化为响应并将其返回给Assistant。)>
尚不清楚为什么您特别需要多个webhook,尽管某些Intent可能会进行与其他不同的API调用。
请注意,您的自定义Intent仅在调用时有效。随后的Intent将全部为TEXT Intent。