プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト...

62
プロジェクト(金岡グループ) 2201769金岡 晃

Transcript of プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト...

Page 1: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

プロジェクト(金岡グループ)第2回2017年6月9日 金岡 晃

Page 2: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

金岡プロジェクトテーマ

配布資料より

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

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

技術要素

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

外部リソースの活用

HTTPによるアクセス

2017/6/9 プロジェクト1

Page 3: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

Slackとは

Slack(スラック)

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

https://slack.com/

類似・近いサービス?

2017/6/9 プロジェクト2

Page 4: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

スケジュール

内容

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

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

第3回(6月16日) Botデザインまとめ、発表

第4回(6月23日) 開発(1)

第5回(6月30日) 開発(2)

第6回(7月7日) 開発(3)

第7回(7月14日) 成果発表会

2017/6/9 プロジェクト3

Page 5: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

チャットボット

2017/6/9 プロジェクト4

ボット

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

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

Page 6: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

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

2017/6/9 プロジェクト5

Slackbotへの登録

Page 7: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

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

2017/6/9 プロジェクト6

Page 8: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

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

2017/6/9 プロジェクト7

Page 9: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

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

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

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

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

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

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

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

• sshでアクセス

– TeraTermを使う

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

• scpでアクセス

– WinSCPを使う

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

2017/6/9 プロジェクト8

Page 10: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

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

2017/6/9 プロジェクト9

g201721

年度

シーズン1:春学期前半2:春学期後半3:秋学期前半4:秋学期後半

グループ番号

Page 11: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

チーム編成とアカウント名

学番 氏名

5515003新治 裕希

5515013太田 和希

5516101牧 伊織

5516111毛藤 匡哉

学番 氏名

5515012大石 涼火

5515016大橋 拓実

5516096平山 結菜

5516107水沼 佑太

学番 氏名

5515018岡野 就斗

5515021落合 伸紀

5516113山田 碧

5516118岡部 瞳

学番 氏名

5515017大山 滉平

5515023柿本 健

5516094平山 真聖

5516103松岡 智也

5516110宮本 康平

学番 氏名

5515005飯塚 拓巳

5515014大友 尚

5516089東森 大樹

5516100前田 直人

5516115吉澤 宏紀

学番 氏名

5515009伊藤 翼

5515024笠川 翔大

5516093平山 果奈

5516102増本 真子

5516105松本 実結貴

学番 氏名

5515007石橋 純

5515015大野 裕司

5516091平田 絵理

5516112山崎 優太

5516114山田 航大

グループ1 グループ3 グループ5 グループ7

グループ2 グループ4 グループ6

2017/6/2 プロジェクト10

g201721

g201722

g201723

g201724

g201725 g201727

g201726

Page 12: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

アクセスしてみよう

2017/6/9 プロジェクト11

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

teratermとWinSCPの両方で

Page 13: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

TereTerm

2017/6/9 プロジェクト12

Page 14: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

TereTerm

2017/6/9 プロジェクト13

Page 15: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

TereTerm

2017/6/9 プロジェクト14

Page 16: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

WinSCP

2017/6/9 プロジェクト15

Page 17: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

WinSCP

2017/6/9 プロジェクト16

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

Page 18: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

本格的にボットを作る

2017/6/9 プロジェクト17

Page 19: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

ボットの開発

2017/6/9 プロジェクト18

JavaScriptによる開発

Botkitフレームワークの利用

Pythonによる開発

slackbotライブラリの利用

CoffeeScriptによる開発

Hubotフレームワークの利用

Javaによる開発

JBotフレームワークの利用

Page 20: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

共通する事項

2017/6/9 プロジェクト19

slackへの登録

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

Page 21: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

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

2017/6/9 プロジェクト20

このマークをクリック

Page 22: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

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

2017/6/9 プロジェクト21

Page 23: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

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

2017/6/9 プロジェクト22

“Apps & integrations”をクリック

Page 24: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

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

2017/6/9 プロジェクト23

“Manage”をクリック

Page 25: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

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

2017/6/9 プロジェクト24

“Custom Integrations”をクリック

Page 26: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

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

2017/6/9 プロジェクト25

“Bots”をクリック

Page 27: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

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

2017/6/9 プロジェクト26

“Bots”をクリック

Page 28: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

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

2017/6/9 プロジェクト27

“Add Configuration”をクリック

Page 29: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

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

2017/6/9 プロジェクト28

“Bots”をクリック

ここで「Bots」が出ない人は

https://my.slack.com/services/new/botをクリック

Page 30: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

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

2017/6/9 プロジェクト29

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

Page 31: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

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

2017/6/9 プロジェクト30

“Add bot integration”をクリック

Page 32: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

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

2017/6/9 プロジェクト31

