Mettre à jour les IDs de modèle du fournisseur
Cette compétence couvre l'ajout de nouveaux IDs de modèle et la suppression des IDs obsolètes dans la base de code du SDK IA. Chaque flux de travail utilise la recherche pour découvrir tous les emplacements nécessitant des modifications.
On peut vous demander d'ajouter ou de supprimer un seul ID de modèle, ou de traiter une liste de plusieurs modifications d'IDs de modèle provenant d'une issue. Pour chaque ID de modèle, suivez le flux de travail approprié :
- Si un nouvel ID de modèle est ajouté, suivez le flux de travail
<adding-new-model>. - Si un ID de modèle obsolète est supprimé, suivez le flux de travail
<removing-obsolete-model>.
Règles critiques
- Correspondance exacte : Les IDs de modèle sont souvent des sous-chaînes d'autres (p. ex.
grok-3vsgrok-3-mini). Vérifiez toujours que chaque résultat de recherche correspond au modèle exact, pas à une correspondance partielle. - Respectez l'ordre de tri : Lors de l'insertion dans une liste (unions de types, lignes de tableau, tableaux), observez l'ordre existant et placez la nouvelle entrée en conséquence.
- Dénomination des fichiers d'exemples : Utilisez kebab-case avec des tirets remplaçant les points (p. ex.
gpt-5.4-codex→gpt-5-4-codex.ts). - Traitement séquentiel : Lors du traitement de plusieurs modèles, complétez le flux de travail complet pour un modèle avant de commencer le suivant.
- Fournisseurs affectés : Les nouveaux IDs de modèle doivent toujours être ajoutés au package du fournisseur principal et à la passerelle IA. Il peut y avoir des packages supplémentaires affectés (p. ex. Bedrock, Vertex, OpenAI-compatible) si le modèle est disponible ou référencé dans les tests/docs.
- Ne faites jamais de modifications sans rapport : Mettez à jour uniquement les IDs de modèle et les références connexes. Ne modifiez aucun autre code, texte ou formatage dans les fichiers que vous modifiez.
- Ne modifiez jamais les fichiers
CHANGELOG.mddepackages/codemod: Les fichiers changelog sont des enregistrements historiques, les codemods sont des scripts de migration. Ne modifiez aucun des deux lors de la mise à jour des IDs de modèle.
<adding-new-model>
Flux de travail pour ajouter un nouvel ID de modèle
Étape 1 : Identifier l'étendue
Déterminez :
- Le nom du fournisseur (p. ex.
anthropic,openai,google,xai) - La chaîne exacte de l'ID de modèle (p. ex.
claude-haiku-4-5-20260218,gemini-3.1-pro,gpt-5.4-codex) - Le type de modèle : chat, embedding, image, etc.
- S'il s'agit d'une nouvelle version d'un modèle plus ancien existant, ou même la version stable d'un modèle aperçu ou expérimental existant
- Si d'autres packages de fournisseur que le principal et la passerelle IA doivent être mis à jour (p. ex. Bedrock, Vertex, OpenAI-compatible)
- Si un ID de modèle similaire est listé dans l'un de ces autres packages de fournisseur, le nouvel ID de modèle devrait probablement y être aussi. Consultez la documentation du fournisseur pour des indices de disponibilité.
Étape 2 : Trouver où les modèles similaires sont référencés
Recherchez un modèle existant similaire du même fournisseur (p. ex. une version inférieure, ou la version aperçu en cours de remplacement) sur packages/, content/ et examples/. Cela révèle tous les emplacements qui nécessitent des mises à jour.
# Rechercher les occurrences entre guillemets pour trouver tous les emplacements de référence
grep -r "'<similar-model-id>'" packages/ content/ examples/ --include='*.ts' --include='*.mdx' --include='*.md'
grep -r '"<similar-model-id>"' packages/ content/ examples/ --include='*.ts' --include='*.mdx' --include='*.md'
Étape 3 : Mettre à jour les définitions de type
Pour chaque fichier packages trouvé, ajoutez le nouvel ID de modèle à l'union de types (et aux tableaux const si présents), en respectant l'ordre de tri existant.
Exemples d'emplacements courants pour les définitions de type d'ID de modèle :
packages/<provider>/src/*-options.ts— le package du fournisseur principalpackages/gateway/src/gateway-language-model-settings.ts— le package de la passerelle IApackages/amazon-bedrock/src/**/*-options.ts— si le modèle est disponible sur Amazon Bedrockpackages/google-vertex/src/*-options.ts— si le modèle est disponible sur Google Vertex
Ce n'est PAS une liste exhaustive — la recherche à l'étape 2 peut révéler d'autres fichiers avec des références d'ID de modèle qui doivent aussi être mis à jour.
Ne remplacez jamais un ID de modèle ici. Ajoutez uniquement le nouvel ID de modèle. Le remplacement des références à un ID de modèle plus ancien ou aperçu n'est pertinent que dans la documentation et les exemples.
Exemple d'ajout à une union de types :
export type SomeModelId =
| 'existing-model-a'
| 'new-model-id' // ← ajouter à la position triée
| 'existing-model-b'
| (string & {});
Exemple d'ajout à un tableau const :
export const reasoningModelIds = [
'existing-model-a',
'new-model-id', // ← ajouter à la position triée
'existing-model-b',
] as const;
Étape 4 : Mettre à jour la documentation
Pour chaque fichier .mdx trouvé dans content/, ajoutez ou mettez à jour les entrées :
- Tableaux de capacités : Ajoutez une ligne pour le nouvel modèle à la bonne position avec les coches de capacité appropriées (
<Check size={18} />ou<Cross size={18} />). - Exemples de code en ligne : Si vous remplacez un modèle aperçu/ancien par celui recommandé, mettez à jour les extraits de code comme
const model = provider('old-model')pour utiliser le nouvel modèle. - Descriptions « Latest » : Mettez à jour le texte comme « Latest model with enhanced reasoning » pour faire référence au nouvel modèle.
Si vous avez trouvé l'ID de modèle similaire référencé dans le fichier README.md spécifique d'un package, mettez à jour l'ID de modèle dans ces exemples de code aussi.
Étape 5 : Créer ou mettre à jour les exemples
Si le nouvel modèle remplace un plus ancien : Trouvez les exemples existants utilisant l'ancien modèle et mettez-les à jour pour utiliser le nouvel ID de modèle.
S'il est entièrement nouveau sans prédécesseur : Créez de nouveaux fichiers d'exemples, un fichier par fonction de haut niveau pertinente pour le nouvel modèle (p. ex. generateText, streamText, generateImage). Par exemple, s'il s'agit d'un nouvel modèle de langage, vous créeriez des fichiers comme :
examples/ai-functions/src/generate-text/<provider>/<model-kebab>.tsexamples/ai-functions/src/stream-text/<provider>/<model-kebab>.ts
Ou s'il s'agit d'un nouvel modèle d'image, vous pourriez créer :
examples/ai-functions/src/generate-image/<provider>/<model-kebab>.ts
Cherchez les fichiers d'exemples existants pour le fournisseur dans le même dossier, pour les utiliser comme référence pour vos nouveaux fichiers d'exemples.
Dans votre recherche de l'ID de modèle similaire, vous avez peut-être trouvé des exemples dans lesquels l'ID de modèle fait partie d'une liste de modèles (p. ex. dans un tableau d'options pour un test ou un exemple). Dans ce cas, ajoutez le nouvel ID de modèle à la même liste dans le fichier d'exemple, en respectant l'ordre de tri.
Étape 6 : Mettre à jour les tests
Le cas échéant, remplacez les références au modèle plus ancien ou aperçu par le nouvel modèle dans les fichiers de test, en particulier si le nouvel modèle est désormais celui recommandé.
Exception : Ne remplacez pas les IDs de modèle dans les fixtures ou snapshots, ou dans les tests qui utilisent ces fixtures ou snapshots, car ils sont censés être stables et refléter les réponses réelles de l'API capturées.
Étape 7 : Exécuter les tests
pnpm --filter @ai-sdk/<provider> test
pnpm --filter @ai-sdk/gateway test
Exécutez également les tests pour tous les autres packages affectés :
pnpm --filter @ai-sdk/openai-compatible test # si les snapshots/tests ont été mis à jour
pnpm --filter @ai-sdk/amazon-bedrock test # si les options Bedrock ont été mises à jour
pnpm --filter @ai-sdk/google-vertex test # si les options Vertex ont été mises à jour
</adding-new-model>
<removing-obsolete-model>
Flux de travail pour supprimer un ID de modèle obsolète
Étape 1 : Identifier le successeur
Déterminez quel modèle remplace celui supprimé dans les exemples, les tests et les docs. Cela est pertinent pour mettre à jour les références.
S'il n'y a pas de successeur évident, vous devriez laisser les anciennes références en place dans les exemples, les docs et les tests.
Étape 2 : Trouver toutes les occurrences exactes
Recherchez l'ID de modèle avec des guillemets pour éviter les faux positifs de sous-chaînes :
# Entre guillemets simples (source TypeScript, unions de types)
grep -r "'<model-id>'" packages/ content/ examples/ --include='*.ts' --include='*.mdx' --include='*.md' --include='*.snap'
# Entre guillemets doubles (JSON dans snapshots, fixtures de test avec JSON intégré, docs)
grep -r '"<model-id>"' packages/ content/ examples/ --include='*.ts' --include='*.mdx' --include='*.md' --include='*.snap'
Vérifiez manuellement que chaque résultat correspond à l'ID exact du modèle et non à une correspondance partielle (p. ex. rechercher 'grok-3' ne doit pas correspondre à 'grok-3-mini').
Étape 3 : Supprimer des définitions de type
Supprimez la ligne | 'model-id' des unions de types et les entrées des tableaux const dans les fichiers *-options.ts.
Étape 4 : Mettre à jour la documentation
- Supprimez les lignes des tableaux de capacités dans les fichiers
.mdx. - Remplacez les exemples de code en ligne et les descriptions référençant le modèle supprimé par le successeur.
- Mettez à jour les docs des fournisseurs communautaires dans
content/providers/03-community-providers/.
Étape 5 : Mettre à jour les exemples
- Remplacez le modèle supprimé par le successeur dans les fichiers d'exemples qui l'utilisent directement.
- Supprimez des listes de modèles dans les exemples.
- Supprimez les fichiers d'exemples dédiés uniquement si aucune fonctionnalité unique n'est démontrée au-delà du modèle lui-même (p. ex. si le fichier est nommé d'après le modèle).
Étape 6 : Mettre à jour les tests et snapshots
- Remplacez l'ID de modèle par le successeur dans les fichiers
*.test.ts. - Remplacez l'ID de modèle dans les fichiers
__snapshots__/*.snap— les IDs de modèle apparaissent dans les chaînes JSON sérialisées. - Remplacez dans les chaînes JSON intégrées dans les fixtures de test (p. ex.
"model":"old-model"→"model":"new-model"). - Mettez à jour
examples/ai-functions/src/e2e/*.test.ts— supprimez des tableaux de modèles ou remplacez. - Mettez à jour
packages/<provider>/README.mds'il contient des exemples de code.
Étape 7 : Exécuter les tests
pnpm --filter @ai-sdk/<provider> test
Exécutez également les tests pour tous les autres packages affectés (même qu'au flux de travail A, étape 7).
</removing-obsolete-model>