Slack上で会話させる

このチャプターのゴール

  • Slackでエージェントと会話ができる

Slackとの連携方法

LINEと同様、miiboで作成したエージェントはSlack上でも会話が可能です。この機能を利用することで、コーディングをすることなくSlack Botを短時間で作成することが可能です。

準備するもの

  • 公開されたmiiboのエージェント (限定公開でもOK)
  • Slackのワークスペース
  • Slackのワークスペースの管理者権限

上記をご準備の上、下記の手順をお試しください。

※miiboはSlackの「Slack API」の仕組みを利用してエージェントとの会話を行います。Slackの利用規約に従った上でご利用ください。

1. Slack Appを作成

下記リンクからSlack Appを作成してください。
https://api.slack.com/apps

「Create New App」をクリックし、「From a manifest」を選択します。

ワークスペースを選択し、Appを作成してください。

2. Signing Secretを取得する

「Basic information」の「App Credentials」にある「Signing Secret」の値を後ほどmiiboの公開設定ページで利用するので控えておきます。

3. Scopeを設定する

「OAuth & Permissions」を開き、必要なScopeを設定します。メンションを受けてメッセージの送信したいので、必要なScopeを設定します。

  • app_mentions:read
  • channels:history
  • chat:write
  • files:read
  • groups:history
  • im:history
  • im:read
  • im:write
  • mpim:history
  • users:read
  • users.profile:read

Scope設定後、「App Home」の画面を開きます。
この時点でApp Homeの画面が代わり、「App Display Name」が設定できるようになっています。
App Display NameとDefault usernameが設定されていないとSlackワークスペースにインストールができません。ここで指定してあげましょう。


4. WorkspaceへインストールしてAccess Tokenを取得

ここまで設定ができたら、再び「OAuth & Permissions」を開きworkspaceへアプリをインストールします。

上の画面の「Install to ワークスペース名」を押しましょう。
※ 冒頭で指定したワークスペースの名前が表示されます

インストールが完了すると、「Bot User OAuth Token」を取得できます。後ほど設定で利用するので控えます。

5. 公開設定画面で必要な情報を入力

「外部サービス連携」の「Slackの設定」の項目に、必要な情報を入力します。「Bot Token」と「Sigining Secret」に、先ほど入手した「Bot User OAuth Token」と「Signing Secret」を入力します。入力が完了したら「Slackと連携する」を押しましょう。

  • Event Subscriptions Request URL
  • Interactivity Request URL

2つのURLが表示されます。最後にこの2つのURLをSlack Appに設定して完了です。

6. Event Subscriptions Request URLを設定する

Slack Appの設定に戻り、「Event Subscriptions」の項目に移動します。

「Enable Events」をONにし、Request URLに先ほど取得したmiiboの公開設定ページにある「Event Subscriptions Request URL」を入力します。URLが認証されたら「Subscribe to bot events」で「app_mention」のイベント追加し、「Save Changes」を押してください。

DMで会話する場合

DMでAIと会話をしたい場合は、「message.im」も追加してください。

DMでAIと会話をしたい場合は、App Homeの「Show Tabs」にある
「Allow users to send Slash commands and messages from the messages tab」
にチェックを入れてください。

7. Interactivity Request URLを設定する

「Interactivity & Shortcuts」の項目に移動します。

「Interactivity」をONにし、Request URLに先ほど取得した公開設定ページの「Interactivity Request URL」を入力します。URLが認証されたら「Save Changes」を押してください。

8. 動作確認

ここまででSlackで動作するチャットボットの設定は完了です。設定したWorkspaceの任意のチャンネルにSlack Appを招待し、話しかけてみましょう。

エージェントから応答が返ってくれば設定は成功です。

AIのモデルとして、「GPT-4o」や「GPT-4-vision」などの画像入力に対応したモデルを利用している場合、Slack上で画像入力が可能です。

※ ただし、スレッド内での画像入力は行うことができません。

9. 細かな設定

Slack連携画面では、下記の設定が可能です。

スレッドでの返答

「スレッドがない場合は、スレッドを立てて応答を行う」の項目をチェックした場合、エージェントが応答をする際にスレッドを立てて応答を返すようになります。

発話履歴の扱い

エージェントはSlackで会話を行ったユーザーを次の情報を用いて識別します。

・チャンネル
・スレッド
・ユーザーごとの識別子 (ユーザーID)

「同一のチャンネルやスレッド内であれば、異なるユーザーの発話も同一の会話履歴とみなす」の項目をチェックしない場合、エージェントがユーザーを認識する際は、下記の人物として会話を行います。

(スレッド内の会話の場合)
・チャンネル_スレッド_ユーザーID

(スレッド外の会話の場合)
・チャンネル_ユーザーID

※スレッドや話しかけるユーザーによって会話の履歴がリセットされるため、過去の会話履歴に影響を受けずに会話を行うことができます。

上記のユーザーと認識し、会話履歴が引き継がれます。

「同一のチャンネルやスレッド内であれば、異なるユーザーの発話も同一の会話履歴とみなす」の項目をチェックする場合は、下記の人物として会話が行われます。

(スレッド内の会話の場合)
・チャンネル_スレッド

(スレッド外の会話の場合)
・チャンネル

チャンネル、スレッドの情報のみでユーザーの識別が行われるため、チャンネル内やスレッド内でBotに対して行われた会話は全て同一の会話履歴とみなされます。

※複数人の会話の文脈を引き継ぎたい時に有効です。複数人でBotに話しかけて回答を得る際はチェックをしてください。


Did this page help you?