Page 33: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

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

2017/6/9 プロジェクト32

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

Page 34: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

JavaScriptによる開発

2017/6/9 プロジェクト33

Botkitフレームワーク

ボットが実行されるフォルダの設定を行う(teratermによるサーバ上の作業)

• 実施コマンド• mkdir <フォルダ名>• cd <フォルダ名>• npm init• npm install botkit --save

mkdirでフォルダを新規に作成して、cdでそのフォルダに移動

botkitを使うための初期化

Page 35: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

JavaScriptによる開発

2017/6/9 プロジェクト34

Botkitフレームワーク

ボット本体の作成(ローカル<実習室PC、自宅PC>での作業)

ファイル名はかならず”index.js”とすること

JavaScript言語

Page 36: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

JavaScriptによる開発

2017/6/9 プロジェクト35

Botkitフレームワーク

ボット本体のサーバへのアップロード(ローカル<実習室PC、自宅PC>での作業)

• WinSCPを立ち上げてサーバ(avocado)に接続• さきほど作成したフォルダにindex.jsをアップロード

Page 37: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

JavaScriptによる開発

2017/6/9 プロジェクト36

Botkitフレームワーク

ボットの実行( teratermによるサーバ上の作業)

• 実施コマンド• token=<APIトークン> node index.js

Page 38: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

JavaScriptによる開発:簡単な例

2017/6/9 プロジェクト37

ボットが実行されるフォルダの設定を行う(teratermによるサーバ上の作業)

• 実施コマンド• mkdir testbot01• cd testbot01• npm init• npm install botkit --save

Page 39: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

JavaScriptによる開発:簡単な例

2017/6/9 プロジェクト38

ボット本体の作成(ローカル<実習室PC、自宅PC>での作業)

const Botkit = require('botkit');

if (!process.env.token) {console.log('Error: Specify token in environment');process.exit(1);

}

const controller = Botkit.slackbot({debug: false

});

controller.spawn({token: process.env.token

}).startRTM(function(err){if (err) {

throw new Error(err);}

});

// say hicontroller.hears('hi',['direct_message','direct_mention','mention'],function(bot,message) {

bot.reply(message,'hi');});

Page 40: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

JavaScriptによる開発:簡単な例

2017/6/9 プロジェクト39

ボット本体の作成(ローカル<実習室PC、自宅PC>での作業)

const Botkit = require('botkit');

if (!process.env.token) {console.log('Error: Specify token in environment');process.exit(1);

}

const controller = Botkit.slackbot({debug: false

});

controller.spawn({token: process.env.token

}).startRTM(function(err){if (err) {

throw new Error(err);}

});

// say hicontroller.hears('hi',['direct_message','direct_mention','mention'],function(bot,message) {

bot.reply(message,'hi');});

DMや言及(@ユーザ名 を付けてつぶやく)したときに、そのつぶやきが「hi」だったら、「hi」と返す

Page 41: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

JavaScriptによる開発:簡単な例

2017/6/9 プロジェクト40

Botkitフレームワーク

ボットの実行( teratermによるサーバ上の作業)

• 実施コマンド• token=xoxb-169493700566-7ev2Ze5xZJPeqHe0GbevIUJ6 node index.js

Page 42: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

JavaScriptによる開発:簡単な例

2017/6/9 プロジェクト41

Page 43: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

JavaScriptによる開発:軽い応用

2017/6/9 プロジェクト42

何かBotあてにつぶやかれたら、登録してある複数の文言からランダムに選択して返信する

やること

• 複数文言を登録してあるテキストファイル(1行に1文言)を用意

• テキストファイルの行数を読み込み、何行目を呼び出すかをランダムに決める

• 決められた行の文言をメッセージとして返す

Page 44: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

JavaScriptによる開発:軽い応用

2017/6/9 プロジェクト43

const Botkit = require('botkit');

if (!process.env.token) {

console.log('Error: Specify token in environment');

process.exit(1);

}

const controller = Botkit.slackbot({

debug: false

});

controller.spawn({

token: process.env.token

}).startRTM(function(err){

if (err) {

throw new Error(err);

}

});

index.js(前半)

さっきのと同じ

Page 45: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

JavaScriptによる開発:軽い応用

2017/6/9 プロジェクト44

// say hi

controller.hears('',['direct_message','direct_mention','mention'],function(bot,mess

age) {

var fs = require('fs');

var contents = fs.readFileSync('comments.txt');

var lines = contents.toString().split('¥n').length -1;

var num = Math.floor(Math.random()*lines);

var dat = '';

var lnum = 0;

fs.readFileSync('comments.txt').toString().split('¥n').forEach(function (line){

if(lnum==num)dat=line;

lnum++;

});

bot.reply(message,dat);

});

