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