Submit Search
Upload
チャットボットのススメ
•
0 likes
•
399 views
K
Kazuhiro Nishiyama
Follow
[Osaka RubyKaigi 02](http://regional.rubykaigi.org/osaka02/) での発表資料です。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 28
Download now
Download to read offline
Recommended
20100701 01 ツイッター浜名湖_プレゼン_i_phoneで動くロボットセミナー
20100701 01 ツイッター浜名湖_プレゼン_i_phoneで動くロボットセミナー
akihiro uehara
Perlを勉強してみて思ったこと
Perlを勉強してみて思ったこと
Yuzo Iwasaki
191208 python-kansai-nishimoto
191208 python-kansai-nishimoto
Takuya Nishimoto
Pyladies tokyo 20150123
Pyladies tokyo 20150123
Ai Makabi
連続音声からの語彙学習と自動巡回ロボットへの応用
連続音声からの語彙学習と自動巡回ロボットへの応用
Ryo Taguchi
ライフログ、時系列メモ
ライフログ、時系列メモ
鉄次 尾形
Flutter 仕事で使いたい
Flutter 仕事で使いたい
nemui_fujiu
Tensor flowを使った キュウリの仕分け あれこれ
Tensor flowを使った キュウリの仕分け あれこれ
Makoto Koike
Recommended
20100701 01 ツイッター浜名湖_プレゼン_i_phoneで動くロボットセミナー
20100701 01 ツイッター浜名湖_プレゼン_i_phoneで動くロボットセミナー
akihiro uehara
Perlを勉強してみて思ったこと
Perlを勉強してみて思ったこと
Yuzo Iwasaki
191208 python-kansai-nishimoto
191208 python-kansai-nishimoto
Takuya Nishimoto
Pyladies tokyo 20150123
Pyladies tokyo 20150123
Ai Makabi
連続音声からの語彙学習と自動巡回ロボットへの応用
連続音声からの語彙学習と自動巡回ロボットへの応用
Ryo Taguchi
ライフログ、時系列メモ
ライフログ、時系列メモ
鉄次 尾形
Flutter 仕事で使いたい
Flutter 仕事で使いたい
nemui_fujiu
Tensor flowを使った キュウリの仕分け あれこれ
Tensor flowを使った キュウリの仕分け あれこれ
Makoto Koike
lilo.linux.or.jp を buster から bullseye に上げた
lilo.linux.or.jp を buster から bullseye に上げた
Kazuhiro Nishiyama
小規模個人アプリをRails 7.xにバージョンアップした話
小規模個人アプリをRails 7.xにバージョンアップした話
Kazuhiro Nishiyama
Ruby リファレンスマニュアル改善計画 2022 進捗報告
Ruby リファレンスマニュアル改善計画 2022 進捗報告
Kazuhiro Nishiyama
fukuoka03-rubima-reboot-rubyist-magazine-reboot.pdf
fukuoka03-rubima-reboot-rubyist-magazine-reboot.pdf
Kazuhiro Nishiyama
rubykaigi2022-rurema-history-and-future.pdf
rubykaigi2022-rurema-history-and-future.pdf
Kazuhiro Nishiyama
qemuのriscv64にDebianを入れてみた
qemuのriscv64にDebianを入れてみた
Kazuhiro Nishiyama
systemd 再入門
systemd 再入門
Kazuhiro Nishiyama
Ruby 3.0.0 コネタ集
Ruby 3.0.0 コネタ集
Kazuhiro Nishiyama
livedoor天気API終了対応
livedoor天気API終了対応
Kazuhiro Nishiyama
Wireguard 実践入門
Wireguard 実践入門
Kazuhiro Nishiyama
workflow,job,step の使い分けの基準を考える
workflow,job,step の使い分けの基準を考える
Kazuhiro Nishiyama
あまり知られていないRubyの便利機能
あまり知られていないRubyの便利機能
Kazuhiro Nishiyama
Dockerのオフィシャルrubyイメージとは?
Dockerのオフィシャルrubyイメージとは?
Kazuhiro Nishiyama
Dokku の紹介
Dokku の紹介
Kazuhiro Nishiyama
Action Cableで簡易チャットを作ってみた
Action Cableで簡易チャットを作ってみた
Kazuhiro Nishiyama
Ruby svn to git
Ruby svn to git
Kazuhiro Nishiyama
Ruby 2.6 Update
Ruby 2.6 Update
Kazuhiro Nishiyama
最近のrubyのインストール方法
最近のrubyのインストール方法
Kazuhiro Nishiyama
Language update 2018 - ruby
Language update 2018 - ruby
Kazuhiro Nishiyama
systemdでよく使うサブコマンド
systemdでよく使うサブコマンド
Kazuhiro Nishiyama
More Related Content
More from Kazuhiro Nishiyama
lilo.linux.or.jp を buster から bullseye に上げた
lilo.linux.or.jp を buster から bullseye に上げた
Kazuhiro Nishiyama
小規模個人アプリをRails 7.xにバージョンアップした話
小規模個人アプリをRails 7.xにバージョンアップした話
Kazuhiro Nishiyama
Ruby リファレンスマニュアル改善計画 2022 進捗報告
Ruby リファレンスマニュアル改善計画 2022 進捗報告
Kazuhiro Nishiyama
fukuoka03-rubima-reboot-rubyist-magazine-reboot.pdf
fukuoka03-rubima-reboot-rubyist-magazine-reboot.pdf
Kazuhiro Nishiyama
rubykaigi2022-rurema-history-and-future.pdf
rubykaigi2022-rurema-history-and-future.pdf
Kazuhiro Nishiyama
qemuのriscv64にDebianを入れてみた
qemuのriscv64にDebianを入れてみた
Kazuhiro Nishiyama
systemd 再入門
systemd 再入門
Kazuhiro Nishiyama
Ruby 3.0.0 コネタ集
Ruby 3.0.0 コネタ集
Kazuhiro Nishiyama
livedoor天気API終了対応
livedoor天気API終了対応
Kazuhiro Nishiyama
Wireguard 実践入門
Wireguard 実践入門
Kazuhiro Nishiyama
workflow,job,step の使い分けの基準を考える
workflow,job,step の使い分けの基準を考える
Kazuhiro Nishiyama
あまり知られていないRubyの便利機能
あまり知られていないRubyの便利機能
Kazuhiro Nishiyama
Dockerのオフィシャルrubyイメージとは?
Dockerのオフィシャルrubyイメージとは?
Kazuhiro Nishiyama
Dokku の紹介
Dokku の紹介
Kazuhiro Nishiyama
Action Cableで簡易チャットを作ってみた
Action Cableで簡易チャットを作ってみた
Kazuhiro Nishiyama
Ruby svn to git
Ruby svn to git
Kazuhiro Nishiyama
Ruby 2.6 Update
Ruby 2.6 Update
Kazuhiro Nishiyama
最近のrubyのインストール方法
最近のrubyのインストール方法
Kazuhiro Nishiyama
Language update 2018 - ruby
Language update 2018 - ruby
Kazuhiro Nishiyama
systemdでよく使うサブコマンド
systemdでよく使うサブコマンド
Kazuhiro Nishiyama
More from Kazuhiro Nishiyama
(20)
lilo.linux.or.jp を buster から bullseye に上げた
lilo.linux.or.jp を buster から bullseye に上げた
小規模個人アプリをRails 7.xにバージョンアップした話
小規模個人アプリをRails 7.xにバージョンアップした話
Ruby リファレンスマニュアル改善計画 2022 進捗報告
Ruby リファレンスマニュアル改善計画 2022 進捗報告
fukuoka03-rubima-reboot-rubyist-magazine-reboot.pdf
fukuoka03-rubima-reboot-rubyist-magazine-reboot.pdf
rubykaigi2022-rurema-history-and-future.pdf
rubykaigi2022-rurema-history-and-future.pdf
qemuのriscv64にDebianを入れてみた
qemuのriscv64にDebianを入れてみた
systemd 再入門
systemd 再入門
Ruby 3.0.0 コネタ集
Ruby 3.0.0 コネタ集
livedoor天気API終了対応
livedoor天気API終了対応
Wireguard 実践入門
Wireguard 実践入門
workflow,job,step の使い分けの基準を考える
workflow,job,step の使い分けの基準を考える
あまり知られていないRubyの便利機能
あまり知られていないRubyの便利機能
Dockerのオフィシャルrubyイメージとは?
Dockerのオフィシャルrubyイメージとは?
Dokku の紹介
Dokku の紹介
Action Cableで簡易チャットを作ってみた
Action Cableで簡易チャットを作ってみた
Ruby svn to git
Ruby svn to git
Ruby 2.6 Update
Ruby 2.6 Update
最近のrubyのインストール方法
最近のrubyのインストール方法
Language update 2018 - ruby
Language update 2018 - ruby
systemdでよく使うサブコマンド
systemdでよく使うサブコマンド
チャットボットのススメ
1.
チャットボットのススメ Kazuhiro NISHIYAMA Osaka RubyKaigi
02 2019/09/15 株式会社Ruby開発 Powered by Rabbit 2.2.1
2.
Agenda チャットとは チャットボットとは なぜおすすめなのか 色々なボット例 人工無脳の話 ボット作成時の注意 1/27
3.
チャットとは? 主にテキストで リアルタイムに 会話(chat)するシステム 2/27
4.
使ってきたチャットシステム NIFTY-Serve の RT →
RT を含むサービス終了 (@nifty 自体は存 続) IRC → 今も利用 Slack → 今のメイン Idobata, Gitter, Discord, … → たまに 利用 3/27
5.
チャットボットとは? 誰かの発言に対して反応して発言 時間や通知など他のトリガーで自動発言 システムによって使えるトリガーは違う RT は入退室で挨拶するボットが可能だった IRC は入室の挨拶は可能だが退室前は不可 能 Slack
は使われ方が違うので挨拶ボットは 困難 4/27
6.
なぜおすすめなのか? (1/3) プログラムの基本は入力を受けて出力を 返す 出力がないと 計算だけしてもできているのかどうかわか らない 入力がないと 同じことしかできない (そういう用途も多 い)
5/27
7.
なぜおすすめなのか? (2/3) チャットボットはテキスト入出力で単純 昔ながらのチャットシステム (IRC
など) だと行ごとの入出力でさらに単純 テストもしやすい 標準入出力で試せるようにするのも簡単 6/27
8.
なぜおすすめなのか? (3/3) システム移行も経験可能 例: RT
から IRC への移行を経験 複数対応するといろんな経験を積める 本質的な部分とシステム依存の分離 システムによる機能差 システム依存だが便利な機能の実装 7/27
9.
便利ボット例 URL → タイトル 文字コード,
JavaScript, HTML 以外の対応 など、簡単そうに見えて実際やってみると大 変 g> 検索キーワード → Web 検索のトッ プ tenki> 大阪 → 天気予報 amedas> 大阪 → アメダスの最近の値 8/27
10.
反応例 g> OsakaRubyKaigi02 osrk02 -
https://twitter.com/hashtag/osrk02 (and 3 hits) tenki> 大阪 tenki bot: 大阪府 大阪 の天気: 今日:晴時々曇(max:31), 明日:晴れ(min:24,max:35), 明後日:晴時々曇 - 近畿地方は、 北部や中部では高気圧に覆われておおむね晴れていますが、南部では 湿った空気の影響でおおむね曇り、雨の降っている所があります。 (2019-09-14T10:31:00+0900) - http://weather.livedoor.com/area/forecast/270000 amedas> 大阪 amedas: 2019年09月14日 大阪(オオサカ) 時刻:15時, 気温:31.6℃, 降水量:0.0mm, 風向:北東, 風速:3.8m/s, 日照時間:0.6h, 湿度:49%, 気圧:1008.9hPa http://www.jma.go.jp/jp/amedas_h/today-62078.html?groupCode=45&areaCode=000 amedas: 2019年09月14日 大阪(オオサカ) 最低気温(℃):22.7 at 05:53, 最高気温(℃):32.0 at 13:43, 最大瞬間風速(m/s)(風向(16方位)):9.1(東) at 01:14 9/27
11.
小ネタ系ボット例 ping → pong
と返すだけ ボットの生存確認やユーザー側の接続確認 10/27
12.
時報ボット 「西暦2019(平成31/昭和94/大正108/明 治152/皇紀2679)年(己亥)09月(長月)14日 (土)08時00分28秒(インターネットタイム @000.3)です。」 過去の元号や干支や旧暦の月なども対応 Swatch のインターネットタイムも対応 (24 時間=1000ビート、タイムゾーンなしの世界 共通の時刻) 11/27
13.
時報ボット 「西暦2019年(令和元年/平成31年/昭和 94年/大正108年/明治152年/皇紀2679年) (己亥)09月(長月) 13日(金) 18時00分00秒 (インターネットタイム@416.7)です。」 13日の金曜日は装飾 12/27
14.
挨拶ボット 挨拶ボット IRC のように接続通知がないと難しい 「prefix+時間の挨拶+suffix >
nick+敬 称」(秘蔵のランダムデータで生成) 13/27
15.
挨拶ボット例 「次はおはようございますみゅ > NICK御 中」 「なんでもいいおはようございますする か?
> NICK代表」 「積極的におはようがなんともうれしい > NICKタン」 14/27
16.
運用系ボット uptime : サーバーの
uptime 確認 「| uptime」の出力を発言するだけ upgradable : apt で upgradable に なっているパッケージ一覧 「apt list -qq -o APT::Cmd::use- format=true -o APT::Cmd::format=${Package}($ {installed:Version}->$ {candidate:Version}) -- upgradable」 15/27
17.
人工無脳とは? 「人工無能」とも AI (人工知能) ほど高度なものではないと いうことから ここでは人間の発言に自動発言を返す ボット 16/27
18.
人工無脳の種類 (1/3) 単純な部分文字列マッチ Slackbot のようにチャットシステム側に存 在することも 正規表現マッチ 個人運用しているものはこれ 17/27
19.
人工無脳の種類 (2/3) 形態素解析を利用 人工無脳ししゃも (Sixamo)
など 書籍「恋するプログラム―Rubyでつくる人 工無脳」の後半はこれ 18/27
20.
人工無脳の種類 (3/3) ELIZA 人工無脳の起源, 英語のパターンマッチング 内容によってはかなり自然な会話ができるらし い 複数手法の組み合わせ 人工無能うずら
(ソース非公開) 日本語の IRC (IRCnet) では多分一番有 名 19/27
21.
人工無脳への攻撃対策 (1/2) 問題例: ReDoS
(regular expression denial of service) 正規表現をユーザー登録可能な場合 不適切な語彙の学習 任意の言葉を登録可能な場合 20/27
22.
人工無脳への攻撃対策 (2/2) 対応例 (クローズドなグループ向けを想定) 技術的な対応はあまりしない アカウントを
ban するなどのソーシャルな対応 が楽 (ボットが無視するアカウントにするなど) 21/27
23.
不適切な学習の問題 Tay というマイクロソフトの Twitter
ボッ ト ユーザーによる不適切な学習によりヘイト スピーチなどをするようになったらしい (その後停止) 対処は難しそう 22/27
24.
ボット作成時の注意 ボットとボットのループに注意 ボットの発言にボットが発言するとループの可 能性があって危険 IRC ではボットは NOTICE
で発言して NOTICE には反応しないのが原則 大量発言に注意 アカウントが ban される可能性も 23/27
25.
脆弱性にも注意 任意コード実行ボットはかなり難易度が高 い タイトル取得ボットは情報漏洩に注意 例えば localhost に制限しているもの “169.254.169.254”
? 24/27
26.
発言量の問題 ほとんどの発言に反応 → 迷惑? 受け入れられていれば問題なし 以前からそういうものとして存在 新規ならボットとの会話用チャンネルに隔離? 25/27
27.
単調にみえる反応 大量のパターンを用意しても… キーワード反応型 ユーザーの発言のバリエーションが少ない → 反応も単調 時間に依存するもの ユーザーが使う時間がほぼ同じ → 反応もほぼ同じ 26/27
28.
最後に ping pong のような単純なものから始める のがオススメ Twitter
のような公開の場所は攻撃される可 能性もあがるので Slack などのクローズド な場所で始めるのがオススメ アイデア次第で簡単なものでも便利だった り面白くなったり 27/27Powered by Rabbit 2.2.1
Download now