できるだけローコスト且つノーコードで、SlackにAI ChatBotを連携する
AITPの今井です。
今回はできるだけ簡単(ほぼノーコード)+ローコストでAIChatbotをSlackに導入・連携してみたいと言うポストです。
n番煎じのタイトルにはなってしまいますが、あえてSlackAPIやAWS Lambda、API Gatewayなどを使用せず、ブラウザコンソールだけでセットアップが住むパターンとしてご紹介したいと思います。
必要なもの
- AWSアカウント (OpenAIアカウント)
- AWS IAMのちょっとした知識
- 良く分からなくても、とりあえずこれでOK!な設定パターンを記載します。
- Slack管理者権限
- Amazon Bedrockのコスト理解 https://aws.amazon.com/jp/bedrock/pricing/
今回は、Amazon Bedrock を利用するパターンをメインに記載しますが、後述する連携アプリはChatGPTなど様々な言語モデルに対応しています。
AWS側のセットアップ
Amazon Bedrockの利用を開始する
AWSマネージメントコンソールより、Amazon Bedrockにアクセスします。

Amazon Bedrockを利用するには、各言語モデルへのアクセスリクエストが必要となります。
以下画面の右上にある モデルアクセスを管理 より申請します。
ここで一点、注意が必要です。
(2024/02/12時点)今回のやり方ですと、東京リージョンでは今回利用予定の Anthropic Claude v2 とのSlack連携が上手くできず、v1 のみとなっています。
より高性能なv2を利用したい場合には、us-east1 バージニアリージョン 等での申請を行いましょう。


申請後、問題がなければ数分で利用できるようになっているはずですので、Anthropic にチェックを入れて利用を開始しましょう。

ログ設定(必要に応じて)
Amazon BedrockのAPIログを管理したい場合には、Bedrockコンソール左メニューにある 設定 から操作が可能です。

Slack連携用のIAM Userを作成とアクセスキーの設定
ユーザー作成
IAM Userを作成します。
名前は適宜設定しましょう。マネージメントコンソールへのアクセスは不要なのでチェックは外しておきます。

次にポリシー設定です。
今回は別途新しいポリシーを作成するので、直接アタッチするを選択します。

ポリシーを作成 からポリシー作成画面に遷移します。
動作確認が出来ているアクセス許可設定は以下になります(あくまで自己責任でのご利用をお願いします)
- サービス でBedrockを選択
- アクション はリストと読み取りを全てチェック
- リソース は全て このアカウント内のいずれか をチェック。
- foundation-model については 任意 にチェック。
ポリシーが作成できたら、そのポリシーを選択しステップを進めユーザーを作成します。
アクセスキーの作成
作成したユーザー詳細画面を開き、セキュリティ認証情報 タブを開きます。
ページ中程にアクセスキーのブロックがありますので、アクセスキーを作成 からキーの作成を行います。
作成時に表示される、キーシークレットを控えておく or csvでダウンロードしておくのを忘れないようにしてください。

キーの作成中の注意表示にある通り、アクセスキーの取り扱いは極めて慎重に行いましょう。
本来は、AssumeRole などのよりセキュアな認証を使うべきなのですが、今回は解りやすく最短を目指しますのでこちらの形で進めます。
Slackに連携用アプリの追加
今回は、株式会社リバネスナレッジ様 の Party on Slack というアプリのお世話になりました。ありがとうございます。
上記のParty on Slackのリンクよりアクセスし、インストールを行います。
詳細丁寧なマニュアルも用意して下さっているので、参考にしてみて下さい。
実際にアプリを操作頂くと解りますが、設定画面にはその他AIモデルとの連携項目に加えてBedrock向けの設定項目が有りますので、そこから先程作成したアクセスキーの情報を入力しましょう。


上記は既に設定済となっていますが、注意点として、 Region は Anthropicの利用申請をしたリージョンと合わせるようにして下さい。
以上で基本設定は完了です!マニュアルにある通り、Slack上でParty on Slackにメンションしてみましょう!
レスポンス時に使う Claude のバージョン指定やその他設定は、上記のマニュアルをご確認下さい。
まとめ
Chatbotにキャラ性を持たせたりする場合、コーディングなどが多少は必要となるケースもありますが、とりあえず最速でSlackにAI Chatbotを連携したい!でもコードはあまり良く解らない!という状況を想定したパターンで書いてみました。
ご参考頂けたら幸いです、閲覧ありがとうございます。