【问题标题】:integrate API.Ai bot into web channel将 API.Ai 机器人集成到网络频道
【发布时间】:2017-02-22 21:02:14
【问题描述】:
是否可以将 API.Ai 集成到网络频道中? Microsoft Bot 框架有一个选项,即可以通过网络聊天以及 FB Messenger、Skype 等来调用该机器人。为此,MSFT 提供了一个可以嵌入到任何 html 页面中的聊天 URL。 API.AI 也能做到同样的事情吗?
是否也可以从任何独立应用程序调用 API.Ai 的 NLP 部分,例如经过训练的意图、上下文等?
【问题讨论】:
标签:
chatbot
dialogflow-es
【解决方案1】:
是的,您可以借助事件调用 api.ai 的 NLP 部分。
首先在以下 URL 的帮助下创建事件:
https://docs.api.ai/docs/concept-events
现在,您可以从您的 Web 应用程序中使用以下代码来调用这些事件,
HttpClient httpClient = HttpClientBuilder.create().build();
HttpPost request = new HttpPost("https://api.api.ai/v1/query?v=20150910");
StringEntity params =new StringEntity("{\"event\":{ \"name\": \"custom_event\", \"data\": {\"name\": \"Sam\"}}, \"timezone\":\"America/New_York\", \"lang\":\"en\", \"sessionId\":\"123abc\"}");
request.addHeader("content-type", "application/json");
request.addHeader("Authorization", "Bearer 0651225b57464d209936252796106e59");
request.setEntity(params);
HttpResponse response = httpClient.execute(request);
BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
String line = "";
while ((line = rd.readLine()) != null)
{
System.out.println(line);
}
这会返回给你适当的响应。