sudhasai783's picture
Update app.py
065941b verified
# app.py
import asyncio
import gradio as gr
from dotenv import load_dotenv
from research_manager import ResearchManager
load_dotenv(override=True)
manager = ResearchManager()
def run(query: str):
"""
Hugging Face Spaces requires sync functions.
This safely consumes your async generator.
"""
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
outputs = []
async_gen = manager.run(query)
try:
while True:
chunk = loop.run_until_complete(async_gen.__anext__())
outputs.append(chunk)
except StopAsyncIteration:
pass
finally:
loop.close()
# Return the final combined output
return "\n\n".join(outputs)
with gr.Blocks(theme=gr.themes.Default(primary_hue="sky")) as ui:
gr.Markdown("# 🔍 Deep Research Agent")
query_textbox = gr.Textbox(
label="What topic would you like to research?",
placeholder="e.g. Latest AI agent frameworks in 2025",
)
run_button = gr.Button("Run", variant="primary")
report = gr.Markdown(label="Output")
run_button.click(
fn=run,
inputs=query_textbox,
outputs=report,
)
query_textbox.submit(
fn=run,
inputs=query_textbox,
outputs=report,
)
ui.launch()