| import os |
| import time |
| import threading |
| import gradio as gr |
| from groq import Groq |
| from playwright.sync_api import sync_playwright |
|
|
| |
| client = Groq(api_key=os.environ.get("GROQ_API_KEY")) |
|
|
| |
| browser_instance = None |
| context = None |
| page = None |
| is_logged_in = False |
| logs = ["Welcome! Please wait for the browser to launch to log in manually."] |
|
|
| def launch_browser(): |
| global browser_instance, context, page |
| with sync_playwright() as p: |
| |
| browser_instance = p.chromium.launch(headless=False, args=["--start-maximized"]) |
| context = browser_instance.new_context(no_viewport=True) |
| page = context.new_page() |
| page.goto("https://www.instagram.com/direct/inbox/") |
| logs.append("Browser opened. Please login to Instagram manually in the browser window.") |
| |
| |
| while True: |
| time.sleep(1) |
|
|
| def start_ai_agent(): |
| global is_logged_in |
| is_logged_in = True |
| logs.append("Handover successful! AI Agent starting in 5 seconds...") |
| |
| |
| return "Agent is now in control." |
|
|
| |
| with gr.Blocks() as demo: |
| gr.Markdown("# ๐ Manual Login & Handover") |
| status = gr.Textbox(label="Status") |
| login_btn = gr.Button("Launch Browser for Login") |
| handover_btn = gr.Button("Handover to AI Agent", variant="primary") |
| |
| login_btn.click(lambda: threading.Thread(target=launch_browser, daemon=True).start()) |
| handover_btn.click(start_ai_agent, outputs=status) |
|
|
| demo.launch() |