himanago

Azure・C#などのMS系技術やLINE関連技術など、好きな技術について書くブログ

Azure Cognitive Service for Language + Azure Bot Service で超簡単にチャットボット作成①~ナレッジベースの作成&Webチャットの公開

はじめに

QnA Maker や LUIS などが Language Studio に統合されるということで、質問対応のチャットボットを Azure でささっと作る場合は今後 Language Studio の Custom question answering を使っていくことになりそうです。

そこで触ってみたのですが、Azure Bot Service を使うとコードを一切書くことなく(ノーコード・ローコード的にロジックやステップ・フローを組んだりすることもなく)いろんなプラットフォームにチャットボットとして公開することができ、手順含めとても簡単だったので、まとめておこうと思います。

Language Studio でのナレッジベース作成

Language Studio へのサインイン

まずは Language Studio に有効な Azure サブスクリプションで使えるアカウントでサインインします。

https://language.cognitive.azure.com/

f:id:himanago:20220128000536p:plain

Language リソースの作成

はじめに Language のリソースを選べと言われるので、(ない場合は)はじめにそれを作ります。

f:id:himanago:20220128003856p:plain

最初にサインインしたときにカルーセルで使い方が表示されますが、それの最後のところからこのダイアログを表示させることができたかと思います(閉じてしまった場合は、再度サインインするとダイアログが出てきます)。

選択できるリソースがない場合は「Create a new language resource」から新規に作っていきます。クリックすると作成ダイアログが出てくるので、以下の内容を入力します。

  • リソースグループ(既存のもの。新しく作りたい場合はあらかじめ Azure ポータル等で作っておく)を選択
  • リソース名を入力
  • リージョンを選択
  • 価格を選択
  • Managed Identity を ON

「Done」をクリックすると、Language のリソースが指定したリソースグループに作成されます。

f:id:himanago:20220129001059p:plain

Language リソースが選択できるようになるので、選択して「Done」をクリックすると、Language Studio の画面の上部で「Create new」が使えるようになります。

Azure Cognitive Search のリソースの作成

いま作りたいのはナレッジベースなので、Language Studio の画面の上部で「Create new」から「Custom question answering」を選びます。

f:id:himanago:20220129002640p:plain

すると画面遷移して、今度は Azure Cognitive Search のリソースを作れと言われます。必要なリソースを次々に指示してくれるので、迷わなくていいですね。

…もちろんいっぺんにつくれればもっと早い&わかりやすいですが、Language Studio はいろんな言語系の機能をまとめて管理できるものであって、機能ごとに必要リソースが異なるのでこのようになっているのだと思います。

「Connect to Azure search」をクリックしましょう。

f:id:himanago:20220129003024p:plain

別タブで Azure ポータルの Language リソースの「機能」メニューが開くので、チェックボックスを 2 つ ON にしつつ、「新規作成」をクリックします。

f:id:himanago:20220129004024p:plain

内容を入力して「確認および作成」をクリックします。検証 OK なら、続いて「作成」をクリックして作成できます。

f:id:himanago:20220129004326p:plain

さきほどの画面に戻ってくるので、作成した Cognitive Search を選択し、「適用」をクリックします。選択肢が反映されていないようならリロードすれば大丈夫です。

f:id:himanago:20220129005030p:plain

ナレッジベースの作成

Language Studio のタブに戻ってリロードすると、以下のような画面が表示されます。

表示されるステップに従って入力していきましょう。

f:id:himanago:20220129005452p:plain

名前、説明、回答が見つからなかったときの返答内容を記入します。名前に日本語は使えないので注意です。

f:id:himanago:20220129005722p:plain

内容を確認して問題なければ、「Create project」をクリックします。

f:id:himanago:20220129005942p:plain

ここからいよいよナレッジベースの作成です。

最初は「Manage sources」からナレッジベースのもととなるデータを追加していきます。

