Created
December 17, 2023 03:38
-
-
Save jkneko/dee7c5c3f9cd6654b20d84ef37c07377 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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