Skip to content

Instantly share code, notes, and snippets.

@jkneko
Created December 17, 2023 03:38
Show Gist options
  • Save jkneko/dee7c5c3f9cd6654b20d84ef37c07377 to your computer and use it in GitHub Desktop.
Save jkneko/dee7c5c3f9cd6654b20d84ef37c07377 to your computer and use it in GitHub Desktop.
# Note: This program does not support chat mode.
import os
from slack_bolt import App
from slack_bolt.adapter.socket_mode import SocketModeHandler
import logging
logging.basicConfig(level=logging.DEBUG)
import google.generativeai as genai
# App Level Token (for Socket Mode)
app_level_token = os.environ.get("SLACK_APP_TOKEN") # xapp-*
# Bot Token
bot_token = os.environ.get("SLACK_BOT_TOKEN") # xoxb-*
# Initialize the app with just the bot token
app = App(token=bot_token)
# Gemini API Key
google_api_key = os.environ.get("GOOGLE_API_KEY")
# Initialize the Gemini API
genai.configure(api_key=google_api_key)
model = genai.GenerativeModel('gemini-pro')
# Generate a response from Gemini
def gemini_response(text):
response = model.generate_content(text)
return response.text
# Handler for app_mention events
@app.event("app_mention")
def handle_app_mention_events(body, say):
event = body.get('event', {})
thread_ts = event.get('ts')
text = event.get('text', '')
gemini_text = gemini_response(text)
say(text=gemini_text, thread_ts=thread_ts)
# Start the app
if __name__ == "__main__":
handler = SocketModeHandler(app, app_level_token)
handler.start()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment