Monthly Archive: 1月 2019

WatsonのUIをLINEに設定する2

の続きの記事です。

httpノードをフロー1に置く。

ノードをクリックすると編集画面になるので、プロパティを下記のように入力する。

functionノードを同じように置いてダブルクリックします。

エディタが開くので下記のように入力し「完了」します。

flow.set(“replyToken”,msg.payload.events[0].replyToken);
return msg;

ノードとノードを接続します。

http responseノードを下記のようにfunctionノードと繋ぎます。

changeノードを置いて、編集画面で下記のように入力して「完了」します。

(値の代入 msg.)
payload
(対象の値 mag.)
payload.events.0.message.text

functionノードとchangeノードを下記のように繋げます。

次にassistantノードを下記のように繋ぎます。

changeノードを置きます。

changeノードに下記を入力して「完了」します。名前はなんでも良いのでわかりやすいものにしてください。

(値の代入 msg.)
payload.optext
(対象の値 mag.)
payload.output.text0

また繋げます。

functionノードを追加して、名前は自分でわかるように、コードには下記のように入力し、「{LINEアクセストークン}」部分は一旦このままで「完了」する。

var output_text = flow.get("text");

var post_request = {
    "headers": {
        "content-type": "application/json; charset=UTF-8",
        "Authorization": " Bearer " + "{LINEアクセストークン}"
    },
    "payload": {
        //"replyToken": msg.payload.events[0].replyToken,
        "replyToken": flow.get("replyToken"),
        "messages": [
            {
                "type": "text",
                "text": msg.payload.optext
            }
        ]
    }
};
return post_request;

http requestノードを作って、メソッドは「POST 」、URLは下記の文字列、出力形式はJSON、名前は「Reply Message」として「完了」する。

URL
https://api.line.me/v2/bot/message/reply

ここまでで、一旦Node-REDは置いておきます。次に、IBM Cloudのダッシュボードに戻ります。

ダッシュボードのサービスからWatsonのSkillsを開発した名前をクリックします。Watson Assistantの画面から「ツールの起動」をクリックします。

メニューから「Skills」を選択します。すでに設定してあるSkillsが表示されたら、縦に・が並んだアイコンをクリックして、「View API Details」をクリックします。

Workspace IDが表示されるので、それをコピーする。

Assistantノードをダブルクリックし編集画面を表示する。

先ほどのWorkspace IDを入力し、「完了」する。

次は、LINE側のAPIをいじります。LINE Developersに戻り、「Massaging API」の「チャネルを作成する」をクリックする。

その後、チャネルの名前などを決めていきます。

チャネルが作成されると、新規チャネル「@@@@」が作成されました。と表示され、プロバイダーリストの下位レイヤーにチャネルが作成されます。

LINE系の言葉がたくさん出てきたので整理します。LINE Developersは、通常の個人LINEアカウントと紐づけることができます。レイヤーで見ると、

LINE Developers – 個人LINEアカウント
 ∟プロバイダー
    ∟チャネル

また、ややこしいのは、LINE@ MANAGERでこれらを開くと、

LINE@MANAGER(アカウント一覧)
 ∟プロバイダー
 ∟チャネル

と、プロバイダーとチャネルのアカウントが並列に表記されているので、行ったり来たりするとよくわからなくなるかもしれません。

新チャネルを開くと、「チャネル基本設定」画面にたどり着きます。


ここで、
・Webhook送信を「利用する」
・Botのグループトーク参加を「利用する」
にします。(*画像は利用しないになっていますが、「利用する」に変更してください。もし、グループトークに招待してテストなどをした後、退室させたい場合は、ここを一時的に「利用しない」に変更してください)

LINEで送る
[`evernote` not found]
LinkedIn にシェア

WatsonのUIをLINEに設定する1

Node-RED 編集 LINE Watson接続

の続きの記事です。

