Ce que décrivent @Generable et @Guide
Apple expose Generable comme le contrat de sortie que le modèle doit remplir. @Guide n’est pas un simple commentaire : il influence les valeurs que le modèle essaie de produire pour chaque propriété.
En pratique :
@Generabledécrit la forme de l’objet Swift attendu.@Guide(description:)explique le sens métier d’un champ.@Guide(..., .anyOf / .range / .minimumCount)resserre l’espace des valeurs possibles.
Pourquoi c’est utile
Si votre UI attend :- un titre
- un résumé
- une liste d’actions
- une priorité
Définir un type @Generable
@Guide est d’aider le modèle à comprendre ce que vous attendez pour chaque propriété.
Autrement dit, @Generable dit “quelle forme doit sortir”, et @Guide dit “quelles valeurs ont du sens pour cette propriété”.
Générer ce type
FeaturePlan, pas une chaîne.
Ajouter des contraintes utiles
Vous pouvez guider davantage la génération :Types imbriqués
Vous pouvez aussi structurer plusieurs niveaux :Quand préférer la sortie structurée
Préférez Guided Generation si :- vous affichez plusieurs champs distincts
- vous stockez le résultat
- vous devez piloter une logique métier
- vous voulez éviter de parser du Markdown ou du texte libre
À garder en tête
Le type fait partie du prompt implicite
Plus votre type et vos@Guide sont clairs, plus la sortie sera stable.
Gardez les types simples au début
Commencez avec peu de propriétés. Complexifiez ensuite seulement si le besoin est réel.Gérez l’échec de décodage
Même avec un bon schéma, une génération structurée peut échouer. Gérez ce cas dans votre flux d’erreur.Streaming structuré
Foundation Models prend aussi en charge le streaming pour la sortie structurée. C’est utile si vous voulez remplir progressivement une vue complexe. Vous verrez ce pattern plus loin dans la page Streaming & UX.Tools
Enrichir la génération avec des données externes.
Streaming & UX
Afficher les réponses progressivement.