Skip to main content
La disponibilité n’est pas un détail. Avec Foundation Models, votre app peut se lancer sur des appareils où le modèle :
  • n’est pas pris en charge
  • n’est pas activé
  • n’est pas prêt au moment où vous l’appelez
Le bon réflexe n’est donc pas de maintenir une liste d’appareils à la main. Il faut interroger l’API au runtime.

Vérification la plus simple

Cette propriété suffit pour un premier filtrage. Pour une vraie UI, utilisez plutôt availability.

Quatre questions différentes

Quand vous parlez de “disponibilité”, vous mélangez souvent plusieurs sujets. Apple les sépare : Gardez cette séparation en tête. Un modèle peut être prêt, mais mal adapté à votre langue ou trop limité pour un long transcript.

Diagnostic détaillé

Apple expose un état plus précis via SystemLanguageModel.default.availability.

Les cas à connaître


Vérifier la langue ou la locale

Le support dépend aussi de la langue.
Si votre produit dépend d’une langue précise, faites cette vérification avant d’afficher la fonctionnalité comme disponible. Si vous avez besoin d’un état plus global, supportedLanguages vous donne la liste des langues déclarées par le système. supportsLocale(_:) reste néanmoins le check le plus direct au runtime.

Disponible ne veut pas dire adapté à votre langue

Un appareil peut être techniquement compatible, mais pas votre locale de travail.
Pour une app multilingue, ce test évite un faux positif du type “le modèle existe, donc le bouton doit apparaître”.

Disponibilité et capacité de contexte

contextSize répond à une autre question : quelle quantité de contexte le modèle peut accepter, pas si le modèle est prêt.
En pratique, un modèle peut être disponible et tout de même refuser une requête parce que votre prompt, vos instructions et votre transcript deviennent trop longs.

Exemple d’UI de fallback


Quand vérifier la disponibilité

Au moment d’afficher la fonctionnalité

Utile pour masquer ou désactiver proprement l’entrée dans l’interface.

Juste avant un appel important

Utile si votre vue reste longtemps à l’écran et que l’état a pu changer.

Au moment de gérer une erreur

Si un appel échoue, revérifiez la disponibilité avant d’afficher un message générique.

Recommandation pratique

Évitez les phrases du type “disponible à partir de tel appareil” directement dans le code produit. Les règles de disponibilité évoluent plus vite qu’une documentation statique. Votre app doit raisonner avec les états fournis par SystemLanguageModel.

Prompts

Construire des requêtes plus utiles.

Instructions

Guider le comportement du modèle sur une session.