Help us understand the problem. What is going on with this article?

QnA Maker + Slack

More than 1 year has passed since last update.

以下はAzureでQnA Makerサービスを作成し、Slackと連携させるまでの流れを説明。

Azure

はじめにWebアプリボットを作成します。

リソースの作成 > AI Machine Learning > Web App Bot

azure_01.png

  • ボット名: SampleBot-2018 (任意)
  • リソースグループ: SampleBot (任意)
  • 場所: Japan East
  • 価格レベル: F0 (無料枠で構築)
  • ボットテンプレート: Question and Answer
  • App Serviceプラン場所
    • Appサービスプラン名: SampleBot-2018 (任意)
    • 場所: 東日本 (任意)

※値を指定していない項目はdefaultを使用しています。

azure_02.png

QnA Maker

次にQnA Makerの設定を行います。
https://www.qnamaker.ai/ のページから、Create a knowledge baseタグを選択。
STEP1 の Create a QnA service をクリックすると、Azureのダッシュボードに遷移しますので、そちらでサービスの設定をします。

  • Name: QnA (任意)
  • Management Pricing tier: F0 (無料枠で構築)
  • 場所: 米国西部 (現時点では東日本などは選択不可)
  • Resource Group: SampleBot (Webアプリボット作成時のリソースグループ)
  • Search pricing tier: F
  • Search location: 米国西部 (上記の場所に合わせた。任意)
  • App name: QnA-2018

※値を指定していない項目はdefaultを使用しています。
※App service はデフォルトで S1 が選択されるように記載があります。こちらは無料枠ではないレベルなので、そのままにすると課金されます。(無料枠への変更方法は後述)

QnA Makerサービス作成後、QnA Makerのページへ戻り、STEP2以降は設定します。
- Microsoft Azure Directory ID: 規定のディレクトリ
- Azure subscription name: 従量課金 (各自の設定による)
- Azure QnA service: QnA (作成したQnA Service)

※QnA Makerサービス後、QnA Makerのページの refresh this pageをクリックすることで、選択肢が再度読み込まれ、Azure QnA serviceなどが、選択可能になります。

STEP3では、ナレッジベースの名前を設定
- Name: SampleBot-2018KB (任意)

azure_03.png

リソースの作成が完了したら、ナレッジの登録をします。
今回は「竜頭蛇尾」と「朝三暮四」について登録します。
2つの熟語を登録したら、
Save and train > Test
を実施し、動作確認をしてください。

azure_04.png

動作確認が済んだら、ナレッジを公開します。

azure_05.png

公開したら Edit Service で、Azureのリソースに Sample HTTP requestに表示されている一部の値を環境変数として登録します。

Postman
POST /knowledgebases/<QnAKnowledgebaseId>/generateAnswer
Host: <QnAEndpointHostName>
Authorization: EndpointKey <QnAAuthKey>
Content-Type: application/json
{"question":"<Your question>"}

アプリケーション設定
- QnAAuthKey
- QnAEndpointHostName
- QnAKnowledgebaseId

登録したら「Webチャットでテスト」でサービスとQnA Makerのナレッジが連携されていることを確認するテストします。

azure_07.png

azure_08.png

最後に、QnA Serviceを作成時に、defaultで無料枠ではなかった箇所について、価格レベルを変更します。

azure_09.png

Slack API

さて本題のAzureで作成したチャットボットとSlackを連携させます。
https://api.slack.com/apps から Create New App します。
- App Nmae: AuzreBot (任意)
- Development Slack Workspace: (各自のSlackワークスペース)

azure_10.png

App Credentialsが表示されます。
- Client ID
- Client Secret
- Verification Token
は、あとで使いますが、その前にSlack APIの設定をしていきます。

azure_11.png

OAuth & Permissions > Redirect URLs
- Redirect URLs: https://slack.botframework.com

azure_12.png

BOT Users > Add a Bot User
- Display name: azurebot (任意)
- Default username: azurebot (任意)
- Always Show My Bot as Online: On

azure_13.png

Event Subscriptions
― Enable Events > On
- Request URL: https://slack.botframework.com/api/Events/${QnA Service Name}
- Subscribe to Bot Events
- Event Name: message.channels

azure_14.png

Azure

最後に、WebアプリボットとSlack APIを接続させます

チャネル > Slack

App Credentialsで表示されていた、Client IdをクライアントID。Client Secretをクライアントシークレット。Verification Tokenを確認トークへ入力します。

azure_15.png

azure_16.png

Slack

それでは AzureBot をチャネルに招待して、「朝三暮四」について聞いてみましょう。
azure_17.png

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした