Home Technologie et scienceUne API pour les LLM locaux et distants sur les plateformes Apple

Une API pour les LLM locaux et distants sur les plateformes Apple

by Thomas Caron

Publié le 21 novembre 2025 à 05h20. Les développeurs Apple rencontrent des difficultés pour intégrer efficacement les grands modèles de langage (LLM) dans leurs applications. Un nouveau paquet logiciel, AnyLanguageModel, vise à simplifier ce processus et à encourager l’adoption de modèles open source.

  • AnyLanguageModel permet de remplacer le framework Foundation Models d’Apple par une prise en charge de plusieurs fournisseurs de modèles.
  • Le paquet utilise les caractéristiques de Swift 6.1 pour n’inclure que les dépendances nécessaires, réduisant ainsi le gonflement des bibliothèques.
  • Il offre une prise en charge de modèles locaux (Core ML, MLX, llama.cpp) et de fournisseurs cloud (OpenAI, Anthropic, Google Gemini, Hugging Face).

L’intégration des grands modèles de langage est devenue un élément essentiel du développement logiciel moderne. Cependant, pour les développeurs travaillant sur les plateformes Apple, cette intégration s’avère souvent complexe et fastidieuse. Beaucoup adoptent une approche hybride, combinant des modèles locaux pour la confidentialité et le fonctionnement hors ligne avec les capacités avancées offertes par les fournisseurs de cloud. Chacune de ces solutions possède ses propres API, exigences et méthodes d’intégration, ce qui peut rapidement devenir ingérable.

« Je pensais pouvoir rapidement tester une démo et créer un prototype fonctionnel, mais j’ai plutôt perdu un temps considérable. Cela m’a rendu fou », témoigne un développeur interrogé, illustrant la frustration courante rencontrée par ses pairs. Le coût de l’expérimentation est élevé, ce qui dissuade les développeurs d’explorer les modèles open source locaux qui pourraient pourtant être parfaitement adaptés à leurs besoins.

Afin de répondre à ces défis, les créateurs de AnyLanguageModel présentent un paquet Swift qui se substitue directement au framework Foundation Models d’Apple, tout en offrant une compatibilité avec divers fournisseurs de modèles. L’objectif est de simplifier l’utilisation des LLM sur les plateformes Apple et de faciliter l’adoption de modèles open source exécutés localement.

La solution

Le principe de base est simple : remplacez votre déclaration import tout en conservant la même API.

- import FoundationModels
+ import AnyLanguageModel

Voici un exemple concret. Commencez par le modèle intégré d’Apple :

let model = SystemLanguageModel.default
let session = LanguageModelSession(model: model)

let response = try await session.respond(to: "Expliquez l'informatique quantique en une phrase")
print(response.content)

Passez maintenant à un modèle open source exécuté localement via MLX :

let model = MLXLanguageModel(modelId: "mlx-community/Qwen3-4B-4bit")
let session = LanguageModelSession(model: model)

let response = try await session.respond(to: "Expliquez l'informatique quantique en une phrase")
print(response.content)

AnyLanguageModel prend en charge une gamme étendue de fournisseurs :

  • Modèles de la Fondation Apple : intégration native avec le modèle système d’Apple (macOS 26+ / iOS 26+).
  • ML de base : exécution de modèles convertis avec l’accélération du moteur neuronal.
  • MLX : exécution efficace de modèles quantifiés sur Apple Silicon.
  • llama.cpp : chargement de modèles GGUF via le backend llama.cpp.
  • Ollama : connexion aux modèles servis localement via l’API HTTP d’Ollama.
  • OpenAI, Anthropic, Google Gemini : fournisseurs de cloud pour comparaison et repli.
  • Fournisseurs d’inférence de Hugging Face : des centaines de modèles cloud optimisés par des solutions de pointe fournisseurs d’inférence.

L’accent est mis sur les modèles locaux téléchargeables depuis Hugging Face. Les fournisseurs de cloud sont inclus pour faciliter le démarrage et offrir une voie de migration.

Pourquoi les modèles de base comme API de base ?

Lors de la conception d’AnyLanguageModel, les développeurs ont choisi de s’appuyer sur une API existante plutôt que de créer une nouvelle abstraction. Ils ont opté pour Foundation Models d’Apple comme modèle.

Ce choix peut sembler contre-intuitif. Cependant, plusieurs raisons justifient cette approche : Foundation Models est bien conçu, exploite les fonctionnalités de Swift et propose des abstractions cohérentes. De plus, il représente un dénominateur commun pour les capacités des modèles de langage, offrant une base stable. Enfin, s’appuyer sur cette API permet de réduire la complexité pour les développeurs ciblant les plateformes Apple.

Caractéristiques du paquet : incluez uniquement ce dont vous avez besoin

L’un des défis des bibliothèques multi-backend est le gonflement des dépendances. AnyLanguageModel utilise les caractéristiques du paquet Swift 6.1 pour résoudre ce problème. Vous pouvez choisir uniquement les backends dont vous avez besoin :

dependencies: [
    .package(
        url: "https://github.com/mattt/AnyLanguageModel.git",
        from: "0.4.0",
        traits: ["MLX"]
    )
]

Les traits disponibles incluent CoreML, MLX et Llama (pour llama.cpp / llama.swift). Par défaut, aucune dépendance lourde n’est incluse.

Prise en charge des images (et compromis en matière de conception d’API)

Les modèles vision-langage sont de plus en plus performants et largement utilisés. Cependant, le framework Foundation Models d’Apple ne prend actuellement pas en charge l’envoi d’images avec des requêtes. AnyLanguageModel a donc dépassé les fonctionnalités actuelles de Foundation Models pour permettre l’envoi d’images à des fournisseurs tels que Claude :

let model = AnthropicLanguageModel(
    apiKey: ProcessInfo.processInfo.environment["ANTHROPIC_API_KEY"]!,
    model: "claude-sonnet-4-5-20250929"
)

let session = LanguageModelSession(model: model)
let response = try await session.respond(
    to: "Qu'y a-t-il sur cette image ?",
    image: .init(url: URL(fileURLWithPath: "/path/to/image.png"))
)

Essayez-le : chat-ui-swift

Capture d'écran de l'application chat-ui-swift

Pour voir AnyLanguageModel en action, consultez chat-ui-swift, une application de chat SwiftUI qui démontre les capacités de la bibliothèque. L’application comprend l’intégration d’Apple Intelligence, l’authentification Hugging Face OAuth, les réponses en streaming et la persistance du chat.

Quelle est la prochaine étape ?

AnyLanguageModel est actuellement en version pré-1.0. Les développeurs travaillent activement à l’intégration complète des fonctionnalités de Foundation Models à tous les adaptateurs, notamment l’appel d’outils, l’intégration MCP et la génération guidée. L’objectif ultime est de créer une API d’inférence unifiée pour des flux de travail agentiques transparents sur les plateformes Apple.

Impliquez-vous

Les développeurs invitent la communauté à contribuer : testez la bibliothèque, partagez vos expériences, signalez les problèmes et proposez des améliorations.

Liens

Les créateurs de AnyLanguageModel sont impatients de voir ce que la communauté construira.

You may also like

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.