index.js(後半)どのメッセージでも反応する

文言ファイル(comments.txt)を開く

行数をカウント

レスする文言をランダムに選ぶ

その行をレスする

Page 46: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

2017/6/9 プロジェクト45

Page 47: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

Pythonによる開発

2017/6/9 プロジェクト46

slackbotライブラリ

ボットが実行されるフォルダの設定を行う(teratermによるサーバ上の作業)

• 実施コマンド• mkdir <フォルダ名>• cd <フォルダ名>• touch slackbot_settings.py• touch run.py• mkdir plugins• touch plugins/__init__.py

botkitを使うための初期化

Page 48: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

Pythonによる開発

2017/6/9 プロジェクト47

slackbotライブラリ

slackbot_settings.pyの編集

API_TOKEN = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

default_reply = “I could not understand that...“

PLUGINS = [‘plugins’,

]

APIトークン

デフォルトのリプライ

teratermで作業

ローカルで作成してWinSCPでアップロード

ボットが実行されるフォルダ

Page 49: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

Pythonによる開発

2017/6/9 プロジェクト48

slackbotライブラリ

run.pyの編集

from slackbot.bot import Botdef main():

bot = Bot()bot.run()

if __name__ == "__main__":main()

teratermで作業

ローカルで作成してWinSCPでアップロード

ボットが実行されるフォルダ

Page 50: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

Pythonによる開発

2017/6/9 プロジェクト49

slackbotライブラリ

好きなファイル(***.py)の編集

teratermで作業

ローカルで作成してWinSCPでアップロード

ボットが実行されるフォルダの下のpluginフォルダ

Page 51: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

Pythonによる開発

2017/6/9 プロジェクト50

slackbotライブラリ

ボットの実行( teratermによるサーバ上の作業)

• 実施コマンド• python run.py

Page 52: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

Pythonによる開発:簡単な例

2017/6/9 プロジェクト51

slackbotライブラリ

mention.pyの編集

from slackbot.bot import respond_to

@respond_to('tired')@respond_to('zzz')def cheer(message):

message.reply('You can make it!')

teratermで作業

ローカルで作成してWinSCPでアップロード

ボットが実行されるフォルダの下のpluginフォルダ

“tired”か”zzz”をボット宛につぶやくと反応する

“You can make it!”とレスする

Page 53: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

Pythonによる開発:簡単な例

2017/6/9 プロジェクト52

slackbotライブラリ

mention.pyの編集

from slackbot.bot import respond_to

@respond_to('tired')@respond_to('zzz')def cheer(message):

message.reply('You can make it!')

teratermで作業

ローカルで作成してWinSCPでアップロード

ボットが実行されるフォルダの下のpluginフォルダ

“tired”か”zzz”をボット宛につぶやくと反応する

“You can make it!”とレスする

Page 54: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

2017/6/9 プロジェクト53

Page 55: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

Pythonによる開発:軽い応用

2017/6/9 プロジェクト54

何かBotあてにつぶやかれたら、登録してある複数の文言からランダムに選択して返信する

やること

• 複数文言を登録してあるテキストファイル(1行に1文言)を用意

• テキストファイルの行数を読み込み、何行目を呼び出すかをランダムに決める

• 決められた行の文言をメッセージとして返す

Page 56: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

Pythonによる開発:軽い応用

2017/6/9 プロジェクト55

from slackbot.bot import respond_to

@respond_to('wei')

def getrandcomment(message):

import random

f = open('comments.txt','r')

list = f.readlines()

num = len(list)

randnum = random.randint(0,num-1)

message.reply(list[randnum])

randomcom.py

“wei”というメッセージに反応する

文言ファイル(comments.txt)を開く

行数をカウント

レスする文言をランダムに選んで、その行をレスする

Page 57: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

2017/6/9 プロジェクト56

Page 58: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

そのほか:Hubot、JBot

2017/6/9 プロジェクト57

JBotに関する資料は「関連資料:Javaによる開発(JBot利用)」としてアップロードしていますのでそちらを参照してください。

Page 59: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

Botデザイン:考える点

2017/6/9 プロジェクト58

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

• 目的• 機能

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

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

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

Page 60: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

Botデザイン:考える点

2017/6/9 プロジェクト59

完成イメージ

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

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

Page 61: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

次回のプレゼンについて

2017/6/9 プロジェクト60

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

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

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

• 10分

Page 62: プロジェクト(金岡グループ)...チャットボット 4 2017/6/9 プロジェクト ボット チャット上でユーザとして参加してくるボット(プ ログラム)を作ることができる

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

• 外部のリソースの利用

– 外部APIの利用

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

• 他のライブラリの利用

• 正規表現

2017/6/9 プロジェクト61