Présentation de AnyLanguageModel 1.0
AnyLanguageModel 1.0 arrive avec les bibliothèques swift-huggingface 1.0 et swift-xet 1.0. La version propose une API unique qui remplace import FoundationModels par import AnyLanguageModel, tout en conservant le même flux de session. Cette uniformité permet d’utiliser indifféremment le modèle système, des modèles open‑weight via llama.cpp, MLX ou Core ML, ainsi que les fournisseurs hébergés.
Architecture et prise en charge des fournisseurs
Le cœur de la solution repose sur le protocole LanguageModel de Foundation Models. Sur iOS, macOS et visionOS 27, tout modèle conforme à ce protocole, y compris les modèles Core AI, peut être invoqué sans modification du code. La couche d’abstraction gère la sélection du fournisseur : OpenAI (Chat Completions et Responses), Anthropic (Messages), Google Gemini, Ollama, Private Cloud Compute et les Inference Providers de Hugging Face, ainsi que les points de terminaison compatibles OpenAI via une URL personnalisée.
let model = OpenAILanguageModel(
baseURL: URL(string: "https://router.huggingface.co/v1/")!,
apiKey: ProcessInfo.processInfo.environment["HF_TOKEN"]!,
model: "openai/gpt-oss-120b",
apiVariant: .chatCompletions
)Le même fragment de code fonctionne avec un modèle local en remplaçant simplement le type de classe, ce qui montre la transparence de l’API. Les appels d’outils et la génération guidée sont disponibles pour chaque fournisseur, y compris les types imbriqués @Generable et les tableaux associés. La prise en charge d’images utilise la syntaxe de Foundation Models 27, permettant d’attacher des fichiers visuels aux prompts, même avec le modèle système.
Fonctionnalités avancées et gestion des tokens
Les clés d’API sont désormais fournies via une fermeture, ce qui autorise la récupération de tokens à durée de vie courte depuis un serveur interne. Cette approche réduit le risque d’exposition de clés statiques dans le binaire. Le système détecte automatiquement les blocs de raisonnement dans le transcript et les supprime lorsqu’un fournisseur ne supporte pas la réexécution, évitant ainsi des erreurs de compatibilité.
AnyLanguageModel s’étend également à Linux, ce qui ouvre la possibilité d’utiliser le même code Swift sur des serveurs back‑end. Le fichier Package.swift inclut une dépendance déclarée comme suit :
dependencies: [
.package(
url: "https://github.com/huggingface/AnyLanguageModel",
from: "1.0.0",
traits: ["MLX"]
)
]Contraintes matérielles et modèles les plus téléchargés
Le catalogue indique trois modèles majeurs : Gemma 4 E2B (3,4 Go, quantisation Q4_0), LFM2.5 2.6B (1,7 Go, quantisation Q4_K_M) et Qwen3.8 27B (16 Go, 4 bits). Les deux premiers tiennent sur un iPhone, tandis que le modèle de 27 milliards de paramètres nécessite au moins 32 Go de RAM sur macOS. Un modèle de 5,3 milliards de paramètres de Z.ai occupe environ 1,5 To en BF16, accessible uniquement via les Inference Providers. Cette répartition montre que les petits modèles restent la porte d’entrée pratique pour les appareils mobiles, alors que les modèles plus volumineux sont réservés aux stations de travail ou aux services cloud.
En résumé, AnyLanguageModel 1.0 fournit une couche d’abstraction qui masque les différences entre exécution locale et inference distante, tout en conservant les capacités avancées de génération guidée, d’appel d’outils et de support multimédia. La compatibilité multi‑plateforme, la gestion sécurisée des clés et la prise en charge de modèles de tailles variées offrent aux développeurs une flexibilité accrue pour intégrer l’intelligence artificielle dans leurs applications Apple.