Symfony AI Spotlight : une API pour les gouverner tous (Blog Symfony)

SymfonyBlog - 12:03
Le composant Platform de Symfony AI offre à votre application PHP une interface unique, indépendante du fournisseur, pour OpenAI, Anthropic, Gemini, Hugging Face et des dizaines d'autres — avec un support multimodal, des sorties structurées…
❤️ 6 👍 3 🚀 3 🎉 3

Symfony AI approche de sa version 1.0 – alors faisons un tour. Dans ce premier article de cette série, nous présentons le composant Platform, la couche de base qui connecte votre application PHP au monde de l'IA.

Le paysage de l’IA est fragmenté. Chaque fournisseur propose sa propre API, son propre SDK, ses propres conventions. Si vous avez déjà intégré une intégration LLM dans un projet PHP, vous connaissez la difficulté : du code spécifique au fournisseur dispersé partout, étroitement couplé à un seul fournisseur, et une réécriture attendant le moment où vous souhaitez changer de modèle.

L’objectif du composant Platform de Symfony AI est de résoudre ce problème en fournissant une interface unique et unifiée à tous. Et pas seulement les LLM, mais l'inférence de modèles d'IA en général.

Indépendant du fournisseur par conception

À la base, la plateforme est une fine abstraction des API des fournisseurs. Vous configurez une plateforme une fois et chaque appel passe par la mêmeinvoquer()méthode - peu importe ce qu'il y a derrière :

1 2 3 4 5 6 7 8 9 10 11 12 13 14utilisez Symfony\AI\Platform\Bridge\OpenAi\Factory ; utilisez Symfony\AI\Platform\Message\Message ; utilisez Symfony\AI\Platform\Message\MessageBag ; $platform = Factory::createPlatform($apiKey); $messages = new MessageBag( Message::forSystem('Vous êtes un assistant utile.'), Message::ofUser('Qu'est-ce que le framework Symfony ?'), ); $result = $platform->invoke('gpt-5.5', $messages); echo $result->asText();

Ce seul exemple montre déjà l’ensemble du modèle mental – trois éléments constitutifs qui réapparaissent dans chaque extrait ci-dessous. Vous assemblez unMessageBagdeMessageobjets, remettez-le à unPlate-formeà traversinvoquer(), et relisez unRésultatdontcomme*()Les méthodes transforment la réponse en ce dont vous avez besoin : du texte, un objet saisi, un fichier ou un flux. Apprenez ces trois noms une fois pour chaque fournisseur, chaque modalité fonctionne de la même manière.

Vous souhaitez passer à Anthropic ? Échangez l'usine et le nom du modèle :

1 2 3 4utilisez Symfony\AI\Platform\Bridge\Anthropic\Factory ; $platform = Factory::createPlatform($apiKey); $result = $platform->invoke('claude-opus-4-8', $messages);

Le code de votre application — les messages, les options, la gestion des résultats — reste identique. Ce n’est pas seulement une question de commodité ; c'est une limite archi...
[Courte citation de 8% de l'article original]

Loading...