diff --git a/.env.example b/.env.example index be28bc2fa6..1c77a470e2 100644 --- a/.env.example +++ b/.env.example @@ -22,7 +22,7 @@ GOOGLE_MODELS= DEEPSEEK_API_KEY= DEEPSEEK_BASE_URL= -# Example: deepseek-v4-pro,deepseek-v4-flash +# Example: deepseek-v4-pro,deepseek-v4-pro[1m],deepseek-v4-flash DEEPSEEK_MODELS= QWEN_API_KEY= @@ -53,18 +53,19 @@ DOUBAO_MODELS= OPENROUTER_API_KEY= OPENROUTER_BASE_URL=https://openrouter.ai/api/v1 -# Example: deepseek/deepseek-v4-pro,deepseek/deepseek-v4-flash +# Example: deepseek/deepseek-v4-pro,deepseek/deepseek-v4-flash,grok-4.20-reasoning,grok-4.20,grok-4.20-multi-agent OPENROUTER_MODELS= GROK_API_KEY= GROK_BASE_URL= +# Example: grok-4.20-reasoning,grok-4.20,grok-4.20-multi-agent GROK_MODELS= TENCENT_API_KEY= # Tencent TokenHub OpenAI-compatible endpoint. Hy3 is a model ID, not an env prefix. # TENCENT_HUNYUAN_* is also accepted as an alias. TENCENT_BASE_URL=https://tokenhub.tencentmaas.com/v1 -# Example: hy3-preview,hunyuan-2.0-thinking-20251109,hunyuan-2.0-instruct-20251111 +# Example: hy3-preview,hunyuan-2.0-thinking-20251109,hunyuan-2.0-instruct-20251111 (note: HY3 is a model name, not an env prefix) TENCENT_MODELS= XIAOMI_API_KEY= diff --git a/lib/ai/providers.ts b/lib/ai/providers.ts index 0d5ab6f83e..fcc4ba0b86 100644 --- a/lib/ai/providers.ts +++ b/lib/ai/providers.ts @@ -586,6 +586,22 @@ export const PROVIDERS: Record = { }, }, }, + { + id: 'deepseek-v4-pro[1m]', + name: 'DeepSeek V4 Pro (1M)', + contextWindow: 1048576, + outputWindow: 393216, + capabilities: { + streaming: true, + tools: true, + vision: false, + thinking: { + toggleable: true, + budgetAdjustable: true, + defaultEnabled: true, + }, + }, + }, { id: 'deepseek-v4-flash', name: 'DeepSeek V4 Flash', diff --git a/tests/ai/thinking-config.test.ts b/tests/ai/thinking-config.test.ts index 118641780b..0fdce85561 100644 --- a/tests/ai/thinking-config.test.ts +++ b/tests/ai/thinking-config.test.ts @@ -71,7 +71,7 @@ describe('thinking config metadata', () => { expect(glmModels).not.toContain('glm-4.5-flash'); expect(googleModels).toContain('gemini-3.1-pro-preview'); expect(googleModels).not.toContain('gemini-3-pro-preview'); - expect(deepseekModels).toEqual(['deepseek-v4-pro', 'deepseek-v4-flash']); + expect(deepseekModels).toEqual(['deepseek-v4-pro', 'deepseek-v4-pro[1m]', 'deepseek-v4-flash']); expect(hunyuanModels).toEqual(['hy3-preview']); expect(minimaxModels).toEqual(['MiniMax-M2.7']); expect(siliconflowModels).not.toContain('MiniMaxAI/MiniMax-M2');