import os from dotenv import load_dotenv from langchain_google_genai import ChatGoogleGenerativeAI from pydantic import SecretStr from browser_use import BrowserConfig from examples.integrations.slack.slack_api import SlackBot, app load_dotenv() # load credentials from environment variables bot_token = os.getenv('SLACK_BOT_TOKEN') if not bot_token: raise ValueError('Slack bot token not found in .env file.') signing_secret = os.getenv('SLACK_SIGNING_SECRET') if not signing_secret: raise ValueError('Slack signing secret not found in .env file.') api_key = os.getenv('GEMINI_API_KEY') if not api_key: raise ValueError('GEMINI_API_KEY is not set') llm = ChatGoogleGenerativeAI(model='gemini-2.0-flash-exp', api_key=SecretStr(api_key)) slack_bot = SlackBot( llm=llm, # required; instance of BaseChatModel bot_token=bot_token, # required; Slack bot token signing_secret=signing_secret, # required; Slack signing secret ack=True, # optional; whether to acknowledge task receipt with a message, defaults to False browser_config=BrowserConfig( headless=True ), # optional; useful for changing headless mode or other browser configs, defaults to headless mode ) app.dependency_overrides[SlackBot] = lambda: slack_bot if __name__ == '__main__': import uvicorn uvicorn.run('integrations.slack.slack_api:app', host='0.0.0.0', port=3000)