使用HTTP API通过跨域检索Wit.ai Bot文本响应

悉尼的艾伦

我目前正在CodePen.io的网页上与Wit.ai合作我想知道是否有可能检索Wit.ai机器人的文本响应(“博特说”)使用HTTP API。

例如:如果用户使用以下命令提示机器人:

怎么样了?

我希望在使用此消息进行API调用之后,能够检索机器人的典型响应:

我很好,谢谢人类。

我通过看HTTP API文档似乎使用api.wit.ai/converse的'POST'完成了。JSON响应包含一个“ msg”字段,这正是我所需要的!这是我当前正在使用的代码:

$.ajax({
    url: baseUrl + "converse",
    data: {
      'q': text, // The message to send the bot
      'session_id': "123abc",
      'access_token' : accessToken // Authorisation key for using our bot
    },
    dataType: 'json',
    crossDomain: true,
    method: 'POST',

    success: function(data) {
      prepareResponse(data);
    },
    error: function() {
      respond(messageInternalError);
    }
});

但是,Wit.Ai目前不支持CORS,发出跨域请求的唯一方法是使用JSONP,它仅适用于GET请求。可以预期,上面的代码导致HTTP 400错误。

任何人都可以确认是否是可以使用HTTP API来检索机器人的用户信息文本响应?我目前在做什么工作?

佩德罗·伊沃·哈德森

最近,我有同样的问题。为了成功进行对话,我必须首先创建一个本地服务器,该服务器将处理所有用户请求并将其发送到Wit的服务器。

使用node.jsexpressnodemonsync-request

这是server.js文件:

var express = require('express')
var request = require('sync-request');

var port = 8001;
var app = express()

app.get('/converse', function (req, res) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "X-Requested-With");
  var message = req.query.q;
  var sessionID = req.query.session_id;
  var response = request('POST', 'https://api.wit.ai/converse?q=' + message + '&session_id=' + sessionID, {
    'headers': {
      'Content-Type': 'application/json; charset=utf8',
      "Accept": "application/json",
      "Authorization": "Bearer $place-app-token"
    }
  });
  res.send(JSON.parse(response.getBody('utf8')));
})
app.listen(port);

服务器将发送一个POST带有headersWit需要配置请求

用户将向GET本地服务器发送请求。jQuery,如文档建议:https://wit.ai/docs/http/20160526#cross-domain-link

这是前端请求:

$.ajax({
  url: 'http://127.0.0.1:8001/converse',
  data: {
    'q': text,
    'session_id': sessionID
  },
  method: 'GET',
  crossDomain: true,
  success: function(response) {
    console.log(response, response.msg);
  }
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用wit.ai API删除实体值

在来自API.ai的文本响应中添加新行(\ n)

Bot Framework 中的形式和意图,wit.ai

使用 api.ai 将 contextOut 数组附加到 firebase webhook 响应

向wit.ai发送文本时接收结果的问题

通过Wit.ai运行mysql查询

如何使用Python处理wit.ai机器人

在简单的网络聊天中使用wit.ai

luis.ai与api.ai与wit.ai之间的比较?

通过api.ai通过php webhook在AoG上响应基本卡

增加来自API.ai中Webhook响应的超时

特质,自由文本和关键字之间有什么区别,我应该在wit.ai中使用哪个

如何在Java中为wit.ai音频发送HTTP请求

如何使用Fetch API跨域加载Java脚本中的文本或JSON数据?

如何在本地解决方案上实现WIT.AI之类的BOT引擎?

如何使用 HTTP 响应状态代码配置 API 响应缓存?

调用 wit.ai API 时 Android Volley 请求失败

Wit.ai Python - 从 API 输出中提取置信度

简单的Java AI响应程序?

如何使用http响应查找splunk.com的子域?

使用abbr元素通过CSS进行响应文本更改

使用Api.ai从Google Actions请求用户位置

如何使用 api.ai 在 firebase 中创建表

使用$ http服务的AngularJS跨域请求

AI:像Wit这样的网站将使用哪种过程来训练自然语言

如何在 Android 上使用 wit.ai 获取希伯来语语音输入和输出

如何在Wit.ai的一封邮件中使用多个实体?

从ASP.NET Web API 2响应中获取针对跨域http.get请求的Angular中的特定响应标头(例如Content-Disposition)。

空JSON Http文本响应