답변을 얻으려면 많은 처리 (5 초 이상)가 필요한 Webhook으로 요청을 보내주는 API.ai 에이전트가 있습니다. 내가 아는 한, API.ai에서 응답 시간 초과를 늘릴 방법이 없다.API.AI에서 요청 시간 초과
그래서 2 개의 인 텐트를 만들었습니다. 첫 번째 것은 단순히 결과를 처리하기 위해 내 webhook에 전화를 걸고 동시에 webhook은 "귀하의 요청은 처리 중입니다 ..."라고 대답합니다. 두 번째 의도에는 이벤트와 작업이 있습니다. 새로운 이벤트의 목적은 결과를 사용자에게 표시하는 것입니다. 결과가 준비되면 내 백엔드 애플리케이션이 curl 문을 보내서 sessionID, v 및 시간대 ...와 같은 필수 매개 변수 수정을 사용하여 두 번째 의도로 이벤트를 트리거합니다.
다음 JSON을 받았습니다. API.AI는 (내 경우를 단순화하기 위해 예를 생성) : 여기
{ "id": "de31ee96-c42f-4f2d-8461-ee39279ec2ed", "timestamp": "2017-09-27T13:39:46.932Z", "lang": "en", "result": {
"source": "agent",
"resolvedQuery": "custom_event",
"action": "test",
"actionIncomplete": false,
"parameters": {
"user_name": "Sam"
},
"contexts": [
{
"name": "welcoming-followup",
"parameters": {
"name.original": "",
"user_name": "Sam",
"name": "",
"user_name.original": ""
},
"lifespan": 2
}
],
"metadata": {
"intentId": "c196a388-16ac-4966-b55c-7cd999a7d680",
"webhookUsed": false,
"webhookForSlotFillingUsed": "false",
"intentName": "Welcoming"
},
"fulfillment": {
"speech": "Hello Sam",
"messages": [
{
"type": 0,
"speech": "Hello Sam"
}
]
},
"score": 1.0 }, "status": {
"code": 200,
"errorType": "success" }, "sessionId": "67cb28fd-6871-750c-d668-d0b736b763ec" }
내 백엔드에 의해 전송 된 컬 문입니다.
The curl statement is: curl -X POST -H "Content-Type: application/json; charset=utf-8" -H "Authorization: Bearer I INSERTED THE CORRECT CODE HERE" --data "{'event':{ 'name': 'custom_event', 'data': {'name': 'Sam'}}, 'timezone':'America/New_York', 'lang':'en', 'sessionId':'a6ac2555-4b19-40f8-92ec-397f6a042dde'}" "https://api.api.ai/v1/query?v=20150910"
위의 JSON에서 볼 수 있듯이 API.ai 에이전트가 트리거를 성공적으로 수신했습니다. 그러나 "응답 섹션"에서 지정한 응답은 사용자에게 표시되지 않습니다.
API.ai 에이전트의 두 번째 의도에 대한 스크린 샷을 첨부했습니다.
참고 : 개발자 콘솔 인 WebDemo 및 Slack에서 에이전트를 사용해 보았습니다. 그들 중 아무도 나에게 (사용자로서) 지정된 응답을 보여주지 못했습니다.
내가 잘못했는지 잘 모르겠습니까? screenshot of the second intent
곧이 기능을 추가 할 예정입니까? – Maghaj
또 내가 아는 것은 내 대답에서 말한 것입니다. I/O 2017에서 알림을 발표했으나 API가있는 경우 또는 API가 어떻게 표시되는지 알려주지 않았습니다. – Prisoner