File size: 1,641 Bytes
f122d9d 965981d a4583a7 a67fae1 9bcfd60 965981d 9bcfd60 113c66e f122d9d ee3145e 06d9c7d 4b0a157 0db12d1 f122d9d 6605617 844f26f f122d9d 965981d 608bacc 965981d 10a0568 f122d9d ee3145e f122d9d ee3145e f122d9d ee3145e 77460b1 ee3145e 179f5e2 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
import gradio as gr
import os, threading
from multi_agent import run_multi_agent
lock = threading.Lock()
os.environ["LANGCHAIN_PROJECT"] = "langgraph-multi-agent"
os.environ["LANGCHAIN_TRACING_V2"] = "true"
LLM = "gpt-4.1"
def invoke(openai_api_key, topic):
if not openai_api_key:
raise gr.Error("OpenAI API Key is required.")
if not topic:
raise gr.Error("Topic is required.")
with lock:
os.environ["OPENAI_API_KEY"] = openai_api_key
article = run_multi_agent(LLM, topic)
del os.environ["OPENAI_API_KEY"]
return article
def clear():
return ""
gr.close_all()
with gr.Blocks() as assistant:
gr.Markdown("## Multi-Agent AI: Deep Research")
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)
topic = gr.Textbox(label = "Topic", value=os.environ["TOPIC"], lines = 1)
with gr.Row():
clear_btn = gr.ClearButton(
components=[openai_api_key, topic]
)
submit_btn = gr.Button("Submit", variant="primary")
with gr.Column(scale=3):
article = gr.Markdown(label = "Article", value=os.environ["OUTPUT"], line_breaks = True, sanitize_html = False)
clear_btn.click(
fn=clear,
outputs=article
)
submit_btn.click(
fn=invoke,
inputs=[openai_api_key, topic],
outputs=article
)
assistant.launch(mcp_server=True) |