ナレッジベースは URL やファイルから作ることができますが、今回は 「Azure サポート プランに関する FAQ(https://azure.microsoft.com/ja-jp/support/faq/)」のページの URL を指定してみます。

f:id:himanago:20220123002514p:plain

指定した URL からナレッジベースになりうる情報を読み取って、質問と回答のペアを作ってくれるというわけです。FAQ ページなんかはそのまま使えるので、便利ですね。

「Add source」から「URLs」をクリックすると URL の追加画面が出てきます。

f:id:himanago:20220129010736p:plain

「Add url」を押して、ページの名前と URL を入力し「Add all」をクリックします。

f:id:himanago:20220129011120p:plain

追加が完了するとこのようになります。

f:id:himanago:20220129011346p:plain

中身を見てみるとこんな感じで、ページの内容を読み取って、質問と回答のペアを作ってくれています。

f:id:himanago:20220129012313p:plain

また、「Add source」からさらにナレッジベースの情報を追加することもできますが、今回は「Chitchat(おしゃべり)」を追加してみようと思います。

これはナレッジベースをチャットボット化した際、雑談のような会話をすることができるものです。

おしゃべりといっても、文脈を読んで気の利いたことを言ってくれるようなものではなく、こちらからの問いかけに1回反応してくれるだけのもので、ナレッジベース的には雑談的な質問とそれに対する回答が追加されるだけです。

ナレッジベースを作ったあとに中身を見てみると、このようになっています。

f:id:himanago:20220129012104p:plain

質問のバリエーションをかなり頑張っている印象ですが、答えのほうはすごくシンプルにひとまとめに答えている感じです。

回答の雰囲気はいくつか選べますが、ナレッジベース全体の回答の文章と雰囲気を合わせればよいです。今回は「Friendly」なおしゃべりを追加してみます。

f:id:himanago:20220129011558p:plain

なお、おしゃべりを使う場合は Language の価格レベルが Free だとサイズオーバーになってしまうので、Standard にする必要があります。

URL から生成された質問と回答、おしゃべりの内容を確認して、必要に応じて修正していきます。

「Test」では実際に質問を投げてみて、どんな回答が返ってくるか確認することもできます。

f:id:himanago:20220129012819p:plain

ここで想定通りの回答が返ってこなければ、別の回答を選んだり(Test の質問の吹き出しをクリックすると選択できます。新規の回答を追加することも可能)、質問のフレーズを追記して軌道修正したりしてあげます。

修正したら、「Save changes」で更新します。

f:id:himanago:20220129012915p:plain

実際に使い始めてからも、このあたりをどんどんチューニングして育ててあげることになります。

ある程度確認してうまく回答してくれるようになったら、メニューの「Deploy knowledge base」からデプロイします。

f:id:himanago:20220129013135p:plain

Azure Bot Service リソースの作成

デプロイできたらこの画面になるのですが、「Create a bot」ボタンからすぐにチャットボット(Azure Bot Service)を作ることができます。

f:id:himanago:20220129013422p:plain

別タブで Azure ポータルの画面が開くので、必要事項を入力していきます。

f:id:himanago:20220129013941p:plain

言語リソースキーは変更しないようにしてください。入力できたら「確認および作成」を押します。

ここで注意しなければいけないのが、App Service プランです。デフォルトで S1 の価格レベルなので、無料で動かしたい場合は作成後に直す必要があります。

なお、この操作では Azure AD のアプリの登録が裏で行われるはずで、もしサインインしているユーザーが AAD に関する権限を持っていないとエラーで止まります。その場合は AAD の設定で「アプリケーション管理者」ロールを割り当てるなどすれば OK です。

f:id:himanago:20220123012710p:plain

ボットプロファイルの設定

できあがった Bot Service のリソースを開いて、ボットプロファイルの設定からアイコン画像と名前を設定します。

f:id:himanago:20220123095444p:plain

Web チャットとして公開

つづいてチャンネル設定です。標準でさまざまなチャンネルが用意されていますが、まず今回は Web チャットで公開してみます。

f:id:himanago:20220123100109p:plain

Web チャットはデフォルトで有効化されています。「Web Chat」をクリックすると、シークレットキーと埋め込みコードが得られます。

f:id:himanago:20220129104544p:plain

埋め込みコード内にシークレットキーを入れて、任意の Web ページに埋め込んでみましょう。

すると、このようにちゃんと動いてくれます!

f:id:himanago:20220126235240p:plain

つづく

まったくコードも会話の設定もせず、チャットボットが作れてしまいました。これは便利です。

さて、次はせっかくなのでいろんなチャンネルのやり方も試してみようと思います。

個人的に Teams / LINE / Alexa あたりが気になるので、順番にやっていこうと思います!

つづき↓

himanago.hatenablog.com