Skip to content

Commit b2a326f

Browse files
docs: align DeepSeek model defaults (#143)
Fixes #139
1 parent a7a6a4a commit b2a326f

7 files changed

Lines changed: 44 additions & 16 deletions

File tree

‎README.ja.md‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ Web インターフェースは、リアルタイムストリーミング、コ
211211
│
212212
▼
213213
┌─────────────────┐
214-
│ モデル選択器 │──► deepseek-chat / deepseek-reasoner / gpt-4o / claude / gemini / llama
214+
│ モデル選択器 │──► deepseek-v4-flash / deepseek-v4-pro / gpt-4o / claude / gemini / llama
215215
└────────┬────────┘
216216
│
217217
▼
@@ -257,7 +257,7 @@ export KYROZEN_MODEL_COMPLEX=deepseek-v4-pro
257257

258258
| プロバイダー | 簡単なタスク(デフォルト) | 複雑なタスク(デフォルト) |
259259
|-------------|------------------------|--------------------------|
260-
| DeepSeek | `deepseek-chat` | `deepseek-reasoner` |
260+
| DeepSeek | `deepseek-v4-flash` | `deepseek-v4-pro` |
261261
| OpenAI | `gpt-4o` | `gpt-4o` |
262262
| Anthropic | `claude-sonnet-4-20250514` | `claude-sonnet-4-20250514` |
263263
| Google | `gemini-2.5-flash` | `gemini-2.5-pro` |
@@ -614,8 +614,8 @@ def register():
614614
{
615615
"provider": "deepseek",
616616
"api_key": "<暗号化>",
617-
"model_simple": "deepseek-chat",
618-
"model_complex": "deepseek-reasoner",
617+
"model_simple": "deepseek-v4-flash",
618+
"model_complex": "deepseek-v4-pro",
619619
"encrypted": true
620620
}
621621
```

‎README.ko.md‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ docker run -p 8000:8000 \
211211
│
212212
▼
213213
┌─────────────────┐
214-
│ 모델 선택기 │──► deepseek-chat / deepseek-reasoner / gpt-4o / claude / gemini / llama
214+
│ 모델 선택기 │──► deepseek-v4-flash / deepseek-v4-pro / gpt-4o / claude / gemini / llama
215215
└────────┬────────┘
216216
│
217217
▼
@@ -257,7 +257,7 @@ export KYROZEN_MODEL_COMPLEX=deepseek-v4-pro
257257

258258
| 제공자 | 간단한 작업 (기본값) | 복잡한 작업 (기본값) |
259259
|--------|-------------------|---------------------|
260-
| DeepSeek | `deepseek-chat` | `deepseek-reasoner` |
260+
| DeepSeek | `deepseek-v4-flash` | `deepseek-v4-pro` |
261261
| OpenAI | `gpt-4o` | `gpt-4o` |
262262
| Anthropic | `claude-sonnet-4-20250514` | `claude-sonnet-4-20250514` |
263263
| Google | `gemini-2.5-flash` | `gemini-2.5-pro` |
@@ -612,8 +612,8 @@ def register():
612612
{
613613
"provider": "deepseek",
614614
"api_key": "<암호화됨>",
615-
"model_simple": "deepseek-chat",
616-
"model_complex": "deepseek-reasoner",
615+
"model_simple": "deepseek-v4-flash",
616+
"model_complex": "deepseek-v4-pro",
617617
"encrypted": true
618618
}
619619
```

‎README.md‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ User Input
221221
│
222222
▼
223223
┌─────────────────┐
224-
│ Model Selector │──► deepseek-chat / deepseek-reasoner / gpt-4o / claude / gemini / llama
224+
│ Model Selector │──► deepseek-v4-flash / deepseek-v4-pro / gpt-4o / claude / gemini / llama
225225
└────────┬────────┘
226226
│
227227
▼
@@ -860,8 +860,8 @@ example.
860860
{
861861
"provider": "deepseek",
862862
"api_key": "<encrypted>",
863-
"model_simple": "deepseek-chat",
864-
"model_complex": "deepseek-reasoner",
863+
"model_simple": "deepseek-v4-flash",
864+
"model_complex": "deepseek-v4-pro",
865865
"encrypted": true,
866866
"encryption": "fernet"
867867
}

‎README.zh-CN.md‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,7 @@ Web 界面提供暗色主题的聊天 UI,支持实时流式输出、费用追
207207
│
208208
▼
209209
┌─────────────────┐
210-
│ 模型选择器 │──► deepseek-chat / deepseek-reasoner / gpt-4o / claude / gemini / llama
210+
│ 模型选择器 │──► deepseek-v4-flash / deepseek-v4-pro / gpt-4o / claude / gemini / llama
211211
└────────┬────────┘
212212
│
213213
▼
@@ -253,7 +253,7 @@ export KYROZEN_MODEL_COMPLEX=deepseek-v4-pro
253253

254254
| 服务商 | 简单任务(默认) | 复杂任务(默认) |
255255
|--------|-----------------|-----------------|
256-
| DeepSeek | `deepseek-chat` | `deepseek-reasoner` |
256+
| DeepSeek | `deepseek-v4-flash` | `deepseek-v4-pro` |
257257
| OpenAI | `gpt-4o` | `gpt-4o` |
258258
| Anthropic | `claude-sonnet-4-20250514` | `claude-sonnet-4-20250514` |
259259
| Google | `gemini-2.5-flash` | `gemini-2.5-pro` |
@@ -624,8 +624,8 @@ def register():
624624
{
625625
"provider": "deepseek",
626626
"api_key": "<加密>",
627-
"model_simple": "deepseek-chat",
628-
"model_complex": "deepseek-reasoner",
627+
"model_simple": "deepseek-v4-flash",
628+
"model_complex": "deepseek-v4-pro",
629629
"encrypted": true,
630630
"encryption": "fernet"
631631
}

‎docs/self-evolution.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Historical verification snapshot: `51be33361422e55e1f2f00c33a0e0f8c56132a91`
99
(the post-#54 `main` revision, captured before this #55 documentation-only
1010
update). Snapshot date: 2026-09-04.
1111

12-
Current repository test count at this snapshot: **187 unittest cases**.
12+
Current repository test count at this snapshot: **188 unittest cases**.
1313

1414
## Verified surface
1515

‎scripts/check_docs.py‎

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
"paired_evidence_status: insufficient",
4444
"public_superiority_claim_supported: false",
4545
)
46+
STALE_DEEPSEEK_MODELS = re.compile(r"\bdeepseek-(?:chat|reasoner)\b", re.IGNORECASE)
4647

