テックブログ

エルカミーの技術ブログです

👁️‍🗨️ Slackで社内文書検索 1/4回(Slack APIアプリの作成と設定編)

関連記事

  1. Slackで社内文書検索 1/4回(Slack APIアプリの作成と設定編)
  2. Slackで社内文書検索 2/4回(Vertex AI Searchのアプリの作成とデータストアの自動更新編)
  3. Slackで社内文書検索 3/4回(Slackからのコマンドとメッセージの受信編)
  4. Slackで社内文書検索 4/4回(任意のLLMによる回答生成編)
はじめに

この記事では、社内の文書に関して質問をすると質問に対する回答と参考にした資料を返答してくれるSlack Chatbotを開発していきます。参考資料の検索にはVertex AI Searchを用います。開発の流れは以下の通りです。

💡
開発の流れ
  1. Slack APIアプリの作成と設定
  2. Vertex AI Searchのアプリの作成とデータストアの自動更新
  3. Slackからのコマンドとメッセージの受信
  4. 任意のLLMによる回答生成

今回はSlack APIアプリの作成と設定について説明していきます。

Slack Chatbotの概要と処理

今回開発するのは、ユーザからコマンドとメッセージを受け取り、それに従ってLLMのモデルの決定と回答生成を行って、ユーザに返信するSlack Chatbotです。

回答生成では、Vertex AI Searchのアプリを用いて、メッセージ(質問)に対する関連資料を検索し、任意のLLMモデルを使ってその資料の内容を参考に質問に関連する回答を生成します。

処理は以下の通りです。

image block

ここで、コマンドとメッセージを受け取ったファンクションで回答生成を行ってしまえばいいように感じますが、Slack APIには3秒レスポンスルールという規則が存在するので、このような処理の流れになります。

If you need to respond outside of the 3 second window provided by the request responses above, you still have plenty of options for keeping the workflow alive.
Slack APIアプリの作成と設定

1. アプリの作成

まず以下のサイトにアクセスします。

そして、Create New Appをクリックします。

image block

次にFrom scratchをクリックします。

image block

最後に、App Nameを入力し、workspaceを選択します。そして、Creat Appをクリックします。

image block

以上でアプリを作成することができます。

2. Chatbotに必要な権限の設定

サイドバーにあるOAuth & permissionsに移動し、下にスクロールすると、Scopesという項目があります。この項目内にBot Token Scopesという項目があるので、ここでChatbotに必要な権限を追加します。

以下のように権限を追加しました。

image block

3. Slash Commandsの設定

サイドバーにあるSlash Commandsに移動し、Create New Commandをクリックします。必須項目を埋めて、Saveをクリックしコマンドを作成します。

image block

📌
必須項目
  1. Command
    • コマンド名を決めて、入力します。
  2. Request URL
    • API Gatewayのエンドポイントを設定します。今回はCloud FunctionsのURLを入力します。Cloud FunctionsのURLの取得方法はこちらで示します。
  3. Short Description
    • コマンドの簡単な説明を書きます。
4. アプリのインストール

Chatbotの設定が完了したら、ChatbotをWorkspaceにインストールします。OAuth & permissionsに移動し、下にスクロールして、Install to Workspaceをクリックします。チャンネルを検索…で任意のチャンネルを選択します。許可するを押してインストールします。

image block

以上でアプリの設定は終了です。

備考

今回私が作成したコマンドについて、この後の記事でも登場する可能性があるので説明しておきます。

コマンド 説明 備考
/palm2 回答生成に使うLLMモデルを「PaLM2」にする。 コマンドに続けて質問文を送る。
/gpt-3 回答生成に使うLLMモデルを「GPT-3.5」にする。 コマンドに続けて質問文を送る。
/gpt-4 回答生成に使うLLMモデルを「GPT-4」にする。 コマンドに続けて質問文を送る。

入力の例は以下のようになります。

image block

こちらの入力を受け取った後の処理は今後の記事で説明します。

最後に

今回はSlack APIアプリの作成と設定について説明しました。以前掲載した「社内文書に関するSlack ChatBot 1/4回 (Slack API 編)」の記事で作成したSlack APIのアプリと比べ、Slackのコマンドを使ったアプリの作成は非常に簡単でした。次の記事では、Vertex AI Searchのアプリの作成とデータストアの自動更新について説明します。

参考