ウェブ技術 デジタルトランスフォーメーション技術 人工知能技術 自然言語処理技術 IOT セマンティックウェブ技術 深層学習技術 オンライン学習&強化学習技術 ユーザーインターフェース技術 知識情報処理技術 推論技術 本ブログのナビ チャットボットと質疑応答技術 PHPとウェブ開発 本ブログのナビ
オープンソースのチャットボットフレームワーク概要
オープンソースのチャットボット開発プラットフォームとしては以下のものがある。
- Hubot: GitHub社が開発したチャットボット開発・実行フレームワークとなる。。オープンソースで、Node.js上のCoffeeScriptで書かれており、Herokuなどのプラットフォームで簡単にデプロイでき、画像の投稿、言語の翻訳、Google Maps との統合などのコアスクリプトが含まれている。Hubotのシステムは、
大きく分けてHubot自身のコアであるRobot、 チャットツールと対話するためのAdapter、 botの動作を規定するscriptsの3つに分けて考えることができる。
Hubotを起動したときにまず実行されるのがこのRobotとなる。Robotは、
Adapterは、
Hubotのbotとしての動作を規定するスクリプトは、
Hubotは、
- botpress: JavaScript/TypeScriptで自由に拡張できる「チャットボット型アプリの開発フレームワーク。軽量で非常に高速で、Node.js以外のシステム依存性ゼロで利用できる。チャットシーケンスをビジュアル的に編集できるなど、ユーザーインターフェースがnocode的な使い方ができる。
- BotMan:クロスプラットフォームチャットボット開発用のオープンソースPHPフレームワークであり、PHPライブラリとして利用する。複数のメッセージングプラットフォーム向けのボット開発タスクを簡素化するように設計されており、「単純なコマンドボット」から「高度な会話型インターフェース」まで対応できる。またLaravelに対応したBotManStudioもある。
- VISEO bot maker: bootpressと同様にチャットシーケンスをビジュアル的に編集できる機能を持ち、「人工知能」「自然言語処理」「自動翻訳」「言語検出」「コンピュータビジョン」や、CRMやERPなどのエンタープライズコア情報システムにも接続できるAPIを持つ。
- Microsoft Bot Framework: マイクロソフトが発表したオープンソースのボットビルダーSDKとなる。
今回はこれらの中で最も学習コストが低く信頼性のある本番システムを構築可能なPHPフレームワーク(Laravel)で構築可能なBotManについて述べる。
PHPベースのチャットボットフレームワークBotMan
BotManは、Slack、Telegram、Microsoft Bot Framework、Nexmo、HipChat、Facebook Messenger、WeChatなど、複数のメッセージングプラットフォーム向けの革新的なボットの開発タスクを簡素化するために設計された、フレームワークに依存しないPHPチャットボットのフレームワークとなる。
BotManの機能としては、分析されたRSSフィードをカルーセル形式でユーザに提示するなど最新の記事リストの提示する機能、新しい記事が公開されたときに購読者に通知するプロセスを自動化して最新のコンテンツをプッシュする機能、MailChimpと統合してメーリングリストのユーザーにサインアップする機能、自然言語の解析をして簡単な対話に対応するためのGoogleのプロダクトである「Dialogflow」と連携したSmall Talk機能などがある。
BotManは単体でも動作するが、Laravelに取り込むことで、テストやチャットツールとの連携や設定が容易になり、効率の良い開発を行うことを可能としている。Laravelに取り込んだBotManはBotMan Studioと呼ばれる。
以下にBotMan Studioの導入について述べる。
まずbotmanをインストールする。
>composer global require "botman/installer"
それらは”usr/.composer/vendor/bin”ディレクトリ下にインストールされるので、zsh等にパスを通すコマンドを入れる。
>export PATH=$/Users/xxxxxxx/.composer/vendor/bin$PATH
>source ~/.zshrc
プロジェクトファイルを入れるディレクトリに移動してbotmanプロジェクトファイルを生成する
>composer create-project --prefer-dist botman/studio <filename>
生成後にcomposer updateしろと言ってくるので、<filename>フォルダに移動してupdateする。
>composer update
chatbotをテストするには以下を入力する
>php artisan serve
Laravel development server started: <http://127.0.0.1:8000>が表示されて、ブラウザで見ることができる。
基本的なbotmanのPHPコードは以下となる。
<?php
use BotMan\BotMan\BotMan;
use BotMan\BotMan\BotManFactory;
use BotMan\BotMan\Drivers\DriverManager;
$config = [
// Your driver-specific configuration
// "telegram" => [
// "token" => "TOKEN"
// ]
];
// Load the driver(s) you want to use
DriverManager::loadDriver(\BotMan\Drivers\Telegram\TelegramDriver::class);
// 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();
コメント
[…] 実運用指向のPHP/Laravelを使ったchatbotシステムbotMan […]