Watsonの設定が終わったら、UIで悩むと思います。そんな時の選択肢の一つとして、LINEがあります。今回は、LINEとWatsonを連携させてみましょう。

ます、IBM Cloudのメニューからカタログを選択し、フィルターに「Node-Red」と入力します。私が行った時は、「node red」ではヒットされませんでしたので、正しく入力してください。

選択すると、下記の画面になりNode-RED Starterを作成できます。赤枠に必要事項を入力し、作成をクリックしてください。

作成をクリックすると、下記の画面に遷移し、しばらくサークルが回っていると思います。この画面は開いたままにして、次にLINEアカウントの設定をします。LINEでは個人のアカウントを持っている前提で進めます。もし、個人でも利用されていない場合は、アカウントを取得しておいてください。

まず、LINE@https://at.line.me/jp/)の画面を開きます。そこから「LINE@アカウントを作成する」をクリックしてください。

次に、「一般アカウントを作成する」をクリックして進めます。

この先は、一般的なアカウント作成と同じなので説明は省略します。チャットボットに合うアカウント名で作ります。

アカウントが出来上がるとLINE@MANAGERを開くことができます。この画面では、アカウント一覧に今まで作ったことがあるLINE@のアカウントが並びます。一つ目の場合はそれを選択します。

次に、LINE Developersでアカウント登録をします。

アカウントが作成できたら、新規プロバイダー作成をします。トップページから、アカウントアイコンにカーソルを合わせると「+プロバイダー新規作成」を選択できます。

次のページでプロバイダー名にチャットボットに関する名前をつけて次に進みます。新規に作成したプロバイダー名は、作成が完了すると左のプロバイダーリストに並びます。ここまでで、一旦LINEでの画面は置いておきます。

IBM Cloudに続きLINEがたくさん出てきたのでIBM CloudとLINE関係でやったことを整理しておきます。
・IBM Cloud上のNode-REDでアプリを作成
・個人のLINEアカウントでLINE@アカウントにログイン
・LINE@内にアカウントを作成
・LINE Developersアカウントを作成しログイン
・LINE Developers内に新規プロバイダーを作成

次に、IBM Cloud上でダッシュボードを開きます。
先ほど作ったアプリが、Cloud Foundryアプリケーションの欄に載っていると思います。これをクリックしてください。

画面が切り替わったら、左カラム内に「接続」があるのでクリックしてください。

次の画面で前回作ったWatson Assistantを繋げるため、「接続の作成」をクリックします。

赤枠をクリックして進めていきます。

次に「再ステージ」をクリックして接続を完了させます。ここでしばらく時間がかかることがあります。

下記の表示が

稼働中になるまで待ちます。

稼働中になったら「アプリURLにアクセス」をクリックします。

ここは「Next」で進めます。

ここでは、Node-REDのUsernameとPasswordを作り、「Next」で進みます。

ここでも「Next」で進めます。

やっと最後の画面です。ここで「Finish」で進めます。

しばらく待機してください。

画面が切り替わったら、「Go to your Node-RED flow editor」をクリックし進めます。

先ほど設定したユーザ名とパスワードを入力し、ログインします。

これで、Node-REDの編集画面にログインできました。

次回は、LINEとの接続を行います。

LINEで送る
[`evernote` not found]
LinkedIn にシェア

Watson Assistant(チャットボット)の設定3

Watson Assistant(チャットボット)の設定2の続きです。

ここでは、会話(ダイアログ)の設定を行います。まず、前回の続きの画面の赤枠部分から「Dialog」をクリックしてください。

Dialogの画面が会話を設定する主な操作画面となります。「Create」をクリックしてください。

「ようこそ」と「その他」と記載されているボックスが表示されます。この一つ一つがノードと呼ばれます。

「ようこそ」のボックスをクリックすると、下記のように、このノードの中身を見ることができます。

