Smart Router
智能多模型路由器——根据任务类型自动选择最佳的AI模型 (视觉、图像生成、视频生成、音频、推理、代码、一般聊天)通过任何 OpenAI 兼容的 API 端点。通过 @alias 快捷方式支持 7 个类别的 35 多个模型。 使用场合:用户发送图像进行分析、请求生成图像/视频/音频、需要深入 推理或数学证明,想要使用特定模型,或使用 @alias 作为消息前缀 (例如@gpt52、@o3、@sora、@imagen)。
安装 / 下载方式
TotalClaw CLI推荐
totalclaw install totalclaw:totalclaw~samstone908-smart-modelscURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/totalclaw%3Atotalclaw~samstone908-smart-models/file -o samstone908-smart-models.md## 概述(中文) 智能多模型路由器——根据任务类型自动选择最佳的AI模型 (视觉、图像生成、视频生成、音频、推理、代码、一般聊天)通过任何 OpenAI 兼容的 API 端点。通过 @alias 快捷方式支持 7 个类别的 35 多个模型。 使用场合:用户发送图像进行分析、请求生成图像/视频/音频、需要深入 推理或数学证明,想要使用特定模型,或使用 @alias 作为消息前缀 (例如@gpt52、@o3、@sora、@imagen)。 ## 原文 # Smart Router — Intelligent Model Router Route tasks to the best model automatically, via any OpenAI-compatible API. Author: whatevername2023@proton.me ## Setup Models and provider are configured in `models.json`. Set two environment variables: - `SMART_ROUTER_BASE_URL` — OpenAI-compatible API base URL (e.g. `https://api.openai.com/v1`) - `SMART_ROUTER_API_KEY` — API key for the provider Edit `models.json` to customize categories, models, and defaults for your provider. ## @ Alias Shortcuts Prefix a message with `@alias` to skip auto-classification and call a specific model directly. Format: `@alias your question or prompt here` ### Alias Table | Alias | Model ID | Category | |-------|----------|----------| | **Vision** | | | | `@gpt4o` | chatgpt-4o-latest | vision | | `@qwen-vl` | qwen3-vl-235b-a22b-instruct | vision | | `@qwen-vl-max` | qwen-vl-max-2025-08-13 | vision | | `@llama-vl` | llama-3.2-90b-vision-instruct | vision | | `@qwen-vl-32b` | qwen3-vl-32b-instruct | vision | | **Image Gen** | | | | `@imagen` | google/imagen-4-ultra | image_gen | | `@flux` | black-forest-labs/flux-1.1-pro-ultra | image_gen | | `@flux-kontext` | black-forest-labs/flux-kontext-max | image_gen | | `@dalle` | dall-e-3 | image_gen | | `@flux2` | flux-2-pro | image_gen | | **Video Gen** | | | | `@sora` | sora-2-pro-all | video_gen | | `@veo` | veo3.1-pro-4k | video_gen | | `@vidu` | viduq3-pro | video_gen | | `@kling` | kling-video | video_gen | | `@runway` | runwayml-gen4_turbo-10 | video_gen | | **Audio** | | | | `@suno` | suno_music | audio | | `@tts` | gemini-2.5-pro-preview-tts | audio | | `@tts-hd` | tts-1-hd | audio | | `@kling-audio` | kling-audio | audio | | `@vidu-tts` | vidu-tts | audio | | **Reasoning** | | | | `@o3` | o3 | reasoning | | `@o3-pro` | o3-pro | reasoning | | `@o4-mini` | o4-mini | reasoning | | `@deepseek` | deepseek-r1 | reasoning | | `@gemini-think` | gemini-2.5-pro-thinking | reasoning | | `@claude-think` | claude-sonnet-4-5-20250929-thinking | reasoning | | **Code** | | | | `@claude` | claude-opus-4-6 | code | | `@codex` | gpt-5.1-codex-max | code | | `@claude-sonnet` | claude-sonnet-4-6 | code | | `@qwen-coder` | qwen3-coder-480b-a35b-instruct | code | | `@qwen-coder-plus` | qwen3-coder-plus | code | | `@gpt4t` | gpt-4-turbo | code | | **General** | | | | `@gpt52` / `@gpt5` | gpt-5.2-chat-latest | general | | `@gemini` | gemini-2.5-pro | general | | `@deepseekv3` | deepseek-v3.2 | general | | `@qwen` | qwen3-max | general | | `@claude-chat` | claude-opus-4-6 | general | Aliases are case-insensitive. If no alias matches, attempt fuzzy match on model name/ID. If still no match, prompt the user. ## Auto-Classification Rules When no `@alias` is specified, classify the task automatically: | Category | Trigger | |----------|---------| | `vision` | User sends image/URL, asks to analyze, describe, OCR, understand image content | | `image_gen` | Requests to draw, generate image, design poster, create illustration | | `video_gen` | Requests to generate video, animation, text-to-video, image-to-video | | `audio` | Requests for music generation, TTS, sound effects | | `reasoning` | Complex math, logic puzzles, proofs, deep analysis, long-chain reasoning | | `code` | Code generation, debugging, refactoring, review (when external model needed) | | `general` | Everyday chat, translation, summarization, writing, Q&A | ## Usage ### 1. Read Model Config ```bash cat "$(dirname "$0")/../models.json" ``` ### 2. Select Model - Determine `category` based on classification rules above - Use the first model with `"default": true` in each category - If user specifies a model via `@alias`, use that model directly - For cost-sensitive tasks, pick a smaller model in the same category ### 3. Call Model #### Chat (vision / reasoning / code / general) ```bash scripts/call-model.sh --model "MODEL_ID" --prompt "user request" --type chat ``` With image (vision): ```bash scripts/call-model.sh --model "MODEL_ID" --prompt "request" --type chat --image "IMAGE_URL" ``` #### Image Generation ```bash scripts/call-model.sh --model "MODEL_ID" --prompt "image description" --type image ``` #### Async Tasks (video / audio) ```bash scripts/call-model.sh --model "MODEL_ID" --prompt "task description" --type async ``` #### TTS ```bash scripts/call-model.sh --model "MODEL_ID" --prompt "text to speak" --type tts --voice alloy ``` ### 4. Return Results - Chat: return the model's text reply directly - Image: return the generated image URL in markdown format - Video/Audio: return task status and result URL ## Model Recommendations - Vision: `qwen3-vl-235b-a22b-instruct` (strongest visual understanding) - Image gen: `google/imagen-4-ultra` (highest quality) - Video: `sora-2-pro-all` (best results) - Music: `suno_music` / TTS: `tts-1-hd` or `gemini-2.5-pro-preview-tts` - Reasoning: `o3` (strongest reasoning) - Code: `gpt-5.1-codex-max` - General: `claude-opus-4-6` ## Fallback If a model call fails, automatically fall back to the next model in the same category. ## Customization Edit `models.json` to: - Add/remove models in any category - Change default models - Add new categories - Update aliases in SKILL.md to match The `scripts/sync-models.sh` script lists all available models from your provider to help discover new ones.