Slack のコマンド自動化

1. はじめに

この Codelab では、Slack Slash コマンドとの統合を提供することで、Slack ワークスペースで要約サービスを作成する手順を確認できます。

スラッシュ コマンド /summarize を呼び出して、要約するテキストを入力します。次に、Slack アプリケーションが、関連する Cloud Functions の関数を呼び出してテキストを受け取り、要約のために PaLM API を呼び出します。要約されたテキストは Slack スラッシュ コマンドに返され、Slack アプリケーションにレスポンスとして表示されます。

をタップします。使用される Google Cloud サービスは次のとおりです。

  1. Cloud Functions
  2. Vertex AI PaLM API
  3. Cloud Logging

作成するアプリの概要

作成する

  • スラッシュ コマンドを使用して Slack から取得したテキストのテキストを要約するために PaLM API を呼び出す Cloud Functions の関数
  • 要約のために上記の Cloud Functions の関数を呼び出す Slack アプリケーション。

2. 必要なもの

  • ブラウザ(ChromeFirefox など)
  • 課金を有効にした Google Cloud プロジェクト

3. 始める前に

  1. Google Cloud コンソールの [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。
  2. Google Cloud プロジェクトに対して課金が有効になっていることを確認します。詳しくは、プロジェクトで課金が有効になっているかどうかを確認する方法をご覧ください。
  3. Cloud Functions API と Vertex AI API が有効になっていることを確認します。
  4. こちらの手順に沿って、Google Cloud コンソールから Cloud Shell をアクティブにします。
  5. プロジェクトが設定されていない場合は、次のコマンドを使用して設定します。
gcloud config set project <YOUR_PROJECT_ID>
  1. Cloud Shell で、次の環境変数を設定します。
export GCP_PROJECT=<YOUR_PROJECT_ID>
export GCP_REGION=us-central1

4. Cloud Functions 関数のデプロイ

Cloud Functions の関数を作成してデプロイする手順は次のとおりです。

  1. Cloud Shell ターミナルで次のコマンドを実行して、リポジトリ https://github.com/rominirani/genai-apptemplates-googlecloud からコードのクローンを作成します。
git clone https://github.com/rominirani/genai-apptemplates-googlecloud
  1. このコマンドを実行すると、リポジトリの内容のクローンが genai-templates-googlecloud フォルダに作成されます。
  2. Cloud Shell ターミナルから次のコマンドを実行して、目的のプロジェクトのフォルダに移動します。
cd genai-apptemplates-googlecloud/summarization-slack
  1. dir コマンドを実行するか、Cloud Shell エディタに移動すると、summarization-slack フォルダに main.pyrequirements.txt の両方のファイルが表示されます。
  2. Cloud Functions の関数をデプロイするには、gcloud functions deploy コマンドを実行します。
gcloud functions deploy summarizeText \
--gen2 \
--runtime=python311 \
--source=. \
--region=$GCP_REGION \
--project=$GCP_PROJECT \
--entry-point=summarizeText \
--trigger-http \
--set-env-vars=GCP_PROJECT=$GCP_PROJECT,GCP_REGION=$GCP_REGION \
--max-instances=1

Cloud Functions 関数をデプロイすると、デプロイされた Cloud Functions の URL が Cloud Shell ターミナルに表示されます。URL の形式は次のとおりです。

https://$GCP_REGION-$GCP_PROJECT.cloudfunctions.net/summarizeText

表示された URL をメモします。Slack スラッシュ コマンドを作成する必要があります。

5. Slack スラッシュ コマンドを作成する

Slack でカスタムのスラッシュ コマンドを作成しましょう。このカスタム コマンド /summarize は、前のセクションでデプロイした Cloud Functions の関数を呼び出します。

スラッシュ コマンドを作成する手順は次のとおりです。

  1. api.slack.com/apps にアクセスします。
  2. [Create New App] をクリックします。
  3. [Create an app] ウィンドウで、[From scratch] オプションを選択します。
  4. アプリの名前を入力します。例: Summarization Slack Application. アプリ開発用の Slack ワークスペースを選択します。
  5. [Create App] をクリックします。[Settings] ページが開きます。
  6. [設定] ページで、[基本情報 >スラッシュ コマンドをご覧ください。[新しいコマンドを作成] をクリックします。
  7. [Create New Command] フォームで、次の値を指定します。
  • コマンド: スラッシュ コマンドを入力します。例: /summarize.
  • リクエスト URL: デプロイした Cloud Functions の関数の完全な URL を指定します。例: https://$GCP_REGION-$GCP_PROJECT.cloudfunctions.net/summarizeText
  • [Short Description] と [Usage Hints] を入力し、保存します。
  1. [設定 >基本情報をご覧ください。[アプリをインストール] をクリックし、[Workspace にインストールする] をクリックします。アプリがワークスペースにインストールされます。

これで、カスタムの Slack アプリの作成が完了しました。カスタムの Slack アプリは、Slack ワークスペースにインストールされ、メッセージに入力したテキストを要約するのに役立つカスタムのスラッシュ コマンド(/summarize)が含まれています。

6. スラッシュ コマンドをテストする

  1. Summarization Slack アプリケーションをインストールした Slack ワークスペースに移動します。

https://slack.com/intl/en-in/workspace-signin にアクセスし、「Find your workspaces」と入力します。ワークスペース名を見つけます。これを選択します。

  1. チャットで、スラッシュ コマンド「/summarize」で始まるテキストを入力します。呼び出しの例を次に示します。

bcb511e5909709db.png

  1. [Send] ボタンをクリックして Cloud Functions の関数を呼び出し、次のように要約のレスポンスを表示します。

a62b223f30bb163e.png

7. クリーンアップ

この投稿で使用したリソースについて、Google Cloud アカウントに課金されないようにするには、次の操作を行います。

  1. Google Cloud コンソールで、[リソースの管理] ページに移動します。
  2. プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
  3. ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。
  4. プロジェクトを残しておく場合は、上記の手順をスキップして、Cloud Functions に移動して Cloud Functions の関数を削除します。関数のリストで、削除する関数をオンにして [削除] をクリックします。

8. 完了

これで、Slack アプリケーションでテキスト要約サービスを作成できました。