プロジェクト(金岡グループ) ·...

35
プロジェクト(金岡グループ) 2金岡 晃

Transcript of プロジェクト(金岡グループ) ·...

Page 1: プロジェクト(金岡グループ) · 部APIやデータセットの活用により、チームごとに特色のあるチャット ボットの実現を試みる。 技術要素

プロジェクト(金岡グループ)第2回金岡晃

Page 2: プロジェクト(金岡グループ) · 部APIやデータセットの活用により、チームごとに特色のあるチャット ボットの実現を試みる。 技術要素

金岡プロジェクトテーマ

配布資料より

テーマC 独自チャットボット作成

コミュニケーションツールSlack上で動き回るチャットボットシステムを作成する。シェルスクリプトやJavaScriptなどのスクリプト言語と、外部APIやデータセットの活用により、チームごとに特色のあるチャットボットの実現を試みる。

技術要素

なんらかの言語を使ったプログラミング

外部リソースの活用

HTTPによるアクセス

プロジェクト1

Page 3: プロジェクト(金岡グループ) · 部APIやデータセットの活用により、チームごとに特色のあるチャット ボットの実現を試みる。 技術要素

Slackとは

Slack(スラック)

コミュニケーションツール。グループでのチャットを中心として、ユーザ間のダイレクトメッセージやトピックごとのチャットなどが可能なWebサービス

https://slack.com/

類似・近いサービス?

プロジェクト2

Page 4: プロジェクト(金岡グループ) · 部APIやデータセットの活用により、チームごとに特色のあるチャット ボットの実現を試みる。 技術要素

スケジュール

内容

第1回 プロジェクトの概要説明、基礎知識の学習(1)

第2回 基礎知識の学習(2)、Botデザイン

第3回 Botデザインまとめ、発表

第4回 開発(1)

第5回 開発(2)

第6回 開発(3)

第7回 成果発表会

プロジェクト3

Page 5: プロジェクト(金岡グループ) · 部APIやデータセットの活用により、チームごとに特色のあるチャット ボットの実現を試みる。 技術要素

チャットボット

プロジェクト4

ボット

チャット上でユーザとして参加してくるボット(プログラム)を作ることができる

プログラムのこと。特に人間に代わって作業を行うものを指すことが多い。マルウェアの用語としての一面も持つ。SiriやContanaもボットの一種

Page 6: プロジェクト(金岡グループ) · 部APIやデータセットの活用により、チームごとに特色のあるチャット ボットの実現を試みる。 技術要素

簡単なボットならすぐできる

プロジェクト5

Slackbotへの登録

Page 7: プロジェクト(金岡グループ) · 部APIやデータセットの活用により、チームごとに特色のあるチャット ボットの実現を試みる。 技術要素

簡単なボットならすぐできる

プロジェクト6

Page 8: プロジェクト(金岡グループ) · 部APIやデータセットの活用により、チームごとに特色のあるチャット ボットの実現を試みる。 技術要素

本格的にボットを作る前に

プロジェクト7

Page 9: プロジェクト(金岡グループ) · 部APIやデータセットの活用により、チームごとに特色のあるチャット ボットの実現を試みる。 技術要素

ボットプログラム実行用の環境

• 金岡研究室内のサーバを利用

– 各種環境での実行が可能なようにしてある

• グループごとにアカウントを作成してあります

– グループでアカウントを共有してください

– 初期パスワードを配ります

– パスワードは変更してください

• sshでアクセス

– TeraTermを使う

– コマンドの実行などはこれで

• scpでアクセス

– WinSCPを使う

– ローカル(実習室で使っているPCや自宅PCなど)で作ったファイルをサーバに送る

プロジェクト8

Page 10: プロジェクト(金岡グループ) · 部APIやデータセットの活用により、チームごとに特色のあるチャット ボットの実現を試みる。 技術要素

サーバ用アカウント命名規則

プロジェクト9

g201721

年度シーズン1:春学期前半2:春学期後半

グループ番号

Page 11: プロジェクト(金岡グループ) · 部APIやデータセットの活用により、チームごとに特色のあるチャット ボットの実現を試みる。 技術要素

アクセスしてみよう

プロジェクト10

avocado.klab.is.sci.toho-u.ac.jp

teratermとWinSCPの両方で

Page 12: プロジェクト(金岡グループ) · 部APIやデータセットの活用により、チームごとに特色のあるチャット ボットの実現を試みる。 技術要素

TereTerm

プロジェクト11

Page 13: プロジェクト(金岡グループ) · 部APIやデータセットの活用により、チームごとに特色のあるチャット ボットの実現を試みる。 技術要素

TereTerm

プロジェクト12

Page 14: プロジェクト(金岡グループ) · 部APIやデータセットの活用により、チームごとに特色のあるチャット ボットの実現を試みる。 技術要素

TereTerm

プロジェクト13

Page 15: プロジェクト(金岡グループ) · 部APIやデータセットの活用により、チームごとに特色のあるチャット ボットの実現を試みる。 技術要素

WinSCP

プロジェクト14

Page 16: プロジェクト(金岡グループ) · 部APIやデータセットの活用により、チームごとに特色のあるチャット ボットの実現を試みる。 技術要素

WinSCP

プロジェクト15

左側が自分のマシン 右側がサーバ

Page 17: プロジェクト(金岡グループ) · 部APIやデータセットの活用により、チームごとに特色のあるチャット ボットの実現を試みる。 技術要素

本格的にボットを作る

