2017年2月23日0件のコメントはじめまして。GMOアドマーケティングのKKです。昨年からChatBotが流行っていて、Botを使用したAWARDSも開催されていることから期待感が伺えます。自身で実装するのは少し大変です。そこで、各社が提供しているAPIを使用して簡単なモノであればすぐに実装できる環境が用意されています。今回は基本的なオウム返しをしてくれるものから、簡単な会話を行えるBotを開発していきます。APIを使用していきます。同じようなAPIでFacebookが提供しているモノもありますが、LINEの方がドキュメントがわかりやすいので、こちらを採用しました。Trialアカウントで行なっていきます。ビジネスアカウントをまだ持ってない方はこちらhttps://business.line.me/ja/services/botこの段階で基本設定も終えておくと楽です。APIは多様な言語(php,python,goなど)に対応していますが、今回はpythonを使っていきます。理由としては、chatbotは自然言語処理などと相性がいいので、そういった処理が得意なライブラリがpythonは豊富なためです。Pythonのみでwebアプリケーションを作成するのは少し大変なので、フレームワークであるDjangoを使用していきます。Pythonは3系、Djangoは1.10.5の環境で構築しています。サーバーも自身で用意するのは面倒なので、デフォルトでhttps通信が可能なHerokuを使用していきます。Whitelistに接続元IPの指定が必要」だったのですが、Optionalになったので、下記の設定はいらなくなりました。アドオン(Fixie)を追加して対応してあげます。fixie:tricycleまず、最初に任意のディレクトリにDjangoプロジェクトを作成します。runserver次にDjangoアプリケーションを作成していきます。runtime.txt以下のコードはメッセージをオウム返しにします。URLにhttps://xxxxxxxxx.herokuapp.com/callbackの形で貼り付けます。※少し前まではhttps://xxxxxxxxx.herokuapp.com:443/callbackみたいにポート番号まで指定する必要があったんですが、今はいらなくなりました同ページにあるQRコードを読み込んで、友達追加後、メッセを送ってあげれば反応が帰ってきます完成(雑談API組み込み済み)ここに機械学習などを組み込こんでみたり、スクレイピングでリクエストに応じたコンテンツを表示することも可能です。ユーザーからのリクエスト(テキスト)を解析して、対話行為のような抽象的な表現に置き換えて、対話行為を推定します。対話行為を推定するには、属性抽出※を行ったりする必要があります。SCRAPING(localtion=新宿,event=音楽)この情報から、音楽イベント情報を提供しているサイトなどからデータを持ってきてその値をレスポンスとして表示するTIPS下記の写真のように、CarouselやConfirmのようなオプションも充実しているので、アイデア次第で面白いことができそうです。まとめ今回はChatBotを実装する上で、必要な環境の構築と実際に会話が返ってくるサンプルを作成しました。APIの使用方法にフォーカスしたので、大したものはできていませんが、上記の抜粋コードから取得したリクエストとレスポンスををいかに加工するかが重要項目です。これからの展望が楽しみなChatBotの紹介でした。@gmoap_engineer本ブログで発信される情報は、各エンジニア個人の見解であり、弊社の公式見解ではありません。本ブログに掲載、引用等をしている商品またはサービス等の名称は、各社の商標または登録商標です。その他の事項について一切責任を負いかねます。発表する情報には注意を払っておりますが、公式発表、見解については、弊社WEBサイトおよびプレスリリースなどをご確認ください。GMOインターネットグループにおけるソーシャルメディア運用ポリシーについては次のページをご確認ください。本ブログに掲載のあるソフトウェアのダウンロードは自己責任で御願い致します。ソフトウェアのダウンロードの結果、ご利用者に何らかの損失・損害が生じたといえども、当社ではその責任を負いかねます。本ブログに掲載のあるソフトウェアを扱う際は、各ソフトウェアの公式リファレンスを参照のもとご使用下さい。ソフトウェアの実行の結果、ご利用者に何らかの損失・損害が生じたといえども、当社ではその責任を負いかねます。