Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
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
780
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
1.1k
Amazon Rekognitionを使ったインターホンハック
miura55
0
95
Pythonでルンバをハックしてみた
miura55
0
180
あなたの知らないクラフトビールの世界
miura55
0
370
Storage Browser for Amazon S3を触ってみた + α
miura55
0
230
Cloudflare R2をトリガーにCloudflare Workersを動かしてみた
miura55
0
230
あのボタンでつながるSORACOM
miura55
0
150
Postman Flowsで作るAPI連携LINE Bot
miura55
0
390
Lambdaと共に歩んだAWS
miura55
3
870
Other Decks in Technology
See All in Technology
AI時代のワークフロー設計〜Durable Functions / Step Functions / Strands Agents を添えて〜
yakumo
3
390
【U/day Tokyo 2025】Cygames流 最新スマートフォンゲームの技術設計 〜『Shadowverse: Worlds Beyond』におけるアーキテクチャ再設計の挑戦~
cygames
PRO
2
690
MariaDB Connector/C のcaching_sha2_passwordプラグインの仕様について
boro1234
0
600
ActiveJobUpdates
igaiga
1
140
AIエージェント開発と活用を加速するワークフロー自動生成への挑戦
shibuiwilliam
4
280
チーリンについて
hirotomotaguchi
6
2.1k
大企業でもできる!ボトムアップで拡大させるプラットフォームの作り方
findy_eventslides
1
830
Amazon Bedrock Knowledge Bases × メタデータ活用で実現する検証可能な RAG 設計
tomoaki25
1
130
re:Invent2025 コンテナ系アップデート振り返り(+CloudWatchログのアップデート紹介)
masukawa
0
390
エンジニアリングをやめたくないので問い続ける
estie
2
1.2k
[デモです] NotebookLM で作ったスライドの例
kongmingstrap
0
160
Reinforcement Fine-tuning 基礎〜実践まで
ch6noota
0
190
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
527
40k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.7k
Raft: Consensus for Rubyists
vanstee
141
7.2k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
710
A designer walks into a library…
pauljervisheath
210
24k
Writing Fast Ruby
sferik
630
62k
Navigating Team Friction
lara
191
16k
BBQ
matthewcrist
89
9.9k
The World Runs on Bad Software
bkeepers
PRO
72
12k
How to Think Like a Performance Engineer
csswizardry
28
2.4k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
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 上で行われたら、成功 • もし、うまくいかない場合は、変数のタイ プミスが無いかを確認する(右側のデバッ グからもどこのノードのエラーか特定でき る)