Skip to content

Commit dfe4bb8

Browse files
margropclaude
andcommitted
fix: 按各渠道最新官方资料更新模型最大输出表
- 新增 GPT-6.x、Gemini 3.x / 4、DeepSeek V4、智谱 GLM 5 / 4.x、豆包 Seed 2.x 的官方上限 - MiniMax M3、Kimi K3、千问 3.8 Max 官方未公布,取第三方数据的较低值 - 移除 deepseek-chat / deepseek-reasoner 的旧上限,避免对已路由到 V4 的别名限制过低 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 parent 9d4d8c3 commit dfe4bb8

2 files changed

Lines changed: 43 additions & 12 deletions

File tree

‎src/__tests__/unit/ai/model-output-limits.test.ts‎

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,26 @@ describe('getKnownModelMaxOutputTokens', () => {
2222
['gpt-4-turbo', 4096],
2323
['gemini-2.5-flash', 65536],
2424
['gemini-2.0-flash', 8192],
25-
['deepseek-reasoner', 65536],
26-
['deepseek-chat', 8192],
25+
['gpt-6.1-sol', 128000],
26+
['gpt-5.5', 128000],
27+
['gemini-3.8-flash', 65536],
28+
['gemini-4-argon', 65536],
29+
['deepseek-v4-flash', 384000],
30+
['deepseek-flash', 384000],
31+
['glm-5.3-flash', 128000],
32+
['GLM-4.6V', 32000],
33+
['glm-4.5-air', 96000],
34+
['doubao-seed-evolving', 256000],
35+
['doubao-seed-2-0-lite-260428', 128000],
36+
['MiniMax-M3.1-Flash', 128000],
37+
['kimi-k3.1-pro', 131072],
38+
['qwen3.8-max', 128000],
2739
])('%s → %i', (model, expected) => {
2840
expect(getKnownModelMaxOutputTokens(model)).toBe(expected);
2941
});
3042

3143
it('未知模型返回 undefined', () => {
32-
expect(getKnownModelMaxOutputTokens('MiniMax-M3.1-Flash')).toBeUndefined();
44+
expect(getKnownModelMaxOutputTokens('step-5-preview')).toBeUndefined();
3345
expect(getKnownModelMaxOutputTokens('')).toBeUndefined();
3446
expect(getKnownModelMaxOutputTokens(undefined)).toBeUndefined();
3547
});

‎src/lib/ai/model-output-limits.ts‎

Lines changed: 28 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
* 已知模型的最大输出 token(max_tokens 上限)。
33
*
44
* 推理模型的思考过程也计入输出额度,截断重试时应尽量用满模型允许的上限。
5-
* 表中只收录有官方文档依据的模型;未收录的模型先用默认值重试,
5+
* 未收录的模型先用默认值重试,
66
* 接口报 max_tokens 超限时再从错误信息中读出真实上限并记住(见 truncation.ts)。
77
*/
88

@@ -11,18 +11,22 @@ interface ModelOutputLimit {
1111
maxOutputTokens: number;
1212
}
1313

