簡體   English   中英

由 dialogflow 提供支持的 Botman 沒有回復我的消息

[英]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 集成,請按照下面鏈接中給出的這些步驟操作,它對我有用。

將 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);

有關該主題的更多討論,您可以在下面給出的鏈接上查看。

將輸入添加到 hears 和 dialogflow 意圖

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM