modelmix
by StarShipI
README.md
<div align="center">
<img src="public/logo-2026.png" alt="ModelMix Logo" width="320" />
</div>
# ModelMix 模方 — 多模型 AI 对比工具
一站式对比 17 个大语言模型(LLM)的输出质量、成本和速度。支持 Web 界面、命令行、Claude Code 技能和 MCP 插件四种使用方式。
## 功能
| 功能 | 说明 |
|------|------|
| **Web 应用** | Next.js 16 界面,输入任务→智能推荐模型→实时流式对比→AI 评判 |
| **CLI 工具** | 命令行对比,支持 JSON 输出,适合 AI Agent 调用 |
| **MCP 插件** | 原生 Claude Code 工具,AI 可直接决策调用 |
| **/modelmix 技能** | Claude Code 斜杠命令,人工触发对比 |
| **AI 评判** | 自动评分:准确性、完整性、清晰度、相关性 + 综合评分(1-10) |
| **省 Token 技巧** | 26 条提示词优化技巧,智能推荐 + 节省统计 |
| **排行榜** | 花 token 王 / 省 token 王排名,每日/每周/每月统计 |
| **17 个模型** | 覆盖 OpenAI、Anthropic、DeepSeek、Google、Kimi、智谱、MiniMax、Qwen |
## 快速开始
```bash
# 1. 克隆项目
git clone https://github.com/chx17864762631/modelmix.git
cd modelmix
# 2. 安装依赖
npm install
# 3. 配置加密密钥
cp .env.example .env.local
# 编辑 .env.local,填入你的 MASTER_ENCRYPTION_KEY
# 生成密钥: node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
# 4. 启动开发服务器
npm run dev
# 打开 http://localhost:3000
# 5. 在 Web 界面添加 API Key(设置 → API Keys)
```
## 使用指南
### 第一步:输入任务,获取模型推荐
在首页输入任务描述,点击"分析任务",应用自动识别任务类型(翻译/编程/写作/分析),并根据任务特征推荐最适合的模型组合。同时展示省 Token 技巧,点击即可应用到提示词中。

### 第二步:查看并应用省 Token 技巧
应用提供 26 条提示词优化技巧,按任务类型智能推荐。每条技巧包含标题、说明和预估节省比例,点击"应用此技巧"即可将优化注入到用户提示词中,有效降低 Token 消耗。

### 第三步:查看对比结果与 AI 评判
点击"开始对比"后,多个模型同时处理同一任务,实时流式输出。完成后 AI 自动评判各模型输出的**准确性、完整性、清晰度、相关性**,给出综合评分并推荐最佳模型。页面下方展示总计 Token 消耗、提示词技巧节省的 Token,以及选择推荐模型可节省的费用。

### 第四步:查看排行榜
排行榜统计用户今日/本周/本月的 Token 消耗,以及模型选择节省、技巧节省的费用。设置"花 Token 王"(消耗最多)和"省 Token 王"(节省最多)两个排名,直观展示使用效率。

### 第五步:保存优质模板
效果好、节省 Token 的提示词可一键保存为模板,方便后续复用。避免重复调试提示词,提升工作效率。

### 前置设置:配置 API Key
在设置页面添加各模型提供商的 API Key,选择需要使用的模型。支持 OpenAI、Anthropic、DeepSeek、Google、Kimi、智谱、MiniMax、Qwen 八个提供商。API Key 使用 AES-256-GCM 加密存储,保障安全。

---
## CLI 命令行
```bash
# 列出所有可用模型
npx tsx cli.ts models --json
# 对比模型(JSON 输出,适合 Agent)
npx tsx cli.ts compare \
--task "将以下合同条款翻译成英文:甲方应于每月5日前支付上月服务费用..." \
--models "deepseek-chat,glm-4" \
--judge --json
# 人工阅读(Markdown 输出)
npx tsx cli.ts compare -t "Write a Python function to merge two sorted lists" -m "gpt-4o,claude-sonnet-4-20250514" -j
# 评判已有对比
npx tsx cli.ts judge <comparison-id> --json
```
| 参数 | 简写 | 说明 |
|------|------|------|
| `--task` | `-t` | 任务描述(必填) |
| `--models` | `-m` | 模型 ID,逗号分隔(必填,至少 2 个) |
| `--system-prompt` | `-s` | 系统提示词(可选) |
| `--judge` | `-j` | 自动运行 AI 评判 |
| `--json` | | JSON 格式输出(Agent 调用时使用) |
## MCP 插件(Claude Code 原生工具)
项目根目录的 `.mcp.json` 已配置好,Claude Code 进入项目目录后自动加载。
提供三个 MCP 工具:
| 工具 | 说明 |
|------|------|
| `modelmix_models` | 列出所有已配置的模型及价格 |
| `modelmix_compare` | 多模型对比(含 AI 评判) |
| `modelmix_judge` | 对已有对比运行评判 |
Claude Code 会在需要时自动调用这些工具,无需手动触发。完整流程:发现 `.mcp.json` → `initialize` → `tools/list` → 根据需要调用 `modelmix_models` / `modelmix_compare` / `modelmix_judge` → 获取结构化 JSON 结果。