「If assistant recognizes:」に「welcome」と表示されているのが、Watson Assistantが「これはwelcomだぞ」と認識すると、「Then respond with:」の部分にある反応をする、となります。
*welcomeは、最初にユーザーが訪れた時に表示されるインテントで固定されている。

ノードの中身をスクロールすると、「And finally」と表示が出てきます。これは、Watson Assistantが反応した後、何をするかという意味ですが、デフォルトでWait for user input(ユーザーの入力を待て)となっていますので、通常はこのままでオッケーです。

それでは、試しに「Try it」をクリックしてください。

下記の画面が表示されます。Then respond withに入力された文字列と、Chat botの最初の会話文が同じだと思います。Try it outを×で閉じて、この文字列を変更したりして試してみてください。

それでは、会話を作成します。まず、会話の起点となるインテントをクリックします。この画面で新しいインテントを作るので、「Add intent」をクリックします。

そして、「Intent name」には、作りたい会話のインテントを入力し、「Description」にはその説明を入力します。「Add example」に思いつく限りのユーザーの問いかけを入力していきます。

この場合は、挨拶でユーザーが入力するであろう単語をどんどん追加していきます。

そして、「Dialog」画面に戻ります。次に「Add node」をクリックして、「ようこそ」と「その他」の間に空のノードが追加されます。

ノード名に「挨拶」と入力し、インテントに「#挨拶」と入力します。この時のボットの反応をThen respond with:の下に入力します。ここでは、「こんにちは。アルボットです。」と入力しました。

先ほどと同じように、Try it outで正常に動くか試してみてください。

「こんにちは」「こんばんわ」は認識しましたが、「こんちは」と入力すると、認識できないようです。インテント画面で、挨拶インテントに、「こんちは」を追加しておくと反応するようになります。

次に、会社やサービス、事業説明のダイアログを追加したいと思います。説明についての会話では、色々な文字列で尋ねられることが想定されるため、あらかじめ全てを入力しておくことが難しくなります。

そこで有用になるのが、エンティティです。例えば、会社名であるアアル株式会社について聞かれた場合を想定します。

まずは「アアル株式会社」と同義語(Synonym)の単語をあらかじめ登録しておき、例え文章に「アアル株式会社」がなくとも、登録した文字列ならば「アアル株式会社」と同義と判断してくれるようになります。

まず、Entitiesをクリックし、Add entityをクリックしてください。

Entity nameには、ここでは「アアル」と入力します。そして、Value nameも同様に「アアル」と入力します。Synonymsに思いつく限りの「アアル」の同義語を入力していきます。よく間違えられる「アルル」も加えておきます。

Fuzzy Matchingをオンにしておくことで、多少スペルミスなどがあっても判断がうまくいくことがあります。

続いて、作ったエンティティをダイアログに設定します。Dialogに戻って、ノード追加のAdd nodeをクリックします。

追加されたノードのタイトルを「会社説明」とし、If assistant recognizes:の空欄にエンティティの「@アアル」を選択するか、直接入力します。

インテントは「#」
エンティティは「@」

で指定されます。

次に、Then respond with:のTextに@アアルで反応した場合に表示される文章を記入します。

Try itをクリックし、いくつか登録したエンティティを試し、正常に動くか確かめます。「アアルって何?」「アアル株式会社はなに?」でも「アルルって何?」でも正常に動くようです。

ここまでで、Watson Assistantのチャットボットの会話の基本的な作成方法がわかると思います。

会社説明の次に、サービスの利用方法や商品の購入画面の説明や掲載されているリンクを指示する機能を追加するなど、基本的なWebサイトの内容を網羅したチャットボットを作りながら操作方法に慣れていくと良いと思います。

それでは、ここまでの成果物をTry itではなく、Assistantsというチャット画面のようなところから見てみましょう。

上記の画像の左上の「←」マークをクリックすると、下記の画像のように今作成したSkillsを確認できます。ここでメニューからAssistantsをクリックしてください。


「Create new」をクリックします。

