Ajouter ou mettre à jour des modèles IA

VérifiéSûr

Ajouter, mettre à jour ou retirer des modèles IA (OpenAI, Anthropic, Google) dans une app BYOK et vérifier le support de sortie structurée native.

Spar Skills Guide Bot
DeveloppementAvancé
20/10/2026
Claude CodeCursor
#ai-models#structured-output#provider-integration#byok#unit-tests

Recommandé pour

Synthèse automatique

Guide pas à pas pour ajouter, mettre à jour ou retirer un modèle d'un fournisseur IA (OpenAI, Anthropic, Google) dans un générateur de thèmes BYOK, en vérifiant que chaque modèle demande bien une sortie structurée native.

Points forts

  • Liste d'étapes explicite qui couvre les types, le modèle par défaut, les tests unitaires et les limites des tests e2e
  • Rappelle que l'identifiant de modèle est transmis tel quel au fournisseur et n'échoue qu'à l'exécution, d'où la vérification dans la doc officielle
  • Explique le mécanisme de repli du modèle par défaut, ce qui évite de bloquer les utilisateurs lors du retrait d'un modèle
  • Indique le fichier de test précis qui fait passer chaque modèle listé par son vrai fournisseur (fetch simulé) et vérifie la sortie JSON-schema

Limites

  • Très lié à une base de code unique (app/types/ai.ts, server/utils/aiGenerate.ts) : les chemins ne sont pas réutilisables ailleurs
  • Suppose une version précise du SDK AI et une structure de fichiers qui peuvent évoluer
  • Ne couvre pas la vérification end-to-end réelle de la génération, puisque les specs e2e simulent /api/ai/generate
Quand l'utiliser

À utiliser quand un fournisseur retire un modèle, quand la liste des modèles est obsolète ou quand un nouveau modèle ou fournisseur doit être ajouté au sélecteur.

Quand l'éviter

À éviter pour concevoir des prompts ou des schémas de sortie, ou sur un projet qui n'utilise pas cette intégration du SDK AI.

Analyse de sécurité

Sûr
Score qualité82/100

The skill is a project-specific maintenance guide: it directs edits to named TypeScript files, runs unit tests via pnpm, and optionally installs a provider SDK. There are no destructive commands, no obfuscated or base64 payloads, no network exfiltration of secrets or tokens, and no attempts to disable safety controls. The only execution-adjacent actions (pnpm add, pnpm vitest) are ordinary development operations with legitimate purpose, so it is low risk.

Points d'attention
  • •Step 3 instructs `pnpm add @ai-sdk/<provider>`, which fetches and installs third-party packages from the npm registry — legitimate for the task but introduces normal supply-chain exposure; the package name is supplied via user argument, so it should be verified before install.
  • •Step 6 references a real API key entered through the app UI and correctly warns it must never be committed; no key value is handled or transmitted by the skill itself.
Comment cette analyse est faite

Exemples

Add an Anthropic model
Add claude-sonnet-4-5 to the Anthropic model list in app/types/ai.ts with a short description, then run the useAiSettings and server unit tests.
Retire a stale model
Retire gpt-4o from AI_MODELS, make sure DEFAULT_AI_SETTINGS.model still matches the first OpenAI entry, and update any tests that assert on the model list.
Add a new provider
Add Mistral as a new provider: extend AI_PROVIDERS, AI_PROVIDER_OPTIONS, AI_PROVIDER_IDS and createProviderModel, install the SDK package, map its errors, and extend the listed-models test.

name: add-ai-model description: Add, update, or retire an AI provider model option for the BYOK theme generator (OpenAI, Anthropic, Google) and verify the provider requests native structured output for it. Use when model lists go stale or a new provider/model is requested. argument-hint: "<provider> <model-id> [label]"

Add or update an AI model: $ARGUMENTS

  1. Verify the model ID against the provider's current documentation. Model IDs change and retire; don't guess. The server passes the string straight to the provider, so a bad ID only fails at request time.
  2. Model list: edit AI_MODELS in app/types/ai.ts (label, value, one-line description). The first model for a provider is its default: it's selected when the user switches providers, and resolveAiModel substitutes it for a saved ID that's no longer listed, so retiring a model never strands users. DEFAULT_AI_SETTINGS.model must stay equal to the first OpenAI model (a unit test checks this). Prefer stable models over previews, which providers retire with little notice.
  3. New provider (rare): add it to AI_PROVIDERS and AI_PROVIDER_OPTIONS, and to AI_PROVIDER_IDS and createProviderModel in server/utils/aiGenerate.ts (the route's zod enum uses AI_PROVIDER_IDS). Install the @ai-sdk/<provider> package with pnpm add. Map provider-specific errors in server/utils/aiErrorHandler.ts, and extend the "listed models" test with the provider's request shape.
  4. Structured output: server/utils/aiGenerate.ts calls generateText with Output.object({ schema }) (AI SDK 7), and the system prompt goes in instructions. System messages inside messages are rejected. The "listed models" test in tests/unit/server/utils/aiGenerate.test.ts sends every listed model through its real provider (with fetch stubbed, no key needed) and asserts it requests native JSON-schema output. Reasoning models (GPT-6, Claude Opus 5.5) reject the forced tool call older SDK paths use, so a model that fails this test won't work in production.
  5. Tests: update tests/unit/composables/useAiSettings.test.ts and any tests that assert on model lists, then run pnpm vitest run tests/unit/composables/useAiSettings.test.ts tests/unit/server.
  6. E2E: AI e2e specs mock /api/ai/generate, so they only cover the settings UI. A real end-to-end check needs a key in the app UI via /run-app, and must never be committed.

Du fichier au premier essai

Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.

Consulter la source et ses fichiers annexes

Ce téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.

1. Télécharger le fichier

Télécharger SKILL.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/add-or-update-ai-provider-models-mvda86vx/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.

Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.

mkdir -p '.skill-downloads/add-or-update-ai-provider-models-mvda86vx' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/add-or-update-ai-provider-models-mvda86vx/download' --output '.skill-downloads/add-or-update-ai-provider-models-mvda86vx/SKILL.md.part' && mv '.skill-downloads/add-or-update-ai-provider-models-mvda86vx/SKILL.md.part' '.skill-downloads/add-or-update-ai-provider-models-mvda86vx/SKILL.md'

2. Vérifier les prérequis

Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.

Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.

Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.

3. Charger la skill

Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.

Claude Code
test -f '.skill-downloads/add-or-update-ai-provider-models-mvda86vx/SKILL.md' && test -s '.skill-downloads/add-or-update-ai-provider-models-mvda86vx/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/add-ai-model' && cp -R '.skill-downloads/add-or-update-ai-provider-models-mvda86vx' '.claude/skills/add-ai-model'

Cursor
test -f '.skill-downloads/add-or-update-ai-provider-models-mvda86vx/SKILL.md' && test -s '.skill-downloads/add-or-update-ai-provider-models-mvda86vx/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/add-ai-model' && cp -R '.skill-downloads/add-or-update-ai-provider-models-mvda86vx' '.cursor/skills/add-ai-model'

OpenSkills

OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.

Installation officielle d’OpenSkills
openskills install './.skill-downloads/add-or-update-ai-provider-models-mvda86vx'

openskills read 'add-or-update-ai-provider-models-mvda86vx'

La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.

Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.

openskills sync

Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.

4. Faire un premier essai

Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :

Lis .skill-downloads/add-or-update-ai-provider-models-mvda86vx/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.

Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.

Skills similaires