# 重构后的 app.py import gradio as gr from utils.grace_plot import plot_radar from model_wrappers.model_a import run_model_a from model_wrappers.model_b import run_model_b def run_all_models(prompt): return run_model_a(prompt), run_model_b(prompt) with gr.Blocks() as demo: with gr.Tab("LLM Benchmark"): gr.Markdown("## ✨ 模型 GRACE 维度雷达图") with gr.Row(): plot_btn = gr.Button("生成 GRACE 雷达图") radar_output = gr.Plot() plot_btn.click(fn=plot_radar, inputs=[], outputs=radar_output) with gr.Tab("Arena"): gr.Markdown("## 🤖 模型竞技场:同一输入比拼") prompt = gr.Textbox(label="请输入 Prompt") run_btn = gr.Button("运行所有模型") output_a = gr.Textbox(label="Model A 输出") output_b = gr.Textbox(label="Model B 输出") run_btn.click(fn=run_all_models, inputs=[prompt], outputs=[output_a, output_b]) with gr.Tab("Report"): with open("report.md", encoding="utf-8") as f: report_md = f.read() gr.Markdown(report_md) if __name__ == "__main__": demo.launch()