🐦
Slackでオウム返しをするBotを作る
はじめに
ほんとにやりたいことはRAGでAIエージェントを作ることですが、一旦基礎として一番簡単なオウム返しBotを作ってみます。
前提
- サーバー側の使用言語は Python、ローカルで起動
- Slack が使えること
実装
Slack アプリの作成
- (Slack API)[https://api.slack.com/apps]にアクセス
-
Create New App
を選択
-
From a manifest
を選択
- アプリを入れたい Slack のワークスペースを選択
- Manifest ファイルを作成する(name だけいじりまいた)
-
Create
を押して完了
Slack アプリの設定
- Socket Mode の有効化
- 左側メニューバーより
Socket Mode
を選択 -
Enable Socker Mode
を on にする -
Token Name
に任意の名前を入れる -
scope
はもともとあるものにする(connections:write
) - Generate を押して、Token を控えておく
- 左側メニューバーより
-
Bot Token Scopes
の設定- メニューバーから
OAuth & Permissions
-
Bot Token Scopes
でAdd an OAuth Scope
をクリック -
chat:write
を選択
- メニューバーから
- トリガーの設定
- 左側メニューバーより
Event Subscriptions
-
Enable Events
を on にする -
Subscribe to bot events
からAdd Bot User Event
を選択 - イベントリストから
app_mention
を選択(メンションされた時に動くようにする) -
Save Change
をクリック
- 左側メニューバーより
- アプリのインストール
- メニューバーから
Install App
- Install to Workspace を選択
- 許可を選択
- Token を控えておく
- メニューバーから
補足: アプリの装飾
アイコンなどをつけるとそれっぽくなりますね。
サーバーの設定
ローカルの適当な場所で実行してください。
- 仮想環境の作成
- 例: venvで作る場合
python -m venv .venv
- 仮想環境に入る
- (Macの場合)
source/bin/activate
- (Macの場合)
- ライブラリのインストール
pip install slack-bolt
- 環境変数の設定
export SLACK_APP_TOKEN="xapp-********"
export SLACK_BOT_TOKEN="xoxb-********"
- app.py の作成
from slack_bolt import App
from slack_bolt.adapter.socket_mode import SocketModeHandler
import os
app = App(token=os.environ.get("SLACK_BOT_TOKEN"))
@app.event("app_mention")
def handle_app_mention_events(event, say):
say(event["text"])
if __name__ == "__main__":
SocketModeHandler(app, os.environ.get("SLACK_APP_TOKEN")).start()
- 立ち上げ
python app.py
動作確認
動いた!
さいごに
次はAWSを使って作ってみます!
Discussion