import gradio as gr import os, threading from multi_agent import run_multi_agent lock = threading.Lock() LLM_WHITE = "gpt-4o" LLM_BLACK = "gpt-4o" def invoke(openai_api_key, num_moves = 10): if (openai_api_key == ""): raise gr.Error("OpenAI API Key is required.") with lock: os.environ["OPENAI_API_KEY"] = openai_api_key result = run_multi_agent(LLM_WHITE, LLM_BLACK, num_moves) del os.environ["OPENAI_API_KEY"] return result gr.close_all() demo = gr.Interface(fn = invoke, inputs = [gr.Textbox(label = "OpenAI API Key", type = "password", lines = 1), gr.Number(label = "Number of Moves", value = 10, minimum = 1, maximum = 25)], outputs = [gr.Markdown(label = "Game", value=os.environ["OUTPUT"], line_breaks=True, sanitize_html=False)], title = "Multi-Agent AI: Chess", description = os.environ["DESCRIPTION"]) demo.launch()