## /modelmix 技能(Claude Code 斜杠命令)
在 Claude Code 输入框输入 `/modelmix` 触发。技能会引导选择模型、运行对比,并按规范格式化呈现结果(推荐模型、评分表格、完整输出)。
安装方式:
```bash
cp -r skills/modelmix ~/.claude/skills/modelmix
```

## 支持的模型
| 模型 | 提供商 | 输入价格 ($/1M token) | 输出价格 ($/1M token) | 适用场景 |
|------|--------|----------------------|----------------------|---------|
| GPT-4o | OpenAI | 2.50 | 10.00 | 综合、多模态 |
| GPT-4o Mini | OpenAI | 0.15 | 0.60 | 高性价比、快速 |
| Claude Sonnet 4 | Anthropic | 3.00 | 15.00 | 代码、分析、长文本 |
| Claude 3 Haiku | Anthropic | 0.25 | 1.25 | 最快速度、低成本 |
| DeepSeek V3 | DeepSeek | 0.27 | 1.10 | 中文、高性价比 |
| DeepSeek R1 | DeepSeek | 0.55 | 2.19 | 推理、思考过程 |
| Gemini 2.0 Flash | Google | 0.10 | 0.40 | 快速、多模态 |
| Moonshot v1 8K | Kimi | 0.003 | 0.003 | 中文细腻、长文本 |
| Moonshot v1 32K | Kimi | 0.008 | 0.008 | 长上下文 |
| Moonshot v1 128K | Kimi | 0.03 | 0.03 | 超长上下文 |
| GLM-4 Flash | 智谱 | 免费 | 免费 | 免费、快速 |
| GLM-4 | 智谱 | 0.10 | 0.10 | 中文综合 |
| GLM-4 Plus | 智谱 | 0.80 | 0.80 | 高性能推理 |
| abab6.5s | MiniMax | 0.001 | 0.001 | 超低价格、中文 |
| Qwen Turbo | Qwen | 0.0004 | 0.0012 | 速度最快、成本极低 |
| Qwen Plus | Qwen | 0.001 | 0.003 | 效果/速度/成本均衡 |
| Qwen Max | Qwen | 0.005 | 0.015 | 综合能力最强 |
## 项目结构
```
modelmix/
├── app/ # Next.js App Router
│ ├── page.tsx # 首页:任务输入 + 推荐 + 对比
│ ├── leaderboard/ # 排行榜页面
│ ├── keys/ # API Key 管理页面
│ ├── templates/ # 模板管理页面
│ └── api/ # API 路由
│ ├── compare/ # 模型对比(SSE 流式)
│ ├── comparisons/ # 对比历史 CRUD
│ ├── judge/ # AI 评判
│ ├── recommend/ # 模型智能推荐
│ ├── tips/ # 省 Token 技巧
│ ├── savings/ # 节省计算
│ ├── leaderboard/ # 排行榜数据
│ └── user/ # 用户统计
├── components/ # React 组件
│ ├── home/ # 首页组件(输入面板、技巧面板)
│ ├── compare/ # 对比视图组件
│ ├── leaderboard/ # 排行榜组件
│ ├── keys/ # API Key 管理组件
│ └── layout/ # 布局组件(Header)
├── lib/ # 核心库
│ ├── models.ts # 模型定义
│ ├── provider-config.ts # 提供商配置 + 智能推荐逻辑
│ ├── providers.ts # 流式调用适配器
│ ├── db.ts # SQLite 数据库(sql.js)
│ ├── judge.ts # AI 评判引擎
│ ├── tips.ts # 26 条优化技巧
│ ├── savings.ts # 节省计算
│ ├── crypto.ts # AES-256-GCM 加密
│ └── types.ts # TypeScript 类型定义
├── hooks/ # React Hooks
├── cli.ts # 命令行工具
├── mcp-server.ts # MCP stdio 服务器
├── .mcp.json # Claude Code MCP 配置
├── skills/modelmix/ # Claude Code 技能文件
├── public/screenshots/ # 界面截图
└── data/ # SQLite 数据库文件(运行时生成)
```
## 技术栈
| 技术 | 用途 |
|------|------|
| Next.js 16 (App Router) | Web 框架 |
| TypeScript 5 | 类型安全 |
| Tailwind CSS v4 | 样式 |
| sql.js (WASM SQLite) | 数据库 |
| AES-256-GCM | API Key 加密 |
| SSE (Server-Sent Events) | 流式输出 |
| JSON-RPC 2.0 | MCP 协议 |
| OpenAI SDK | API 适配层 |
## 安全
- API Key 使用 AES-256-GCM 加密存储在 SQLite 中
- 加密密钥通过 `.env.local` 注入,不进入版本控制
- 所有 API Key 仅在内存中解密,用完即弃
## License
MIT
This server cannot be deployed
Maintenance
ActivitySlowing
ResponsivenessNo issues