プロジェクト16

Page 18: プロジェクト(金岡グループ) · 部APIやデータセットの活用により、チームごとに特色のあるチャット ボットの実現を試みる。 技術要素

ボットの開発

プロジェクト17

JavaScriptによる開発

Botkitフレームワークの利用

Pythonによる開発

slackbotライブラリの利用

CoffeeScriptによる開発

Hubotフレームワークの利用

Javaによる開発

JBotフレームワークの利用

Page 19: プロジェクト(金岡グループ) · 部APIやデータセットの活用により、チームごとに特色のあるチャット ボットの実現を試みる。 技術要素

共通する事項

プロジェクト18

slackへの登録

• slackにBotを登録し、APIトークンを取得する• 複数のBotを作る場合、複数のAPIトークンを取得する

Page 20: プロジェクト(金岡グループ) · 部APIやデータセットの活用により、チームごとに特色のあるチャット ボットの実現を試みる。 技術要素

ボットの登録、APIトークンの取得

プロジェクト19

このマークをクリック

Page 21: プロジェクト(金岡グループ) · 部APIやデータセットの活用により、チームごとに特色のあるチャット ボットの実現を試みる。 技術要素

ボットの登録、APIトークンの取得

プロジェクト20

「Slackをカスタマイズ」をクリック

Page 22: プロジェクト(金岡グループ) · 部APIやデータセットの活用により、チームごとに特色のあるチャット ボットの実現を試みる。 技術要素

ボットの登録、APIトークンの取得

プロジェクト21

「Menu」をクリック

Page 23: プロジェクト(金岡グループ) · 部APIやデータセットの活用により、チームごとに特色のあるチャット ボットの実現を試みる。 技術要素

ボットの登録、APIトークンの取得

プロジェクト22

「App管理」をクリック

Page 24: プロジェクト(金岡グループ) · 部APIやデータセットの活用により、チームごとに特色のあるチャット ボットの実現を試みる。 技術要素

ボットの登録、APIトークンの取得

プロジェクト23

「検索」をクリック

Page 25: プロジェクト(金岡グループ) · 部APIやデータセットの活用により、チームごとに特色のあるチャット ボットの実現を試みる。 技術要素

プロジェクト24

「Bots」を入力

Page 26: プロジェクト(金岡グループ) · 部APIやデータセットの活用により、チームごとに特色のあるチャット ボットの実現を試みる。 技術要素

プロジェクト25

「Bots」をクリック

Page 27: プロジェクト(金岡グループ) · 部APIやデータセットの活用により、チームごとに特色のあるチャット ボットの実現を試みる。 技術要素

ボットの登録、APIトークンの取得

プロジェクト26

“設定を追加”をクリック

Page 28: プロジェクト(金岡グループ) · 部APIやデータセットの活用により、チームごとに特色のあるチャット ボットの実現を試みる。 技術要素

ボットの登録、APIトークンの取得

プロジェクト27

Slackチーム内で表示されるユーザ名

Page 29: プロジェクト(金岡グループ) · 部APIやデータセットの活用により、チームごとに特色のあるチャット ボットの実現を試みる。 技術要素

ボットの登録、APIトークンの取得

プロジェクト28

“ボットインテグレーションを追加する”をクリック

Page 30: プロジェクト(金岡グループ) · 部APIやデータセットの活用により、チームごとに特色のあるチャット ボットの実現を試みる。 技術要素

ボットの登録、APIトークンの取得

プロジェクト29

これがAPIトークン。これを別のファイル(テキストなど)に保管しておく。

Page 31: プロジェクト(金岡グループ) · 部APIやデータセットの活用により、チームごとに特色のあるチャット ボットの実現を試みる。 技術要素

各言語による開発

プロジェクト30

以下の言語での開発方法が別資料でWebにアップされています

Javascript

Python

Java

Page 32: プロジェクト(金岡グループ) · 部APIやデータセットの活用により、チームごとに特色のあるチャット ボットの実現を試みる。 技術要素

Botデザイン:考える点

プロジェクト31

どんな目的で、どんな機能を持たせるか

• 目的• 機能

• こういう入力があったらこう返す• 「こう」に特徴がある場合はそう返す• **時**分になったらこう返す• その他のトリガ

機能はどういう技術要素で持たせるか

• DB(MySQL)を使って…• クラウドサービスを使って画像なんかを取得して…• Wikipediaからその項目を検索して…• 得られたデータから**を**して…

Page 33: プロジェクト(金岡グループ) · 部APIやデータセットの活用により、チームごとに特色のあるチャット ボットの実現を試みる。 技術要素

Botデザイン:考える点

プロジェクト32

完成イメージ

• ボット名称• 動作イメージ

作業項目とメンバー割り当て、線表

Page 34: プロジェクト(金岡グループ) · 部APIやデータセットの活用により、チームごとに特色のあるチャット ボットの実現を試みる。 技術要素

次回のプレゼンについて

プロジェクト33

Botデザインで検討した項目を解説

• 目的、実装する機能• 機能実現のための技術要素• 完成イメージ• 作業項目、割り当て、線表

グループあたりの持ち時間

• 10分

Page 35: プロジェクト(金岡グループ) · 部APIやデータセットの活用により、チームごとに特色のあるチャット ボットの実現を試みる。 技術要素

ポイントとなりそうな要素技術

• 外部のリソースの利用

– 外部APIの利用

– 外部データベースの利用

• 他のライブラリの利用

• 正規表現

プロジェクト34