シリーズ紹介
この記事は、 Slack Bot開発入門シリーズ(全3回) の第3回です。Slackのソケットモードを活用し、Google Colabを使って手軽にBotを開発する方法をステップごとに解説します。シリーズの各回の内容は以下の通りです。
- 第1回: ソケットモード対応のSlackアプリの作成と基本設定
- 第2回: Google Colabを使ったおうむ返しBotの実装方法
- 第3回: Geminiを搭載したチャットボットの作成(本記事)
第3回では、Slack BotにGoogleのAIモデル Gemini を搭載する方法を解説します。
前提条件
この記事を進める前に、以下が準備できていることを確認してください。
- 第2回のコードが完成していること
- Gemini APIキーが発行されていること
-
Googleアカウントを持っていること
(Google Colabを使用するため)
1. Google ColabでGemini APIの設定
1.1 Gemini APIキーの追加
Gemini APIキーをGoogle Colabのシークレットに追加します。
- 左サイドメニューの 「鍵アイコン(シークレット)」 を開き、 「Gemini API キー」 をクリックします
-
「AI Studioからインポート」 をクリックします
- あらかじめ発行したキーを選択し、 「インポート」 をクリックします
1.2 Geminiの動作確認
!pip install slack_bolt
のコードセルの下にコードセルを追加し、以下のコードを記載し、Geminiの動作を確認します。
import google.generativeai as genai
from google.colab import userdata
# Gemini APIの設定
genai.configure(api_key=userdata.get("GOOGLE_API_KEY"))
# Geminiモデルの初期化
model = genai.GenerativeModel("gemini-1.5-flash")
# テストメッセージで動作確認
response = model.generate_content("Geminiについて教えてください。")
print(response.text)
実行すると、Geminiからの回答が出力されます。
2. Slack BotへのGemini統合
2.1 コードの修正
Geminiの動作確認ができたら、Slack Botのコードに統合します。まず、 1.2 のコードから以下の部分を削除します。
response = model.generate_content("Geminiについて教えてください。")
print(response.text)
次に、ユーザーのメッセージをそのまま返すのではなく、Geminiが応答するようにコードを修正します。
from slack_bolt import App
from slack_bolt.adapter.socket_mode import SocketModeHandler
app = App(token=userdata.get("SLACK_BOT_TOKEN"))
@app.event("app_mention")
def echo_message(event, say):
response = model.generate_content(event["text"])
say(response.text)
if __name__ == "__main__":
SocketModeHandler(app, userdata.get("SLACK_APP_TOKEN")).start()
3. 動作確認
3.1 Botの起動
コードを実行してBotを起動します。
3.2 Slackでの動作確認
おわりに
これでGoogle Colabを利用したGemini搭載のSlack Botが完成しました。
次回以降、さらに以下の機能を実装していきたいと考えています。
- 会話履歴を保持する機能: ユーザーとのやり取りの履歴を保存し、文脈に応じた自然な会話を実現します
- RAG(取得拡張生成): 外部の情報を検索して、LLMに回答を生成させることで、生成AIの精度を高めます