import gradio as gr import os, threading from multi_agent import run_multi_agent lock = threading.Lock() LLM = "gpt-4o" def invoke(openai_api_key, task): if not openai_api_key: raise gr.Error("OpenAI API Key is required.") if not task: raise gr.Error("Task is required.") raise gr.Error("Please clone space due to local code execution.") with lock: os.environ["OPENAI_API_KEY"] = openai_api_key result = run_multi_agent(LLM, task) del os.environ["OPENAI_API_KEY"] return result def clear(): return "" gr.close_all() with gr.Blocks() as assistant: gr.Markdown("## Multi-Agent AI: Coding") gr.Markdown(os.environ.get("DESCRIPTION")) with gr.Row(): with gr.Column(scale=1): with gr.Row(): openai_api_key = gr.Textbox(label = "OpenAI API Key", type = "password", lines = 1) task = gr.Textbox(label = "Task", value=os.environ["INPUT"], lines = 1) with gr.Row(): clear_btn = gr.ClearButton( components=[openai_api_key, task] ) submit_btn = gr.Button("Submit", variant="primary") with gr.Column(scale=3): output = gr.Markdown(label = "Output", value=os.environ["OUTPUT"], line_breaks = True, sanitize_html = False) clear_btn.click( fn=clear, outputs=output ) submit_btn.click( fn=invoke, inputs=[openai_api_key, task], outputs=output ) assistant.launch()