From e84edec9649e825bf615ec763b8488bdb04bf8d2 Mon Sep 17 00:00:00 2001 From: Johnson-LYS Date: Mon, 1 Jun 2026 19:45:14 +0800 Subject: [PATCH] =?UTF-8?q?feat(model-specs):=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E6=A8=A1=E5=9E=8B=E8=A7=84=E6=A0=BC=E5=BA=93=E2=80=94=E2=80=94?= =?UTF-8?q?=E8=B7=A8=20provider=20=E6=A8=A1=E5=9E=8B=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E7=BB=9F=E4=B8=80=E7=BB=B4=E6=8A=A4=EF=BC=88presetDataVersion?= =?UTF-8?q?=2054=E2=86=9258=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(model-specs): 新增模型规格库与 schema 契约 - compute/model-specs/:按厂商维护模型内在参数(上下文窗口/最大输出/能力/serviceType/默认温度,不含价签) - schemas/model-spec.schema.json:Draft-07 契约,spec 允许 null(新文件不影响老客户端 frozen 契约) - scripts/validate.mjs:pickSchemaKey 纳入 model-specs 校验 - manifest.presetDataVersion 54→55 * feat(model-specs): 新增小米 MiMo 系列模型规格;bump presetDataVersion 55→56 * feat(model-specs): 补全全量模型规格;presetDataVersion 56→57 * feat(model-specs): 新增 releasedAt/retiredAt 时间戳字段;补充 mimo 退役日期 --- compute/model-specs/_index.json | 26 ++ compute/model-specs/anthropic.json | 65 +++++ compute/model-specs/baichuan.json | 61 ++++ compute/model-specs/baidu.json | 76 +++++ compute/model-specs/cohere.json | 57 ++++ compute/model-specs/deepseek.json | 58 ++++ compute/model-specs/google.json | 85 ++++++ compute/model-specs/kling.json | 49 ++++ compute/model-specs/lingyiwanwu.json | 33 +++ compute/model-specs/minimax.json | 314 ++++++++++++++++++++ compute/model-specs/mistral.json | 44 +++ compute/model-specs/moonshot.json | 93 ++++++ compute/model-specs/openai.json | 331 +++++++++++++++++++++ compute/model-specs/perplexity.json | 46 +++ compute/model-specs/qwen.json | 410 +++++++++++++++++++++++++++ compute/model-specs/stability.json | 16 ++ compute/model-specs/tencent.json | 92 ++++++ compute/model-specs/volcengine.json | 257 +++++++++++++++++ compute/model-specs/xai.json | 31 ++ compute/model-specs/xiaomi.json | 239 ++++++++++++++++ compute/model-specs/xunfei.json | 34 +++ compute/model-specs/zhipu.json | 126 ++++++++ manifest.json | 4 +- schemas/model-spec.schema.json | 121 ++++++++ scripts/validate.mjs | 2 + 25 files changed, 2668 insertions(+), 2 deletions(-) create mode 100644 compute/model-specs/_index.json create mode 100644 compute/model-specs/anthropic.json create mode 100644 compute/model-specs/baichuan.json create mode 100644 compute/model-specs/baidu.json create mode 100644 compute/model-specs/cohere.json create mode 100644 compute/model-specs/deepseek.json create mode 100644 compute/model-specs/google.json create mode 100644 compute/model-specs/kling.json create mode 100644 compute/model-specs/lingyiwanwu.json create mode 100644 compute/model-specs/minimax.json create mode 100644 compute/model-specs/mistral.json create mode 100644 compute/model-specs/moonshot.json create mode 100644 compute/model-specs/openai.json create mode 100644 compute/model-specs/perplexity.json create mode 100644 compute/model-specs/qwen.json create mode 100644 compute/model-specs/stability.json create mode 100644 compute/model-specs/tencent.json create mode 100644 compute/model-specs/volcengine.json create mode 100644 compute/model-specs/xai.json create mode 100644 compute/model-specs/xiaomi.json create mode 100644 compute/model-specs/xunfei.json create mode 100644 compute/model-specs/zhipu.json create mode 100644 schemas/model-spec.schema.json diff --git a/compute/model-specs/_index.json b/compute/model-specs/_index.json new file mode 100644 index 0000000..557283e --- /dev/null +++ b/compute/model-specs/_index.json @@ -0,0 +1,26 @@ +{ + "description": "模型规格库加载顺序索引。元素为对应 JSON 文件的 basename(不含 .json)。", + "order": [ + "anthropic", + "openai", + "google", + "deepseek", + "qwen", + "moonshot", + "zhipu", + "minimax", + "xai", + "mistral", + "xiaomi", + "baichuan", + "baidu", + "cohere", + "kling", + "lingyiwanwu", + "perplexity", + "stability", + "tencent", + "volcengine", + "xunfei" + ] +} diff --git a/compute/model-specs/anthropic.json b/compute/model-specs/anthropic.json new file mode 100644 index 0000000..ae5b0fa --- /dev/null +++ b/compute/model-specs/anthropic.json @@ -0,0 +1,65 @@ +{ + "description": "Anthropic Claude 系列模型规格。参数来源:config-center compute/providers/anthropic.json。", + "specs": [ + { + "id": "claude-opus-4-7", + "displayName": "Claude Opus 4.7", + "family": "claude-opus", + "match": { "patterns": ["claude-opus-4-7*"] }, + "spec": { + "contextWindow": 1000000, + "maxOutputTokens": 128000, + "capabilities": ["chat", "reasoning", "code", "vision", "tool_use"], + "serviceType": ["chat"], + "defaultTemperature": 1, + "supportsReasoning": true, + "description": "Anthropic 当前最强通用模型,适合复杂推理和智能体编码任务" + } + }, + { + "id": "claude-sonnet-4-6", + "displayName": "Claude Sonnet 4.6", + "family": "claude-sonnet", + "match": { "patterns": ["claude-sonnet-4-6*"] }, + "spec": { + "contextWindow": 1000000, + "maxOutputTokens": 64000, + "capabilities": ["chat", "reasoning", "code", "vision", "tool_use", "computer_use"], + "serviceType": ["chat", "computer_use"], + "defaultTemperature": 1, + "supportsReasoning": true, + "description": "Anthropic 高智能高速度模型,适合编码、工具使用和智能体任务" + } + }, + { + "id": "claude-sonnet-4-5", + "displayName": "Claude Sonnet 4.5", + "family": "claude-sonnet", + "match": { "patterns": ["claude-sonnet-4-5*"] }, + "spec": { + "contextWindow": 1000000, + "maxOutputTokens": 64000, + "capabilities": ["chat", "reasoning", "code", "vision", "tool_use"], + "serviceType": ["chat"], + "defaultTemperature": 1, + "supportsReasoning": true, + "description": "Anthropic 主力模型,长文本与代码任务表现优异" + } + }, + { + "id": "claude-haiku-4-5", + "displayName": "Claude Haiku 4.5", + "family": "claude-haiku", + "match": { "patterns": ["claude-haiku-4-5*"] }, + "spec": { + "contextWindow": 200000, + "maxOutputTokens": 64000, + "capabilities": ["chat", "reasoning", "code", "vision", "tool_use"], + "serviceType": ["chat"], + "defaultTemperature": 1, + "supportsReasoning": true, + "description": "Anthropic 最快模型,具备接近前沿模型的智能水平" + } + } + ] +} diff --git a/compute/model-specs/baichuan.json b/compute/model-specs/baichuan.json new file mode 100644 index 0000000..424917b --- /dev/null +++ b/compute/model-specs/baichuan.json @@ -0,0 +1,61 @@ +{ + "description": "百川智能 Baichuan 系列模型规格。参数来源:config-center compute/providers/baichuan.json。M3/M2 系列为医疗增强大模型,235B 参数,支持多模态。", + "specs": [ + { + "id": "Baichuan-M3-Plus", + "displayName": "百川 M3-Plus", + "family": "baichuan-m3", + "match": { "exact": ["Baichuan-M3-Plus"] }, + "spec": { + "contextWindow": 32000, + "maxOutputTokens": 32000, + "capabilities": ["chat", "reasoning", "code", "multilingual", "vision", "long_context", "medical"], + "serviceType": ["chat"], + "defaultTemperature": 0.3, + "description": "百川智能M3-Plus医疗增强模型,235B参数,幻觉率仅2.6%" + } + }, + { + "id": "Baichuan-M3", + "displayName": "百川 M3", + "family": "baichuan-m3", + "match": { "exact": ["Baichuan-M3"] }, + "spec": { + "contextWindow": 32000, + "maxOutputTokens": 32000, + "capabilities": ["chat", "reasoning", "code", "multilingual", "vision", "medical"], + "serviceType": ["chat"], + "defaultTemperature": 0.3, + "description": "百川智能M3新一代开源医疗增强模型,235B参数" + } + }, + { + "id": "Baichuan-M2-Plus", + "displayName": "百川 M2-Plus", + "family": "baichuan-m2", + "match": { "exact": ["Baichuan-M2-Plus"] }, + "spec": { + "contextWindow": 32000, + "maxOutputTokens": 32000, + "capabilities": ["chat", "reasoning", "code", "multilingual", "long_context"], + "serviceType": ["chat"], + "defaultTemperature": 0.3, + "description": "百川智能M2-Plus旗舰模型,最强推理和创作能力" + } + }, + { + "id": "Baichuan-M2", + "displayName": "百川 M2", + "family": "baichuan-m2", + "match": { "exact": ["Baichuan-M2"] }, + "spec": { + "contextWindow": 32000, + "maxOutputTokens": 32000, + "capabilities": ["chat", "reasoning", "code", "multilingual"], + "serviceType": ["chat"], + "defaultTemperature": 0.3, + "description": "百川智能M2高性能通用模型" + } + } + ] +} diff --git a/compute/model-specs/baidu.json b/compute/model-specs/baidu.json new file mode 100644 index 0000000..a474d88 --- /dev/null +++ b/compute/model-specs/baidu.json @@ -0,0 +1,76 @@ +{ + "description": "百度文心 ERNIE 系列模型规格。参数来源:config-center compute/providers/baidu.json。ernie-x1.1 为纯推理模型,defaultTemperature 为 null;ernie-5.0-thinking-latest 同时支持 chat 和 reasoning。", + "specs": [ + { + "id": "ernie-5.0-thinking-latest", + "displayName": "文心 ERNIE 5.0", + "family": "ernie-5", + "match": { "exact": ["ernie-5.0-thinking-latest"], "patterns": ["ernie-5.0-thinking*"] }, + "spec": { + "contextWindow": 128000, + "maxOutputTokens": 65536, + "capabilities": ["chat", "reasoning", "vision", "multimodal", "tool_use"], + "serviceType": ["chat", "reasoning"], + "supportsReasoning": true, + "description": "百度最新旗舰模型,支持深度推理、多模态和工具调用" + } + }, + { + "id": "ernie-5.0", + "displayName": "文心 ERNIE 5.0 非思考", + "family": "ernie-5", + "match": { "exact": ["ernie-5.0"] }, + "spec": { + "contextWindow": 131072, + "maxOutputTokens": 65536, + "capabilities": ["chat", "vision", "multimodal", "tool_use"], + "serviceType": ["chat"], + "defaultTemperature": 0.95, + "description": "百度 ERNIE 5.0 旗舰模型,128K 上下文,最大输出 65536 token" + } + }, + { + "id": "ernie-4.5-turbo-128k", + "displayName": "文心 ERNIE 4.5 Turbo", + "family": "ernie-4.5", + "match": { "exact": ["ernie-4.5-turbo-128k"], "patterns": ["ernie-4.5-turbo-128k*"] }, + "spec": { + "contextWindow": 131072, + "maxOutputTokens": 12288, + "capabilities": ["chat", "code", "vision", "long_context", "fast"], + "serviceType": ["chat"], + "defaultTemperature": 0.8, + "description": "百度高性价比长上下文模型,128K 窗口,最大输出 12288 token" + } + }, + { + "id": "ernie-4.5-turbo-20260402", + "displayName": "文心 ERNIE 4.5 Turbo 20260402", + "family": "ernie-4.5", + "match": { "exact": ["ernie-4.5-turbo-20260402"] }, + "spec": { + "contextWindow": 131072, + "maxOutputTokens": 12288, + "capabilities": ["chat", "code", "vision", "long_context", "fast"], + "serviceType": ["chat"], + "defaultTemperature": 0.8, + "description": "百度 ERNIE 4.5 Turbo 20260402 快照版,128K 上下文" + } + }, + { + "id": "ernie-x1.1", + "displayName": "文心 ERNIE X1.1", + "family": "ernie-x1", + "match": { "exact": ["ernie-x1.1"], "patterns": ["ernie-x1*"] }, + "spec": { + "contextWindow": 65536, + "maxOutputTokens": 65536, + "capabilities": ["chat", "reasoning", "deep_thinking", "math", "code"], + "serviceType": ["reasoning"], + "defaultTemperature": null, + "supportsReasoning": true, + "description": "百度 ERNIE X1.1 深度思考推理模型,64K 上下文" + } + } + ] +} diff --git a/compute/model-specs/cohere.json b/compute/model-specs/cohere.json new file mode 100644 index 0000000..c0ddb71 --- /dev/null +++ b/compute/model-specs/cohere.json @@ -0,0 +1,57 @@ +{ + "description": "Cohere 系列模型规格。参数来源:config-center compute/providers/cohere.json。包含对话、Embedding 和 Rerank 三类服务。", + "specs": [ + { + "id": "command-a-03-2025", + "displayName": "Command A", + "family": "command-a", + "match": { "exact": ["command-a-03-2025"], "patterns": ["command-a*"] }, + "spec": { + "contextWindow": 256000, + "maxOutputTokens": 8000, + "capabilities": ["chat", "reasoning", "code", "vision", "tool_use", "rag", "long_context"], + "serviceType": ["chat"], + "defaultTemperature": 0.3, + "description": "Cohere 旗舰对话模型,256K 上下文,擅长 RAG 和工具调用" + } + }, + { + "id": "command-r7b-12-2024", + "displayName": "Command R7B", + "family": "command-r7b", + "match": { "exact": ["command-r7b-12-2024"], "patterns": ["command-r7b*"] }, + "spec": { + "contextWindow": 128000, + "maxOutputTokens": 4000, + "capabilities": ["chat", "reasoning", "tool_use", "rag", "fast"], + "serviceType": ["fast"], + "defaultTemperature": 0.3, + "description": "Cohere 小型高速对话模型,适合高吞吐、低延迟场景" + } + }, + { + "id": "embed-v4.0", + "displayName": "Embed V4", + "family": "embed-v4", + "match": { "exact": ["embed-v4.0"], "patterns": ["embed-v4*"] }, + "spec": { + "contextWindow": 128000, + "capabilities": ["text_embedding", "multilingual"], + "serviceType": ["embedding"], + "description": "Cohere 最新 Embedding 模型,128K 上下文,多语言支持" + } + }, + { + "id": "rerank-v3.5", + "displayName": "Rerank V3.5", + "family": "rerank-v3", + "match": { "exact": ["rerank-v3.5"], "patterns": ["rerank-v3*"] }, + "spec": { + "contextWindow": 4096, + "capabilities": ["rerank", "semantic_reranking"], + "serviceType": ["rerank"], + "description": "Cohere 语义重排序模型,用于检索结果精排" + } + } + ] +} diff --git a/compute/model-specs/deepseek.json b/compute/model-specs/deepseek.json new file mode 100644 index 0000000..7a18b90 --- /dev/null +++ b/compute/model-specs/deepseek.json @@ -0,0 +1,58 @@ +{ + "description": "DeepSeek 系列模型规格。参数来源:config-center compute/providers/deepseek.json。", + "specs": [ + { + "id": "deepseek-chat", + "displayName": "DeepSeek Chat", + "family": "deepseek-chat", + "match": { "patterns": ["deepseek-chat*"] }, + "spec": { + "contextWindow": 1000000, + "maxOutputTokens": 384000, + "capabilities": ["chat", "code", "reasoning", "multilingual", "tool_use"], + "serviceType": ["chat"], + "defaultTemperature": 1 + } + }, + { + "id": "deepseek-reasoner", + "displayName": "DeepSeek Reasoner", + "family": "deepseek-reasoner", + "match": { "patterns": ["deepseek-reasoner*"] }, + "spec": { + "contextWindow": 1000000, + "maxOutputTokens": 384000, + "capabilities": ["chat", "reasoning", "deep_thinking", "code", "math", "tool_use"], + "serviceType": ["reasoning"], + "defaultTemperature": null, + "supportsReasoning": true + } + }, + { + "id": "deepseek-v4-pro", + "displayName": "DeepSeek V4 Pro", + "family": "deepseek-v4", + "spec": { + "contextWindow": 1000000, + "maxOutputTokens": 384000, + "capabilities": ["chat", "code", "reasoning", "deep_thinking", "multilingual", "tool_use", "math"], + "serviceType": ["chat", "reasoning"], + "defaultTemperature": 1, + "supportsReasoning": true + } + }, + { + "id": "deepseek-v4-flash", + "displayName": "DeepSeek V4 Flash", + "family": "deepseek-v4", + "spec": { + "contextWindow": 1000000, + "maxOutputTokens": 384000, + "capabilities": ["chat", "code", "reasoning", "deep_thinking", "multilingual", "tool_use"], + "serviceType": ["chat", "reasoning"], + "defaultTemperature": 1, + "supportsReasoning": true + } + } + ] +} diff --git a/compute/model-specs/google.json b/compute/model-specs/google.json new file mode 100644 index 0000000..1375928 --- /dev/null +++ b/compute/model-specs/google.json @@ -0,0 +1,85 @@ +{ + "description": "Google Gemini 系列模型规格。参数来源:config-center compute/providers/google.json。", + "specs": [ + { + "id": "gemini-3.1-pro-preview", + "displayName": "Gemini 3.1 Pro", + "family": "gemini-3.1", + "spec": { + "contextWindow": 1048576, + "maxOutputTokens": 65536, + "capabilities": ["chat", "reasoning", "code", "vision", "ultra_long_context", "tool_use"], + "serviceType": ["chat"], + "defaultTemperature": 1, + "supportsReasoning": true + } + }, + { + "id": "gemini-3-flash-preview", + "displayName": "Gemini 3 Flash", + "family": "gemini-3", + "spec": { + "contextWindow": 1048576, + "maxOutputTokens": 65536, + "capabilities": ["chat", "reasoning", "code", "vision", "ultra_long_context", "tool_use", "fast"], + "serviceType": ["chat"], + "defaultTemperature": 1, + "supportsReasoning": true + } + }, + { + "id": "gemini-2.5-pro", + "displayName": "Gemini 2.5 Pro", + "family": "gemini-2.5", + "match": { "patterns": ["gemini-2.5-pro*"] }, + "spec": { + "contextWindow": 1048576, + "maxOutputTokens": 65536, + "capabilities": ["chat", "reasoning", "code", "vision", "ultra_long_context", "tool_use"], + "serviceType": ["chat"], + "defaultTemperature": 1, + "supportsReasoning": true + } + }, + { + "id": "gemini-2.5-flash", + "displayName": "Gemini 2.5 Flash", + "family": "gemini-2.5", + "match": { "patterns": ["gemini-2.5-flash*"] }, + "spec": { + "contextWindow": 1048576, + "maxOutputTokens": 65536, + "capabilities": ["chat", "reasoning", "code", "vision", "ultra_long_context", "tool_use", "fast"], + "serviceType": ["chat"], + "defaultTemperature": 1, + "supportsReasoning": true + } + }, + { + "id": "gemini-3.1-flash-lite-preview", + "displayName": "Gemini 3.1 Flash-Lite Preview", + "family": "gemini-3.1", + "match": { "exact": ["gemini-3.1-flash-lite-preview"], "patterns": ["gemini-3.1-flash-lite*"] }, + "spec": { + "contextWindow": 1048576, + "maxOutputTokens": 65536, + "capabilities": ["chat", "reasoning", "code", "vision", "ultra_long_context", "tool_use", "fast"], + "serviceType": ["fast"], + "defaultTemperature": 1, + "description": "Google Gemini 3.1 Flash-Lite Preview,低成本高吞吐多模态模型" + } + }, + { + "id": "text-embedding-005", + "displayName": "Text Embedding 005", + "family": "text-embedding", + "match": { "exact": ["text-embedding-005"] }, + "spec": { + "contextWindow": 2048, + "capabilities": ["text_embedding", "semantic_search"], + "serviceType": ["embedding"], + "description": "Google 文本嵌入模型,768 维度" + } + } + ] +} diff --git a/compute/model-specs/kling.json b/compute/model-specs/kling.json new file mode 100644 index 0000000..281765c --- /dev/null +++ b/compute/model-specs/kling.json @@ -0,0 +1,49 @@ +{ + "description": "快手可灵视频生成系列模型规格。参数来源:config-center compute/providers/kling.json。所有模型均为视频生成(video_gen),无上下文窗口概念。", + "specs": [ + { + "id": "kling-v2-5-turbo", + "displayName": "可灵 V2.5 Turbo", + "family": "kling-v2-5", + "match": { "exact": ["kling-v2-5-turbo"], "patterns": ["kling-v2-5-turbo*"] }, + "spec": { + "capabilities": ["video_generation", "chinese_optimized", "high_quality", "fast"], + "serviceType": ["video_gen"], + "description": "可灵最新视频生成模型,高性价比" + } + }, + { + "id": "kling-v2-5-turbo-pro", + "displayName": "可灵 V2.5 Turbo Pro", + "family": "kling-v2-5", + "match": { "exact": ["kling-v2-5-turbo-pro"] }, + "spec": { + "capabilities": ["video_generation", "chinese_optimized", "ultra_quality"], + "serviceType": ["video_gen"], + "description": "可灵高品质视频生成,支持 4K 分辨率" + } + }, + { + "id": "kling-v2", + "displayName": "可灵 V2", + "family": "kling-v2", + "match": { "exact": ["kling-v2"] }, + "spec": { + "capabilities": ["video_generation", "chinese_optimized", "high_quality"], + "serviceType": ["video_gen"], + "description": "可灵文生视频旗舰模型" + } + }, + { + "id": "kling-v2-master", + "displayName": "可灵 V2 Master", + "family": "kling-v2", + "match": { "exact": ["kling-v2-master"] }, + "spec": { + "capabilities": ["video_generation", "chinese_optimized", "ultra_quality"], + "serviceType": ["video_gen"], + "description": "可灵最高品质视频生成,支持 4K 分辨率" + } + } + ] +} diff --git a/compute/model-specs/lingyiwanwu.json b/compute/model-specs/lingyiwanwu.json new file mode 100644 index 0000000..d07386e --- /dev/null +++ b/compute/model-specs/lingyiwanwu.json @@ -0,0 +1,33 @@ +{ + "description": "零一万物 Yi 系列模型规格。参数来源:config-center compute/providers/lingyiwanwu.json。", + "specs": [ + { + "id": "yi-lightning", + "displayName": "Yi Lightning", + "family": "yi-lightning", + "match": { "exact": ["yi-lightning"], "patterns": ["yi-lightning*"] }, + "spec": { + "contextWindow": 16000, + "maxOutputTokens": 4096, + "capabilities": ["chat", "reasoning", "code", "fast", "smart_routing"], + "serviceType": ["chat"], + "defaultTemperature": 0.3, + "description": "零一万物高性能模型,16K 上下文,智能路由,极高性价比" + } + }, + { + "id": "yi-vision-v2", + "displayName": "Yi Vision V2", + "family": "yi-vision", + "match": { "exact": ["yi-vision-v2"], "patterns": ["yi-vision*"] }, + "spec": { + "contextWindow": 16000, + "maxOutputTokens": 4096, + "capabilities": ["chat", "vision", "image_understanding", "ocr", "chart_analysis"], + "serviceType": ["vision"], + "defaultTemperature": 0.3, + "description": "零一万物复杂视觉任务模型,16K 上下文,支持多图分析" + } + } + ] +} diff --git a/compute/model-specs/minimax.json b/compute/model-specs/minimax.json new file mode 100644 index 0000000..71239a6 --- /dev/null +++ b/compute/model-specs/minimax.json @@ -0,0 +1,314 @@ +{ + "description": "MiniMax 系列模型规格。参数来源:config-center compute/providers/minimax.json。id 保留上游 model_name 原始写法(含大小写与点号),匹配时由匹配器归一化处理。", + "specs": [ + { + "id": "MiniMax-M2.7", + "displayName": "MiniMax M2.7", + "family": "minimax-m2.7", + "spec": { + "contextWindow": 204800, + "maxOutputTokens": 131072, + "capabilities": ["chat", "reasoning", "code", "tool_use", "vision"], + "serviceType": ["chat", "reasoning"], + "defaultTemperature": 1, + "supportsReasoning": true + } + }, + { + "id": "MiniMax-M2.5", + "displayName": "MiniMax M2.5", + "family": "minimax-m2.5", + "spec": { + "contextWindow": 204800, + "maxOutputTokens": 131072, + "capabilities": ["chat", "reasoning", "code", "tool_use", "long_context"], + "serviceType": ["chat", "reasoning"], + "defaultTemperature": 1, + "supportsReasoning": true + } + }, + { + "id": "MiniMax-M2", + "displayName": "MiniMax M2", + "family": "minimax-m2", + "spec": { + "contextWindow": 204800, + "maxOutputTokens": 131072, + "capabilities": ["chat", "code", "tool_use"], + "serviceType": ["chat"], + "defaultTemperature": 1 + } + }, + { + "id": "MiniMax-M2.7-highspeed", + "displayName": "MiniMax M2.7 高速版", + "family": "minimax-m2.7", + "match": { "exact": ["MiniMax-M2.7-highspeed"] }, + "spec": { + "contextWindow": 204800, + "maxOutputTokens": 131072, + "capabilities": ["chat", "reasoning", "code", "tool_use", "fast", "vision"], + "serviceType": ["fast"], + "defaultTemperature": 1, + "description": "MiniMax M2.7 极速版,效果一致,输出更快,适合低延迟场景" + } + }, + { + "id": "MiniMax-M2.5-highspeed", + "displayName": "MiniMax M2.5 高速版", + "family": "minimax-m2.5", + "match": { "exact": ["MiniMax-M2.5-highspeed"] }, + "spec": { + "contextWindow": 204800, + "maxOutputTokens": 131072, + "capabilities": ["chat", "reasoning", "code", "tool_use", "fast"], + "serviceType": ["fast"], + "defaultTemperature": 1, + "description": "MiniMax M2.5 高速推理版本(100TPS),适合低延迟场景" + } + }, + { + "id": "MiniMax-M2.1", + "displayName": "MiniMax M2.1", + "family": "minimax-m2.1", + "match": { "exact": ["MiniMax-M2.1"] }, + "spec": { + "contextWindow": 204800, + "maxOutputTokens": 131072, + "capabilities": ["chat", "code", "tool_use", "reasoning"], + "serviceType": ["chat"], + "defaultTemperature": 1, + "description": "MiniMax 上一代主力模型,200K 上下文,性价比优秀" + } + }, + { + "id": "MiniMax-M2.1-highspeed", + "displayName": "MiniMax M2.1 高速版", + "family": "minimax-m2.1", + "match": { "exact": ["MiniMax-M2.1-highspeed"] }, + "spec": { + "contextWindow": 204800, + "maxOutputTokens": 131072, + "capabilities": ["chat", "reasoning", "code", "tool_use", "fast"], + "serviceType": ["fast"], + "defaultTemperature": 1, + "description": "MiniMax M2.1 高速推理版本,适合低延迟场景" + } + }, + { + "id": "M2-her", + "displayName": "MiniMax M2 Her", + "family": "minimax-m2", + "match": { "exact": ["M2-her"] }, + "spec": { + "contextWindow": 204800, + "maxOutputTokens": 131072, + "capabilities": ["chat", "roleplay"], + "serviceType": ["chat"], + "defaultTemperature": 1, + "description": "MiniMax 角色扮演对话模型,专为多轮角色对话设计" + } + }, + { + "id": "MiniMax-Text-01", + "displayName": "MiniMax Text 01", + "family": "minimax-text", + "match": { "exact": ["MiniMax-Text-01"] }, + "spec": { + "contextWindow": 1000000, + "maxOutputTokens": 131072, + "capabilities": ["chat", "reasoning", "code", "long_context"], + "serviceType": ["chat"], + "defaultTemperature": 0.1, + "description": "MiniMax 百万级长上下文文本模型,擅长长文档处理" + } + }, + { + "id": "image-01", + "displayName": "MiniMax Image 01", + "family": "minimax-image", + "match": { "exact": ["image-01"] }, + "spec": { + "capabilities": ["image_generation", "subject_reference", "chinese_optimized"], + "serviceType": ["image_gen"], + "description": "MiniMax 文生图/图生图模型,支持主题参考(角色一致性)" + } + }, + { + "id": "image-01-live", + "displayName": "MiniMax Image 01 Live", + "family": "minimax-image", + "match": { "exact": ["image-01-live"] }, + "spec": { + "capabilities": ["image_generation", "style_control", "subject_reference", "chinese_optimized"], + "serviceType": ["image_gen"], + "description": "MiniMax 文生图模型(Live 版),支持画风控制" + } + }, + { + "id": "speech-2.8-hd", + "displayName": "MiniMax Speech 2.8 HD", + "family": "minimax-speech", + "match": { "exact": ["speech-2.8-hd"] }, + "spec": { + "capabilities": ["tts", "multilingual", "emotion_control", "voice_clone", "chinese_optimized"], + "serviceType": ["tts"], + "description": "MiniMax 最新高清语音合成,40+ 语言、100+ 预置音色" + } + }, + { + "id": "speech-2.8-turbo", + "displayName": "MiniMax Speech 2.8 Turbo", + "family": "minimax-speech", + "match": { "exact": ["speech-2.8-turbo"] }, + "spec": { + "capabilities": ["tts", "multilingual", "emotion_control", "fast", "chinese_optimized"], + "serviceType": ["tts"], + "description": "MiniMax 快速语音合成模型,速度优先,适合实时场景" + } + }, + { + "id": "speech-2.6-hd", + "displayName": "MiniMax Speech 2.6 HD", + "family": "minimax-speech", + "match": { "exact": ["speech-2.6-hd"] }, + "spec": { + "capabilities": ["tts", "multilingual", "emotion_control", "voice_clone", "chinese_optimized"], + "serviceType": ["tts"], + "description": "MiniMax 高清语音合成(2.6 版),音质优秀,生成速度快" + } + }, + { + "id": "speech-2.6-turbo", + "displayName": "MiniMax Speech 2.6 Turbo", + "family": "minimax-speech", + "match": { "exact": ["speech-2.6-turbo"] }, + "spec": { + "capabilities": ["tts", "multilingual", "emotion_control", "fast", "chinese_optimized"], + "serviceType": ["tts"], + "description": "MiniMax 快速语音合成(2.6 版),低延迟响应" + } + }, + { + "id": "speech-02-hd", + "displayName": "MiniMax Speech 02 HD", + "family": "minimax-speech", + "match": { "exact": ["speech-02-hd"] }, + "spec": { + "capabilities": ["tts", "multilingual", "voice_clone", "chinese_optimized"], + "serviceType": ["tts"], + "description": "MiniMax 高清语音合成(历史版本),韵律稳定性优秀" + } + }, + { + "id": "speech-02-turbo", + "displayName": "MiniMax Speech 02 Turbo", + "family": "minimax-speech", + "match": { "exact": ["speech-02-turbo"] }, + "spec": { + "capabilities": ["tts", "multilingual", "fast", "chinese_optimized"], + "serviceType": ["tts"], + "description": "MiniMax 快速语音合成(历史版本),增强小语种支持" + } + }, + { + "id": "MiniMax-Hailuo-2.3", + "displayName": "海螺视频 2.3", + "family": "minimax-hailuo", + "match": { "exact": ["MiniMax-Hailuo-2.3"] }, + "spec": { + "capabilities": ["video_generation", "text_to_video", "image_to_video", "camera_control", "chinese_optimized", "high_quality"], + "serviceType": ["video_gen"], + "description": "MiniMax 最新视频生成模型,支持 15 种运镜指令控制" + } + }, + { + "id": "MiniMax-Hailuo-2.3-Fast", + "displayName": "海螺视频 2.3 快速版", + "family": "minimax-hailuo", + "match": { "exact": ["MiniMax-Hailuo-2.3-Fast"] }, + "spec": { + "capabilities": ["video_generation", "image_to_video", "camera_control", "fast", "chinese_optimized"], + "serviceType": ["video_gen"], + "description": "海螺视频快速版本(仅图生视频),生成速度更快" + } + }, + { + "id": "T2V-01-Director", + "displayName": "海螺视频 Director", + "family": "minimax-hailuo", + "match": { "exact": ["T2V-01-Director"] }, + "spec": { + "capabilities": ["video_generation", "text_to_video", "camera_control", "chinese_optimized"], + "serviceType": ["video_gen"], + "description": "导演级文生视频模型,精准运镜控制(历史版本)" + } + }, + { + "id": "MiniMax-Hailuo-02", + "displayName": "海螺视频 02", + "family": "minimax-hailuo", + "match": { "exact": ["MiniMax-Hailuo-02"] }, + "spec": { + "capabilities": ["video_generation", "text_to_video", "image_to_video", "chinese_optimized"], + "serviceType": ["video_gen"], + "description": "海螺视频 02,原生 1080P 生成(历史版本)" + } + }, + { + "id": "S2V-01", + "displayName": "海螺视频 主体参考", + "family": "minimax-hailuo", + "match": { "exact": ["S2V-01"] }, + "spec": { + "capabilities": ["video_generation", "subject_reference", "chinese_optimized"], + "serviceType": ["video_gen"], + "description": "主体参考视频生成,基于参考图保持角色一致性" + } + }, + { + "id": "music-2.6", + "displayName": "MiniMax Music 2.6", + "family": "minimax-music", + "match": { "exact": ["music-2.6"] }, + "spec": { + "capabilities": ["music_generation", "lyrics_input", "instrumental", "chinese_optimized"], + "serviceType": ["music_gen"], + "description": "MiniMax AI 音乐生成模型,支持音乐灵感描述和歌词输入" + } + }, + { + "id": "music-2.5+", + "displayName": "MiniMax Music 2.5+", + "family": "minimax-music", + "match": { "exact": ["music-2.5+"] }, + "spec": { + "capabilities": ["music_generation", "lyrics_input", "instrumental", "chinese_optimized"], + "serviceType": ["music_gen"], + "description": "MiniMax AI 音乐生成(2.5+ 版),音质提升" + } + }, + { + "id": "music-2.5", + "displayName": "MiniMax Music 2.5", + "family": "minimax-music", + "match": { "exact": ["music-2.5"] }, + "spec": { + "capabilities": ["music_generation", "lyrics_input", "instrumental", "chinese_optimized"], + "serviceType": ["music_gen"], + "description": "MiniMax AI 音乐生成(2.5 版)" + } + }, + { + "id": "music-cover", + "displayName": "MiniMax Music Cover", + "family": "minimax-music", + "match": { "exact": ["music-cover"] }, + "spec": { + "capabilities": ["music_generation", "cover", "chinese_optimized"], + "serviceType": ["music_gen"], + "description": "MiniMax AI 翻唱模型,基于参考音频生成翻唱版本" + } + } + ] +} diff --git a/compute/model-specs/mistral.json b/compute/model-specs/mistral.json new file mode 100644 index 0000000..b5dd21e --- /dev/null +++ b/compute/model-specs/mistral.json @@ -0,0 +1,44 @@ +{ + "description": "Mistral 系列模型规格。参数来源:config-center compute/providers/mistral.json。", + "specs": [ + { + "id": "mistral-large-latest", + "displayName": "Mistral Large", + "family": "mistral-large", + "match": { "patterns": ["mistral-large*"] }, + "spec": { + "contextWindow": 256000, + "maxOutputTokens": 262144, + "capabilities": ["chat", "reasoning", "code", "vision", "tool_use", "long_context"], + "serviceType": ["chat"], + "defaultTemperature": 0.7 + } + }, + { + "id": "mistral-small-latest", + "displayName": "Mistral Small", + "family": "mistral-small", + "match": { "patterns": ["mistral-small*"] }, + "spec": { + "contextWindow": 128000, + "maxOutputTokens": 8192, + "capabilities": ["chat", "code", "vision", "reasoning", "fast", "tool_use"], + "serviceType": ["fast"], + "defaultTemperature": 0.7 + } + }, + { + "id": "codestral-latest", + "displayName": "Codestral", + "family": "codestral", + "match": { "patterns": ["codestral*"] }, + "spec": { + "contextWindow": 128000, + "maxOutputTokens": 32768, + "capabilities": ["code", "fill_in_the_middle"], + "serviceType": ["chat"], + "defaultTemperature": 0.7 + } + } + ] +} diff --git a/compute/model-specs/moonshot.json b/compute/model-specs/moonshot.json new file mode 100644 index 0000000..b2b90dd --- /dev/null +++ b/compute/model-specs/moonshot.json @@ -0,0 +1,93 @@ +{ + "description": "Moonshot Kimi 系列模型规格。参数来源:config-center compute/providers/moonshot.json。注意 kimi-k2 存在多个子版本(k2.5/k2.6/k2-thinking),故 kimi-k2 仅用 exact 主键匹配,不用宽 pattern。", + "specs": [ + { + "id": "kimi-k2.6", + "displayName": "Kimi K2.6", + "family": "kimi-k2.6", + "spec": { + "contextWindow": 262144, + "maxOutputTokens": 16384, + "capabilities": ["chat", "reasoning", "code", "tool_use", "agent", "long_context", "vision"], + "serviceType": ["chat"], + "defaultTemperature": 1, + "supportsReasoning": true + } + }, + { + "id": "kimi-k2.5", + "displayName": "Kimi K2.5", + "family": "kimi-k2.5", + "spec": { + "contextWindow": 256000, + "maxOutputTokens": 32768, + "capabilities": ["chat", "reasoning", "code", "tool_use", "agent", "long_context", "vision"], + "serviceType": ["chat"], + "defaultTemperature": 1, + "supportsReasoning": true + } + }, + { + "id": "kimi-k2-thinking", + "displayName": "Kimi K2 Thinking", + "family": "kimi-k2-thinking", + "spec": { + "contextWindow": 256000, + "maxOutputTokens": 16384, + "capabilities": ["reasoning", "math", "code", "deep_thinking", "long_context"], + "serviceType": ["reasoning"], + "defaultTemperature": 1, + "supportsReasoning": true + } + }, + { + "id": "kimi-k2", + "displayName": "Kimi K2", + "family": "kimi-k2", + "spec": { + "contextWindow": 256000, + "maxOutputTokens": 8192, + "capabilities": ["chat", "reasoning", "code", "tool_use", "agent", "long_context"], + "serviceType": ["chat"], + "defaultTemperature": 0.6, + "supportsReasoning": true + } + }, + { + "id": "moonshot-v1-8k", + "displayName": "Moonshot v1 8K", + "family": "moonshot-v1", + "spec": { + "contextWindow": 8192, + "maxOutputTokens": 4096, + "capabilities": ["chat", "code"], + "serviceType": ["chat"], + "defaultTemperature": 0 + } + }, + { + "id": "moonshot-v1-32k", + "displayName": "Moonshot v1 32K", + "family": "moonshot-v1", + "spec": { + "contextWindow": 32768, + "maxOutputTokens": 4096, + "capabilities": ["chat", "code", "long_context"], + "serviceType": ["chat"], + "defaultTemperature": 0 + } + }, + { + "id": "moonshot-v1-128k", + "displayName": "Moonshot v1 128K", + "family": "moonshot-v1", + "spec": { + "contextWindow": 131072, + "maxOutputTokens": 4096, + "capabilities": ["chat", "code", "long_context"], + "serviceType": ["chat"], + "defaultTemperature": 0 + } + } + ] +} diff --git a/compute/model-specs/openai.json b/compute/model-specs/openai.json new file mode 100644 index 0000000..80268f5 --- /dev/null +++ b/compute/model-specs/openai.json @@ -0,0 +1,331 @@ +{ + "description": "OpenAI GPT / o 系列模型规格。参数来源:config-center compute/providers/openai.json。注意:gpt-4o / gpt-5 等存在子型号(-mini/-nano),故只用 exact 主键匹配,不使用宽泛 pattern 以防误吞子型号。o 系列 serviceType 由 responses 调整为 reasoning(responses 为 OpenAI 直连专有,对 NewAPI 网关不适用)。", + "specs": [ + { + "id": "gpt-5.2", + "displayName": "GPT-5.2", + "family": "gpt-5", + "spec": { + "contextWindow": 400000, + "maxOutputTokens": 128000, + "capabilities": ["chat", "reasoning", "code", "vision", "long_context", "tool_use"], + "serviceType": ["chat"], + "defaultTemperature": 1, + "supportsReasoning": true + } + }, + { + "id": "gpt-5.1", + "displayName": "GPT-5.1", + "family": "gpt-5", + "spec": { + "contextWindow": 400000, + "maxOutputTokens": 128000, + "capabilities": ["chat", "reasoning", "code", "vision", "long_context", "tool_use"], + "serviceType": ["chat"], + "defaultTemperature": 1, + "supportsReasoning": true + } + }, + { + "id": "gpt-5", + "displayName": "GPT-5", + "family": "gpt-5", + "spec": { + "contextWindow": 400000, + "maxOutputTokens": 128000, + "capabilities": ["chat", "reasoning", "code", "vision", "long_context", "tool_use"], + "serviceType": ["chat"], + "defaultTemperature": 1, + "supportsReasoning": true + } + }, + { + "id": "gpt-5-mini", + "displayName": "GPT-5 Mini", + "family": "gpt-5", + "match": { "patterns": ["gpt-5-mini*"] }, + "spec": { + "contextWindow": 400000, + "maxOutputTokens": 128000, + "capabilities": ["chat", "fast", "tool_use", "code", "vision"], + "serviceType": ["chat"], + "defaultTemperature": 1, + "supportsReasoning": true + } + }, + { + "id": "gpt-5-nano", + "displayName": "GPT-5 Nano", + "family": "gpt-5", + "match": { "patterns": ["gpt-5-nano*"] }, + "spec": { + "contextWindow": 400000, + "maxOutputTokens": 128000, + "capabilities": ["chat", "code", "fast"], + "serviceType": ["fast"], + "defaultTemperature": 1 + } + }, + { + "id": "gpt-4.1", + "displayName": "GPT-4.1", + "family": "gpt-4.1", + "spec": { + "contextWindow": 1047576, + "maxOutputTokens": 32768, + "capabilities": ["chat", "reasoning", "code", "vision", "ultra_long_context", "tool_use"], + "serviceType": ["chat"], + "defaultTemperature": 1 + } + }, + { + "id": "gpt-4o", + "displayName": "GPT-4o", + "family": "gpt-4o", + "spec": { + "contextWindow": 128000, + "maxOutputTokens": 16384, + "capabilities": ["chat", "vision", "image_understanding", "tool_use"], + "serviceType": ["vision"], + "defaultTemperature": 1 + } + }, + { + "id": "gpt-4o-mini", + "displayName": "GPT-4o Mini", + "family": "gpt-4o", + "match": { "patterns": ["gpt-4o-mini*"] }, + "spec": { + "contextWindow": 128000, + "maxOutputTokens": 16384, + "capabilities": ["chat", "code", "vision", "tool_use"], + "serviceType": ["vision"], + "defaultTemperature": 1 + } + }, + { + "id": "o3", + "displayName": "o3", + "family": "o3", + "spec": { + "contextWindow": 200000, + "maxOutputTokens": 100000, + "capabilities": ["reasoning", "deep_thinking", "code", "math", "science", "tool_use"], + "serviceType": ["reasoning"], + "defaultTemperature": null, + "supportsReasoning": true + } + }, + { + "id": "o3-mini", + "displayName": "o3 Mini", + "family": "o3", + "match": { "patterns": ["o3-mini*"] }, + "spec": { + "contextWindow": 200000, + "maxOutputTokens": 100000, + "capabilities": ["reasoning", "math", "code", "fast"], + "serviceType": ["reasoning"], + "defaultTemperature": null, + "supportsReasoning": true + } + }, + { + "id": "o4-mini", + "displayName": "o4 Mini", + "family": "o4", + "match": { "patterns": ["o4-mini*"] }, + "spec": { + "contextWindow": 200000, + "maxOutputTokens": 100000, + "capabilities": ["reasoning", "math", "code", "tool_use", "vision"], + "serviceType": ["reasoning"], + "defaultTemperature": null, + "supportsReasoning": true + } + }, + { + "id": "gpt-5.2-pro", + "displayName": "GPT-5.2 Pro", + "family": "gpt-5", + "match": { "exact": ["gpt-5.2-pro"] }, + "spec": { + "contextWindow": 400000, + "maxOutputTokens": 128000, + "capabilities": ["chat", "reasoning", "code", "vision", "long_context", "tool_use"], + "serviceType": ["chat"], + "defaultTemperature": 1, + "supportsReasoning": true, + "description": "OpenAI GPT-5.2 Pro 专业版,最高性能" + } + }, + { + "id": "gpt-5-pro", + "displayName": "GPT-5 Pro", + "family": "gpt-5", + "match": { "exact": ["gpt-5-pro"] }, + "spec": { + "contextWindow": 400000, + "maxOutputTokens": 272000, + "capabilities": ["chat", "reasoning", "code", "vision", "long_context", "tool_use"], + "serviceType": ["chat"], + "defaultTemperature": 1, + "supportsReasoning": true, + "description": "OpenAI GPT-5 Pro 专业版高性能推理模型" + } + }, + { + "id": "gpt-4.1-mini", + "displayName": "GPT-4.1 mini", + "family": "gpt-4.1", + "match": { "exact": ["gpt-4.1-mini"], "patterns": ["gpt-4.1-mini*"] }, + "spec": { + "contextWindow": 1047576, + "maxOutputTokens": 32768, + "capabilities": ["chat", "code", "vision", "ultra_long_context", "tool_use"], + "serviceType": ["chat"], + "defaultTemperature": 1, + "description": "OpenAI GPT-4.1 mini,1M 上下文,高性价比" + } + }, + { + "id": "gpt-4.1-nano", + "displayName": "GPT-4.1 nano", + "family": "gpt-4.1", + "match": { "exact": ["gpt-4.1-nano"], "patterns": ["gpt-4.1-nano*"] }, + "spec": { + "contextWindow": 1047576, + "maxOutputTokens": 32768, + "capabilities": ["chat", "code", "ultra_long_context", "fast"], + "serviceType": ["fast"], + "defaultTemperature": 1, + "description": "OpenAI GPT-4.1 nano,1M 上下文,极致性价比" + } + }, + { + "id": "text-embedding-3-small", + "displayName": "text-embedding-3-small", + "family": "text-embedding-3", + "match": { "exact": ["text-embedding-3-small"] }, + "spec": { + "contextWindow": 8192, + "capabilities": ["text_embedding", "semantic_search"], + "serviceType": ["embedding"], + "description": "OpenAI 轻量文本向量化模型,1536 维" + } + }, + { + "id": "text-embedding-3-large", + "displayName": "text-embedding-3-large", + "family": "text-embedding-3", + "match": { "exact": ["text-embedding-3-large"] }, + "spec": { + "contextWindow": 8192, + "capabilities": ["text_embedding", "semantic_search"], + "serviceType": ["embedding"], + "description": "OpenAI 高精度文本向量化模型,3072 维" + } + }, + { + "id": "tts-1", + "displayName": "TTS-1", + "family": "tts-1", + "match": { "exact": ["tts-1"] }, + "spec": { + "capabilities": ["tts"], + "serviceType": ["tts"], + "description": "OpenAI 标准语音合成" + } + }, + { + "id": "tts-1-hd", + "displayName": "TTS-1-HD", + "family": "tts-1", + "match": { "exact": ["tts-1-hd"] }, + "spec": { + "capabilities": ["tts"], + "serviceType": ["tts"], + "description": "OpenAI 高清语音合成" + } + }, + { + "id": "whisper-1", + "displayName": "Whisper", + "family": "whisper", + "match": { "exact": ["whisper-1"] }, + "spec": { + "capabilities": ["asr", "multilingual"], + "serviceType": ["asr"], + "description": "OpenAI 通用语音识别" + } + }, + { + "id": "o3-pro", + "displayName": "o3-pro", + "family": "o3", + "match": { "exact": ["o3-pro"] }, + "spec": { + "contextWindow": 200000, + "maxOutputTokens": 100000, + "capabilities": ["reasoning", "deep_thinking", "code", "math", "science"], + "serviceType": ["reasoning"], + "defaultTemperature": null, + "supportsReasoning": true, + "description": "OpenAI o3-pro 高级推理模型,200K 上下文" + } + }, + { + "id": "dall-e-3", + "displayName": "DALL-E 3", + "family": "dall-e", + "match": { "exact": ["dall-e-3"] }, + "spec": { + "capabilities": ["image_generation", "text_rendering"], + "serviceType": ["image_gen"], + "description": "OpenAI 高质量文生图模型" + } + }, + { + "id": "gpt-4o-realtime", + "displayName": "GPT-4o Realtime", + "family": "gpt-4o-realtime", + "match": { "exact": ["gpt-4o-realtime"] }, + "spec": { + "contextWindow": 32000, + "maxOutputTokens": 4096, + "capabilities": ["chat", "vision", "tts", "asr", "realtime"], + "serviceType": ["omni"], + "defaultTemperature": 0.7, + "description": "OpenAI 全能实时模型,支持语音 + 文本 + 视觉" + } + }, + { + "id": "gpt-4o-realtime-preview", + "displayName": "GPT-4o Realtime Preview", + "family": "gpt-4o-realtime", + "match": { "exact": ["gpt-4o-realtime-preview"], "patterns": ["gpt-4o-realtime-preview*"] }, + "spec": { + "contextWindow": 32000, + "maxOutputTokens": 4096, + "capabilities": ["realtime", "speech_to_speech", "low_latency"], + "serviceType": ["realtime_voice"], + "defaultTemperature": 0.7, + "description": "OpenAI 实时语音交互模型(预览版)" + } + }, + { + "id": "gpt-oss-120b", + "displayName": "GPT OSS 120B", + "family": "gpt-oss", + "match": { "exact": ["gpt-oss-120b", "openai/gpt-oss-120b:free", "gpt-oss-120b:free"] }, + "spec": { + "contextWindow": 128000, + "maxOutputTokens": 16384, + "capabilities": ["chat", "code", "reasoning"], + "serviceType": ["chat"], + "description": "OpenAI 开源 120B 模型(通过 OpenRouter 提供,:free 层)" + } + } + ] +} diff --git a/compute/model-specs/perplexity.json b/compute/model-specs/perplexity.json new file mode 100644 index 0000000..6385387 --- /dev/null +++ b/compute/model-specs/perplexity.json @@ -0,0 +1,46 @@ +{ + "description": "Perplexity Sonar 系列模型规格。参数来源:config-center compute/providers/perplexity.json。所有模型均内置实时联网搜索能力。", + "specs": [ + { + "id": "sonar-pro", + "displayName": "Sonar Pro", + "family": "sonar-pro", + "match": { "exact": ["sonar-pro"] }, + "spec": { + "contextWindow": 200000, + "maxOutputTokens": 8192, + "capabilities": ["chat", "web_search", "reasoning", "citation"], + "serviceType": ["chat"], + "description": "Perplexity 旗舰搜索增强模型,内置实时联网搜索和引用,200K 上下文" + } + }, + { + "id": "sonar-reasoning-pro", + "displayName": "Sonar Reasoning Pro", + "family": "sonar-reasoning", + "match": { "exact": ["sonar-reasoning-pro"], "patterns": ["sonar-reasoning*"] }, + "spec": { + "contextWindow": 128000, + "maxOutputTokens": 8192, + "capabilities": ["chat", "web_search", "reasoning", "deep_thinking"], + "serviceType": ["chat"], + "defaultTemperature": null, + "supportsReasoning": true, + "description": "Perplexity 深度推理模型,内置联网搜索和深度思考" + } + }, + { + "id": "sonar", + "displayName": "Sonar", + "family": "sonar", + "match": { "exact": ["sonar"], "patterns": ["sonar-*"] }, + "spec": { + "contextWindow": 128000, + "maxOutputTokens": 4096, + "capabilities": ["chat", "web_search", "citation", "fast"], + "serviceType": ["chat"], + "description": "Perplexity 轻量搜索模型,低成本联网搜索" + } + } + ] +} diff --git a/compute/model-specs/qwen.json b/compute/model-specs/qwen.json new file mode 100644 index 0000000..b0dcd3e --- /dev/null +++ b/compute/model-specs/qwen.json @@ -0,0 +1,410 @@ +{ + "description": "阿里通义千问 Qwen 系列模型规格。参数来源:config-center compute/providers/dashscope.json。", + "specs": [ + { + "id": "qwen-max", + "displayName": "Qwen Max", + "family": "qwen-max", + "match": { "patterns": ["qwen-max*"] }, + "spec": { + "contextWindow": 32768, + "maxOutputTokens": 8192, + "capabilities": ["chat", "reasoning", "code", "multilingual", "long_context"], + "serviceType": ["chat"], + "defaultTemperature": 0.7 + } + }, + { + "id": "qwen-plus", + "displayName": "Qwen Plus", + "family": "qwen-plus", + "match": { "patterns": ["qwen-plus*"] }, + "spec": { + "contextWindow": 1000000, + "maxOutputTokens": 32768, + "capabilities": ["chat", "reasoning", "code", "thinking_mode"], + "serviceType": ["chat"], + "defaultTemperature": 0.7 + } + }, + { + "id": "qwen-turbo", + "displayName": "Qwen Turbo", + "family": "qwen-turbo", + "match": { "patterns": ["qwen-turbo*"] }, + "spec": { + "contextWindow": 1000000, + "maxOutputTokens": 16384, + "capabilities": ["chat", "code", "long_context", "fast"], + "serviceType": ["chat"], + "defaultTemperature": 0.7 + } + }, + { + "id": "qwen3-max", + "displayName": "Qwen3 Max", + "family": "qwen3-max", + "spec": { + "contextWindow": 262144, + "maxOutputTokens": 65536, + "capabilities": ["chat", "reasoning", "code", "multilingual", "long_context", "tool_use", "agent", "vision"], + "serviceType": ["chat"], + "defaultTemperature": 0.7, + "supportsReasoning": true + } + }, + { + "id": "qwen3.5-plus", + "displayName": "Qwen3.5 Plus", + "family": "qwen3.5", + "spec": { + "contextWindow": 1000000, + "maxOutputTokens": 65536, + "capabilities": ["chat", "reasoning", "code", "multilingual", "long_context", "tool_use", "agent", "vision"], + "serviceType": ["chat"], + "defaultTemperature": 0.6, + "supportsReasoning": true + } + }, + { + "id": "qwen3.6-plus", + "displayName": "Qwen3.6 Plus", + "family": "qwen3.6", + "spec": { + "contextWindow": 1000000, + "maxOutputTokens": 65536, + "capabilities": ["chat", "reasoning", "code", "multilingual", "long_context", "tool_use", "agent", "vision"], + "serviceType": ["chat", "vision"], + "defaultTemperature": 0.6, + "supportsReasoning": true + } + }, + { + "id": "qwen3.6-flash", + "displayName": "Qwen3.6 Flash", + "family": "qwen3.6", + "match": { "exact": ["qwen3.6-flash"] }, + "spec": { + "contextWindow": 1000000, + "maxOutputTokens": 65536, + "capabilities": ["chat", "reasoning", "code", "multilingual", "long_context", "tool_use", "vision", "fast"], + "serviceType": ["chat", "vision"], + "defaultTemperature": 0.6, + "supportsReasoning": true, + "description": "通义千问3.6 Flash,高性价比多模态模型,100万上下文" + } + }, + { + "id": "qwen-long", + "displayName": "Qwen Long", + "family": "qwen-long", + "match": { "exact": ["qwen-long"] }, + "spec": { + "contextWindow": 10000000, + "maxOutputTokens": 32768, + "capabilities": ["chat", "ultra_long_context", "document_processing"], + "serviceType": ["chat"], + "defaultTemperature": 1, + "description": "通义千问 Long,支持 1000 万上下文,适合超长文档处理" + } + }, + { + "id": "qwen3-vl-plus", + "displayName": "Qwen3-VL-Plus", + "family": "qwen3-vl", + "match": { "exact": ["qwen3-vl-plus"] }, + "spec": { + "contextWindow": 262144, + "maxOutputTokens": 32768, + "capabilities": ["chat", "vision", "image_understanding", "ocr", "chart_analysis"], + "serviceType": ["vision"], + "defaultTemperature": 0.7, + "description": "通义千问3代视觉模型Plus版,支持图像理解" + } + }, + { + "id": "qwen3-vl-flash", + "displayName": "Qwen3-VL-Flash", + "family": "qwen3-vl", + "match": { "exact": ["qwen3-vl-flash"] }, + "spec": { + "contextWindow": 262144, + "maxOutputTokens": 32768, + "capabilities": ["chat", "vision", "image_understanding", "fast"], + "serviceType": ["vision"], + "defaultTemperature": 0.7, + "description": "通义千问3代视觉模型Flash版,高性价比" + } + }, + { + "id": "text-embedding-v3", + "displayName": "text-embedding-v3", + "family": "text-embedding-v3", + "match": { "exact": ["text-embedding-v3"] }, + "spec": { + "contextWindow": 8192, + "capabilities": ["text_embedding", "semantic_search", "chinese_optimized"], + "serviceType": ["embedding"], + "description": "阿里云文本向量化模型 v3" + } + }, + { + "id": "text-embedding-v4", + "displayName": "text-embedding-v4", + "family": "text-embedding-v4", + "match": { "exact": ["text-embedding-v4"] }, + "spec": { + "contextWindow": 8192, + "capabilities": ["text_embedding", "semantic_search", "rag"], + "serviceType": ["embedding"], + "description": "阿里云百炼文本向量模型v4,支持多维度与多语种" + } + }, + { + "id": "qwen3-rerank", + "displayName": "Qwen3-Rerank", + "family": "qwen3-rerank", + "match": { "exact": ["qwen3-rerank"] }, + "spec": { + "contextWindow": 120000, + "capabilities": ["rerank", "semantic_reranking", "multilingual"], + "serviceType": ["rerank"], + "description": "检索重排序,支持 100+ 语种" + } + }, + { + "id": "cosyvoice-v2", + "displayName": "CosyVoice V2", + "family": "cosyvoice", + "match": { "exact": ["cosyvoice-v2"] }, + "spec": { + "capabilities": ["tts", "multilingual", "chinese_optimized"], + "serviceType": ["tts"], + "description": "通义语音合成,支持中英文" + } + }, + { + "id": "paraformer-v2", + "displayName": "Paraformer V2", + "family": "paraformer", + "match": { "exact": ["paraformer-v2"] }, + "spec": { + "capabilities": ["asr", "chinese_optimized"], + "serviceType": ["asr"], + "description": "通义语音识别" + } + }, + { + "id": "wan2.7-image-pro", + "displayName": "通义万相 2.7 Pro", + "family": "wan2", + "match": { "exact": ["wan2.7-image-pro"] }, + "spec": { + "capabilities": ["image_generation", "chinese_optimized", "high_quality"], + "serviceType": ["image_gen"], + "description": "万相最新旗舰文生图模型,支持 4K 分辨率" + } + }, + { + "id": "wan2.7-image", + "displayName": "通义万相 2.7", + "family": "wan2", + "match": { "exact": ["wan2.7-image"] }, + "spec": { + "capabilities": ["image_generation", "chinese_optimized"], + "serviceType": ["image_gen"], + "description": "万相最新标准文生图模型,高画质" + } + }, + { + "id": "wan2.6-t2i", + "displayName": "通义万相 2.6 文生图", + "family": "wan2", + "match": { "exact": ["wan2.6-t2i"] }, + "spec": { + "capabilities": ["image_generation", "chinese_optimized"], + "serviceType": ["image_gen"], + "description": "万相 2.6 文生图专用模型,稳定可靠" + } + }, + { + "id": "wan2.2-t2i-plus", + "displayName": "通义万相 2.2 Plus", + "family": "wan2", + "match": { "exact": ["wan2.2-t2i-plus"] }, + "spec": { + "capabilities": ["image_generation", "chinese_optimized"], + "serviceType": ["image_gen"], + "description": "万相 2.2 增强版,画质与速度平衡" + } + }, + { + "id": "wan2.2-t2i-flash", + "displayName": "通义万相 2.2 Flash", + "family": "wan2", + "match": { "exact": ["wan2.2-t2i-flash"] }, + "spec": { + "capabilities": ["image_generation", "chinese_optimized", "fast"], + "serviceType": ["image_gen"], + "description": "万相 2.2 快速版,生成速度极快" + } + }, + { + "id": "wan2.6-t2v", + "displayName": "通义万相 2.6 文生视频", + "family": "wan2", + "match": { "exact": ["wan2.6-t2v"] }, + "spec": { + "capabilities": ["video_generation", "chinese_optimized"], + "serviceType": ["video_gen"], + "description": "万相 2.6 文生视频模型,支持文生视频和图生视频" + } + }, + { + "id": "cosyvoice-clone", + "displayName": "CosyVoice 声音复刻", + "family": "cosyvoice", + "match": { "exact": ["cosyvoice-clone"] }, + "spec": { + "capabilities": ["voice_clone", "chinese_optimized", "few_shot"], + "serviceType": ["voice_clone"], + "description": "通义声音复刻,少量样本即可克隆" + } + }, + { + "id": "qwen-omni-turbo", + "displayName": "Qwen-Omni-Turbo", + "family": "qwen-omni", + "match": { "exact": ["qwen-omni-turbo"] }, + "spec": { + "contextWindow": 32768, + "maxOutputTokens": 2048, + "capabilities": ["chat", "vision", "tts", "asr", "multimodal", "tool_use"], + "serviceType": ["omni"], + "defaultTemperature": 0.7, + "description": "通义全能模型,支持音视频文本多模态" + } + }, + { + "id": "qwen3-max-trans", + "displayName": "Qwen3-Max(翻译)", + "family": "qwen3-trans", + "match": { "exact": ["qwen3-max-trans"] }, + "spec": { + "contextWindow": 131072, + "maxOutputTokens": 8192, + "capabilities": ["translation", "multilingual", "chinese_optimized"], + "serviceType": ["translation"], + "defaultTemperature": 0.65, + "description": "通义千问翻译,中英日韩等多语种互译" + } + }, + { + "id": "qwen3-coder", + "displayName": "Qwen3 Coder", + "family": "qwen3-coder", + "match": { "exact": ["qwen3-coder", "qwen/qwen3-coder:free", "qwen3-coder:free"] }, + "spec": { + "contextWindow": 262144, + "maxOutputTokens": 65536, + "capabilities": ["chat", "code", "long_context", "agent", "tool_use"], + "serviceType": ["chat"], + "defaultTemperature": 0.7, + "description": "通义千问3 Coder 编程模型(通过 OpenRouter 提供,:free 层)" + } + }, + { + "id": "qwen3.7-max", + "displayName": "Qwen3.7 Max", + "family": "qwen3.7", + "match": { "exact": ["qwen3.7-max"] }, + "spec": { + "contextWindow": 500000, + "maxOutputTokens": 65536, + "capabilities": ["chat", "reasoning", "code", "vision", "tool_use", "agent", "deep_thinking"], + "serviceType": ["chat"], + "defaultTemperature": 0.7, + "supportsReasoning": true, + "description": "阿里通义千问 Qwen3.7 Max,原生 1M 上下文,Hybrid MoE 架构" + } + }, + { + "id": "qwen3.5-35b-a3b", + "displayName": "Qwen3.5 35B-A3B", + "family": "qwen3.5", + "match": { "exact": ["qwen3.5-35b-a3b"] }, + "spec": { + "contextWindow": 131072, + "maxOutputTokens": 65536, + "capabilities": ["chat", "reasoning", "code", "vision", "tool_use"], + "serviceType": ["chat"], + "defaultTemperature": 0.7, + "description": "Qwen3.5 35B-A3B MoE 模型(35B 总参/3B 激活),131K 上下文" + } + }, + { + "id": "qwen3.5-27b", + "displayName": "Qwen3.5 27B", + "family": "qwen3.5", + "match": { "exact": ["qwen3.5-27b"] }, + "spec": { + "contextWindow": 131072, + "maxOutputTokens": 65536, + "capabilities": ["chat", "reasoning", "code", "vision", "tool_use"], + "serviceType": ["chat"], + "defaultTemperature": 0.7, + "description": "Qwen3.5 27B Dense 模型,131K 上下文" + } + }, + { + "id": "qwen3-coder-480b", + "displayName": "Qwen3 Coder 480B (硅基)", + "family": "qwen3-coder", + "match": { "exact": ["qwen3-coder-480b", "Qwen/Qwen3-Coder-480B-A35B-Instruct"] }, + "spec": { + "contextWindow": 262144, + "maxOutputTokens": 262144, + "capabilities": ["chat", "code", "long_context", "agent", "tool_use"], + "serviceType": ["chat"], + "defaultTemperature": 0.7, + "description": "Qwen3-Coder-480B-A35B,480B MoE(35B 激活),256K 上下文,面向 Agentic Coding" + } + }, + { + "id": "qwen3-235b", + "displayName": "Qwen3 235B (硅基)", + "family": "qwen3-235b", + "match": { "exact": ["qwen3-235b", "Qwen/Qwen3-235B-A22B-Instruct-2507"] }, + "spec": { + "contextWindow": 262144, + "maxOutputTokens": 262144, + "capabilities": ["chat", "code", "multilingual", "tool_use", "agent", "long_context"], + "serviceType": ["chat"], + "defaultTemperature": 0.7, + "description": "Qwen3-235B-A22B-Instruct-2507,235B MoE 通用指令模型,262K 上下文" + } + }, + { + "id": "qwen-image-2.0-pro", + "displayName": "千问图像 2.0 Pro", + "family": "qwen-image-2", + "match": { "exact": ["qwen-image-2.0-pro"] }, + "spec": { + "capabilities": ["image_generation", "chinese_optimized", "high_quality"], + "serviceType": ["image_gen"], + "description": "千问图像生成 2.0 Pro 旗舰版,高画质多风格" + } + }, + { + "id": "qwen-image-2.0", + "displayName": "千问图像 2.0", + "family": "qwen-image-2", + "match": { "exact": ["qwen-image-2.0"] }, + "spec": { + "capabilities": ["image_generation", "chinese_optimized"], + "serviceType": ["image_gen"], + "description": "千问图像生成 2.0 标准版" + } + } + ] +} diff --git a/compute/model-specs/stability.json b/compute/model-specs/stability.json new file mode 100644 index 0000000..f44573e --- /dev/null +++ b/compute/model-specs/stability.json @@ -0,0 +1,16 @@ +{ + "description": "Stability AI 图像生成系列模型规格。参数来源:config-center compute/providers/stability.json。无上下文窗口(图像生成模型)。", + "specs": [ + { + "id": "stable-diffusion-3.5-large", + "displayName": "Stable Diffusion 3.5 Large", + "family": "stable-diffusion-3", + "match": { "exact": ["stable-diffusion-3.5-large"], "patterns": ["stable-diffusion-3.5*"] }, + "spec": { + "capabilities": ["image_generation", "high_quality", "controllable"], + "serviceType": ["image_gen"], + "description": "Stability AI 旗舰文生图模型,支持多种分辨率和风格" + } + } + ] +} diff --git a/compute/model-specs/tencent.json b/compute/model-specs/tencent.json new file mode 100644 index 0000000..e305dda --- /dev/null +++ b/compute/model-specs/tencent.json @@ -0,0 +1,92 @@ +{ + "description": "腾讯混元系列模型规格。参数来源:config-center compute/providers/tencent.json。hunyuan-2.0-thinking 和 hunyuan-t1 为推理模型。", + "specs": [ + { + "id": "hunyuan-2.0-thinking-20251109", + "displayName": "混元 2.0 Think", + "family": "hunyuan-2", + "match": { "exact": ["hunyuan-2.0-thinking-20251109"], "patterns": ["hunyuan-2.0-thinking*"] }, + "spec": { + "contextWindow": 196608, + "maxOutputTokens": 65536, + "capabilities": ["chat", "reasoning", "deep_thinking", "long_context"], + "serviceType": ["reasoning"], + "defaultTemperature": null, + "supportsReasoning": true, + "description": "腾讯混元最新推理模型,MoE架构406B总参数,深度思考" + } + }, + { + "id": "hunyuan-2.0-instruct-20251111", + "displayName": "混元 2.0 Instruct", + "family": "hunyuan-2", + "match": { "exact": ["hunyuan-2.0-instruct-20251111"], "patterns": ["hunyuan-2.0-instruct*"] }, + "spec": { + "contextWindow": 147456, + "maxOutputTokens": 16384, + "capabilities": ["chat", "code", "long_context", "tool_use"], + "serviceType": ["chat"], + "defaultTemperature": 1, + "description": "腾讯混元 2.0 指令模型,支持联网搜索和 Function Calling" + } + }, + { + "id": "hunyuan-turbos-latest", + "displayName": "混元 Turbo S", + "family": "hunyuan-turbo", + "match": { "exact": ["hunyuan-turbos-latest"], "patterns": ["hunyuan-turbos*"] }, + "spec": { + "contextWindow": 32768, + "maxOutputTokens": 16384, + "capabilities": ["chat", "reasoning", "code", "vision", "fast", "tool_use"], + "serviceType": ["chat"], + "defaultTemperature": 1, + "description": "腾讯混元高速模型,支持推理和工具调用" + } + }, + { + "id": "hunyuan-t1-latest", + "displayName": "混元 T1", + "family": "hunyuan-t1", + "match": { "exact": ["hunyuan-t1-latest"], "patterns": ["hunyuan-t1*"] }, + "spec": { + "contextWindow": 262144, + "maxOutputTokens": 32768, + "capabilities": ["chat", "reasoning", "deep_thinking", "code", "math", "long_context"], + "serviceType": ["reasoning"], + "defaultTemperature": null, + "supportsReasoning": true, + "description": "腾讯混元 T1 深度推理模型,256K 上下文,专攻数学/代码/复杂推理" + } + }, + { + "id": "hunyuan-t1-vision", + "displayName": "混元 T1 Vision", + "family": "hunyuan-t1", + "match": { "exact": ["hunyuan-t1-vision"] }, + "spec": { + "contextWindow": 131072, + "maxOutputTokens": 32768, + "capabilities": ["chat", "reasoning", "deep_thinking", "code", "math", "vision", "image_understanding"], + "serviceType": ["reasoning"], + "defaultTemperature": null, + "supportsReasoning": true, + "description": "腾讯混元 T1 视觉推理模型,支持图片理解 + 深度推理" + } + }, + { + "id": "hunyuan-turbos-vision", + "displayName": "混元 Turbo S Vision", + "family": "hunyuan-turbo", + "match": { "exact": ["hunyuan-turbos-vision"] }, + "spec": { + "contextWindow": 32768, + "maxOutputTokens": 16384, + "capabilities": ["chat", "reasoning", "code", "vision", "image_understanding", "fast", "tool_use"], + "serviceType": ["chat"], + "defaultTemperature": 1, + "description": "腾讯混元 Turbo S 视觉模型,支持图片理解,高速推理" + } + } + ] +} diff --git a/compute/model-specs/volcengine.json b/compute/model-specs/volcengine.json new file mode 100644 index 0000000..9bfb314 --- /dev/null +++ b/compute/model-specs/volcengine.json @@ -0,0 +1,257 @@ +{ + "description": "火山引擎豆包系列模型规格。参数来源:config-center compute/providers/volcengine.json。包含豆包 Seed 系列对话、DeepSeek 托管版、Embedding、语音克隆、实时语音、同传和翻译服务。doubao-seed-1.6-thinking 为推理模型。", + "specs": [ + { + "id": "doubao-seed-2.0-pro", + "displayName": "豆包 2.0 Pro", + "family": "doubao-seed-2", + "match": { "exact": ["doubao-seed-2.0-pro"], "patterns": ["doubao-seed-2.0-pro*"] }, + "spec": { + "contextWindow": 256000, + "maxOutputTokens": 128000, + "capabilities": ["chat", "reasoning", "code", "multilingual", "long_context", "tool_use", "vision"], + "serviceType": ["chat"], + "defaultTemperature": 1, + "description": "火山引擎豆包 Seed 2.0 旗舰模型,256K 上下文,支持复杂推理、Agent 和多模态" + } + }, + { + "id": "doubao-seed-2.0-lite", + "displayName": "豆包 2.0 Lite", + "family": "doubao-seed-2", + "match": { "exact": ["doubao-seed-2.0-lite"], "patterns": ["doubao-seed-2.0-lite*"] }, + "spec": { + "contextWindow": 256000, + "maxOutputTokens": 32000, + "capabilities": ["chat", "reasoning", "code", "multilingual", "long_context", "tool_use", "vision", "audio_understanding", "video_understanding"], + "serviceType": ["chat"], + "defaultTemperature": 1, + "description": "豆包 Seed 2.0 全模态均衡模型,支持视频/图像/音频/文本统一理解" + } + }, + { + "id": "doubao-seed-2.0-mini", + "displayName": "豆包 2.0 Mini", + "family": "doubao-seed-2", + "match": { "exact": ["doubao-seed-2.0-mini"], "patterns": ["doubao-seed-2.0-mini*"] }, + "spec": { + "contextWindow": 256000, + "maxOutputTokens": 32000, + "capabilities": ["chat", "reasoning", "code", "multilingual", "long_context", "tool_use", "vision", "audio_understanding", "video_understanding", "fast"], + "serviceType": ["chat"], + "defaultTemperature": 1, + "description": "豆包 Seed 2.0 全模态轻量模型,低延迟高并发,支持全模态理解" + } + }, + { + "id": "doubao-seed-2.0-code", + "displayName": "豆包 2.0 Code", + "family": "doubao-seed-2", + "match": { "exact": ["doubao-seed-2.0-code"] }, + "spec": { + "contextWindow": 256000, + "maxOutputTokens": 128000, + "capabilities": ["chat", "reasoning", "code", "long_context", "tool_use", "vision", "deep_thinking"], + "serviceType": ["chat"], + "defaultTemperature": 1, + "description": "豆包 Seed 2.0 编程模型,面向 Agentic Coding 场景优化" + } + }, + { + "id": "doubao-seed-1.8", + "displayName": "豆包 Seed-1.8", + "family": "doubao-seed-1", + "match": { "exact": ["doubao-seed-1.8"], "patterns": ["doubao-seed-1.8*"] }, + "spec": { + "contextWindow": 256000, + "maxOutputTokens": 16000, + "capabilities": ["chat", "reasoning", "code", "multilingual", "long_context", "tool_use", "vision"], + "serviceType": ["chat"], + "defaultTemperature": 1, + "description": "火山引擎豆包 1.8 旗舰模型,256K 上下文,支持深度思考和多模态" + } + }, + { + "id": "doubao-seed-1.6", + "displayName": "豆包 Seed-1.6", + "family": "doubao-seed-1", + "match": { "exact": ["doubao-seed-1.6"], "patterns": ["doubao-seed-1.6"] }, + "spec": { + "contextWindow": 256000, + "maxOutputTokens": 32000, + "capabilities": ["chat", "reasoning", "code", "multilingual", "long_context", "tool_use", "vision"], + "serviceType": ["chat"], + "defaultTemperature": 1, + "description": "火山引擎豆包 1.6 旗舰模型,256K 上下文" + } + }, + { + "id": "doubao-seed-1.6-thinking", + "displayName": "豆包 Seed-1.6 思考版", + "family": "doubao-seed-1", + "match": { "exact": ["doubao-seed-1.6-thinking"] }, + "spec": { + "contextWindow": 256000, + "maxOutputTokens": 16000, + "capabilities": ["reasoning", "math", "code", "deep_thinking", "long_context"], + "serviceType": ["chat"], + "defaultTemperature": null, + "supportsReasoning": true, + "description": "火山引擎豆包 1.6 深度思考模型,256K 上下文" + } + }, + { + "id": "doubao-seed-1.6-flash", + "displayName": "豆包 Seed-1.6 Flash", + "family": "doubao-seed-1", + "match": { "exact": ["doubao-seed-1.6-flash"] }, + "spec": { + "contextWindow": 256000, + "maxOutputTokens": 16000, + "capabilities": ["chat", "code", "fast", "long_context", "vision"], + "serviceType": ["chat"], + "defaultTemperature": 1, + "description": "火山引擎豆包 1.6 快速版,成本较前代下降 63%" + } + }, + { + "id": "doubao-seed-1.6-lite", + "displayName": "豆包 Seed-1.6 Lite", + "family": "doubao-seed-1", + "match": { "exact": ["doubao-seed-1.6-lite"] }, + "spec": { + "contextWindow": 256000, + "maxOutputTokens": 32000, + "capabilities": ["chat", "code", "fast"], + "serviceType": ["chat"], + "defaultTemperature": 1, + "description": "火山引擎豆包 1.6 轻量版,极致性价比" + } + }, + { + "id": "doubao-seed-1.6-vision", + "displayName": "豆包 Seed-1.6 视觉版", + "family": "doubao-seed-1", + "match": { "exact": ["doubao-seed-1.6-vision"] }, + "spec": { + "contextWindow": 256000, + "maxOutputTokens": 32000, + "capabilities": ["chat", "vision", "video_understanding", "gui_agent", "long_context"], + "serviceType": ["vision"], + "defaultTemperature": 1, + "description": "火山引擎豆包 1.6 视觉模型,256K 上下文,支持视频理解" + } + }, + { + "id": "doubao-seed-code", + "displayName": "豆包 Seed-Code", + "family": "doubao-seed-code", + "match": { "exact": ["doubao-seed-code"] }, + "spec": { + "contextWindow": 256000, + "maxOutputTokens": 32768, + "capabilities": ["code", "reasoning", "long_context", "deep_thinking"], + "serviceType": ["chat"], + "defaultTemperature": 1, + "description": "火山引擎豆包编程专用模型,256K 上下文" + } + }, + { + "id": "deepseek-v3.2", + "displayName": "DeepSeek V3.2 (火山引擎)", + "family": "deepseek-v3", + "match": { "exact": ["deepseek-v3.2"] }, + "spec": { + "contextWindow": 128000, + "maxOutputTokens": 32000, + "capabilities": ["chat", "reasoning", "code", "multilingual"], + "serviceType": ["chat"], + "defaultTemperature": 1, + "description": "火山引擎托管的 DeepSeek V3.2,128K 上下文" + } + }, + { + "id": "deepseek-r1", + "displayName": "DeepSeek R1 (火山引擎)", + "family": "deepseek-r1", + "match": { "exact": ["deepseek-r1"] }, + "spec": { + "contextWindow": 128000, + "maxOutputTokens": 65536, + "capabilities": ["reasoning", "math", "code", "science", "deep_thinking"], + "serviceType": ["reasoning"], + "defaultTemperature": null, + "supportsReasoning": true, + "description": "火山引擎托管的 DeepSeek R1 推理模型,128K 上下文" + } + }, + { + "id": "doubao-embedding", + "displayName": "豆包 Embedding", + "family": "doubao-embedding", + "match": { "exact": ["doubao-embedding"] }, + "spec": { + "contextWindow": 4096, + "capabilities": ["text_embedding", "semantic_search", "rag", "chinese_optimized"], + "serviceType": ["embedding"], + "description": "火山引擎豆包标准向量模型,默认 2048 维度,可选 512/1024/2048" + } + }, + { + "id": "doubao-embedding-large", + "displayName": "豆包 Embedding Large", + "family": "doubao-embedding", + "match": { "exact": ["doubao-embedding-large"] }, + "spec": { + "contextWindow": 4096, + "capabilities": ["text_embedding", "semantic_search", "rag", "chinese_optimized"], + "serviceType": ["embedding"], + "description": "火山引擎豆包大号向量模型,默认 2048 维度,可选 512/1024/2048/4096" + } + }, + { + "id": "volc-mega-tts-clone", + "displayName": "火山声音复刻", + "family": "volc-tts", + "match": { "exact": ["volc-mega-tts-clone"] }, + "spec": { + "capabilities": ["voice_clone", "chinese_optimized", "few_shot"], + "serviceType": ["voice_clone"], + "description": "火山引擎声音复刻,支持极少样本克隆" + } + }, + { + "id": "volc-realtime-voice", + "displayName": "火山实时语音", + "family": "volc-voice", + "match": { "exact": ["volc-realtime-voice"] }, + "spec": { + "capabilities": ["realtime", "speech_to_speech", "low_latency", "chinese_optimized"], + "serviceType": ["realtime_voice"], + "description": "火山引擎实时语音交互" + } + }, + { + "id": "volc-simultaneous", + "displayName": "火山同声传译", + "family": "volc-interpret", + "match": { "exact": ["volc-simultaneous"] }, + "spec": { + "capabilities": ["simultaneous_interpretation", "chinese_optimized", "low_latency"], + "serviceType": ["simultaneous_interpret"], + "description": "火山引擎同声传译,支持中英双向" + } + }, + { + "id": "volc-translation", + "displayName": "火山翻译", + "family": "volc-translation", + "match": { "exact": ["volc-translation"] }, + "spec": { + "capabilities": ["translation", "multilingual", "chinese_optimized"], + "serviceType": ["translation"], + "description": "火山引擎机器翻译,支持多语种互译" + } + } + ] +} diff --git a/compute/model-specs/xai.json b/compute/model-specs/xai.json new file mode 100644 index 0000000..eabb72c --- /dev/null +++ b/compute/model-specs/xai.json @@ -0,0 +1,31 @@ +{ + "description": "xAI Grok 系列模型规格。参数来源:config-center compute/providers/xai.json。Grok 网关命名变体较多(含日期戳/-fast/-reasoning 后缀),主要依赖 family=grok-4 兜底匹配。", + "specs": [ + { + "id": "grok-4-1-fast-reasoning", + "displayName": "Grok 4.1 Fast", + "family": "grok-4", + "spec": { + "contextWindow": 2000000, + "maxOutputTokens": 16384, + "capabilities": ["chat", "reasoning", "code", "vision", "tool_use", "fast", "long_context"], + "serviceType": ["chat", "reasoning"], + "defaultTemperature": 1, + "supportsReasoning": true + } + }, + { + "id": "grok-4.20-0309-reasoning", + "displayName": "Grok 4.20", + "family": "grok-4", + "spec": { + "contextWindow": 2000000, + "maxOutputTokens": 16384, + "capabilities": ["chat", "reasoning", "code", "vision", "tool_use"], + "serviceType": ["chat", "reasoning"], + "defaultTemperature": 1, + "supportsReasoning": true + } + } + ] +} diff --git a/compute/model-specs/xiaomi.json b/compute/model-specs/xiaomi.json new file mode 100644 index 0000000..9cebe24 --- /dev/null +++ b/compute/model-specs/xiaomi.json @@ -0,0 +1,239 @@ +{ + "description": "小米 MiMo 系列模型规格。参数来源:https://platform.xiaomimimo.com/docs/zh-CN/quick-start/model。注意 v2-pro/v2-omni 自 2026-06-01 起转发到 v2.5 系列,2026-06-30 正式停用,规格库仍保留供存量 NewAPI 渠道正确展示参数。", + "specs": [ + { + "id": "mimo-v2.5-pro", + "displayName": "MiMo V2.5 Pro", + "family": "mimo-v2.5-pro", + "match": { + "patterns": [ + "mimo-v2.5-pro*", + "mimo-v2-5-pro*" + ] + }, + "spec": { + "contextWindow": 1000000, + "maxOutputTokens": 131072, + "capabilities": [ + "chat", + "reasoning", + "tool_use", + "code", + "vision" + ], + "serviceType": [ + "chat", + "reasoning" + ], + "defaultTemperature": 1, + "supportsReasoning": true, + "description": "小米 MiMo 旗舰推理模型,支持文本/图像/工具调用" + } + }, + { + "id": "mimo-v2.5", + "displayName": "MiMo V2.5", + "family": "mimo-v2.5", + "match": { + "exact": [ + "mimo-v2.5" + ], + "patterns": [ + "mimo-v2.5-chat*", + "mimo-v2-5*" + ] + }, + "spec": { + "contextWindow": 1000000, + "maxOutputTokens": 131072, + "capabilities": [ + "chat", + "reasoning", + "vision", + "tool_use", + "code" + ], + "serviceType": [ + "chat", + "vision" + ], + "defaultTemperature": 1, + "supportsReasoning": true, + "description": "小米 MiMo 全模态模型,支持图像/音频/视频理解" + } + }, + { + "id": "mimo-v2-pro", + "displayName": "MiMo V2 Pro(已停用→转发至 V2.5 Pro)", + "family": "mimo-v2-pro", + "match": { + "patterns": [ + "mimo-v2-pro*" + ] + }, + "spec": { + "contextWindow": 1000000, + "maxOutputTokens": 131072, + "capabilities": [ + "chat", + "reasoning", + "tool_use", + "code", + "vision" + ], + "serviceType": [ + "chat", + "reasoning" + ], + "defaultTemperature": 1, + "supportsReasoning": true, + "description": "小米 MiMo V2 Pro(自 2026-06-01 转发至 V2.5 Pro)", + "retiredAt": "2026-06-30" + } + }, + { + "id": "mimo-v2-omni", + "displayName": "MiMo V2 Omni(已停用→转发至 V2.5)", + "family": "mimo-v2-omni", + "match": { + "patterns": [ + "mimo-v2-omni*" + ] + }, + "spec": { + "contextWindow": 256000, + "maxOutputTokens": 131072, + "capabilities": [ + "chat", + "reasoning", + "vision", + "tool_use", + "code" + ], + "serviceType": [ + "chat", + "vision" + ], + "defaultTemperature": 1, + "supportsReasoning": true, + "description": "小米 MiMo V2 全模态(自 2026-06-01 转发至 V2.5)", + "retiredAt": "2026-06-30" + } + }, + { + "id": "mimo-v2-flash", + "displayName": "MiMo V2 Flash", + "family": "mimo-v2-flash", + "match": { + "patterns": [ + "mimo-v2-flash*" + ] + }, + "spec": { + "contextWindow": 256000, + "maxOutputTokens": 65536, + "capabilities": [ + "chat", + "reasoning", + "tool_use", + "code", + "fast" + ], + "serviceType": [ + "fast" + ], + "defaultTemperature": 1, + "supportsReasoning": true, + "description": "小米 MiMo 快速版,适合高频低延迟任务" + } + }, + { + "id": "mimo-v2.5-tts", + "displayName": "MiMo V2.5 TTS", + "family": "mimo-v2.5-tts", + "match": { + "exact": [ + "mimo-v2.5-tts" + ] + }, + "spec": { + "contextWindow": 8192, + "capabilities": [ + "tts", + "multilingual", + "style_control" + ], + "serviceType": [ + "tts" + ], + "description": "小米 MiMo 语音合成,支持多语言与风格控制" + } + }, + { + "id": "mimo-v2.5-tts-voiceclone", + "displayName": "MiMo V2.5 TTS Voice Clone", + "family": "mimo-v2.5-tts", + "match": { + "exact": [ + "mimo-v2.5-tts-voiceclone" + ] + }, + "spec": { + "contextWindow": 8192, + "capabilities": [ + "tts", + "voice_clone", + "multilingual" + ], + "serviceType": [ + "tts", + "voice_clone" + ], + "description": "小米 MiMo 声音复刻合成" + } + }, + { + "id": "mimo-v2.5-tts-voicedesign", + "displayName": "MiMo V2.5 TTS Voice Design", + "family": "mimo-v2.5-tts", + "match": { + "exact": [ + "mimo-v2.5-tts-voicedesign" + ] + }, + "spec": { + "contextWindow": 8192, + "capabilities": [ + "tts", + "voice_design", + "multilingual" + ], + "serviceType": [ + "tts" + ], + "description": "小米 MiMo 自定义音色设计合成" + } + }, + { + "id": "mimo-v2-tts", + "displayName": "MiMo V2 TTS", + "family": "mimo-v2-tts", + "match": { + "exact": [ + "mimo-v2-tts" + ] + }, + "spec": { + "contextWindow": 8192, + "capabilities": [ + "tts", + "multilingual" + ], + "serviceType": [ + "tts" + ], + "description": "小米 MiMo V2 语音合成(旧版)" + } + } + ] +} diff --git a/compute/model-specs/xunfei.json b/compute/model-specs/xunfei.json new file mode 100644 index 0000000..fcddd52 --- /dev/null +++ b/compute/model-specs/xunfei.json @@ -0,0 +1,34 @@ +{ + "description": "讯飞星火系列模型规格。参数来源:config-center compute/providers/xunfei.json。spark-x 为推理模型(serviceType: reasoning)。", + "specs": [ + { + "id": "spark-x", + "displayName": "讯飞星火 X1", + "family": "spark-x", + "match": { "exact": ["spark-x"], "patterns": ["spark-x*"] }, + "spec": { + "contextWindow": 65536, + "maxOutputTokens": 128000, + "capabilities": ["chat", "reasoning", "deep_thinking", "math", "code"], + "serviceType": ["reasoning"], + "defaultTemperature": 1.2, + "supportsReasoning": true, + "description": "讯飞深度推理模型,64K 输入/128K 输出,支持思考模式与函数调用" + } + }, + { + "id": "4.0Ultra", + "displayName": "讯飞星火 4.0 Ultra", + "family": "spark-4", + "match": { "exact": ["4.0Ultra"], "patterns": ["4.0Ultra*"] }, + "spec": { + "contextWindow": 32768, + "maxOutputTokens": 32768, + "capabilities": ["chat", "reasoning", "code", "tool_use"], + "serviceType": ["chat"], + "defaultTemperature": 1, + "description": "讯飞星火最强通用模型,支持推理、代码和工具调用" + } + } + ] +} diff --git a/compute/model-specs/zhipu.json b/compute/model-specs/zhipu.json new file mode 100644 index 0000000..0f56279 --- /dev/null +++ b/compute/model-specs/zhipu.json @@ -0,0 +1,126 @@ +{ + "description": "智谱 GLM 系列模型规格。参数来源:config-center compute/providers/zhipu.json。glm-5 与 glm-5.1/glm-5-turbo/glm-5v-turbo 前缀相近,故各自仅用 exact 主键匹配,不用宽 pattern 以防误吞。", + "specs": [ + { + "id": "glm-5.1", + "displayName": "GLM-5.1", + "family": "glm-5.1", + "spec": { + "contextWindow": 200000, + "maxOutputTokens": 128000, + "capabilities": ["chat", "reasoning", "code", "multilingual", "deep_thinking", "long_context", "math", "tool_use", "agent"], + "serviceType": ["chat"], + "defaultTemperature": 1, + "supportsReasoning": true + } + }, + { + "id": "glm-5", + "displayName": "GLM-5", + "family": "glm-5", + "spec": { + "contextWindow": 200000, + "maxOutputTokens": 128000, + "capabilities": ["chat", "reasoning", "code", "multilingual", "deep_thinking", "long_context", "math", "tool_use", "agent"], + "serviceType": ["chat"], + "defaultTemperature": 1, + "supportsReasoning": true + } + }, + { + "id": "glm-5-turbo", + "displayName": "GLM-5 Turbo", + "family": "glm-5-turbo", + "spec": { + "contextWindow": 200000, + "maxOutputTokens": 128000, + "capabilities": ["chat", "reasoning", "code", "deep_thinking", "long_context", "tool_use", "agent"], + "serviceType": ["chat"], + "defaultTemperature": 1, + "supportsReasoning": true + } + }, + { + "id": "glm-4.7", + "displayName": "GLM-4.7", + "family": "glm-4.7", + "spec": { + "contextWindow": 200000, + "maxOutputTokens": 128000, + "capabilities": ["chat", "reasoning", "code", "multilingual", "deep_thinking", "long_context", "tool_use"], + "serviceType": ["chat"], + "defaultTemperature": 1, + "supportsReasoning": true + } + }, + { + "id": "glm-4.6", + "displayName": "GLM-4.6", + "family": "glm-4.6", + "spec": { + "contextWindow": 200000, + "maxOutputTokens": 128000, + "capabilities": ["chat", "reasoning", "code", "multilingual", "deep_thinking"], + "serviceType": ["chat"], + "defaultTemperature": 1, + "supportsReasoning": true + } + }, + { + "id": "glm-4.7-thinking", + "displayName": "GLM-4.7 Thinking", + "family": "glm-4.7", + "match": { "exact": ["glm-4.7-thinking"] }, + "spec": { + "contextWindow": 200000, + "maxOutputTokens": 128000, + "capabilities": ["reasoning", "math", "code", "deep_thinking", "long_context"], + "serviceType": ["reasoning"], + "defaultTemperature": null, + "supportsReasoning": true, + "description": "智谱GLM-4.7深度思考模式,交错式/保留式/轮级思考" + } + }, + { + "id": "glm-5v-turbo", + "displayName": "GLM-5V-Turbo", + "family": "glm-5v", + "match": { "exact": ["glm-5v-turbo"] }, + "spec": { + "contextWindow": 200000, + "maxOutputTokens": 128000, + "capabilities": ["chat", "vision", "video_understanding", "image_understanding", "file_understanding", "reasoning", "code", "deep_thinking", "long_context", "tool_use", "agent"], + "serviceType": ["vision"], + "defaultTemperature": 1, + "supportsReasoning": true, + "description": "智谱首个多模态 Coding 基座模型,支持视频、图像、文本和文件输入" + } + }, + { + "id": "glm-4.6v", + "displayName": "GLM-4.6V", + "family": "glm-4.6", + "match": { "exact": ["glm-4.6v"] }, + "spec": { + "contextWindow": 128000, + "maxOutputTokens": 32768, + "capabilities": ["chat", "vision", "video_understanding", "image_understanding", "long_context", "tool_use"], + "serviceType": ["vision"], + "defaultTemperature": 1, + "description": "智谱GLM-4.6V多模态版,106B/12B MoE,支持图像视频理解" + } + }, + { + "id": "embedding-3", + "displayName": "智谱 embedding-3", + "family": "zhipu-embedding", + "match": { "exact": ["embedding-3"] }, + "spec": { + "contextWindow": 8192, + "capabilities": ["text_embedding", "semantic_search", "rag", "custom_dimensions"], + "serviceType": ["embedding"], + "description": "智谱嵌入模型v3,支持自定义维度;单条输入最多 3072 tokens" + } + } + ] +} diff --git a/manifest.json b/manifest.json index 7682233..5a46049 100644 --- a/manifest.json +++ b/manifest.json @@ -1,6 +1,6 @@ { "version": "1.0.0", - "presetDataVersion": 54, - "updatedAt": "2026-05-30", + "presetDataVersion": 58, + "updatedAt": "2026-06-01", "description": "DesireCore 官方配置中心" } diff --git a/schemas/model-spec.schema.json b/schemas/model-spec.schema.json new file mode 100644 index 0000000..b5d5b32 --- /dev/null +++ b/schemas/model-spec.schema.json @@ -0,0 +1,121 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://desirecore.net/schemas/config-center/model-spec.schema.json", + "title": "ModelSpecFile", + "description": "模型规格库(compute/model-specs/*.json)数据契约。\n\n用途:维护模型的「内在参数」(上下文窗口、最大输出、能力标签、serviceType、默认采样参数等),这些参数与「从哪家 provider、什么价格调用」无关,是模型的客观物理属性。\n\n接入路径(首期仅 cloud):登录后从 NewAPI pricing 拉到的模型,只承担「可用模型清单 + 价签」职责;客户端按 modelName 用通用匹配机制查询本规格库,补全 tags 无法表达的结构化参数(maxOutputTokens / defaultTemperature 等)。\n\n与 provider.schema.json 的区别:provider 文件是「完整 provider 接入定义」,本文件是「跨 provider 共享的模型参数字典」。本文件是老客户端不会读取的新文件,因此 schema 可以更宽松(允许 null),且不破坏已发布客户端兼容契约。\n\n严禁写入价格字段(inputPrice/outputPrice/cache 等)——价签真相源永远是 NewAPI pricing。", + "type": "object", + "required": ["specs"], + "properties": { + "description": { + "type": "string", + "description": "文件说明(如所属厂商、收录范围)" + }, + "specs": { + "type": "array", + "description": "模型规格条目列表", + "items": { "$ref": "#/definitions/modelSpec" } + } + }, + "additionalProperties": false, + "definitions": { + "modelSpec": { + "type": "object", + "required": ["id", "spec"], + "properties": { + "id": { + "type": "string", + "description": "模型标准标识符,通常等于上游 model_name 原样(保留大小写与点号,如 claude-sonnet-4-6、MiniMax-M2.7)。同时作为精确匹配键;匹配时大小写/分隔符不敏感(由匹配器归一化)。", + "minLength": 1 + }, + "displayName": { + "type": "string", + "description": "模型友好显示名(如 Claude Sonnet 4.6)。命中后可覆盖 NewAPI 返回的原始 model_name,优化 UI 展示。" + }, + "family": { + "type": "string", + "description": "模型家族标识(如 claude-sonnet、gpt-5、gemini-2.5)。当精确/别名/pattern 匹配均失败时,按最长 family 前缀兜底匹配,返回保守参数并标记 inferred。" + }, + "match": { + "type": "object", + "description": "通用匹配规则。匹配器会先做归一化(小写、去 vendor 前缀如 anthropic/、去网关装饰、统一分隔符、去日期戳与波动后缀),再分层匹配:exact > 归一化 exact > 去日期戳后 exact > pattern(取最长) > family 兜底。", + "properties": { + "exact": { + "type": "array", + "description": "精确别名列表(除 id 外的已知精确名,含网关可能使用的全名)。归一化后比对。", + "items": { "type": "string", "minLength": 1 } + }, + "patterns": { + "type": "array", + "description": "glob 模式列表(如 claude-sonnet-4-6*)。仅在 exact + 去日期戳仍无法覆盖变体时使用;避免对存在子型号的父模型(如 gpt-4o 之于 gpt-4o-mini)使用宽泛通配,以防误吞。多命中取最长 pattern。", + "items": { "type": "string", "minLength": 1 } + } + }, + "additionalProperties": false + }, + "spec": { + "type": "object", + "description": "模型内在参数(不含任何价格字段)", + "properties": { + "contextWindow": { + "type": "number", + "description": "上下文窗口大小(token 数)。下游用于上下文裁剪阈值计算。", + "minimum": 0 + }, + "maxOutputTokens": { + "type": "number", + "description": "单次请求最大输出 token 数。tags 字符串无法表达,是本规格库相对 NewAPI tags 的核心补充。", + "minimum": 0 + }, + "capabilities": { + "type": "array", + "description": "模型能力标签:chat、vision、tool_use、code、reasoning 等。与 NewAPI tags 解析结果取并集。", + "items": { "type": "string" } + }, + "serviceType": { + "type": ["string", "array"], + "items": { "type": "string" }, + "description": "服务类型,单个字符串或数组:chat、reasoning、fast、vision、embedding、image_gen、tts、asr 等。命中时优先于 tags 解析。" + }, + "defaultTemperature": { + "type": ["number", "null"], + "description": "推荐默认温度(0-2)。null 表示模型不支持温度调节(如 reasoning 模型),调用方应跳过该参数。本文件为新文件,老客户端不读,故允许 null。", + "minimum": 0, + "maximum": 2 + }, + "defaultTopP": { + "type": ["number", "null"], + "description": "推荐默认 Top-P(0-1)。null 表示不支持调节。", + "minimum": 0, + "maximum": 1 + }, + "supportsReasoning": { + "type": "boolean", + "description": "是否为推理模型。用于运行时决定是否启用 reasoning 相关处理。" + }, + "description": { + "type": "string", + "description": "模型简要描述(一句话特点与适用场景)。命中后可覆盖 NewAPI 原值。" + }, + "extra": { + "type": "object", + "description": "模型特定附加配置(如 apiModelId 全名、推理预算等)。不含价格。", + "additionalProperties": true + }, + "releasedAt": { + "type": "string", + "description": "厂商发布年月(YYYY-MM 或 YYYY-MM-DD),辅助人工判断模型新旧。无客户端行为,仅供维护者参考何时清理该条规格。", + "pattern": "^\\d{4}-\\d{2}(-\\d{2})?$" + }, + "retiredAt": { + "type": "string", + "description": "厂商宣布停止访问的日期(YYYY-MM-DD),辅助人工批量删除已退役的规格条目。无客户端行为,仅作数据清理依据。", + "pattern": "^\\d{4}-\\d{2}-\\d{2}$" + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + } + } +} diff --git a/scripts/validate.mjs b/scripts/validate.mjs index 63247e6..eb6bc5b 100644 --- a/scripts/validate.mjs +++ b/scripts/validate.mjs @@ -48,8 +48,10 @@ function pickSchemaKey(absPath) { if (rel === 'compute/service-map.json') return 'service-map' if (rel === 'compute/providers/_index.json') return 'providers-index' if (rel === 'compute/coding-plans/_index.json') return 'providers-index' + if (rel === 'compute/model-specs/_index.json') return 'providers-index' if (rel.startsWith('compute/providers/') && rel.endsWith('.json')) return 'provider' if (rel.startsWith('compute/coding-plans/') && rel.endsWith('.json')) return 'provider' + if (rel.startsWith('compute/model-specs/') && rel.endsWith('.json')) return 'model-spec' return null }