Skip to content

fix(ai): replace decommissioned Groq model IDs - #79

Merged
Vrun-design merged 1 commit into
Vrun-design:mainfrom
Mr-Macharia:fix/groq-model-ids
Sep 20, 2026
Merged

Vrun-design merged 1 commit into
Vrun-design:mainfrom
Mr-Macharia:fix/groq-model-ids

Conversation

@Mr-Macharia

Copy link
Copy Markdown
Contributor

Summary

Groq is currently unusable — all four model IDs in PROVIDER_MODELS.groq have been decommissioned by Groq, so every request fails with model_not_found.

Verified against the live Groq API. The previous default:

POST https://api.groq.com/openai/v1/chat/completions
{"model": "meta-llama/llama-4-scout-17b-16e-instruct", ...}

→ {"error": {"message": "The model `meta-llama/llama-4-scout-17b-16e-instruct`
   does not exist or you do not have access to it.",
   "type": "invalid_request_error", "code": "model_not_found"}}

GET /openai/v1/models returns 14 models, and none of the four configured IDs are among them.

Changes

src/config/aiProviders.ts — replaced the four retired models. Each replacement was smoke-tested against /v1/chat/completions and returns HTTP 200:

Model Category
openai/gpt-oss-120b Reasoning · new default
openai/gpt-oss-20b Speed
qwen/qwen3.8-27b Reasoning
groq/compound Performance

Of the 14 models Groq returns, only 6 are chat models — the rest are speech-to-text (whisper-*), text-to-speech (canopylabs/orpheus-*), and safety classifiers (llama-prompt-guard-2-*, gpt-oss-safeguard-20b). These four are the general-purpose chat models best suited to diagram generation.

14 locale files (src/i18n/locales/ and public/locales/, 7 languages each) — model IDs double as i18n keys. AISettings.tsx:226-229 looks up settingsModal.ai.models.<provider>.<translateKey>.{label,hint,category,badge}. Changing a model ID without the matching i18n entry makes the dropdown render raw key paths instead of names, so these move together.

README.md — the provider table listed the retired model as Groq's default.

Test plan

  • npx tsc --noEmit — clean
  • npm run lint — clean
  • npm test — 295 files, 1445 tests passing
  • Each new model ID returns HTTP 200 from Groq's /v1/chat/completions
  • Old default confirmed returning model_not_found
  • src/i18n/locales/ and public/locales/ verified byte-identical after the change
  • JSON round-trip verified lossless, so the diff touches only the groq block
  • Manual: Settings → AI → Groq, confirm the dropdown shows model names (not raw keys) and a generation succeeds

Notes for reviewers

Machine-translated strings. The new label/hint/category/badge strings for de, es, fr, ja, tr and zh were written without native-speaker review. They follow the tone of the surrounding entries, but a speaker should sanity-check them. Happy to revert any locale to English placeholders if you'd rather handle translation separately.

NVIDIA is probably affected too, and is not fixed here. PROVIDER_MODELS.nvidia still lists meta/llama-4-scout-17b-16e-instruct and meta/llama-4-maverick-17b-128e-instruct — the same retired Llama 4 generation under NVIDIA's naming. Different provider and lifecycle, so I did not assume it's broken and had no NVIDIA key to test with. Worth a follow-up issue.

Underlying cause. Hardcoded model lists go stale silently — the user just sees a failed request with no hint that the model no longer exists. Fetching /v1/models at runtime with the static list as offline fallback would make this self-healing across every OpenAI-compatible provider. It needs a curation layer (Groq's endpoint returns Whisper and classifier models that don't belong in a diagram-model dropdown), so it's a feature rather than a fix and is deliberately out of scope. Glad to open an issue if there's interest.

All four Groq models in the config had been retired by Groq, so every
request failed with `model_not_found` and the provider was unusable.

Verified against the live Groq API: the previous default
`meta-llama/llama-4-scout-17b-16e-instruct` returns model_not_found,
while each replacement returns HTTP 200 from /v1/chat/completions.

Model IDs double as i18n keys (`settingsModal.ai.models.groq.<id>`,
consumed in AISettings.tsx), so the label/hint/category/badge strings
are updated across all 7 locales in both `src/i18n/locales/` and
`public/locales/`. Without these the dropdown would render raw key
paths instead of model names.

Note: the non-English strings are machine-translated and would benefit
from a native-speaker review.
Copilot AI lite review requested due to automatic review settings September 11, 2026 14:01

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@Vrun-design
Vrun-design merged commit 63022dc into Vrun-design:main Sep 20, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants