LoginSignup
3
1

More than 5 years have passed since last update.

Watson Assistant にあらかじめ情報を渡す方法

Last updated at Posted at 2018-07-05

環境

IBM Cloud 上の node-red で開発しています
Assistant を利用して LINE bot との会話を構成します

やりたいこと

Assistant で会話を始める前に Assistant に情報を渡したい
例えば今回は、LINE bot に画像を投稿して、Watson Visual Recognition で画像を認識させて、その結果を Assistant の会話で利用する必要がありました

方法

Assistant ノードの前に function ノードを追加して以下を記述します

//watson assistant の準備
msg.params = {};
msg.params.endpoint = "https://gateway.watsonplatform.net/assistant/api";
msg.params.username = "xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxx"; //Assistant の資格情報
msg.params.password = "xxxxxxxxxxxx"; //Assistant の資格情報
msg.params.workspace_id = "xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxx"; //Assistant で呼び出したい Workspace の Workspace-id

//渡したい情報を context にセットする
msg.params.context.color= "red";
msg.params.context.size= "big";

msg.payload = {};
msg.payload = "bot に投げるメッセージ";

return msg;

備忘

会話はこちらからのメッセージに対して、bot が一回返答する形になります
次のメッセージをこちらから投げる時には前の msg はクリアされていて、値を保持しておけません

Assistant は継続した会話として値を保持してくれているようですので、context に入れておけば持っておけます

その後は、会話を新たに始める際に context をクリアしています

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1