code-yeongyu / code-yeongyu/senpi
catalog: DeepSeek V4.1 Flash (deepseek-flash) missing; official deepseek-v4-flash entry is text-only although it now serves the multimodal V4.1
- Dominant language
- TypeScript
- Stars
- 429
- Forks
- 98
- Avg merge
- 5h 3m
- Merged PRs (30d)
- 526
Description
## Summary
Follow-up to #1574 / #1579 (prompt preset). The **model catalog** side of the DeepSeek V4.1 Flash release is still on V4:
- `packages/ai/src/providers/data/deepseek.json` lists only `deepseek-v4-flash` and `deepseek-v4-pro`. The official API's new name `deepseek-flash` (DeepSeek changelog 2026-09-10) is missing, so `--model deepseek/deepseek-flash` does not resolve against the built-in catalog.
- The `deepseek/deepseek-v4-flash` entry is `input: ["text"]`; the model behind that name is now V4.1 Flash, which is natively multimodal (`input: ["text","image"]` on models.dev). `look-at` delegation therefore kicks in for images the model could read itself.
- `deepseek-v4-flash-vision-exp` is retired upstream (routed to V4.1 Flash); it is not in `deepseek.json`, which is fine, but any hydrated catalog that still carries it should route the same way.
- From 2026-09-14 04:00 UTC, `deepseek/deepseek-v4-pro` is served by V4.1 Flash and billed at Flash rates "until V4.1 Pro launches". The catalog's pro entry (pricing, `input`, and the `deepseek-v4-pro` prompt preset mapping on the official provider) needs a dated decision once that routing is live.
- `DEEPSEEK_V4_FLASH_THINKING_LEVEL_MAP` in `packages/ai/scripts/generate-models.ts` should apply to `deepseek-flash` as well (V4.1 accepts `low`/`high`/`max`; `xhigh` maps to `high` per the thinking-mode doc; the numeric 1-100 budget is not exposed through `reasoning_effort` strings).
## Expected
1. `bun run generate-models` picks up `deepseek-flash` from models.dev with `input: ["text","image"]`, `contextWindow 1_000_000`, `maxTokens 384_000`, the flash thinking-level map, and the V4.1 pricing ($0.15 / $0.60 / cache-read $0.003 off-peak list price).
2. `deepseek/deepseek-v4-flash` on the official provider declares image input (it is V4.1 Flash now) - or is dropped in favour of `deepseek-flash` if the alias's "temporary" routing is announced as ending.
3. `prompt-presets-deepseek-v4-1-flash.test.ts`'s catalog sweep starts asserting `deepseek/deepseek-flash` once the entry exists.
4. `deepseek-v4-pro` on the official provider: decide on/after 2026-09-14 whether the preset matcher should treat it like the retired flash alias (served by V4.1 Flash) and what the catalog should say about price and modality.
## Related
- #1574 (prompt preset, tracking), #1579 (PR)
- DeepSeek changelog: https://api-docs.deepseek.com/updates/ ; pricing: https://api-docs.deepseek.com/quick_start/pricing
Contributor guide
Research direction
Start with packages/ai/src/providers/data/deepseek.json and the DeepSeek handling in packages/ai/scripts/generate-models.ts, then run bun run generate-models to inspect the catalog output. Review prompt-presets-deepseek-v4-1-flash.test.ts and the linked issues for existing expectations. Done means the catalog, provider modality and thinking-level behavior, tests, and the dated deepseek-v4-pro decision are consistent with the stated release details.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- ai, cli, tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100