プロジェクト(金岡グループ)
第 2 回
金岡 晃
金岡プロジェクトテーマ
配布資料より
テーマC 独自チャットボット作成
コミュニケーションツールSlack上で動き回るチャットボットシステムを 作成する。シェルスクリプトやJavaScriptなどのスクリプト言語と、外 部APIやデータセットの活用により、チームごとに特色のあるチャット ボットの実現を試みる。
技術要素
なんらかの言語を使ったプログラミング 外部リソースの活用
HTTPによるアクセス
プロジェクト
1
Slack とは
Slack(スラック)
コミュニケーションツール。グループでのチャットを中心として、ユー ザ間のダイレクトメッセージやトピックごとのチャットなどが可能な Webサービス
https://slack.com/
類似・近いサービス?
スケジュール
内容
第1回 プロジェクトの概要説明、基礎知識の学習(1)
第2回 基礎知識の学習(2)、Botデザイン 第3回 Botデザインまとめ、発表
第4回 開発(1)
第5回 開発(2)
第6回 開発(3)
第7回 成果発表会
プロジェクト
3
チャットボット
ボット
チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる
プログラムのこと。特に人間に代わって作業を行うものを指すことが 多い。マルウェアの用語としての一面も持つ。
SiriやContanaもボットの一種
簡単なボットならすぐできる
プロジェクト 5
Slackbotへの登録
簡単なボットならすぐできる
本格的にボットを作る前に
プロジェクト 7
ボットプログラム実行用の環境
•
金岡研究室内のサーバを利用
–
各種環境での実行が可能なようにしてある
•
グループごとにアカウントを作成してあります
–グループでアカウントを共有してください
–初期パスワードを配ります
–
パスワードは変更してください
• ssh
でアクセス
– TeraTerm
を使う
–
コマンドの実行などはこれで
• scp
でアクセス
– WinSCPを使う
–
ローカル(実習室で使っている
PCや自宅
PCなど)で作ったファ
イルをサーバに送る
サーバ用アカウント命名規則
プロジェクト
9
g 2 0 1 7 2 1
年度
シーズン
1
:春学期前半
2:春学期後半
グループ番号
アクセスしてみよう
avocado.klab.is.sci.toho-u.ac.jp
teratermとWinSCPの両方で
TereTerm
プロジェクト 11
TereTerm
TereTerm
プロジェクト 13
WinSCP
WinSCP
プロジェクト 15
左側が自分のマシン 右側がサーバ
本格的にボットを作る
ボットの開発
プロジェクト
17
JavaScript
による開発
Botkitフレームワークの利用
Python
による開発
slackbotライブラリの利用
CoffeeScript
による開発
Hubotフレームワークの利用
Java
による開発
JBotフレームワークの利用
共通する事項
slack
への登録
• slackにBotを登録し、APIトークンを取得する
• 複数のBotを作る場合、複数のAPIトークンを取得する
ボットの登録、 API トークンの取得
プロジェクト
19
このマークをクリック
ボットの登録、 API トークンの取得
“App管理”をクリック
ボットの登録、 API トークンの取得
プロジェクト 21
“Bots”を入力
ボットの登録、 API トークンの取得
“設定を追加”を クリック
ボットの登録、 API トークンの取得
プロジェクト 23
Slackチーム内で表示さ
れるユーザ名
ボットの登録、 API トークンの取得
“ボットインテグレー ションを追加する”を クリック
ボットの登録、 API トークンの取得
プロジェクト 25
これがAPIトークン。
これを別のファイル(テキ ストなど)に保管しておく。
各言語による開発
以下の言語での開発方法が別資料でWebにアップされています
Javascript
Python
Java
Bot デザイン:考える点
プロジェクト 27
どんな目的で、どんな機能を持たせるか
• 目的
• 機能
• こういう入力があったらこう返す
• 「こう」に特徴がある場合はそう返す
• **時**分になったらこう返す
• その他のトリガ
機能はどういう技術要素で持たせるか
• DB(MySQL)を使って…
• クラウドサービスを使って画像なんかを取得して…
• Wikipediaからその項目を検索して…
• 得られたデータから**を**して…
Bot デザイン:考える点
完成イメージ
• ボット名称
• 動作イメージ
作業項目とメンバー割り当て、線表
次回のプレゼンについて
プロジェクト
29
Bot
デザインで検討した項目を解説
• 目的、実装する機能
• 機能実現のための技術要素
• 完成イメージ
• 作業項目、割り当て、線表
グループあたりの持ち時間
• 10分
ポイントとなりそうな要素技術
•
外部のリソースの利用
–外部
APIの利用
–
外部データベースの利用
•
他のライブラリの利用
•