[英]Botman, powered by dialogflow, is not replying to my messages
我正在學習如何使用 PHP 和 Botman.io 創建基於 Dialogflow 的 NLP 聊天機器人。 我寫了一個應該可以工作的簡單代碼,但機器人沒有回復我的消息。
我已經瀏覽了 botman.io 的文檔和官方在線課程,但沒有幫助,因為它們具有完全相同的代碼。
請看一下我的代碼 botman.php 文件,如果不難的話:
use App\Http\Controllers\BotManController;
use BotMan\BotMan\Middleware\Dialogflow;
use function GuzzleHttp\json_decode;
use BotMan\BotMan\Interfaces\Middleware\Received;
$botman = resolve('botman');
$dialogflow_token = 'it is secret'
$dialogflow = Dialogflow::create(dialogflow_token)->listenForAction();
$botman->middleware->received($dialogflow);
$botman->hears('weathersearch', function($bot){
$extras = $bot->getMessage()->getExtras();
$location = $extras['apiParameters']['geo-city'];
$url = 'http://api.apixu.com/v1/current.json?key=38b39a718abc4c6da25112826190108&q='.urlencode($location);
$response = json_decode(file_get_contents($url));
$bot->reply('The weather in' . $response->$location->$name . ', ' . $response->$location->$country . 'is: ');
$bot->reply($response->current->condition->text);
$bot->reply('Temperature: '.$response->current->temp_c. ' Celcius');
})->middleware($dialogflow);
?>
機器人應該通過提供當前天氣溫度和條件(即 25C Sunny)來響應“加利福尼亞的天氣如何”之類的消息
你可以試試這個https://github.com/genkovich/DialogFlowBotManMiddleware
但你必須打開 API v2
如果你想獲得 dialogflow api 並將 botman 與 dialogflow 集成,請按照下面鏈接中給出的這些步驟操作,它對我有用。
但是,仍然存在問題,例如僵屍程序無法將 go 發送到正確的意圖,而只能將 go 發送到默認的歡迎和默認回退意圖。 為了解決這個問題,我將“input.unknown”添加到其他意圖中,並在 botman 中編寫代碼,如下所示:
$dialogflow = DialogFlow::create('en');
$botman->middleware->received($dialogflow);
$botman->hears('(input.*)', function ($bot) {
$extras = $bot->getMessage()->getExtras();
$bot->reply($extras['apiReply']);
})->middleware($dialogflow);
有關該主題的更多討論,您可以在下面給出的鏈接上查看。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.