Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
2019.06.30「Watson Assistantを使ったLINE bot(Node-RE...
Search
KMiura
June 30, 2019
Technology
0
770
2019.06.30「Watson Assistantを使ったLINE bot(Node-REDとLINE連携編)」
KMiura
June 30, 2019
Tweet
Share
More Decks by KMiura
See All by KMiura
運用しているアプリケーションのDBのリプレイスをやってみた
miura55
1
1k
Amazon Rekognitionを使ったインターホンハック
miura55
0
60
Pythonでルンバをハックしてみた
miura55
0
130
あなたの知らないクラフトビールの世界
miura55
0
310
Storage Browser for Amazon S3を触ってみた + α
miura55
0
180
Cloudflare R2をトリガーにCloudflare Workersを動かしてみた
miura55
0
190
あのボタンでつながるSORACOM
miura55
0
120
Postman Flowsで作るAPI連携LINE Bot
miura55
0
360
Lambdaと共に歩んだAWS
miura55
3
790
Other Decks in Technology
See All in Technology
赤煉瓦倉庫勉強会「Databricksを選んだ理由と、絶賛真っ只中のデータ基盤移行体験記」
ivry_presentationmaterials
2
330
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
3
960
Yamla: Rustでつくるリアルタイム性を追求した機械学習基盤 / Yamla: A Rust-Based Machine Learning Platform Pursuing Real-Time Capabilities
lycorptech_jp
PRO
4
230
怖くない!はじめてのClaude Code
shinya337
0
380
Tokyo_reInforce_2025_recap_iam_access_analyzer
hiashisan
0
180
MUITにおける開発プロセスモダナイズの取り組みと開発生産性可視化の取り組みについて / Modernize the Development Process and Visualize Development Productivity at MUIT
muit
1
15k
AIの全社活用を推進するための安全なレールを敷いた話
shoheimitani
2
450
B2C&B2B&社内向けサービスを抱える開発組織におけるサービス価値を最大化するイニシアチブ管理
belongadmin
1
6.2k
KubeCon + CloudNativeCon Japan 2025 Recap Opening & Choose Your Own Adventureシリーズまとめ
mmmatsuda
0
260
5min GuardDuty Extended Threat Detection EKS
takakuni
0
190
Tech-Verse 2025 Keynote
lycorptech_jp
PRO
0
1.8k
開発生産性を測る前にやるべきこと - 組織改善の実践 / Before Measuring Dev Productivity
kaonavi
6
1.4k
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
GraphQLとの向き合い方2022年版
quramy
49
14k
Art, The Web, and Tiny UX
lynnandtonic
299
21k
Docker and Python
trallard
44
3.5k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
810
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
960
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
The Cult of Friendly URLs
andyhume
79
6.5k
The Language of Interfaces
destraynor
158
25k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.4k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.7k
Transcript
Watson Assistantを使ったLINE Bot(Node-REDとLINE連携編) 三浦 耕生
Node -REDとは? • IBMが開発したブロックプログラミングツール • 様々な機能を持った「ノード」をドラッグアンドド ロップで配置して接続するだけ • 足りない機能はfunctionノードでJavascriptのコードを足 すことができる
• IBM Cloudでも簡単に環境構築できる
本題に入る前に… • 以下のURLからIBM Cloud にアクセス、ログインし てください https://ibm.biz/BdzqZd • 右のQRからもアクセスで きます
本題に入る前に…② • 以下のリンクからこの時間に必要な資料をダウンロード http://bit.ly/31LvqPH
環境構築(まだ構築してない方向け) • カタログから検索し「Node-RED Starter」を選択 • 以下の画像の通り「アプリ名」と「ホスト名」を記入する(ホ スト名がアプリへのURLになるので、よく考える)
初期設定(まだ構築していない方向け) • 順番に進んでいき、途中でユーザネームとパスワード を設定する(しなくてもいいが、URLがわかってしまう と誰でもアクセスできてしまう) • 以下のようなエディタ画面が起動すればOK(まだ閉じ ない)
LINE botを作成 • LINE developersへログイン • ブロバイダを作成 • 新しいチャンネル→Messaging APIを選択
• 必要項目を入力(URL系以外の項目はすべて必須項目、アプリ 名にはLINEを含んだ文字列は登録できない) • 終わったら、閉じずにそのまま次の工程へ
まずはオウム返し • チャットボットの事始めとして、ユー ザーが話したことをそのまま帰すオウ ム返しを行う。 • Node-REDに戻り、エディタ画面で入力 の「httpノード」と出力の「debugノー ド」を接続 •
httpノードをダブルクリックし、メ ソッドを「POST」、URLを「/callback」 に設定
Debugノードについて • 通常プログラムを実行するときに途中の出力を確認する時にデ バッグを行う→エラーの原因を特定できる • 今回の場合はwebhookで受け取ったメッセージをdebugノードで 確認出来る • Debugノードの出力やエラーメッセージを確認するには右上の 虫マークをクリックすると表示される
• 思い通りの動作をしないときにも気になる箇所にDebugノード を足して出力を確認する
残りもつなげ てみる • この続きには「Function」ノードを2つ追加して、「http request」ノードを足して最後はoutputの「http response」ノー ドを足す • functionノードの名前は便宜上、順に【setToken】、 【makeReply】
• http requestノードをダブルクリックで開き、メソッドは 「POST」を選択、あとはそのまま • URLは?→このあとfunctionノードで設定する
Functionノードの設定 • 配布資料のテキストファイルのファイル名に該当するfunction ノードにそれぞれテキストファイルの中身をコピーする • 2つのうち、makeReplyの方のaccess_tokenに代入する値は先程の LINE Developersのbotの設定画面のなかにあるアクセストークン をコピぺ(何も出てない場合は再発行をクリック)
Webhookを送信する設定 • LINE Developersに戻り、webhookのURLを指定する • 「<ホスト名>.mybluemix.net/callback」の形で指定する • 終わったら更新ボタンをクリック
早速動作確認! • 画像のように送信したメッセー ジがそのまま返ってきたら成功 • もし送信されない場合は、 webhook URLの打ち間違い、Reply Tokenが正しいかを確認(フロー 上で発生したエラーはデバッグ
のメッセージから確認できる)
Watson Assistantと接続 • Node-REDの概要画面に行 き、接続の作成をクリック • 右のような画面になるので、 先程作成したWatson Assistantのリソースにカー ソルを移動させ右端に出る
接続ボタンをクリック • 選択後、再ステージが行わ れるので、起動に時間がか かる
メッセージ を取得 • Watson Assistantにwebhook で受け取ったメッセージ を入力させるために「set Token」の後に「Change ノード」を追加する •
Changeノードのルールは 「値の代入」を選択 • 「msg.payload」に、 【payload.events.0.message .text】を代入
Assistantに返 答させる • 「Assistantノード」を追加 してbotの返答を作成する • 「Workspace ID」はWatson Assistantのページから先程 作成したスキルの右側の3
つの点をクリックし 「View API Details」を選択 すると確認できる • Workspace IDをコピーして、 Assistantノードにペースト
makeReplyの修正 • makeReplyの名前で設定しているfunctionノードを開き、Watson Assistantからの返答をbotで送信出来るようにする • payload.message.textの【 msg.payload.events[0].message.text 】を 【 msg.payload.output.text[0]
】に変更 • 修正が終わったら右上のデプロイボタンを押して終了
動作確認その2 • Assistantのスキルを作成した際に行ったテス トチャットのやり取りの通りのことがLINE 上で行われたら、成功 • もし、うまくいかない場合は、変数のタイ プミスが無いかを確認する(右側のデバッ グからもどこのノードのエラーか特定でき る)