【问题标题】:I can't retrieve the intent from my wit.ai call我无法从我的 wit.ai 通话中检索到意图
【发布时间】:2017-08-22 22:07:09
【问题描述】:

我开始使用 Wit.ai 来增强我制作的一个小型机器人。我可以通过以下方式向 wit.ai 提出请求:

function sendToWitAI($query){
    $witRoot = "https://api.wit.ai/message?";
    $witVersion = "20170822";

    $witURL = $witRoot . "v=" . $witVersion . "&q=" . $query;

    $ch = curl_init();
    $header = array();
    $header[] = "Authorization: Bearer xxxxxxxx";

    curl_setopt($ch, CURLOPT_URL, $witURL);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_HTTPHEADER,$header);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    $server_output = curl_exec ($ch);
    curl_close ($ch);

    return $server_output;
}

但是,当接收到输出时,我收到的消息与我发送的相同。例如,如果用户键入“我要预订”,我的$server_output 现在是“我要预订”,在上面的所有代码之后。

不过,我知道它成功达到了机智,因为我可以在日志中看到它,而且我知道机器人说(来自 wit.ai):

{
"confidence": null
"action": null
"type": "action" 
}

除此之外,如果我只是使用相同的查询进行 curl:

curl -XPOST 'https://api.wit.ai/converse?v=20170822&session_id=123abc&q=I%20want%20to%20make%20a%20reservation' \
>       -H "Content-Type: application/json" \
>       -H "Accept: application/json" \
>       -H 'Authorization: Bearer xxxxxxxx'

我得到以下输出:

{
  "confidence" : null,
  "type" : "action",
  "action" : null,
  "entities" : {
    "contact" : [ {
      "suggested" : true,
      "value" : "reservation",
      "type" : "value",
      "confidence" : 0.95062723294726
    } ],
    "intent" : [ {
      "confidence" : 0.98638622681962,
      "value" : "make_reservation"
    } ]
  }
}

我不确定我的错误在哪里,或者我缺少什么来正确处理我需要的值的使用。

我一直在不停地谷歌搜索,但在他们 (wit.ai) 弃用“故事”之后我找不到任何东西,而且很少有任何关于处理响应的事情。

【问题讨论】:

    标签: php facebook nlp wit.ai


    【解决方案1】:

    您正在使用 2 个不同的端点:/message 和 /converse。 您粘贴的日志来自 /converse,所以我什至不确定您的第一个电话是否通过。你可以尝试像这样卷曲到 /message

    curl -XGET 'https://api.wit.ai/message?v=20170307&q=I%20want%20to%20make%20a%20reservation' \
      -H 'Authorization: Bearer $TOKEN'
    

    【讨论】:

    • 你说得对,我不敢相信我错过了。但是,即使这样,我的 PHP 代码也应该可以工作,对吧?我正在调用 /message 并像您在此处一样形成 URL。但是,当我在 curl 中运行 XGET 或 XPOST 时,我得到了 json 响应,当我通过 php 尝试它时,我只是得到了各种各样的回声(即,如果我输入:“Heya”,我会得到“Heya”)我是吗?遗漏了什么?我不知道为什么 curl 有效,但 php 无效。
    • 很难说。 Wit 结果是 JSON,因此您的 PHP 可能无法正确解析它。来自我们社区的示例:github.com/search?l=PHP&q=wit.ai&type=Repositories
    猜你喜欢
    • 1970-01-01
    • 2012-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多