BotMan 2.0 PHP 聊天机器人框架

发布于 作者

BotMan 2.0 PHP Chatbot Framework image

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。中间件的可用入口点为:sendingreceivedheard

使用中间件,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

![](https://laravelnews.s3.amazonaws.com/images/book.png)

使用 Laravel 和 BotMan 构建聊天机器人

了解如何使用您已经熟悉的框架从头开始构建聊天机器人。我们现在有一本电子书可以指导您使用 Laravel 和 BotMan 构建自己的聊天机器人。

Paul Redmond photo

Laravel 新闻的撰稿人。全栈 Web 开发人员和作家。

归档于
Cube

Laravel 新闻简报

加入 40,000 多名其他开发人员,不错过任何新的技巧、教程等等。

Laravel Forge logo

Laravel Forge

轻松创建和管理您的服务器,并在几秒钟内部署您的 Laravel 应用程序。

Laravel Forge
Tinkerwell logo

Tinkerwell

Laravel 开发人员必备的代码运行器。使用 AI、自动完成和对本地和生产环境的即时反馈进行调试。

Tinkerwell
No Compromises logo

无妥协

Joel 和 Aaron 是来自“无妥协”播客的两位经验丰富的开发人员,现在可以为您的 Laravel 项目雇用他们。 ⬧ 每月固定费用 7,500 美元。 ⬧ 没有冗长的销售流程。 ⬧ 没有合同。 ⬧ 100% 退款保证。

无妥协
Kirschbaum logo

Kirschbaum

提供创新和稳定性,以确保您的 Web 应用程序取得成功。

Kirschbaum
Shift logo

Shift

正在运行旧版本的 Laravel?即时、自动化的 Laravel 升级和代码现代化,以保持您的应用程序新鲜。

Shift
Bacancy logo

Bacancy

为您的项目配备经验丰富的 Laravel 开发人员,拥有 4-6 年的经验,每月只需 2,500 美元。获得 160 小时的专业知识和 15 天免费试用。立即安排电话会议!

Bacancy
Lucky Media logo

Lucky Media

现在就获得幸运 - Laravel 开发的理想选择,拥有十多年的经验!

Lucky Media
Lunar: Laravel E-Commerce logo

Lunar:Laravel 电子商务

Laravel 的电子商务。一个开源软件包,将现代无头电子商务功能的强大功能带入 Laravel。

Lunar:Laravel 电子商务
LaraJobs logo

LaraJobs

官方 Laravel 招聘网站

LaraJobs
SaaSykit: Laravel SaaS Starter Kit logo

SaaSykit:Laravel SaaS 启动工具包

SaaSykit 是一款 Laravel SaaS 启动工具包,包含运行现代 SaaS 所需的所有功能。支付、精美结账页面、管理面板、用户仪表板、身份验证、现成组件、统计信息、博客、文档等等。

SaaSykit:Laravel SaaS 启动工具包
Rector logo

Rector

您无缝升级 Laravel 的合作伙伴,帮助企业降低成本,加速创新,取得成功。

Rector
MongoDB logo

MongoDB

通过 MongoDB 和 Laravel 的强大集成增强您的 PHP 应用程序,使开发人员能够轻松高效地构建应用程序。支持事务性、搜索、分析和移动用例,同时使用熟悉的 Eloquent API。了解 MongoDB 的灵活、现代数据库如何改变您的 Laravel 应用程序。

MongoDB
Maska is a Simple Zero-dependency Input Mask Library image

Maska 是一个简单的零依赖输入掩码库。

阅读文章
Add Swagger UI to Your Laravel Application image

在您的 Laravel 应用程序中添加 Swagger UI

阅读文章
Assert the Exact JSON Structure of a Response in Laravel 11.19 image

在 Laravel 11.19 中断言响应的精确 JSON 结构

阅读文章
Build SSH Apps with PHP and Laravel Prompts image

使用 PHP 和 Laravel Prompts 构建 SSH 应用程序

阅读文章
Building fast, fuzzy site search with Laravel and Typesense image

使用 Laravel 和 Typesense 构建快速、模糊的网站搜索

阅读文章
Add Comments to your Laravel Application with the Commenter Package image

使用 Commenter 包在您的 Laravel 应用程序中添加评论

阅读文章