4748

4849
def _command_blocks(text: str) -> list[str]:
@@ -220,6 +221,21 @@ def _check_readme_endpoint_table(path: Path, text: str, routes: set[tuple[str, s
220221
return errors
221222

222223

224+
def _check_provider_defaults(path: Path, text: str, defaults: dict[str, tuple[str, str]]) -> list[str]:
225+
"""Keep README model examples tied to the provider's current defaults."""
226+
simple, complex_model = defaults["deepseek"]
227+
errors: list[str] = []
228+
if STALE_DEEPSEEK_MODELS.search(text):
229+
errors.append(f"{path.name}: README contains a retired DeepSeek model name")
230+
simple_match = re.search(r'"model_simple"\s*:\s*"([^"]+)"', text)
231+
complex_match = re.search(r'"model_complex"\s*:\s*"([^"]+)"', text)
232+
if not simple_match or simple_match.group(1) != simple:
233+
errors.append(f"{path.name}: model_simple example must match provider default '{simple}'")
234+
if not complex_match or complex_match.group(1) != complex_model:
235+
errors.append(f"{path.name}: model_complex example must match provider default '{complex_model}'")
236+
return errors
237+
238+
223239
def _check_verification_record() -> list[str]:
224240
if not VERIFICATION_DOC.exists():
225241
return ["docs/self-evolution.md is missing"]
@@ -254,6 +270,7 @@ def _check_verification_record() -> list[str]:
254270
def main() -> int:
255271
expected_inventory = render_inventory()
256272
import main as agent_main
273+
from providers import PROVIDER_DEFAULT_MODELS
257274

258275
runtime_tool_count = len(agent_main.AVAILABLE_TOOLS)
259276
git_tool_count = sum(name.startswith("git_") for name in agent_main.AVAILABLE_TOOLS)
@@ -268,6 +285,7 @@ def main() -> int:
268285
errors.extend(_check_verification_record())
269286
for readme in README_FILES:
270287
text = readme.read_text(encoding="utf-8")
288+
errors.extend(_check_provider_defaults(readme, text, PROVIDER_DEFAULT_MODELS))
271289
if readme.name == "README.md":
272290
errors.extend(_check_readme_endpoint_table(readme, text, set(routes)))
273291
for pattern in STALE_TOOL_PATTERNS:

‎tests/test_providers.py‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from providers import (
99
FallbackProvider,
1010
LLMProvider,
11+
PROVIDER_DEFAULT_MODELS,
1112
ProviderConfig,
1213
_get_encryption_key,
1314
decrypt_api_key,
@@ -72,6 +73,15 @@ def test_legacy_xor_ciphertext_remains_readable(self):
7273
ciphertext = base64.b64encode(encrypted).decode()
7374
self.assertEqual(decrypt_api_key(ciphertext), plaintext)
7475

76+
def test_readmes_use_current_deepseek_defaults(self):
77+
simple, complex_model = PROVIDER_DEFAULT_MODELS["deepseek"]
78+
root = Path(__file__).resolve().parents[1]
79+
for readme in sorted(root.glob("README*.md")):
80+
text = readme.read_text(encoding="utf-8")
81+
self.assertNotRegex(text, r"\bdeepseek-(?:chat|reasoner)\b")
82+
self.assertIn(f'"model_simple": "{simple}"', text)
83+
self.assertIn(f'"model_complex": "{complex_model}"', text)
84+
7585

7686
class FallbackModelTests(unittest.TestCase):
7787
def _fallback(self, primary, fallback):

0 commit comments

Comments
 (0)