From b64ee773421c03497f50917ee9587d56d46188a2 Mon Sep 17 00:00:00 2001 From: Yige Date: Fri, 25 Sep 2026 23:33:23 +0800 Subject: [PATCH] feat(compute): update current model catalog (#106) * feat(compute): update current model catalog * feat(compute): add MiMo V2.6 model profiles --- __tests__/validate.test.mjs | 178 +++++++++++++++--- .../coding-plans/dashscope-token-plan.json | 58 +++++- compute/model-specs/anthropic.json | 54 +++++- compute/model-specs/google.json | 138 ++++++++++++++ compute/model-specs/openai.json | 143 +++++++++++++- compute/model-specs/qwen.json | 9 +- compute/model-specs/xai.json | 43 +++++ compute/model-specs/xiaomi.json | 138 +++++++++++++- compute/model-specs/zhipu.json | 51 +++++ compute/providers/anthropic-claude.json | 43 ++++- compute/providers/anthropic.json | 64 ++++++- compute/providers/dashscope.json | 67 ++++++- compute/providers/google.json | 97 +++++++++- compute/providers/openai-codex.json | 66 +++++++ compute/providers/openai.json | 141 +++++++++++++- compute/providers/xai.json | 36 +++- compute/providers/xiaomi.json | 96 +++++++++- manifest.json | 4 +- 18 files changed, 1358 insertions(+), 68 deletions(-) diff --git a/__tests__/validate.test.mjs b/__tests__/validate.test.mjs index a6ea3f2..f6f686d 100644 --- a/__tests__/validate.test.mjs +++ b/__tests__/validate.test.mjs @@ -105,7 +105,7 @@ describe('真实数据全量校验', () => { if (spec.routing) routed.push(spec) } } - assert.equal(routed.length, 48) + assert.equal(routed.length, 58) assert.equal(routed.every((spec) => spec.routing.reasoning.supportedModes.includes(spec.routing.reasoning.defaultMode)), true) assert.equal(routed.every((spec) => Array.isArray(spec.spec.capabilities)), true) }) @@ -151,11 +151,14 @@ describe('真实数据全量校验', () => { .map((model) => model.modelName) assert.deepEqual(enabled(anthropic), [ + 'claude-opus-5-5', 'claude-fable-5-1', 'claude-opus-5', 'claude-sonnet-5', ]) assert.deepEqual(enabled(openai), [ + 'gpt-6-sol', + 'gpt-6-luna', 'gpt-6-astra', 'gpt-5.5', 'gpt-5.5-pro', @@ -515,32 +518,148 @@ describe('真实数据全量校验', () => { } }) - it('Qwen3.8 Max Preview 应在 Token Plan 中提供完整的推理与视觉规格', () => { + it('MiMo V2.6 三款官方 API 模型应保持全模态规格与接入差异', () => { + const provider = JSON.parse(readFileSync(join(ROOT, 'compute', 'providers', 'xiaomi.json'), 'utf8')) + const specFile = JSON.parse(readFileSync(join(ROOT, 'compute', 'model-specs', 'xiaomi.json'), 'utf8')) + const cases = [ + ['mimo-v2.6-pro', 3, 6, 0.025, 'flagship'], + ['mimo-v2.6-flash', 1, 2, 0.02, 'balanced'], + ['mimo-v2.6-pro-ultraspeed', 30, 60, 0.25, null], + ] + + for (const [id, inputPrice, outputPrice, cachedInputPrice, tier] of cases) { + const models = provider.models.filter((item) => item.modelName === id) + const specs = specFile.specs.filter((item) => item.id === id) + assert.equal(models.length, 1, `Provider 缺少或重复 ${id}`) + assert.equal(specs.length, 1, `model-specs 缺少或重复 ${id}`) + const model = models[0] + const modelSpec = specs[0] + assert.deepEqual(modelSpec.match.exact, [id]) + assert.equal(model.contextWindow, 1000000) + assert.equal(model.maxOutputTokens, 131072) + assert.equal(modelSpec.spec.contextWindow, model.contextWindow) + assert.equal(modelSpec.spec.maxOutputTokens, model.maxOutputTokens) + assert.equal(model.inputPrice, inputPrice) + assert.equal(model.outputPrice, outputPrice) + assert.equal(model.extra.cachedInputPrice, cachedInputPrice) + for (const capability of ['vision', 'audio_understanding', 'video_understanding', 'tool_use']) { + assert.ok(model.capabilities.includes(capability), `${id} 缺少 ${capability}`) + assert.ok(modelSpec.spec.capabilities.includes(capability), `${id} 规格缺少 ${capability}`) + } + assert.equal(modelSpec.spec.extra.thinkingDefault, true) + assert.equal(modelSpec.routing?.tier ?? null, tier) + } + + const previous = provider.models.find((item) => item.modelName === 'mimo-v2.5-pro') + assert.ok(previous, '尚未到官方下线日,应保留 mimo-v2.5-pro') + assert.equal(previous.maxOutputTokens, 131072) + }) + + it('Token Plan 应使用 Qwen3.8 正式版 ID 并淘汰 Preview 预置', () => { const tokenPlan = JSON.parse(readFileSync(join(ROOT, 'compute', 'coding-plans', 'dashscope-token-plan.json'), 'utf8')) + const apiProvider = JSON.parse(readFileSync(join(ROOT, 'compute', 'providers', 'dashscope.json'), 'utf8')) const specFile = JSON.parse(readFileSync(join(ROOT, 'compute', 'model-specs', 'qwen.json'), 'utf8')) - const modelId = 'qwen3.8-max-preview' - const model = tokenPlan.models.find((item) => item.modelName === modelId) + assert.equal(tokenPlan.models.some((item) => item.modelName === 'qwen3.8-max-preview'), false) + assert.equal(apiProvider.models.some((item) => item.modelName === 'qwen3.8-max-preview'), false) + assert.ok(tokenPlan.tombstones.includes('qwen3.8-max-preview')) + assert.ok(apiProvider.tombstones.includes('qwen3.8-max-preview')) + for (const modelId of ['qwen3.8-max', 'qwen3.8-flash']) { + const model = tokenPlan.models.find((item) => item.modelName === modelId) + const modelSpec = specFile.specs.find((item) => item.id === modelId) + assert.ok(model, `Token Plan 缺少 ${modelId}`) + assert.ok(modelSpec, `model-specs 缺少 ${modelId}`) + assert.equal(model.contextWindow, 1000000) + assert.equal(model.maxOutputTokens, 131072) + assert.ok(model.capabilities.includes('vision')) + assert.deepEqual(model.extra.reasoning.supportedEfforts, ['low', 'medium', 'xhigh']) + assert.equal(model.extra.reasoning.defaultEffort, 'xhigh') + assert.equal(model.extra.thinkingOnly, undefined) + assert.equal(model.extra.preserveThinkingDefault, true) + assert.equal(modelSpec.spec.maxOutputTokens, 131072) + const apiModel = apiProvider.models.find((item) => item.modelName === modelId) + assert.deepEqual(apiModel.extra.reasoning.supportedEfforts, ['low', 'medium', 'xhigh']) + assert.equal(apiModel.extra.preserveThinkingDefault, true) + } + }) - assert.ok(model, `Token Plan 缺少 ${modelId}`) - assert.equal(model.contextWindow, 983616) - assert.equal(model.defaultTemperature, 0.6) - assert.ok(model.capabilities.includes('reasoning')) - assert.ok(model.capabilities.includes('vision')) - assert.ok(model.serviceType.includes('reasoning')) - assert.ok(model.serviceType.includes('vision')) - assert.deepEqual(model.extra.reasoning.supportedEfforts, ['low', 'high', 'xhigh']) - assert.equal(model.extra.reasoning.defaultEffort, 'xhigh') - assert.equal(model.extra.thinkingOnly, true) - assert.equal(model.extra.thinkingMaxTokens, 262144) - assert.equal(model.extra.preserveThinkingDefault, true) - assert.equal(model.extra.supportsParallelToolCalls, false) + it('新增主流模型应在官方 Provider 与共享规格中保持 ID、窗口和推理配置一致', () => { + const cases = [ + ['openai', 'openai', 'gpt-6-sol', 1050000, 128000, 2, 10, 'medium'], + ['openai', 'openai', 'gpt-6-luna', 1050000, 128000, 0.1, 0.5, 'medium'], + ['anthropic', 'anthropic', 'claude-opus-5-5', 1000000, 128000, 4, 20, 'medium'], + ['google', 'google', 'gemini-3.8-flash', 1048576, 65536, 0.75, 3.75, null], + ['google', 'google', 'gemini-3.7-flash', 1048576, 65536, 0.75, 3.75, null], + ['google', 'google', 'gemini-3.5-flash-lite', 1048576, 65536, 0.3, 2.5, null], + ['dashscope', 'qwen', 'qwen3.8-max', 1000000, 131072, 12, 36, null], + ['dashscope', 'qwen', 'qwen3.8-flash', 1000000, 131072, 0.8, 2.7, null], + ['xai', 'xai', 'grok-4.7', 500000, undefined, 2, 6, 'high'], + ] - const specs = specFile.specs.filter((item) => item.id === modelId) - assert.equal(specs.length, 1, `model-specs 中 ${modelId} 应且仅应有一条规格`) - assert.equal(specs[0].spec.contextWindow, 1000000) - assert.equal(specs[0].spec.defaultTemperature, 0.6) - assert.equal(specs[0].spec.supportsReasoning, true) - assert.ok(specs[0].spec.capabilities.includes('vision')) + for (const [providerName, specName, id, contextWindow, maxOutputTokens, inputPrice, outputPrice, defaultEffort] of cases) { + const provider = JSON.parse(readFileSync(join(ROOT, 'compute', 'providers', `${providerName}.json`), 'utf8')) + const specFile = JSON.parse(readFileSync(join(ROOT, 'compute', 'model-specs', `${specName}.json`), 'utf8')) + const models = provider.models.filter((item) => item.modelName === id) + const specs = specFile.specs.filter((item) => item.id === id) + assert.equal(models.length, 1, `${providerName} 缺少或重复 ${id}`) + assert.equal(specs.length, 1, `${specName} 缺少或重复 ${id}`) + assert.equal(models[0].contextWindow, contextWindow) + assert.equal(specs[0].spec.contextWindow, contextWindow) + assert.equal(models[0].maxOutputTokens, maxOutputTokens) + assert.equal(specs[0].spec.maxOutputTokens, maxOutputTokens) + assert.equal(models[0].inputPrice, inputPrice) + assert.equal(models[0].outputPrice, outputPrice) + assert.equal(specs[0].routing.reasoning.supportedModes.includes(specs[0].routing.reasoning.defaultMode), true) + if (defaultEffort) assert.equal(models[0].extra.reasoning.defaultEffort, defaultEffort) + } + + const anthropic = JSON.parse(readFileSync(join(ROOT, 'compute', 'providers', 'anthropic.json'), 'utf8')) + const opus = anthropic.models.find((item) => item.modelName === 'claude-opus-5-5') + assert.equal(opus.extra.adaptiveThinking, true) + assert.equal(opus.extra.thinkingOnly, true) + assert.equal(opus.extra.forcedToolChoiceUnsupported, true) + assert.equal(opus.extra.cachePricing.read, 0.2) + + const xai = JSON.parse(readFileSync(join(ROOT, 'compute', 'providers', 'xai.json'), 'utf8')) + assert.deepEqual(xai.models.find((item) => item.modelName === 'grok-4.7').extra.reasoning.supportedEfforts, ['low', 'medium', 'high', 'xhigh']) + + const codex = JSON.parse(readFileSync(join(ROOT, 'compute', 'providers', 'openai-codex.json'), 'utf8')) + for (const id of ['gpt-6-sol', 'gpt-6-luna']) { + const model = codex.models.find((item) => item.modelName === id) + assert.ok(model, `Codex 订阅 Provider 缺少 ${id}`) + assert.equal(model.source, 'preset') + assert.equal(model.extra.reasoning.defaultEffort, 'medium') + } + }) + + it('GLM-5.3-FlashX 仅加入共享规格,避免假定中国区智谱 API 已提供该 ID', () => { + const provider = JSON.parse(readFileSync(join(ROOT, 'compute', 'providers', 'zhipu.json'), 'utf8')) + const specs = JSON.parse(readFileSync(join(ROOT, 'compute', 'model-specs', 'zhipu.json'), 'utf8')).specs + assert.equal(provider.models.some((item) => item.modelName === 'glm-5.3-flashx'), false) + const spec = specs.find((item) => item.id === 'glm-5.3-flashx') + assert.ok(spec) + assert.deepEqual(spec.match.exact, ['glm-5.3-flashx', 'z-ai/glm-5.3-flashx']) + assert.equal(spec.spec.contextWindow, 1000000) + assert.equal(spec.spec.maxOutputTokens, 128000) + assert.ok(spec.spec.capabilities.includes('vision')) + }) + + it('GPT Image 2.5 双型号应使用图像生成接入,并与 GPT Image 2 精确区分', () => { + const provider = JSON.parse(readFileSync(join(ROOT, 'compute', 'providers', 'openai.json'), 'utf8')) + const specs = JSON.parse(readFileSync(join(ROOT, 'compute', 'model-specs', 'openai.json'), 'utf8')).specs + for (const id of ['gpt-image-2.5-sunburst', 'gpt-image-2.5-flare']) { + const model = provider.models.find((item) => item.modelName === id) + const spec = specs.find((item) => item.id === id) + assert.ok(model, `OpenAI Provider 缺少 ${id}`) + assert.ok(spec, `model-specs 缺少 ${id}`) + assert.deepEqual(model.serviceType, ['image_gen']) + assert.deepEqual(spec.match.exact, [id]) + assert.equal(model.inputPrice, 5) + assert.equal(model.extra.imageInputPrice, 8) + assert.equal(model.outputPrice, 30) + } + const older = specs.find((item) => item.id === 'gpt-image-2') + assert.deepEqual(older.match.exact, ['gpt-image-2']) + assert.equal('patterns' in older.match, false) }) it('Qwen3.8 Flash 应提供完整的多模态推理规格', () => { @@ -618,7 +737,8 @@ describe('真实数据全量校验', () => { assert.equal('patterns' in deepseekFlash.match, false) assert.equal('patterns' in deepseekFlash0731.match, false) assert.equal(qwenBase.spec.contextWindow, qwenPreview.spec.contextWindow) - assert.equal(qwenBase.spec.maxOutputTokens, qwenPreview.spec.maxOutputTokens) + assert.equal(qwenBase.spec.maxOutputTokens, 131072) + assert.equal(qwenPreview.spec.maxOutputTokens, 65536) assert.equal(deepseekBase.spec.contextWindow, deepseek0813.spec.contextWindow) assert.equal(deepseekBase.spec.maxOutputTokens, deepseek0813.spec.maxOutputTokens) assert.equal(deepseekFlash.spec.contextWindow, deepseekFlash0731.spec.contextWindow) @@ -632,16 +752,16 @@ describe('真实数据全量校验', () => { // 两处漏写都会回退成 budget_tokens(desirecore#2940)。Opus 4.6 / Sonnet 4.6 仍接受 // budget_tokens(仅弃用),不在强制范围内。新代际若同样拒绝 budget_tokens,先扩展这里的正则。 const adaptiveGeneration = /^claude-(?:fable|mythos)(?:$|-)|^claude-(?:opus|sonnet)-(?:[5-9]|[1-9]\d)(?:$|-)|^claude-opus-4-[78](?:$|-)/ - const thinkingOnlyGeneration = /^claude-(?:fable|mythos)(?:$|-)/ + const thinkingOnlyGeneration = /^claude-(?:fable|mythos)(?:$|-)|^claude-opus-5-5(?:$|-)/ // 与客户端匹配器同口径:小写、去 vendor 前缀、统一分隔符 const normalizeId = (id) => id.toLowerCase().trim().split('/').at(-1).replace(/[._:\s]+/g, '-') const specsDir = join(ROOT, 'compute', 'model-specs') const allSpecs = JSON.parse(readFileSync(join(specsDir, '_index.json'), 'utf8')).order .flatMap((name) => JSON.parse(readFileSync(join(specsDir, `${name}.json`), 'utf8')).specs) - it('规格按代际声明 adaptiveThinking,只有 Fable/Mythos 声明思考恒开', () => { + it('规格按代际声明 adaptiveThinking,并标记始终开启思考的模型', () => { const adaptiveSpecIds = allSpecs.map((item) => item.id).filter((id) => adaptiveGeneration.test(normalizeId(id))) - for (const id of ['claude-fable-5-1', 'claude-opus-5', 'claude-opus-4-8', 'claude-opus-4-7', 'claude-sonnet-5']) { + for (const id of ['claude-fable-5-1', 'claude-opus-5-5', 'claude-opus-5', 'claude-opus-4-8', 'claude-opus-4-7', 'claude-sonnet-5']) { assert.ok(adaptiveSpecIds.includes(id), `model-specs 缺少 ${id}`) } for (const modelSpec of allSpecs) { @@ -715,10 +835,10 @@ describe('真实数据全量校验', () => { // 只做单向断言(已知拒绝的代际必须声明),新代际按官方文档补声明即可,不维护反向代际表。 // 订阅(claude-oauth)请求由 Claude CLI 自建,客户端 compat 层对这两类参数显式 fail closed,不依赖声明。 const samplingRemoved = /^claude-(?:fable|mythos)-|^claude-(?:opus|sonnet)-5(?:$|-)|^claude-opus-4-[78](?:$|-)/ - const forcedToolChoiceRemoved = /^claude-(?:fable|mythos)-5-1(?:$|-)/ + const forcedToolChoiceRemoved = /^claude-(?:fable|mythos)-5-1(?:$|-)|^claude-opus-5-5(?:$|-)/ const specFile = JSON.parse(readFileSync(join(ROOT, 'compute', 'model-specs', 'anthropic.json'), 'utf8')) - for (const id of ['claude-fable-5-1', 'claude-opus-5', 'claude-opus-4-8', 'claude-opus-4-7', 'claude-sonnet-5']) { + for (const id of ['claude-fable-5-1', 'claude-opus-5-5', 'claude-opus-5', 'claude-opus-4-8', 'claude-opus-4-7', 'claude-sonnet-5']) { assert.ok(specFile.specs.some((item) => item.id === id), `model-specs 缺少 ${id}`) } for (const modelSpec of specFile.specs) { diff --git a/compute/coding-plans/dashscope-token-plan.json b/compute/coding-plans/dashscope-token-plan.json index fa86501..cc6fed7 100644 --- a/compute/coding-plans/dashscope-token-plan.json +++ b/compute/coding-plans/dashscope-token-plan.json @@ -15,6 +15,7 @@ "reasoning" ], "tombstones": [ + "qwen3.8-max-preview", "qwen3.5-plus", "qwen3-coder-plus" ], @@ -27,16 +28,16 @@ }, "models": [ { - "modelName": "qwen3.8-max-preview", - "displayName": "Qwen3.8 Max Preview (Token Plan)", + "modelName": "qwen3.8-max", + "displayName": "Qwen3.8 Max (Token Plan)", "serviceType": [ "chat", "reasoning", "vision" ], - "description": "百炼 Token Plan,通义千问 3.8 Max 预览版,支持文本与视觉输入,始终开启深度思考", - "contextWindow": 983616, - "maxOutputTokens": 65536, + "description": "百炼 Token Plan,通义千问 3.8 Max 正式版,支持文本、图像和视频输入", + "contextWindow": 1000000, + "maxOutputTokens": 131072, "capabilities": [ "chat", "reasoning", @@ -50,12 +51,55 @@ "defaultTemperature": 0.6, "extra": { "reasoning": { - "supportedEfforts": ["low", "high", "xhigh"], + "supportedEfforts": [ + "low", + "medium", + "xhigh" + ], + "defaultEffort": "xhigh" + }, + "supportsThinking": true, + "thinkingDefault": true, + "thinkingMaxTokens": 262144, + "preserveThinkingDefault": true, + "supportsParallelToolCalls": false + }, + "source": "preset" + }, + { + "modelName": "qwen3.8-flash", + "displayName": "Qwen3.8 Flash (Token Plan)", + "serviceType": [ + "chat", + "reasoning", + "vision" + ], + "description": "百炼 Token Plan,通义千问 3.8 Flash 正式版,高速多模态推理", + "contextWindow": 1000000, + "maxOutputTokens": 131072, + "capabilities": [ + "chat", + "reasoning", + "deep_thinking", + "code", + "vision", + "tool_use", + "agent", + "long_context", + "fast" + ], + "defaultTemperature": 0.6, + "extra": { + "reasoning": { + "supportedEfforts": [ + "low", + "medium", + "xhigh" + ], "defaultEffort": "xhigh" }, "supportsThinking": true, "thinkingDefault": true, - "thinkingOnly": true, "thinkingMaxTokens": 262144, "preserveThinkingDefault": true, "supportsParallelToolCalls": false diff --git a/compute/model-specs/anthropic.json b/compute/model-specs/anthropic.json index 3457ca5..e084124 100644 --- a/compute/model-specs/anthropic.json +++ b/compute/model-specs/anthropic.json @@ -1,6 +1,56 @@ { "description": "Anthropic Claude 系列模型规格。参数来源:config-center compute/providers/anthropic.json。", "specs": [ + { + "id": "claude-opus-5-5", + "displayName": "Claude Opus 5.5", + "family": "claude-opus-5-5", + "match": { + "exact": [ + "claude-opus-5-5" + ] + }, + "spec": { + "contextWindow": 1000000, + "maxOutputTokens": 128000, + "capabilities": [ + "chat", + "reasoning", + "code", + "vision", + "tool_use", + "long_context" + ], + "serviceType": [ + "chat" + ], + "supportsReasoning": true, + "description": "Claude Opus 5.5,始终开启自适应思考,默认 medium effort", + "extra": { + "adaptiveThinking": true, + "thinkingOnly": true, + "samplingParametersDeprecated": true, + "forcedToolChoiceUnsupported": true + } + }, + "routing": { + "tier": "flagship", + "routingPriority": 22, + "eligibleForAgent": true, + "defaultReference": false, + "reasoning": { + "supportedModes": [ + "auto", + "low", + "medium", + "high", + "xhigh", + "max" + ], + "defaultMode": "medium" + } + } + }, { "id": "claude-fable-5-1", "displayName": "Claude Fable 5.1", @@ -60,8 +110,8 @@ "displayName": "Claude Opus 5", "family": "claude-opus-5", "match": { - "patterns": [ - "claude-opus-5*" + "exact": [ + "claude-opus-5" ] }, "spec": { diff --git a/compute/model-specs/google.json b/compute/model-specs/google.json index 54e3b40..0e44865 100644 --- a/compute/model-specs/google.json +++ b/compute/model-specs/google.json @@ -1,6 +1,144 @@ { "description": "Google Gemini 系列模型规格。参数来源:config-center compute/providers/google.json。", "specs": [ + { + "id": "gemini-3.8-flash", + "displayName": "Gemini 3.8 Flash", + "family": "gemini-3.8-flash", + "match": { + "exact": [ + "gemini-3.8-flash" + ] + }, + "spec": { + "contextWindow": 1048576, + "maxOutputTokens": 65536, + "capabilities": [ + "chat", + "reasoning", + "code", + "vision", + "video_understanding", + "audio_understanding", + "ultra_long_context", + "tool_use", + "fast" + ], + "serviceType": [ + "chat" + ], + "defaultTemperature": 1, + "supportsReasoning": true, + "description": "Gemini 3.8 Flash,稳定版,支持多模态输入和 1M 上下文" + }, + "routing": { + "tier": "balanced", + "routingPriority": 10, + "eligibleForAgent": true, + "defaultReference": false, + "reasoning": { + "supportedModes": [ + "auto", + "low", + "medium", + "high" + ], + "defaultMode": "medium" + } + } + }, + { + "id": "gemini-3.7-flash", + "displayName": "Gemini 3.7 Flash", + "family": "gemini-3.7-flash", + "match": { + "exact": [ + "gemini-3.7-flash" + ] + }, + "spec": { + "contextWindow": 1048576, + "maxOutputTokens": 65536, + "capabilities": [ + "chat", + "reasoning", + "code", + "vision", + "video_understanding", + "audio_understanding", + "ultra_long_context", + "tool_use", + "fast" + ], + "serviceType": [ + "chat" + ], + "defaultTemperature": 1, + "supportsReasoning": true, + "description": "Gemini 3.7 Flash,稳定版,支持多模态输入和 1M 上下文" + }, + "routing": { + "tier": "balanced", + "routingPriority": 20, + "eligibleForAgent": true, + "defaultReference": false, + "reasoning": { + "supportedModes": [ + "auto", + "low", + "medium", + "high" + ], + "defaultMode": "medium" + } + } + }, + { + "id": "gemini-3.5-flash-lite", + "displayName": "Gemini 3.5 Flash-Lite", + "family": "gemini-3.5-flash-lite", + "match": { + "exact": [ + "gemini-3.5-flash-lite" + ] + }, + "spec": { + "contextWindow": 1048576, + "maxOutputTokens": 65536, + "capabilities": [ + "chat", + "reasoning", + "code", + "vision", + "video_understanding", + "audio_understanding", + "ultra_long_context", + "tool_use", + "fast" + ], + "serviceType": [ + "chat" + ], + "defaultTemperature": 1, + "supportsReasoning": true, + "description": "Gemini 3.5 Flash-Lite,稳定版,支持多模态输入和 1M 上下文" + }, + "routing": { + "tier": "lightweight", + "routingPriority": 20, + "eligibleForAgent": true, + "defaultReference": false, + "reasoning": { + "supportedModes": [ + "auto", + "low", + "medium", + "high" + ], + "defaultMode": "medium" + } + } + }, { "id": "gemini-3.1-flash-lite-image", "displayName": "Gemini 3.1 Flash Lite Image (Nano Banana 2 Lite)", diff --git a/compute/model-specs/openai.json b/compute/model-specs/openai.json index fdb681d..55a87aa 100644 --- a/compute/model-specs/openai.json +++ b/compute/model-specs/openai.json @@ -1,6 +1,144 @@ { "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-image-2.5-sunburst", + "displayName": "GPT Image 2.5 Sunburst", + "family": "gpt-image-2.5-sunburst", + "match": { + "exact": [ + "gpt-image-2.5-sunburst" + ] + }, + "spec": { + "capabilities": [ + "image_generation", + "image_editing", + "text_rendering", + "vision", + "high_quality" + ], + "serviceType": [ + "image_gen" + ], + "description": "图像生成与编辑模型,适合对编辑精度要求高的任务" + } + }, + { + "id": "gpt-image-2.5-flare", + "displayName": "GPT Image 2.5 Flare", + "family": "gpt-image-2.5-flare", + "match": { + "exact": [ + "gpt-image-2.5-flare" + ] + }, + "spec": { + "capabilities": [ + "image_generation", + "image_editing", + "text_rendering", + "vision", + "fast" + ], + "serviceType": [ + "image_gen" + ], + "description": "快速图像生成与编辑模型,适合日常高质量出图" + } + }, + { + "id": "gpt-6-sol", + "displayName": "GPT-6 Sol", + "family": "gpt-6-sol", + "match": { + "exact": [ + "gpt-6-sol" + ] + }, + "spec": { + "contextWindow": 1050000, + "maxOutputTokens": 128000, + "capabilities": [ + "chat", + "reasoning", + "code", + "vision", + "long_context", + "tool_use", + "agent" + ], + "serviceType": [ + "chat" + ], + "supportsReasoning": true, + "description": "GPT-6 Sol,1.05M 上下文,128K 最大输出" + }, + "routing": { + "tier": "balanced", + "routingPriority": 5, + "eligibleForAgent": true, + "defaultReference": false, + "reasoning": { + "supportedModes": [ + "auto", + "off", + "low", + "medium", + "high", + "xhigh", + "max" + ], + "defaultMode": "medium" + } + } + }, + { + "id": "gpt-6-luna", + "displayName": "GPT-6 Luna", + "family": "gpt-6-luna", + "match": { + "exact": [ + "gpt-6-luna" + ] + }, + "spec": { + "contextWindow": 1050000, + "maxOutputTokens": 128000, + "capabilities": [ + "chat", + "reasoning", + "code", + "vision", + "long_context", + "tool_use", + "fast" + ], + "serviceType": [ + "chat" + ], + "supportsReasoning": true, + "description": "GPT-6 Luna,1.05M 上下文,128K 最大输出" + }, + "routing": { + "tier": "lightweight", + "routingPriority": 5, + "eligibleForAgent": true, + "defaultReference": false, + "reasoning": { + "supportedModes": [ + "auto", + "off", + "low", + "medium", + "high", + "xhigh", + "max" + ], + "defaultMode": "medium" + } + } + }, { "id": "gpt-6-astra", "displayName": "GPT-6 Astra", @@ -89,9 +227,6 @@ "match": { "exact": [ "gpt-image-2" - ], - "patterns": [ - "gpt-image-2*" ] }, "spec": { @@ -104,7 +239,7 @@ "serviceType": [ "image_gen" ], - "description": "OpenAI 最新文生图模型,支持高质量图片生成与编辑,400K 上下文" + "description": "OpenAI GPT Image 2 文生图模型,支持高质量图片生成与编辑,400K 上下文" } }, { diff --git a/compute/model-specs/qwen.json b/compute/model-specs/qwen.json index 38ecbdb..dcd0c62 100644 --- a/compute/model-specs/qwen.json +++ b/compute/model-specs/qwen.json @@ -12,7 +12,7 @@ }, "spec": { "contextWindow": 1000000, - "maxOutputTokens": 65536, + "maxOutputTokens": 131072, "capabilities": [ "chat", "reasoning", @@ -21,7 +21,8 @@ "tool_use", "long_context", "agent", - "vision" + "vision", + "video_understanding" ], "serviceType": [ "chat" @@ -29,7 +30,7 @@ "defaultTemperature": 0.6, "defaultTopP": 0.95, "supportsReasoning": true, - "description": "通义千问 Qwen3.8 Max,100 万上下文,支持视觉理解" + "description": "通义千问 Qwen3.8 Max 稳定版,100 万上下文,支持视觉与视频理解" }, "routing": { "tier": "flagship", @@ -46,7 +47,7 @@ "high", "xhigh" ], - "defaultMode": "high" + "defaultMode": "xhigh" } } }, diff --git a/compute/model-specs/xai.json b/compute/model-specs/xai.json index 5a3dc44..413948d 100644 --- a/compute/model-specs/xai.json +++ b/compute/model-specs/xai.json @@ -1,6 +1,49 @@ { "description": "xAI Grok 系列模型规格。参数来源:config-center compute/providers/xai.json。Grok 网关命名变体较多(含日期戳/-fast/-reasoning 后缀),主要依赖 family=grok-4 兜底匹配。", "specs": [ + { + "id": "grok-4.7", + "displayName": "Grok 4.7", + "family": "grok-4.7", + "match": { + "exact": [ + "grok-4.7" + ] + }, + "spec": { + "contextWindow": 500000, + "capabilities": [ + "chat", + "reasoning", + "code", + "vision", + "tool_use", + "long_context" + ], + "serviceType": [ + "chat", + "reasoning" + ], + "supportsReasoning": true, + "description": "xAI Grok 4.7,500K 上下文,文本与图像输入,推理努力等级 low 到 xhigh" + }, + "routing": { + "tier": "flagship", + "routingPriority": 30, + "eligibleForAgent": true, + "defaultReference": false, + "reasoning": { + "supportedModes": [ + "auto", + "low", + "medium", + "high", + "xhigh" + ], + "defaultMode": "high" + } + } + }, { "id": "grok-4.5", "displayName": "Grok 4.5", diff --git a/compute/model-specs/xiaomi.json b/compute/model-specs/xiaomi.json index 352bd5e..7aa5c04 100644 --- a/compute/model-specs/xiaomi.json +++ b/compute/model-specs/xiaomi.json @@ -1,6 +1,142 @@ { - "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 渠道正确展示参数。", + "description": "小米 MiMo 系列模型规格。参数来源:https://mimo.mi.com/docs/zh-CN/quick-start/summary/model。注意 v2-pro/v2-omni 自 2026-06-01 起转发到 v2.5 系列,2026-06-30 正式停用,规格库仍保留供存量 NewAPI 渠道正确展示参数。", "specs": [ + { + "id": "mimo-v2.6-pro", + "displayName": "MiMo-V2.6-Pro", + "family": "mimo-v2.6-pro", + "match": { + "exact": [ + "mimo-v2.6-pro" + ] + }, + "spec": { + "contextWindow": 1000000, + "maxOutputTokens": 131072, + "capabilities": [ + "chat", + "reasoning", + "code", + "vision", + "audio_understanding", + "video_understanding", + "tool_use", + "agent", + "long_context" + ], + "serviceType": [ + "chat", + "reasoning", + "vision" + ], + "supportsReasoning": true, + "description": "小米全模态旗舰推理模型,适合复杂项目与长程智能体任务", + "extra": { + "thinkingDefault": true + }, + "releasedAt": "2026-09-22" + }, + "routing": { + "tier": "flagship", + "routingPriority": 28, + "eligibleForAgent": true, + "defaultReference": false, + "reasoning": { + "supportedModes": [ + "auto", + "off" + ], + "defaultMode": "auto" + } + } + }, + { + "id": "mimo-v2.6-flash", + "displayName": "MiMo-V2.6-Flash", + "family": "mimo-v2.6-flash", + "match": { + "exact": [ + "mimo-v2.6-flash" + ] + }, + "spec": { + "contextWindow": 1000000, + "maxOutputTokens": 131072, + "capabilities": [ + "chat", + "reasoning", + "code", + "vision", + "audio_understanding", + "video_understanding", + "tool_use", + "agent", + "long_context", + "fast" + ], + "serviceType": [ + "chat", + "reasoning", + "vision" + ], + "supportsReasoning": true, + "description": "小米全模态高效推理模型,适合高频调用与规模化任务", + "extra": { + "thinkingDefault": true + }, + "releasedAt": "2026-09-22" + }, + "routing": { + "tier": "balanced", + "routingPriority": 28, + "eligibleForAgent": true, + "defaultReference": false, + "reasoning": { + "supportedModes": [ + "auto", + "off" + ], + "defaultMode": "auto" + } + } + }, + { + "id": "mimo-v2.6-pro-ultraspeed", + "displayName": "MiMo-V2.6-Pro-UltraSpeed", + "family": "mimo-v2.6-pro-ultraspeed", + "match": { + "exact": [ + "mimo-v2.6-pro-ultraspeed" + ] + }, + "spec": { + "contextWindow": 1000000, + "maxOutputTokens": 131072, + "capabilities": [ + "chat", + "reasoning", + "code", + "vision", + "audio_understanding", + "video_understanding", + "tool_use", + "agent", + "long_context", + "fast" + ], + "serviceType": [ + "chat", + "reasoning", + "vision" + ], + "supportsReasoning": true, + "description": "MiMo-V2.6-Pro 的超高速服务,需向小米申请定制配额", + "extra": { + "thinkingDefault": true + }, + "releasedAt": "2026-09-22" + } + }, { "id": "mimo-x-flash-preview", "displayName": "MiMo-X-Flash Preview", diff --git a/compute/model-specs/zhipu.json b/compute/model-specs/zhipu.json index 0054eed..1c13e9d 100644 --- a/compute/model-specs/zhipu.json +++ b/compute/model-specs/zhipu.json @@ -1,6 +1,57 @@ { "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.3-flashx", + "displayName": "GLM-5.3-FlashX", + "family": "glm-5.3-flashx", + "match": { + "exact": [ + "glm-5.3-flashx", + "z-ai/glm-5.3-flashx" + ] + }, + "spec": { + "contextWindow": 1000000, + "maxOutputTokens": 128000, + "capabilities": [ + "chat", + "reasoning", + "code", + "multilingual", + "vision", + "video_understanding", + "tool_use", + "long_context", + "fast" + ], + "serviceType": [ + "chat", + "reasoning", + "vision" + ], + "supportsReasoning": true, + "description": "Z.ai GLM-5.3-FlashX,高速多模态推理模型,100 万上下文,始终开启推理", + "extra": { + "thinkingOnly": true + } + }, + "routing": { + "tier": "balanced", + "routingPriority": 49, + "eligibleForAgent": true, + "defaultReference": false, + "reasoning": { + "supportedModes": [ + "auto", + "low", + "high", + "max" + ], + "defaultMode": "max" + } + } + }, { "id": "glm-5.3", "displayName": "GLM-5.3", diff --git a/compute/providers/anthropic-claude.json b/compute/providers/anthropic-claude.json index 8d4f3b8..9ef6805 100644 --- a/compute/providers/anthropic-claude.json +++ b/compute/providers/anthropic-claude.json @@ -25,6 +25,47 @@ "reasoning" ], "models": [ + { + "modelName": "claude-opus-5-5", + "displayName": "Claude Opus 5.5", + "serviceType": [ + "chat" + ], + "contextWindow": 1000000, + "maxOutputTokens": 128000, + "capabilities": [ + "chat", + "reasoning", + "code", + "vision", + "tool_use", + "agent", + "long_context" + ], + "description": "Claude 订阅额度计费,长程智能体编程与知识工作模型,1M 上下文", + "extra": { + "adaptiveThinking": true, + "reasoning": { + "supportedEfforts": [ + "low", + "medium", + "high", + "xhigh", + "max" + ], + "defaultEffort": "medium" + }, + "thinkingOnly": true, + "thinkingRoundTrip": { + "enabled": true, + "protocol": "anthropic-messages", + "allowEmptySignature": false, + "scope": "active-tool-turn" + }, + "thinkingToolTurnValidation": "accepts-thinkless" + }, + "source": "preset" + }, { "modelName": "claude-fable-5-1", "displayName": "Claude Fable 5.1", @@ -72,7 +113,7 @@ "serviceType": [ "chat" ], - "description": "Claude 订阅额度计费,Opus 系列当前旗舰,复杂智能体编码与长程任务首选,1M 上下文", + "description": "Claude 订阅额度计费,Opus 5 系列模型,复杂智能体编码与长程任务首选,1M 上下文", "contextWindow": 1000000, "maxOutputTokens": 128000, "capabilities": [ diff --git a/compute/providers/anthropic.json b/compute/providers/anthropic.json index b9b6a48..118c674 100644 --- a/compute/providers/anthropic.json +++ b/compute/providers/anthropic.json @@ -14,6 +14,64 @@ "computer_use" ], "models": [ + { + "modelName": "claude-opus-5-5", + "displayName": "Claude Opus 5.5", + "serviceType": [ + "chat" + ], + "description": "Anthropic 面向长程智能体编程与知识工作的 Opus 模型,1M 上下文,始终开启自适应思考", + "contextWindow": 1000000, + "maxOutputTokens": 128000, + "capabilities": [ + "chat", + "reasoning", + "code", + "vision", + "tool_use", + "agent", + "long_context" + ], + "inputPrice": 4, + "outputPrice": 20, + "extra": { + "thinkingRoundTrip": { + "enabled": true, + "protocol": "anthropic-messages", + "allowEmptySignature": false, + "scope": "active-tool-turn" + }, + "thinkingToolTurnValidation": "accepts-thinkless", + "serverSideWebSearch": { + "enabled": true, + "dialect": "anthropic-messages", + "fallbackPriority": 2, + "searchRequestPriceUsd": 0.01, + "toolType": "web_search_20260318" + }, + "cachePricing": { + "write5m": 5, + "write1h": 8, + "read": 0.2 + }, + "promptCacheMinTokens": 512, + "adaptiveThinking": true, + "reasoning": { + "supportedEfforts": [ + "low", + "medium", + "high", + "xhigh", + "max" + ], + "defaultEffort": "medium" + }, + "samplingParametersDeprecated": true, + "forcedToolChoiceUnsupported": true, + "thinkingOnly": true, + "pricingNotes": "Prices are per 1M tokens. Full 1M context is billed at standard pricing." + } + }, { "modelName": "claude-fable-5-1", "displayName": "Claude Fable 5.1", @@ -77,7 +135,7 @@ "serviceType": [ "chat" ], - "description": "Anthropic Opus 系列当前旗舰,复杂智能体编码与长程任务能力显著强于 Opus 4.8,价格不变,1M 上下文", + "description": "Anthropic Opus 5 系列模型,复杂智能体编码与长程任务能力显著强于 Opus 4.8,价格不变,1M 上下文", "contextWindow": 1000000, "maxOutputTokens": 128000, "capabilities": [ @@ -170,10 +228,6 @@ "write1h": 4, "read": 0.2 }, - "introductoryPricingUntil": "2026-08-31", - "standardPricingFrom": "2026-09-01", - "standardInputPrice": 3, - "standardOutputPrice": 15, "adaptiveThinking": true, "reasoning": { "supportedEfforts": [ diff --git a/compute/providers/dashscope.json b/compute/providers/dashscope.json index a2aa556..440cfcd 100644 --- a/compute/providers/dashscope.json +++ b/compute/providers/dashscope.json @@ -24,6 +24,7 @@ "translation" ], "tombstones": [ + "qwen3.8-max-preview", "qwen3.6-plus", "qwen3.5-plus", "qwen-max", @@ -34,15 +35,15 @@ ], "models": [ { - "modelName": "qwen3.8-max-preview", - "displayName": "阿里云 Qwen3.8-Max (Preview)", + "modelName": "qwen3.8-max", + "displayName": "阿里云 Qwen3.8-Max", "serviceType": [ "chat", "vision" ], - "description": "通义千问3.8 Max 预览版,面向复杂推理与长程 Agent 任务的旗舰模型,100万上下文,支持视觉理解、内置工具和 Function Calling", + "description": "通义千问3.8 Max 稳定版,支持视觉、视频理解和工具调用,100万上下文", "contextWindow": 1000000, - "maxOutputTokens": 65536, + "maxOutputTokens": 131072, "capabilities": [ "chat", "reasoning", @@ -51,13 +52,67 @@ "long_context", "tool_use", "agent", - "vision" + "vision", + "video_understanding" ], "inputPrice": 12, "outputPrice": 36, "defaultTemperature": 0.6, "defaultTopP": 0.95, - "extra": {} + "extra": { + "cachedInputPrice": 1.5, + "pricingNotes": "CNY per 1M tokens, Beijing region standard price.", + "reasoning": { + "supportedEfforts": [ + "low", + "medium", + "xhigh" + ], + "defaultEffort": "xhigh" + }, + "preserveThinkingDefault": true, + "thinkingMaxTokens": 262144 + } + }, + { + "modelName": "qwen3.8-flash", + "displayName": "阿里云 Qwen3.8-Flash", + "serviceType": [ + "chat", + "vision" + ], + "description": "通义千问3.8 Flash 稳定版,高速多模态推理,100万上下文", + "contextWindow": 1000000, + "maxOutputTokens": 131072, + "capabilities": [ + "chat", + "reasoning", + "code", + "multilingual", + "long_context", + "tool_use", + "agent", + "vision", + "video_understanding" + ], + "inputPrice": 0.8, + "outputPrice": 2.7, + "defaultTemperature": 0.6, + "defaultTopP": 0.95, + "extra": { + "cachedInputPrice": 0.1, + "pricingNotes": "CNY per 1M tokens, Beijing region standard price.", + "reasoning": { + "supportedEfforts": [ + "low", + "medium", + "xhigh" + ], + "defaultEffort": "xhigh" + }, + "preserveThinkingDefault": true, + "thinkingMaxTokens": 262144 + } }, { "modelName": "qwen3.7-max", diff --git a/compute/providers/google.json b/compute/providers/google.json index e079670..d7cad08 100644 --- a/compute/providers/google.json +++ b/compute/providers/google.json @@ -15,6 +15,101 @@ "embedding" ], "models": [ + { + "modelName": "gemini-3.8-flash", + "displayName": "Gemini 3.8 Flash", + "serviceType": [ + "chat" + ], + "description": "Google 最新稳定版 Flash,面向长程编程和智能体任务,1M 上下文", + "contextWindow": 1048576, + "maxOutputTokens": 65536, + "capabilities": [ + "chat", + "reasoning", + "code", + "vision", + "ultra_long_context", + "tool_use", + "fast" + ], + "inputPrice": 0.75, + "outputPrice": 3.75, + "defaultTemperature": 1, + "defaultTopP": 0.95, + "extra": { + "cachePricing": { + "inputCacheRead": 0.075 + }, + "reasoning": { + "supportedEfforts": ["low", "medium", "high"], + "defaultEffort": "medium" + }, + "pricingNotes": "Standard paid tier introductory price through 2026-12-31; standard rates rise on 2027-01-01." + } + }, + { + "modelName": "gemini-3.7-flash", + "displayName": "Gemini 3.7 Flash", + "serviceType": [ + "chat" + ], + "description": "Google 稳定版 Flash,面向日常编程和多步工具调用,1M 上下文", + "contextWindow": 1048576, + "maxOutputTokens": 65536, + "capabilities": [ + "chat", + "reasoning", + "code", + "vision", + "ultra_long_context", + "tool_use", + "fast" + ], + "inputPrice": 0.75, + "outputPrice": 3.75, + "defaultTemperature": 1, + "defaultTopP": 0.95, + "extra": { + "cachePricing": { + "inputCacheRead": 0.075 + }, + "reasoning": { + "supportedEfforts": ["low", "medium", "high"], + "defaultEffort": "medium" + }, + "pricingNotes": "Standard paid tier introductory price through 2026-12-31; standard rates rise on 2027-01-01." + } + }, + { + "modelName": "gemini-3.5-flash-lite", + "displayName": "Gemini 3.5 Flash-Lite", + "serviceType": [ + "chat", + "fast" + ], + "description": "Google 低延迟轻量模型,支持多模态输入,1M 上下文", + "contextWindow": 1048576, + "maxOutputTokens": 65536, + "capabilities": [ + "chat", + "reasoning", + "code", + "vision", + "ultra_long_context", + "tool_use", + "fast" + ], + "inputPrice": 0.3, + "outputPrice": 2.5, + "defaultTemperature": 1, + "defaultTopP": 0.95, + "extra": { + "cachePricing": { + "inputCacheRead": 0.03 + } + } + }, { "modelName": "gemini-3.5-flash", "displayName": "Gemini 3.5 Flash", @@ -141,7 +236,7 @@ "serviceType": [ "chat" ], - "description": "Google 最新旗舰模型,1,048,576 token 上下文,多模态", + "description": "Google Gemini 2.5 Pro,1,048,576 token 上下文,多模态", "contextWindow": 1048576, "maxOutputTokens": 65536, "capabilities": [ diff --git a/compute/providers/openai-codex.json b/compute/providers/openai-codex.json index 7fd25bc..b4d6031 100644 --- a/compute/providers/openai-codex.json +++ b/compute/providers/openai-codex.json @@ -24,6 +24,72 @@ "reasoning" ], "models": [ + { + "modelName": "gpt-6-sol", + "displayName": "GPT-6 Sol", + "serviceType": [ + "chat" + ], + "description": "ChatGPT 订阅额度计费,兼顾复杂编程、智能体工作流与成本的 GPT-6 模型;1.05M 上下文", + "contextWindow": 1050000, + "maxOutputTokens": 128000, + "capabilities": [ + "chat", + "reasoning", + "code", + "vision", + "ultra_long_context", + "tool_use", + "agent" + ], + "extra": { + "reasoning": { + "supportedEfforts": [ + "none", + "low", + "medium", + "high", + "xhigh", + "max" + ], + "defaultEffort": "medium" + } + }, + "source": "preset" + }, + { + "modelName": "gpt-6-luna", + "displayName": "GPT-6 Luna", + "serviceType": [ + "chat" + ], + "description": "ChatGPT 订阅额度计费,面向明确任务和高吞吐场景的 GPT-6 轻量模型;1.05M 上下文", + "contextWindow": 1050000, + "maxOutputTokens": 128000, + "capabilities": [ + "chat", + "reasoning", + "code", + "vision", + "ultra_long_context", + "tool_use", + "fast" + ], + "extra": { + "reasoning": { + "supportedEfforts": [ + "none", + "low", + "medium", + "high", + "xhigh", + "max" + ], + "defaultEffort": "medium" + } + }, + "source": "preset" + }, { "modelName": "gpt-6-astra", "displayName": "GPT-6 Astra", diff --git a/compute/providers/openai.json b/compute/providers/openai.json index 60bc8a7..847724a 100644 --- a/compute/providers/openai.json +++ b/compute/providers/openai.json @@ -24,6 +24,141 @@ "translation" ], "models": [ + { + "modelName": "gpt-image-2.5-sunburst", + "displayName": "GPT Image 2.5 Sunburst", + "serviceType": [ + "image_gen" + ], + "description": "图像生成与编辑模型,适合对编辑精度要求高的任务", + "capabilities": [ + "image_generation", + "image_editing", + "text_rendering", + "vision", + "high_quality" + ], + "inputPrice": 5, + "outputPrice": 30, + "extra": { + "imageInputPrice": 8, + "textCachedInputPrice": 1.25, + "imageCachedInputPrice": 2, + "pricingNotes": "Text input $5/M tokens, image input $8/M tokens, image output $30/M tokens; quality supports low, medium, high, xhigh, max, auto." + } + }, + { + "modelName": "gpt-image-2.5-flare", + "displayName": "GPT Image 2.5 Flare", + "serviceType": [ + "image_gen" + ], + "description": "快速图像生成与编辑模型,适合日常高质量出图", + "capabilities": [ + "image_generation", + "image_editing", + "text_rendering", + "vision", + "fast" + ], + "inputPrice": 5, + "outputPrice": 30, + "extra": { + "imageInputPrice": 8, + "textCachedInputPrice": 1.25, + "imageCachedInputPrice": 2, + "pricingNotes": "Text input $5/M tokens, image input $8/M tokens, image output $30/M tokens; quality supports low, medium, high, xhigh, max, auto." + } + }, + { + "modelName": "gpt-6-sol", + "displayName": "GPT-6 Sol", + "serviceType": [ + "chat", + "responses" + ], + "contextWindow": 1050000, + "maxOutputTokens": 128000, + "capabilities": [ + "chat", + "reasoning", + "code", + "vision", + "ultra_long_context", + "tool_use", + "agent" + ], + "description": "兼顾复杂编程、智能体工作流与成本的 GPT-6 模型;1.05M 上下文", + "inputPrice": 2, + "outputPrice": 10, + "extra": { + "serverSideWebSearch": { + "enabled": true, + "dialect": "openai-responses", + "fallbackPriority": 2, + "searchRequestPriceUsd": 0.01, + "toolType": "web_search" + }, + "cachedInputPrice": 0.2, + "reasoning": { + "supportedEfforts": [ + "none", + "low", + "medium", + "high", + "xhigh", + "max" + ], + "defaultEffort": "medium" + }, + "pricingNotes": "Prices are per 1M tokens. Above 272K input tokens, input and cache rates are 2x and output rates are 1.5x for the full request. Chat Completions function calling requires reasoning_effort=none." + } + }, + { + "modelName": "gpt-6-luna", + "displayName": "GPT-6 Luna", + "serviceType": [ + "chat", + "fast", + "responses" + ], + "contextWindow": 1050000, + "maxOutputTokens": 128000, + "capabilities": [ + "chat", + "reasoning", + "code", + "vision", + "ultra_long_context", + "tool_use", + "fast" + ], + "description": "面向明确任务和高吞吐场景的 GPT-6 轻量模型;1.05M 上下文", + "inputPrice": 0.1, + "outputPrice": 0.5, + "extra": { + "serverSideWebSearch": { + "enabled": true, + "dialect": "openai-responses", + "fallbackPriority": 3, + "searchRequestPriceUsd": 0.01, + "toolType": "web_search" + }, + "cachedInputPrice": 0.01, + "reasoning": { + "supportedEfforts": [ + "none", + "low", + "medium", + "high", + "xhigh", + "max" + ], + "defaultEffort": "medium" + }, + "pricingNotes": "Prices are per 1M tokens. Above 272K input tokens, input and cache rates are 2x and output rates are 1.5x for the full request. Chat Completions function calling requires reasoning_effort=none." + } + }, { "modelName": "gpt-6-astra", "displayName": "GPT-6 Astra", @@ -68,7 +203,7 @@ "chat", "responses" ], - "description": "OpenAI 最新前沿模型,面向复杂推理、编码和专业工作流,1M 上下文,128K 最大输出", + "description": "OpenAI GPT-5.5 前沿模型,面向复杂推理、编码和专业工作流,1M 上下文,128K 最大输出", "contextWindow": 1050000, "maxOutputTokens": 128000, "capabilities": [ @@ -294,7 +429,7 @@ "serviceType": [ "image_gen" ], - "description": "OpenAI 最新图像生成和编辑模型,支持文本输入、图像输入与图像输出", + "description": "OpenAI GPT Image 2 图像生成和编辑模型,支持文本输入、图像输入与图像输出", "capabilities": [ "image_generation", "image_editing", @@ -398,7 +533,7 @@ "serviceType": [ "chat" ], - "description": "OpenAI 最新旗舰模型,400K 上下文,编码和智能体任务优化", + "description": "OpenAI GPT-5.2,400K 上下文,面向编码和智能体任务", "contextWindow": 400000, "maxOutputTokens": 128000, "capabilities": [ diff --git a/compute/providers/xai.json b/compute/providers/xai.json index 9e232ee..a28ad73 100644 --- a/compute/providers/xai.json +++ b/compute/providers/xai.json @@ -14,6 +14,40 @@ "reasoning" ], "models": [ + { + "modelName": "grok-4.7", + "displayName": "Grok 4.7", + "serviceType": [ + "chat", + "reasoning" + ], + "description": "xAI 面向编程与智能体任务的旗舰模型,500K 上下文,支持图像输入和可配置推理", + "contextWindow": 500000, + "capabilities": [ + "chat", + "reasoning", + "code", + "vision", + "tool_use", + "structured_output", + "long_context" + ], + "inputPrice": 2, + "outputPrice": 6, + "extra": { + "cachedInputPrice": 0.5, + "reasoning": { + "supportedEfforts": [ + "low", + "medium", + "high", + "xhigh" + ], + "defaultEffort": "high" + }, + "pricingNotes": "Prices are per 1M tokens below 200K prompt tokens; above 200K, input and cache rates are 2x and output rates are 2x. No text output limit is documented." + } + }, { "modelName": "grok-4.3", "displayName": "Grok 4.3", @@ -21,7 +55,7 @@ "chat", "reasoning" ], - "description": "xAI 最新旗舰通用模型,1M 上下文,支持可配置推理、函数调用和结构化输出", + "description": "xAI Grok 4.3 通用模型,1M 上下文,支持可配置推理、函数调用和结构化输出", "contextWindow": 1000000, "capabilities": [ "chat", diff --git a/compute/providers/xiaomi.json b/compute/providers/xiaomi.json index bd7797c..e49e4f7 100644 --- a/compute/providers/xiaomi.json +++ b/compute/providers/xiaomi.json @@ -19,6 +19,98 @@ "asr" ], "models": [ + { + "modelName": "mimo-v2.6-pro", + "displayName": "MiMo-V2.6-Pro", + "serviceType": [ + "chat", + "reasoning", + "vision" + ], + "description": "小米全模态旗舰推理模型,适合复杂项目与长程智能体任务", + "contextWindow": 1000000, + "maxOutputTokens": 131072, + "capabilities": [ + "chat", + "reasoning", + "code", + "vision", + "audio_understanding", + "video_understanding", + "tool_use", + "agent", + "long_context" + ], + "inputPrice": 3, + "outputPrice": 6, + "extra": { + "cachedInputPrice": 0.025, + "thinkingDefault": true, + "pricingNotes": "CNY per 1M tokens on the Xiaomi MiMo API." + } + }, + { + "modelName": "mimo-v2.6-flash", + "displayName": "MiMo-V2.6-Flash", + "serviceType": [ + "chat", + "reasoning", + "vision" + ], + "description": "小米全模态高效推理模型,适合高频调用与规模化任务", + "contextWindow": 1000000, + "maxOutputTokens": 131072, + "capabilities": [ + "chat", + "reasoning", + "code", + "vision", + "audio_understanding", + "video_understanding", + "tool_use", + "agent", + "long_context", + "fast" + ], + "inputPrice": 1, + "outputPrice": 2, + "extra": { + "cachedInputPrice": 0.02, + "thinkingDefault": true, + "pricingNotes": "CNY per 1M tokens on the Xiaomi MiMo API." + } + }, + { + "modelName": "mimo-v2.6-pro-ultraspeed", + "displayName": "MiMo-V2.6-Pro-UltraSpeed", + "serviceType": [ + "chat", + "reasoning", + "vision" + ], + "description": "MiMo-V2.6-Pro 的超高速服务,需向小米申请定制配额", + "contextWindow": 1000000, + "maxOutputTokens": 131072, + "capabilities": [ + "chat", + "reasoning", + "code", + "vision", + "audio_understanding", + "video_understanding", + "tool_use", + "agent", + "long_context", + "fast" + ], + "inputPrice": 30, + "outputPrice": 60, + "extra": { + "cachedInputPrice": 0.25, + "thinkingDefault": true, + "pricingNotes": "CNY per 1M tokens on the Xiaomi MiMo API; UltraSpeed requires custom rate limits." + } + }, { "modelName": "mimo-x-flash-preview", "displayName": "MiMo-X-Flash Preview", @@ -56,9 +148,9 @@ "chat", "reasoning" ], - "description": "小米旗舰推理模型,1M 上下文,1T MoE 参数,擅长复杂 Agent、编程与长文本", + "description": "小米 MiMo-V2.5-Pro,1M 上下文,1T MoE 参数,计划于 2026-10-21 下线", "contextWindow": 1000000, - "maxOutputTokens": 65536, + "maxOutputTokens": 131072, "capabilities": [ "chat", "reasoning", diff --git a/manifest.json b/manifest.json index 7643521..84fda99 100644 --- a/manifest.json +++ b/manifest.json @@ -1,6 +1,6 @@ { "version": "1.0.0", - "presetDataVersion": 120, - "updatedAt": "2026-09-15", + "presetDataVersion": 121, + "updatedAt": "2026-09-25", "description": "DesireCore 官方配置中心" }