1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Slack Bot開発入門【第3回】Geminiを搭載したチャットボットの作成

Posted at

シリーズ紹介

この記事は、 Slack Bot開発入門シリーズ(全3回) の第3回です。Slackのソケットモードを活用し、Google Colabを使って手軽にBotを開発する方法をステップごとに解説します。シリーズの各回の内容は以下の通りです。

第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のシークレットに追加します。

  1. 左サイドメニューの 「鍵アイコン(シークレット)」 を開き、 「Gemini API キー」 をクリックします
    スクリーンショット 2025-02-01 16.53.58.png
  2. 「AI Studioからインポート」 をクリックします
    スクリーンショット 2025-02-01 16.55.06.png
  3. あらかじめ発行したキーを選択し、 「インポート」 をクリックします
    image.png
    image.png

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)

image.png
image.png

実行すると、Geminiからの回答が出力されます。

image.png


2. Slack BotへのGemini統合

2.1 コードの修正

Geminiの動作確認ができたら、Slack Botのコードに統合します。まず、 1.2 のコードから以下の部分を削除します。

response = model.generate_content("Geminiについて教えてください。")
print(response.text)

image.png

次に、ユーザーのメッセージをそのまま返すのではなく、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()

image.png


3. 動作確認

3.1 Botの起動

コードを実行してBotを起動します。

image.png

3.2 Slackでの動作確認

  1. SlackでBotが参加しているチャンネルにメンションします
    image.png
  2. Geminiが生成した応答が返ってくることを確認します
    image.png

おわりに

これでGoogle Colabを利用したGemini搭載のSlack Botが完成しました。
次回以降、さらに以下の機能を実装していきたいと考えています。

  • 会話履歴を保持する機能: ユーザーとのやり取りの履歴を保存し、文脈に応じた自然な会話を実現します
  • RAG(取得拡張生成): 外部の情報を検索して、LLMに回答を生成させることで、生成AIの精度を高めます
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?