快速、全面、美观的AI模型能力测评工具
支持文生文、文生图测评 | 自动生成精美展示网站 | 智能筛选搜索 | 多线程并发 | 失败重试
AI模型一键测评工具是一个专业的AI模型能力评估平台,帮助开发者和研究人员快速、全面地测评任何AI模型的性能表现。
- 零代码操作 - 图形界面,无需编程基础
- 全面测评 - 25个精选测试案例,覆盖各种场景
- 美观展示 - 自动生成可交互的粉色风格展示网站
- 智能重试 - 自动重试失败测试,指数退避策略
- 高效并发 - 支持最多30线程并发测试
- 数据完整 - 保存所有测试结果和元数据
- 简洁图形界面 - 基于Tkinter的现代化GUI
- 实时进度显示 - 进度条 + 详细日志
- 一键式操作 - 配置→测评→查看,三步完成
-
智能重试机制 ⚡
- 指数退避算法(2秒→4秒→8秒...)
- 随机抖动,避免"惊群效应"
- 区分可重试错误(429, 500, 502等)
- 最多自动重试3次
-
多线程并发 ⚙️
- 支持1-30线程可配置
- 并行执行多个测试案例
- 自动管理资源和异常
-
完善错误处理 🛡️
- 超时自动重试
- 连接错误恢复
- 详细错误日志
-
文生文测试(10个案例)
- 视觉代码生成(SVG动画、3D图形)
- 交互游戏(俄罗斯方块、弹球游戏)
- 科学模拟(太阳系模拟器)
- 实用工具(计算器、Markdown编辑器)
-
文生图测试(15个案例)
- 未来科技场景
- 人物肖像
- 建筑设计
- 产品摄影
- 自然风光
-
智能搜索 🔍
- 支持搜索名称、ID、标签
- 实时搜索,即输即显
-
多维筛选 🎯
- 按类型筛选(文生文/文生图)
- 按难度筛选(简单/中/高)
- 动态显示结果数量
-
美观设计 💅
- 可爱粉色风格
- 每个案例专属图标
- 流畅的悬停动画
- 响应式布局
- Python: 3.7 或更高版本
- 操作系统: Windows / macOS / Linux
- 网络: 能访问AI API服务
- 内存: 建议 2GB 以上
git clone https://github.com/147228/model-test-cc.git
cd model-test-ccpip install -r requirements.txt依赖列表:
requests- HTTP请求库tkinter- 图形界面(Python自带)
方式一:使用GUI配置(推荐)
python main.py在界面上填写API配置并保存。
方式二:手动配置
cp config.example.json config.json
# 编辑config.json,填入你的API信息点击"开始测评"按钮,等待测试完成!
Windows:
python main.py
# 或双击 启动.batmacOS / Linux:
python3 main.py在界面上填写以下信息:
| 配置项 | 说明 | 示例 |
|---|---|---|
| API URL | API端点地址 | https://yunwu.ai/v1 |
| API Key | 你的API密钥 | sk-xxxxx... |
| 文生文模型 | 代码生成模型 | gemini-3-pro-preview |
| 文生图模型 | 图像生成模型 | gemini-3-pro-image-preview |
| 并发线程 | 并发数(建议10-20) | 10 |
💡 提示:
- 首次测试建议并发数设为5,避免触发API限流
- API Key可以从你的AI服务提供商获取
- 不同模型的并发限制不同,请查阅服务商文档
勾选要测试的类型:
- ✅ 文生文测评
- ✅ 文生图测评
你可以同时选择两者,也可以只选一种。
点击"开始测评"按钮。测评过程中:
- 📊 实时显示进度条
- 📝 日志窗口显示详细信息
- ⏱️ 显示当前测试案例
测评时长:
- 文生文:约5-10分钟(取决于并发数)
- 文生图:约10-15分钟
- 总计:约15-25分钟
测评完成后:
- 点击"打开输出目录"按钮
- 进入
output/website/目录 - 双击
index.html在浏览器中打开
- 打开
test_cases/text_cases.json或image_cases.json - 按格式添加新的测试案例:
{
"id": "T11",
"name": "我的自定义测试",
"category": "自定义分类",
"difficulty": "中",
"tags": ["标签1", "标签2"],
"icon": "✨",
"prompt": "详细的测试提示词..."
}使用提供的导入工具:
python import_prompts.py按照提示输入提示词文件路径即可。
如果某些测试失败,程序会自动重试3次。如果仍然失败,你可以:
- 检查网络连接
- 确认API配额充足
- 降低并发数后重新测试
graph TB
A[用户界面 main.py] --> B[测试引擎 test_engine.py]
A --> C[提示词管理器 prompt_manager.py]
A --> D[网站生成器 website_generator.py]
B --> E[API调用层]
E --> F[重试机制]
F --> G[指数退避]
F --> H[错误分类]
B --> I[多线程执行器]
I --> J[文生文测试]
I --> K[文生图测试]
J --> L[HTML提取]
K --> M[图片提取]
D --> N[数据收集]
D --> O[HTML生成]
O --> P[搜索筛选]
O --> Q[响应式UI]
B --> R[结果保存]
R --> S[JSON文件]
R --> T[HTML文件]
R --> U[图片文件]
style A fill:#ff758c
style B fill:#ff7eb3
style D fill:#726cf8
style E fill:#fce7f3
职责:
- 提供图形用户界面
- 管理配置加载/保存
- 协调各模块工作
- 显示进度和日志
核心类:
class AIModelTester:
def __init__(self, root)
def create_ui(self)
def start_test(self)
def load_config(self)
def save_config(self)职责:
- 执行文生文/文生图测试
- 管理多线程并发
- 实现重试机制
- 保存测试结果
核心类:
class TestEngine:
# 重试配置
MAX_RETRIES = 3
BASE_DELAY = 2
MAX_DELAY = 30
def call_api_with_retry(self, ...) # 带重试的API调用
def run_text_tests(self) # 执行文生文测试
def run_image_tests(self) # 执行文生图测试
def retry_failed_tests(self) # 重试失败案例重试策略:
# 指数退避算法
delay = min(BASE_DELAY * (2 ** attempt) + random.uniform(0, 1), MAX_DELAY)
# 可重试的HTTP状态码
RETRIABLE_STATUS_CODES = [429, 500, 502, 503, 504]职责:
- 收集测试结果
- 生成HTML展示网站
- 实现搜索和筛选功能
核心类:
class EnhancedWebsiteGenerator:
def generate(self) # 生成网站
def collect_results(self, type) # 收集结果
def generate_html(self, data) # 生成HTML
def generate_text_cards(self) # 生成文生文卡片
def generate_image_cards(self) # 生成文生图卡片职责:
- 管理测试用例
- 添加/编辑/删除案例
- AI生成提示词
核心类:
class PromptManager:
def load_cases(self, test_type)
def save_cases(self, test_type, data)
def add_case(self, test_type, case)
def generate_prompts(self, ...) # AI生成提示词用户输入 → 配置管理 → 测试引擎 → API调用(重试)→ 结果解析 → 文件保存
↓
多线程执行
↓
文生文测试 + 文生图测试
↓
结果汇总
↓
网站生成器 → HTML展示
AI模型一键测评工具/
├── main.py # 🎨 主GUI应用
├── test_engine.py # ⚙️ 测试引擎(带重试机制)
├── website_generator.py # 🌐 网站生成器(增强版)
├── prompt_manager.py # 📝 提示词管理器
├── import_prompts.py # 📥 提示词导入工具
├── requirements.txt # 📦 依赖列表
├── config.json # ⚙️ 配置文件(自动生成)
├── config.example.json # 📋 配置文件示例
├── README.md # 📖 项目文档
├── .gitignore # 🚫 Git忽略规则
│
├── test_cases/ # 📚 测试用例
│ ├── text_cases.json # 10个文生文案例
│ └── image_cases.json # 15个文生图案例
│
├── output/ # 📊 输出目录(测试结果)
│ ├── text/ # 文生文结果
│ │ ├── *.json # 测试结果JSON
│ │ └── *.html # 生成的HTML文件
│ │
│ ├── image/ # 文生图结果
│ │ ├── *.json # 测试结果JSON
│ │ └── *.jpg/png # 生成的图片
│ │
│ └── website/ # 🌐 展示网站
│ ├── index.html # 主页面
│ ├── data.json # 数据文件
│ └── images/ # 网站图片资源
│
└── docs/ # 📚 文档目录
├── 快速开始.md
├── 完整使用手册.md
├── 项目功能说明.md
└── 项目对比说明.md
| ID | 名称 | 类别 | 难度 | 说明 |
|---|---|---|---|---|
| T01 | 机械花朵开合动画 | 视觉代码 | 中 | SVG机械动画,交互式 |
| T02 | 3D立方体动画 | 3D图形 | 中 | Three.js,可拖拽旋转 |
| T03 | 俄罗斯方块游戏 | 交互游戏 | 高 | 完整游戏逻辑 |
| T04 | 太阳系模拟器 | 科学模拟 | 高 | 8大行星运行模拟 |
| T05 | 音乐可视化 | 音频可视化 | 高 | Web Audio API |
| T06 | 粒子烟花效果 | 视觉效果 | 中 | 粒子系统+物理 |
| T07 | 计算器应用 | 实用工具 | 简单 | 四则运算 |
| T08 | 时钟与倒计时 | 实用工具 | 中 | 多功能时间工具 |
| T09 | 弹球碰撞游戏 | 交互游戏 | 中 | 物理引擎 |
| T10 | Markdown编辑器 | 实用工具 | 中 | 实时预览 |
| ID | 名称 | 类别 | 难度 | 风格 |
|---|---|---|---|---|
| I01 | 全息投影会议室 | 未来科技 | 高 | 科幻写实 |
| I02 | 赛博朋克街景 | 场景设计 | 高 | 霓虹+雨夜 |
| I03 | 古风少女 | 人物肖像 | 高 | 中国风 |
| I04 | 太空站内部 | 未来科技 | 高 | 科幻 |
| I05 | 魔法森林 | 奇幻场景 | 中 | 发光植物 |
| I06 | 智能手表 | 产品设计 | 中 | 商业摄影 |
| I07 | 龙在云端 | 奇幻生物 | 高 | 中国龙 |
| I08 | 现代建筑 | 建筑设计 | 中 | 极简主义 |
| I09 | 美食摄影-拉面 | 美食摄影 | 中 | 日式料理 |
| I10 | 水下世界 | 自然场景 | 中 | 珊瑚礁 |
| I11 | 赛博朋克街区 | 未来科技 | 高 | 机器人 |
| I12 | 晨光中的秘境森林 | 自然场景 | 中 | 瀑布+光线 |
| I13 | 沧桑渔夫特写 | 人物肖像 | 高 | 超写实 |
| I14 | 悬崖玻璃别墅 | 建筑设计 | 中 | 参数化设计 |
| I15 | 奢华香水广告 | 产品设计 | 简单 | 高端商业 |
生成的展示网站位于 output/website/index.html,功能包括:
- 搜索测试案例名称
- 搜索案例ID
- 搜索标签关键词
- 实时搜索,即时显示结果
- 类型筛选: 全部 / 文生文 / 文生图
- 难度筛选: 全部 / 简单 / 中等 / 困难
- 动态显示筛选结果数量
- 一键重置所有筛选条件
- 粉色可爱风格设计
- 每个案例显示专属emoji图标
- 文生文案例:
- 显示难度徽章
- 显示技术标签
- "查看演示"按钮可打开HTML
- 文生图案例:
- 显示类别标签
- 点击图片可放大预览
- Lightbox灯箱效果
- 卡片悬停放大效果
- 平滑的过渡动画
- 响应式布局,支持移动端
- 空状态友好提示
config.json:
{
"api_url": "https://yunwu.ai/v1",
"api_key": "sk-your-api-key",
"text_model": "gemini-3-pro-preview",
"image_model": "gemini-3-pro-image-preview",
"max_threads": 10
}你也可以使用环境变量配置:
# Linux/macOS
export OPENAI_API_KEY="sk-your-api-key"
export OPENAI_BASE_URL="https://yunwu.ai/v1"
export MODEL_NAME="gemini-3-pro-preview"
# Windows
set OPENAI_API_KEY=sk-your-api-key
set OPENAI_BASE_URL=https://yunwu.ai/v1
set MODEL_NAME=gemini-3-pro-preview在 test_engine.py 中可以调整:
class TestEngine:
# 重试配置
MAX_RETRIES = 3 # 最大重试次数
BASE_DELAY = 2 # 初始延迟(秒)
MAX_DELAY = 30 # 最大延迟(秒)A: 检查以下几点:
- ✅ API Key是否正确
- ✅ 网络连接是否正常
- ✅ API配额是否充足
- ✅ 模型名称是否正确
程序会自动重试3次,如果仍然失败:
- 降低并发线程数
- 检查防火墙/代理设置
- 联系API服务提供商
A: 支持所有兼容OpenAI API格式的模型:
- ✅ OpenAI GPT-4 / GPT-3.5
- ✅ Anthropic Claude
- ✅ Google Gemini
- ✅ 通义千问
- ✅ 文心一言
- ✅ DeepSeek
- ✅ 任何OpenAI兼容的API
A: 两种方式:
- 手动编辑:直接修改
test_cases/*.json文件 - 使用GUI:点击"提示词管理"按钮(开发中)
A: 可以!output/website/ 是纯静态网站,可以部署到:
- GitHub Pages
- Vercel
- Netlify
- 任何Web服务器
A: 建议:
- 首次测试: 5-10 线程
- 正常使用: 10-20 线程
- 高性能: 20-30 线程
注意:并发数过高可能触发API限流(HTTP 429)
A: 采用指数退避算法:
第1次失败: 等待 2-3秒
第2次失败: 等待 4-5秒
第3次失败: 等待 8-9秒
第4次失败: 放弃
只有以下错误会重试:
- 超时(Timeout)
- 连接错误(ConnectionError)
- HTTP 429, 500, 502, 503, 504
A: 所有结果保存在 output/ 目录:
output/text/: 文生文结果(JSON + HTML)output/image/: 文生图结果(JSON + 图片)output/website/: 展示网站
A:
- 测试第一个模型
- 复制
output/目录并重命名(如output_gemini/) - 修改配置,测试第二个模型
- 重复以上步骤
✨ 新功能
- 🔄 增加智能重试机制(指数退避)
- 🔍 增强版展示网站,支持搜索和筛选
- 🎨 动态图标系统,每个案例专属emoji
- 🏷️ 标签系统,按技术标签分类
- ⭐ 难度标签,清晰显示测试难度
- 🖼️ 15个文生图测试案例(新增5个)
🔧 改进
- ✅ 优化所有测试案例提示词
- ✅ 改进数据结构,保存完整元数据
- ✅ 优化展示网站样式
- ✅ 添加空状态提示
- ✅ 完善错误处理
🐛 修复
- 修复图片base64数据导致JSON过大的问题
- 修复部分测试案例描述不清晰的问题
- 修复API调用失败不重试的问题
- 首次发布
- 支持文生文和文生图测评
- 内置20个测试用例
- 自动生成展示网站
欢迎贡献!以下是参与方式:
遇到问题或有建议?创建Issue
- Fork本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 创建Pull Request
- 遵循PEP 8代码风格
- 添加必要的注释和文档
- 测试你的更改
- 更新README(如果需要)
- 🐛 Bug修复
- ✨ 新功能
- 📝 文档改进
- 🌐 国际化(i18n)
- 🎨 UI/UX改进
- 📦 新测试案例
本项目采用 MIT 许可证 - 详见 LICENSE 文件
MIT License
Copyright (c) 2025 夕小瑶科技
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction...
感谢以下项目的灵感和参考:
- OpenAI API - API接口设计
- Three.js - 3D图形库
- Marked.js - Markdown解析
- 项目主页: https://github.com/147228/model-test-cc
- 问题反馈: GitHub Issues
- 开发者: 夕小瑶科技
如果觉得这个项目有帮助,请给个⭐Star⭐支持一下!
Made with ❤️ by 夕小瑶科技
低负担解码AI世界,硬核也可爱!