BotMan 2.0 PHP 聊天机器人框架
发布于 作者 Paul Redmond
BotMan 是一个与框架无关的 PHP 聊天机器人框架,旨在简化为多个消息平台开发创新机器人的任务,包括 Slack、Telegram、Microsoft Bot Framework、Nexmo、HipChat、Facebook Messenger、微信等等。
BotMan 2.0 在本周早些时候发布,并带来了一系列改进和激动人心的变化。从项目和代码管理的角度来看,发生了一些事情
- BotMan 和围绕 BotMan 的各种存储库已移至 BotMan GitHub 组织,而不是
mpociot/botman
。 - 每个驱动程序(Slack、Telegram 等)都包含在一个独立的存储库中,位于 BotMan 核心代码之外
- BotMan Studio 将 BotMan 与 Laravel PHP 框架捆绑在一起
使用 BotMan 聊天机器人框架
在基本层面上,聊天机器人包含侦听消息和响应这些消息的功能。例如,如果您询问机器人天气,它可能会从 API 中查找天气,然后将预报发送给您。
您还可以使用 BotMan 侦听事件。例如,您可以在用户加入或离开频道时向他们打招呼。
从文档中,您可以从应用程序中的网络可访问路由使用 BotMan,如下所示
<?php use BotMan\BotMan\BotMan;use BotMan\BotMan\BotManFactory; $config = [ // Your driver-specific configuration]; // create an instance$botman = BotManFactory::create($config); // give the bot something to listen for.$botman->hears('hello', function (BotMan $bot) { $bot->reply('Hello yourself.');}); // start listening$botman->listen();
上面的代码与框架无关,但流畅的 API 使编写聊天机器人变得简单。
高级主题
BotMan 还支持高级功能,例如中间件系统、自然语言处理 (NLP)、检索用户信息和存储。
中间件系统在 2.0 版本中得到了进一步扩展,它允许您在聊天机器人生命周期的不同部分进行挂钩。您可以执行一些强大的操作,例如跟踪与已回答的聊天相关的统计信息,并对传入消息提供 NLP。中间件的可用入口点为:sending
、received
和 heard
。
使用中间件,BotMan 为 api.ai NLP 服务提供了内置支持。中间件使您的机器人更智能,能够处理的不仅仅是静态文本。此功能可能很有用的一个很好的例子是 /remind
功能,您可以在其中使用自然语言来提醒自己稍后某个时间和日期的事情。
BotMan Studio
BotMan Studio(一个打包的 BotMan 和 Laravel 应用程序)提供了测试工具、开箱即用的 Web 驱动程序实现以及其他工具,例如更轻松的驱动程序安装和配置支持。
BotMan Studio 通过提供 Web 驱动程序实现来加速开发,这使您可以在本地开发您的聊天机器人并通过简单的 Vue.js 聊天窗口与它交互,这样您就可以与您的机器人进行通信,而无需部署它。
您可以使用 BotMan Studio 提供的 artisan 命令更轻松地安装驱动程序
# List available drivers$ php artisan botman:list-drivers # Install facebook$ php artisan botman:install-driver facebook
您可以使用 BotMan 安装程序 创建新的 BotMan 项目,与您创建新的 Laravel 项目的方式类似
$ botman new weatherbot
在 BotMan Studio 中进行测试
BotMan Studio 中的测试助手非常出色!这是一个提供的助手的简单示例
/* @test */$this->bot ->receives('Hi') ->assertReply('Hello!');
如果您使用过 Laravel,您就会熟悉提供的使测试更容易的优秀测试助手。这是一个更复杂的对话测试示例
$this->bot ->receives('Hi') ->assertReplies([ 'Hello!', 'Nice to meet you. What is your name?', ])->receives('BotMan') ->assertReply('BotMan, that is a beautifule name :-)');
测试聊天机器人的概念对我来说很陌生,但我对测试助手使测试聊天机器人变得多么优雅和直观印象深刻!
2.0 中的新功能
从项目的 变更日志 中,以下是 BotMan 2.0 中新增内容的要点
- 添加了发起内联对话的能力。
- 将每个驱动程序移至其自己的存储库。
- Facebook - 添加了对发送文件和音频附件的支持。
- Telegram - 添加了对发送文件、音频和位置附件的支持。
- 添加了 Kik 驱动程序。
- 添加了自定义附件类。
- 添加了对侦听消息服务事件的支持。
- 更改了 BotMan 中中间件的工作方式。
- 添加了对 Slack 交互式菜单消息的支持。
- 添加了 Facebook 转介驱动程序。
- 允许回复 Slack 驱动程序的现有线程(#327)。
- 向 BotMan 添加了 loadDriver 方法。
- 添加了使用本地套接字与 BotMan 交互的能力。
了解更多
我越来越兴奋地要编写我的聊天机器人了!您可以通过查看 BotMan 文档 并关注 botman/botman GitHub 项目来了解更多信息。您还可以关注 Twitter 上的 @botman_io 和创建者 @marcelpociot。
使用 Laravel 和 BotMan 构建聊天机器人
了解如何使用您已经熟悉的框架从头开始构建聊天机器人。我们现在有一本电子书可以指导您使用 Laravel 和 BotMan 构建自己的聊天机器人。