NameとDescriptionを設定して、Createをクリックします。ここでは、

・Name:アルボット
・Description:アアル株式会社のチャットボットです

と入力しました。

Assistantができたら、「Add Dialog Skill」をクリックします。

Add Dialog Skillの画面に移ると、メニューにAdd existing skillがあるのでクリックしてください。

先ほど作成した「挨拶」Skillが表示されるので選択します。

Skillに「挨拶」Skillが追加されました。それでは、「 Preview Link」をクリックしてください。

よく見るチャット画面のように、チャットボットのテストをすることができます。

基本ができたら、次は、APIを使ってUI(ユーザーインターフェース)を作ります。

LINEで送る
[`evernote` not found]
LinkedIn にシェア

Watson Assistant(チャットボット)の設定2

Watson Assistant(チャットボット)の設定1の続きです。
ここでは、チャット(会話)の設定をします。

まず、チャットボットの設定独特の機能を覚えます。WatsonだけでなくGoogleのDialogflowなどでも必要な用語なので是非ここで覚えましょう。明確な定義は他サイトで参照できますが、わかりにくいので個人的に覚えやすい表現で記載します。

・インテント(Intents):ユーザーがチャットボットを使用する目的で、Watson Assistantがユーザーのインテントが何かを判断し、反応するためのトリガーのような役割をもつ
・エンティティ(Entities):会話の中の単語や文と近い意味の単語や文をここで登録しておく
 例、Mac,マック,Macbook,MacBook Pro
・ダイアログ(Dialog):質問に対する返答をここで設定する

次に前回設定した画面から左上の「管理」をクリックする。
*前回の画面を閉じてしまった場合は、ダッシュボードからサービス名のところに設定したアプリケーションが確認できます。

管理をクリックすると下記の画面になり、「ツールを起動」をクリックして先に進めます。下にあるAPIの資格情報は、チャットボットの会話を設定した後に他のアプリケーションにWatson Assistantを連携する場合に必要になります。いつでも戻ってこれるので今メモを取る必要はありません。

先に進めると、次の画面になり、少しだけ下にスクロールすると「Create a Skill」というボタンが見えるのでクリックする。

次の画面で「Create new」をクリックする。

Add Dialog Skillの画面が表示されたら空欄に必要事項を入力します。終わったら「 Create」をクリックします。
例、
・Name:挨拶
・Description:挨拶と簡単な説明
・Language:Japnese

Skillsの画面が表示されると、先ほどのインテント、エンティティ、ダイアログを確認することができます。Content Catalogというものもありますが、これはあらかじめ想定された会話をWatsonが用意しくれているものを設定することができます。

次からは、会話の設定に移ります。

Watson Assistant(チャットボット)の設定3

LINEで送る
[`evernote` not found]
LinkedIn にシェア

Watson Assistant(チャットボット)の設定1

Watsonでチャットボットを設定します。

まず、IBM Cloudのアカウントを作成します。https://www.ibm.com/watson/jp-ja/
こちらからアクセスし、アカウントを作成してください。

アカウント作成後に、https://console.bluemix.net/dashboard/apps/
にアクセスすると、下記のダッシュボード画面になります。
ダッシュボード画面へは、console.bluemixから左上の≡のアイコンをクリックして選択するといつでも戻ることができます。

ここでは、メニューからカタログを選択してください。

カタログから左のカラムのカテゴリーのAIを選択し、中央のWatson Assistantを選択します。

Watson Assistantの設定画面で、サービス名、ロケーション、価格プランを決めます。サービス名は、自分で管理できる名前、ロケーションは使用する地域(サーバーがその地域にある)、プランは無料プランがライトプランになります。それぞれ選択して、最後に作成をクリックしてください。

作成をクリック後、下記の画面に移れば準備は完了です。

次は、チャット(会話)の設定です。

Watson Assistant(チャットボット)の設定2

LINEで送る
[`evernote` not found]
LinkedIn にシェア