ModelJudge
flashclub/ModelJudge加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
深夜,你正在写一份技术方案。面对"这段 Python 代码能不能更优雅"的优化需求,你犹豫了——是问 Kimi、Qwen 还是 DeepSeek?各有各的擅长领域,官方文档长到看不完,网上测评要么太水、要么太专业。
模型判官(Model Judge) 解决的就是这个问题:输入一个问题,选三个模型同时回答,让第四个"裁判模型"来打分评判。不用查文档,不用翻测评,一个页面搞定横向对比。
模型判官脱胎于 AwesomePrompt 项目——一个聚合了几十种大模型的提示词平台。开发者在实际使用中发现,用户最核心的需求其实很朴素:我这个问题,该问哪个模型?
于是团队将评测模块独立出来,做成了这个开源工具。项目作者是 flashclub,采用 MIT 许可证,代码完全开放。
模型判官的交互逻辑极为简洁,核心只有四步:
这种"让 AI 评价 AI"的思路借鉴了竞技场(Arena)模式,是当前 LLM 评测的主流方法之一。相比人工打分,成本低、速度快、可以反复进行。
项目基于 Next.js 14 App Router 构建,使用 TypeScript 开发。UI 层面使用 Radix UI 组件库 + Tailwind CSS 原子化样式,通过 CVA(Class Variance Authority)管理组件变体。国际化由 next-intl 处理,支持中文和英文两套界面,切换无刷新。
流式响应通过 eventsource-parser 解析 SSE 流,配合 React 的 ReadableStream 实现打字机效果。每个模型的回答独立渲染,互不阻塞。
src/app/api/all-model/route.tsx 是核心 API 路由,运行在 Edge Runtime 上。流程如下:
SILICONFLOW_KEY/v1/chat/completions 接口,设置 stream: true// 核心流式调用逻辑(简化版)
const stream = await OpenAIStream({
model,
url: aiUrl, // https://api.siliconflow.cn/v1/chat/completions
messages,
apiKey,
callback: async (text) => {
// 流结束时可执行回调,如记录到 Supabase
}
});
return new Response(stream);
代码中预留了 Supabase 集成,启用后可将问答记录持久化存储。但默认不依赖数据库,纯前端 + API 调用即可正常运行。
支持 Google 和 GitHub OAuth 登录,由 next-auth 处理会话。目前登录功能默认不强制启用,用户可直接匿名使用。
npm run dev 即可本地运行推荐部署路径:
SILICONFLOW_KEY 环境变量即可npm install && npm run dev| 维度 | 评分 | 说明 |
|---|---|---|
| 技术栈现代性 | ★★★★☆ | Next.js 14 + TypeScript + Radix UI,主流技术选型 |
| 流式响应实现 | ★★★★★ | Edge Runtime + SSE + ReadableStream,工程实现规范 |
| 国际化 | ★★★★★ | next-intl 完整支持,配置清晰 |
| 可扩展性 | ★★★☆☆ | 模型列表硬编码,添加新模型需改代码 |
| 代码文档 | ★★★☆☆ | README 详细,但代码内注释较少 |
| 测试覆盖 | ★★☆☆☆ | 无测试文件,CI/CD 未配置 |
大模型评测从来不是新鲜事——OpenCompass、Chatbot Arena、LiveBench 都在做。但这些工具面向研究人员,门槛高、交互重。模型判官的价值在于极简化:一个输入框,三个选项,秒出对比结果。
这种思路契合了当前 AI 应用的普及化趋势。当大模型从"技术前沿"变成"日常工具",普通用户的核心需求不是 Benchmark 排名,而是"我这个问题,用哪个模型最划算"。模型判官恰好填了这个空白。
本报告由 PIFS 系统自动生成,分析对象:flashclub/ModelJudge (GitHub 95★),MIT 许可证,TypeScript/Next.js 技术栈。