import gradio as gr import json with open("models.json") as f: MODELS = json.load(f) def compare_models(model_a: str, model_b: str) -> str: """Compare two dispatchAI models side by side. Args: model_a: First model name model_b: Second model name Returns: JSON with comparison """ a = next((m for m in MODELS if model_a.lower() in m["name"].lower()), None) b = next((m for m in MODELS if model_b.lower() in m["name"].lower()), None) if not a or not b: return json.dumps({"error": "Model not found", "available": [m["name"] for m in MODELS]}) return json.dumps({ "comparison": { "model_a": a, "model_b": b, "speed_winner": a["name"] if a.get("cpu_tps", 0) > b.get("cpu_tps", 0) else b["name"], "size_winner": a["name"] if a.get("size_mb", 0) < b.get("size_mb", 0) else b["name"], "speed_diff_pct": round(abs(a.get("cpu_tps",0) - b.get("cpu_tps",0)) / min(a.get("cpu_tps",1), b.get("cpu_tps",1)) * 100, 1), } }, indent=2) with gr.Blocks(theme=gr.themes.Soft(primary_hue="blue"), title="Model Compare") as demo: gr.Markdown("# āš–ļø Model Comparison (MCP)") with gr.Row(): a = gr.Textbox(label="Model A", placeholder="SmolLM2-135M") b = gr.Textbox(label="Model B", placeholder="Llama-3.2-1B") btn = gr.Button("Compare", variant="primary") out = gr.Textbox(label="Comparison (JSON)", lines=15) btn.click(fn=compare_models, inputs=[a, b], outputs=out) gr.Markdown("---\nšŸš€ [dispatchAI](https://huggingface.co/dispatchAI)") demo.launch(mcp_server=True)