我正在学习如何使用PHP和www.example.com创建基于对话流的NLP聊天机器人Botman.io。我写了一个简单的代码,应该可以工作,但机器人没有回复我的消息。
我已经浏览了www.example.com上的文档和官方在线课程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);
?>
机器人应该通过给出当前的天气温度和条件,即25摄氏度晴天,来响应像“加州的天气如何”这样的消息
2条答案
按热度按时间nzrxty8p1#
你可以试试这个https://github.com/genkovich/DialogFlowBotManMiddleware
但你必须打开API v2
watbbzwu2#
如果你想获得对话流API并将botman与对话流集成,请按照下面的链接中给出的步骤操作,它对我很有效。
Integrate Botman with Dialogflow
但是,仍然存在一些问题,比如botman无法转到正确的Intent,它只能转到默认的欢迎Intent和默认的回退Intent。为了解决这个问题,我在其他Intent中添加了“input.unknown”,并在botman中编写了如下代码:
有关该主题的更多讨论,您可以在下面的链接中查看。
Adding input to hears and dialogflow intent