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-REDとLINE連携編)」
Search
KMiura
June 30, 2019
Technology
0
720
2019.06.30「Watson Assistantを使ったLINE bot(Node-REDとLINE連携編)」
KMiura
June 30, 2019
Tweet
Share
More Decks by KMiura
See All by KMiura
さらばあのボタンとは言わせない SORACOM LTE-M Button powerd by AWSをまだ使えるようにした(前編?)
miura55
0
91
App Runnerでパラメーターストアの値を使ってみた
miura55
0
300
ultraArmをモニター提供してもらった話
miura55
0
120
JAWS UG名古屋2023年活動報告
miura55
0
130
AWS Step Functionsの新機能「Call third-party API」を試してみた
miura55
1
110
AWS Step Functionsの新機能「Call third-party API」を試してみた
miura55
0
190
AWS CDKの新機能「cdk migrate」を試してみた
miura55
1
330
LINE DC×SORACOM UGのこれまでとこれから
miura55
0
44
社会人4年目が学生に捧げる5か条
miura55
0
140
Other Decks in Technology
See All in Technology
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
5
37k
[新卒向け研修資料] テスト文字列に「うんこ」と入れるな(2024年版)
infiniteloop_inc
5
18k
M&A戦略を支えるデータマネジメント (MIDAS Tech Study #16 GENDA Komiyama)
kommy339
1
110
Cracking the KubeCon CfP
inductor
2
270
Gitlab本から学んだこと - そーだいなるプレイバック / gitlab-book
soudai
7
1.3k
EMとして2023年度に頑張ったこと / What we did well in FY2023 as a EM
pauli
1
250
Building a RAG-poweredAI chat appwith Python and VS Code
pamelafox
0
160
TechFeed Experts Night#27 〜 フロントエンドフレームワーク最前線 (Svelte)
baseballyama
2
590
Grafana x PagerDuty Better Together
jacopen
1
260
One engineer company with Ruby on Rails
rstankov
2
430
社内アプリで Cloudflare D1を プロダクト運用してみた体験談(Tokyo)
haochenx
0
120
Além do else! Categorizando Pokemóns com Pattern Matching no JavaScript
wmsbill
0
710
Featured
See All Featured
Large-scale JavaScript Application Architecture
addyosmani
504
110k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
7
3.4k
The Straight Up "How To Draw Better" Workshop
denniskardys
228
130k
Scaling GitHub
holman
457
140k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
A designer walks into a library…
pauljervisheath
201
23k
Why You Should Never Use an ORM
jnunemaker
PRO
51
8.7k
Building Applications with DynamoDB
mza
88
5.6k
Testing 201, or: Great Expectations
jmmastey
30
6.4k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
14
1.5k
The Art of Programming - Codeland 2020
erikaheidi
43
12k
The Brand Is Dead. Long Live the Brand.
mthomps
49
29k
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 上で行われたら、成功 • もし、うまくいかない場合は、変数のタイ プミスが無いかを確認する(右側のデバッ グからもどこのノードのエラーか特定でき る)