Add DeepSeek V4 Pro model option (#189)
Browse files* Add DeepSeek V4 Pro model option
Co-authored-by: Codex <codex@openai.com>
* Remove DeepSeek feature tests
Co-authored-by: Codex <codex@openai.com>
---------
Co-authored-by: Codex <codex@openai.com>
agent/core/model_switcher.py
CHANGED
|
@@ -32,6 +32,7 @@ SUGGESTED_MODELS = [
|
|
| 32 |
{"id": "MiniMaxAI/MiniMax-M2.7", "label": "MiniMax M2.7"},
|
| 33 |
{"id": "moonshotai/Kimi-K2.6", "label": "Kimi K2.6"},
|
| 34 |
{"id": "zai-org/GLM-5.1", "label": "GLM 5.1"},
|
|
|
|
| 35 |
]
|
| 36 |
|
| 37 |
|
|
|
|
| 32 |
{"id": "MiniMaxAI/MiniMax-M2.7", "label": "MiniMax M2.7"},
|
| 33 |
{"id": "moonshotai/Kimi-K2.6", "label": "Kimi K2.6"},
|
| 34 |
{"id": "zai-org/GLM-5.1", "label": "GLM 5.1"},
|
| 35 |
+
{"id": "deepseek-ai/DeepSeek-V4-Pro:deepinfra", "label": "DeepSeek V4 Pro"},
|
| 36 |
]
|
| 37 |
|
| 38 |
|
backend/routes/agent.py
CHANGED
|
@@ -94,6 +94,12 @@ def _available_models() -> list[dict[str, Any]]:
|
|
| 94 |
"provider": "huggingface",
|
| 95 |
"tier": "free",
|
| 96 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 97 |
]
|
| 98 |
return models
|
| 99 |
|
|
@@ -121,7 +127,8 @@ async def _require_hf_for_gated_model(request: Request, model_id: str) -> None:
|
|
| 121 |
"error": "premium_model_restricted",
|
| 122 |
"message": (
|
| 123 |
"Premium models are gated to HF staff. Pick a free model — "
|
| 124 |
-
"Kimi K2.6, MiniMax M2.7,
|
|
|
|
| 125 |
),
|
| 126 |
},
|
| 127 |
)
|
|
|
|
| 94 |
"provider": "huggingface",
|
| 95 |
"tier": "free",
|
| 96 |
},
|
| 97 |
+
{
|
| 98 |
+
"id": "deepseek-ai/DeepSeek-V4-Pro:deepinfra",
|
| 99 |
+
"label": "DeepSeek V4 Pro",
|
| 100 |
+
"provider": "huggingface",
|
| 101 |
+
"tier": "free",
|
| 102 |
+
},
|
| 103 |
]
|
| 104 |
return models
|
| 105 |
|
|
|
|
| 127 |
"error": "premium_model_restricted",
|
| 128 |
"message": (
|
| 129 |
"Premium models are gated to HF staff. Pick a free model — "
|
| 130 |
+
"Kimi K2.6, MiniMax M2.7, GLM 5.1, or DeepSeek V4 Pro — "
|
| 131 |
+
"instead."
|
| 132 |
),
|
| 133 |
},
|
| 134 |
)
|
frontend/src/components/Chat/ChatInput.tsx
CHANGED
|
@@ -69,6 +69,13 @@ const DEFAULT_MODEL_OPTIONS: ModelOption[] = [
|
|
| 69 |
modelPath: 'zai-org/GLM-5.1',
|
| 70 |
avatarUrl: getHfAvatarUrl('zai-org/GLM-5.1'),
|
| 71 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 72 |
];
|
| 73 |
|
| 74 |
const findModelByPath = (path: string, options: ModelOption[]): ModelOption | undefined => {
|
|
|
|
| 69 |
modelPath: 'zai-org/GLM-5.1',
|
| 70 |
avatarUrl: getHfAvatarUrl('zai-org/GLM-5.1'),
|
| 71 |
},
|
| 72 |
+
{
|
| 73 |
+
id: 'deepseek-v4-pro',
|
| 74 |
+
name: 'DeepSeek V4 Pro',
|
| 75 |
+
description: 'DeepInfra',
|
| 76 |
+
modelPath: 'deepseek-ai/DeepSeek-V4-Pro:deepinfra',
|
| 77 |
+
avatarUrl: getHfAvatarUrl('deepseek-ai/DeepSeek-V4-Pro'),
|
| 78 |
+
},
|
| 79 |
];
|
| 80 |
|
| 81 |
const findModelByPath = (path: string, options: ModelOption[]): ModelOption | undefined => {
|
frontend/src/components/ClaudeCapDialog.tsx
CHANGED
|
@@ -62,8 +62,8 @@ export default function ClaudeCapDialog({
|
|
| 62 |
sx={{ color: 'var(--muted-text)', fontSize: '0.85rem', lineHeight: 1.6 }}
|
| 63 |
>
|
| 64 |
Opus and GPT-5.5 are expensive to run, so we cap premium models at {cap}{' '}
|
| 65 |
-
{cap === 1 ? 'session' : 'sessions'} a day. Give Kimi, MiniMax,
|
| 66 |
-
instead.
|
| 67 |
</DialogContentText>
|
| 68 |
<Box
|
| 69 |
sx={{
|
|
|
|
| 62 |
sx={{ color: 'var(--muted-text)', fontSize: '0.85rem', lineHeight: 1.6 }}
|
| 63 |
>
|
| 64 |
Opus and GPT-5.5 are expensive to run, so we cap premium models at {cap}{' '}
|
| 65 |
+
{cap === 1 ? 'session' : 'sessions'} a day. Give Kimi, MiniMax, GLM,
|
| 66 |
+
or DeepSeek a spin instead.
|
| 67 |
</DialogContentText>
|
| 68 |
<Box
|
| 69 |
sx={{
|