2017-08-22 5 views
0

Je commence à utiliser Wit.ai pour améliorer un petit bot que j'ai fait. Je suis en mesure de faire une demande à la wit.ai en faisant:Je ne peux pas récupérer l'intention de mon appel 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; 
} 

Cependant, lors de la réception de la sortie que je viens d'obtenir le même message envoyé. Par exemple, si l'utilisateur tape "Je veux faire une réservation", mon $server_output est maintenant "Je veux faire une réservation" après tout ce morceau de code ci-dessus.

encore, je sais que l'esprit atteint avec succès parce que je peux voir dans les journaux là-bas et je sais que le bot dit (à partir wit.ai):

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

En plus de cela, si je fais juste une boucle avec la même requête:

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' 

Je reçois la sortie suivante:

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

Je ne sais pas où mon erreur est ou ce qui me manque pour gérer correctement l'utilisation de la valeur comme j'ai besoin.

J'ai été googling non-stop, mais je ne trouve rien après ils (wit.ai) déconseillé "histoires" et il y a rarement quelque chose à propos de la gestion de la réponse.

Répondre

0

Vous utilisez 2 points de terminaison différents:/message et/converse. Le journal que vous avez collé provient de/converse donc je ne suis même pas sûr que votre premier appel soit passé. Pouvez-vous essayer une boucle à/message comme ceci

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

Vous avez raison, je ne peux pas croire que j'ai manqué cela. Cependant, même avec cela, mon code PHP devrait fonctionner, non? Je fais un appel à/message et ai l'URL formée juste comme vous faites ici. Cependant quand je cours XGET ou XPOST dans une boucle je reçois la réponse de JSON, quand je l'essaye sur php je reçois juste un écho de sortes (ie si je tape: "Heya" je reviens "Heya") Suis-je Il manque quelque chose? Je ne sais pas pourquoi le curl fonctionne mais le php ne fonctionne pas. – user6673915

+0

Difficile à dire. Le résultat Wit est un JSON alors peut-être que votre PHP ne l'analyse pas correctement. Exemples de notre communauté: https://github.com/search?l=PHP&q=wit.ai&type=Repositories – l5t