我开始使用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,因为我可以在那里的日志中看到它,我知道机器人说(来自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)弃用“故事”之后,我找不到任何东西,而且很少有任何关于处理响应的东西。
发布于 2017-08-24 08:46:53
您正在使用两个不同的端点: /message和/converse。您粘贴的日志来自/converse,因此我甚至不确定您的第一个呼叫是否成功。你可以像这样卷发到/message吗?
curl -XGET 'https://api.wit.ai/message?v=20170307&q=I%20want%20to%20make%20a%20reservation' \
-H 'Authorization: Bearer $TOKEN'https://stackoverflow.com/questions/45827724
复制相似问题