Spaces:
Runtime error
Runtime error
Download app.py from techresearchspace/nagent: direct link, hf CLI and curl.
- Browser
- Download file 1.63 kB
-
https://huggingface.co/spaces/techresearchspace/nagent/resolve/main/app.py
- Command line
-
hf download hf://spaces/techresearchspace/nagent/app.py
-
curl -L -o app.py https://huggingface.co/spaces/techresearchspace/nagent/resolve/main/app.py
1.63 kB
| import spaces # noqa: F401 — must be imported first, before torch/gradio pull it in transitively, per ZeroGPU requirements | |
| import gradio as gr | |
| from agents import build_graph, run_task | |
| # Compiled once per process — the graph itself holds no per-user state, | |
| # all mutable data lives in gr.State (per-session) so concurrent users | |
| # on the same Space don't interfere with each other. | |
| graph_app = build_graph() | |
| def handle_message(message, history, state): | |
| state = state or {} | |
| try: | |
| result = run_task(graph_app, message, state) | |
| except Exception as e: | |
| result = f"Agent error: {e}" | |
| return result, state | |
| with gr.Blocks(title="Multi-Agent Assistant") as demo: | |
| gr.Markdown("# Multi-Agent Assistant\nManager agent routes to search, code, and data specialists.") | |
| session_state = gr.State({}) | |
| chatbot = gr.Chatbot(height=450) | |
| msg = gr.Textbox(placeholder="Ask something that needs research, code, or data analysis...") | |
| clear = gr.Button("Clear") | |
| def respond(message, chat_history, state): | |
| chat_history = chat_history or [] | |
| chat_history.append({"role": "user", "content": message}) | |
| reply, state = handle_message(message, chat_history, state) | |
| chat_history.append({"role": "assistant", "content": reply}) | |
| return "", chat_history, state | |
| msg.submit(respond, [msg, chatbot, session_state], [msg, chatbot, session_state]) | |
| clear.click(lambda: ([], {}), None, [chatbot, session_state]) | |
| if __name__ == "__main__": | |
| print("Starting Gradio server on 0.0.0.0:7860 ...", flush=True) | |
| demo.launch(server_name="0.0.0.0", server_port=7860) |