14-
/** 按顺序匹配,先写更具体的规则 */
14+
/**
15+
* 按顺序匹配,先写更具体的规则。数据核对于 2026-10-31:
16+
* 官方文档标注“K”的按 1000 换算(宁可略低,超限时 truncation.ts 会从报错中读出真实上限)。
17+
* 官方未公布的模型(MiniMax、Kimi K3、千问 3.8)取第三方渠道数据中较低的值;阶跃星辰未收录。
18+
*/
1519
const MODEL_OUTPUT_LIMITS: ModelOutputLimit[] = [
16-
// Anthropic Claude:5 系列与 4.6 及以后为 128K;4.5、Sonnet 4、3.7 Sonnet 为 64K;Opus 4 / 4.1 为 32K
20+
// Anthropic Claude(platform.claude.com 模型总览):5 系列与 4.6 及以后为 128K;4.5、Sonnet 4 为 64K;Opus 4 / 4.1 为 32K
1721
{ pattern: /claude-(opus|sonnet|haiku|fable|mythos)-([5-9]|4[-.][6-9])/, maxOutputTokens: 128000 },
1822
{ pattern: /claude-(opus|sonnet|haiku)-4[-.]5/, maxOutputTokens: 64000 },
1923
{ pattern: /claude-sonnet-4/, maxOutputTokens: 64000 },
2024
{ pattern: /claude-opus-4/, maxOutputTokens: 32000 },
2125
{ pattern: /claude-3[-.]7-sonnet/, maxOutputTokens: 64000 },
2226
{ pattern: /claude-3[-.]5-/, maxOutputTokens: 8192 },
2327
{ pattern: /claude-3-/, maxOutputTokens: 4096 },
24-
// OpenAI
25-
{ pattern: /(^|[/-])gpt-5/, maxOutputTokens: 128000 },
28+
// OpenAI(developers.openai.com 模型页):GPT-6.x、GPT-5.x 为 128K
29+
{ pattern: /(^|[/-])gpt-[5-9]/, maxOutputTokens: 128000 },
2630
{ pattern: /(^|[/-])o1-mini/, maxOutputTokens: 65536 },
2731
{ pattern: /(^|[/-])o1-preview/, maxOutputTokens: 32768 },
2832
{ pattern: /(^|[/-])o[134](-|$)/, maxOutputTokens: 100000 },
@@ -31,12 +35,27 @@ const MODEL_OUTPUT_LIMITS: ModelOutputLimit[] = [
3135
{ pattern: /(^|[/-])gpt-4-(turbo|vision|1106|0125)/, maxOutputTokens: 4096 },
3236
{ pattern: /(^|[/-])gpt-4(-|$)/, maxOutputTokens: 8192 },
3337
{ pattern: /(^|[/-])gpt-3\.5/, maxOutputTokens: 4096 },
34-
// Google Gemini(经 OpenAI 兼容接口或中转调用时)
38+
// Google Gemini(经 OpenAI 兼容接口或中转调用时;Gemini 提供商本身不限制输出):2.5、3.x、4 同步请求为 65536
3539
{ pattern: /gemini-(2\.5|[3-9])/, maxOutputTokens: 65536 },
3640
{ pattern: /gemini-(1\.5|2\.0)/, maxOutputTokens: 8192 },
37-
// DeepSeek 官方接口
38-
{ pattern: /^deepseek-reasoner$/, maxOutputTokens: 65536 },
39-
{ pattern: /^deepseek-chat$/, maxOutputTokens: 8192 },
41+
// DeepSeek(官方价格页):V4 系列最大输出 384K;旧别名 deepseek-chat / deepseek-reasoner 未注明,不收录
42+
{ pattern: /^deepseek-(flash|v4)/, maxOutputTokens: 384000 },
43+
// 智谱 GLM(官方模型概览)
44+
{ pattern: /^glm-4\.6v/, maxOutputTokens: 32000 },
45+
{ pattern: /^glm-(5|4\.7|4\.6)/, maxOutputTokens: 128000 },
46+
{ pattern: /^glm-4\.5/, maxOutputTokens: 96000 },
47+
{ pattern: /^glm-4\.1v/, maxOutputTokens: 16000 },
48+
{ pattern: /^glm-4-long/, maxOutputTokens: 4000 },
49+
{ pattern: /^glm-4v-flash/, maxOutputTokens: 1000 },
50+
{ pattern: /^glm-4-flash/, maxOutputTokens: 16000 },
51+
// 火山引擎豆包(官方模型列表“最大回答”)
52+
{ pattern: /^doubao-seed-character/, maxOutputTokens: 32000 },
53+
{ pattern: /^doubao-seed-(evolving|2-1)/, maxOutputTokens: 256000 },
54+
{ pattern: /^doubao-seed-2-0/, maxOutputTokens: 128000 },
55+
// 官方未公布,取第三方数据的较低值
56+
{ pattern: /^minimax-m3/, maxOutputTokens: 128000 },
57+
{ pattern: /^kimi-k3/, maxOutputTokens: 131072 },
58+
{ pattern: /^qwen3\.8-max/, maxOutputTokens: 128000 },
4059
];
4160

4261
/** 返回已知模型的最大输出 token;未知模型返回 undefined */

0 commit comments

Comments
 (0)