vendredi 25 septembre 2026

À propos

Contact

IA & MCP

PHP AI Client : appeler plusieurs fournisseurs d’IA avec une seule API

La bibliothèque PHP AI Client portée par le projet WordPress promet d'abstraire les fournisseurs de modèles derrière une interface commune. Premier contact et cas d'usage concrets.

Par Clément Hadrot • 30 septembre 2025 • 4 min de lecture • Aucun commentaire
PHP AI Client : appeler plusieurs fournisseurs d'IA avec une seule API

Nous écrivions jusqu’ici notre propre couche d’abstraction maison à chaque projet client utilisant l’IA, pour éviter de lier tout le code métier à un fournisseur précis. À chaque nouveau projet, la même couche était réécrite, avec des variations mineures et parfois des oublis. La bibliothèque PHP AI Client, portée par l’écosystème WordPress, part du même besoin mais à l’échelle du projet entier plutôt qu’à celle d’un client isolé. Cet article ne traite pas de MCP : il s’agit uniquement de l’appel direct à un modèle de langage ou de génération, sans notion d’outils exposés à un agent.

Nous l’avons testée sur un projet de génération de résumés d’articles, avec un besoin explicite de pouvoir basculer entre deux fournisseurs différents selon la disponibilité et le coût.

Le problème que cette bibliothèque cherche à résoudre

Sans couche d’abstraction, chaque appel à un fournisseur d’IA se fait avec son propre format de requête, son authentification propre, sa structure de réponse spécifique. Changer de fournisseur, ou simplement en ajouter un second en secours, oblige à réécrire une partie du code métier, pas seulement la configuration. C’est ce couplage fort que la bibliothèque cherche à supprimer, en proposant une interface commune pour les opérations les plus courantes : génération de texte, génération d’image, transcription audio.

Le principe d’usage

Le fonctionnement s’appuie sur la configuration d’un ou plusieurs fournisseurs en amont, chacun avec ses identifiants propres, puis sur des appels génériques qui ne mentionnent le fournisseur que par un identifiant de configuration, jamais par du code spécifique à son API. Le code métier ne connaît que l’opération demandée : générer du texte à partir d’un prompt, avec des paramètres génériques comme la température ou la longueur maximale.

L'essentiel à retenir : Une seule interface PHP pour appeler différents fournisseurs de modèles ; Changer de fournisseur ne demande plus de réécrire l'intégration ; La bascule reste utile même en cas de panne d'un fournisseur

Ce que cela change pour la maintenance

Sur notre projet de résumés d’articles, le besoin de bascule s’est révélé concret plus vite que prévu : un fournisseur a connu une dégradation de service de plusieurs heures un mercredi après-midi, en pleine période de publication pour le client. Avec la couche d’abstraction en place, changer de fournisseur pour la durée de l’incident s’est fait par un simple changement de configuration, sans toucher au code de génération des résumés, et sans interruption du service pour l’équipe éditoriale.

Un point de vigilance : les réponses ne sont pas strictement identiques

L’abstraction unifie l’interface d’appel, pas la qualité ni le style des réponses. Un même prompt envoyé à deux fournisseurs différents produit des résumés de longueur et de ton différents. Nous avons dû ajuster nos prompts pour rester tolérants à cette variation, en évitant par exemple de demander un nombre de mots exact, ce que certains modèles respectent moins strictement que d’autres.

Les limites que nous avons rencontrées

Toutes les fonctionnalités avancées propres à un fournisseur précis, comme certains réglages fins spécifiques à un modèle, ne passent pas forcément par l’interface commune et nécessitent parfois de redescendre au niveau du fournisseur natif. Nous recommandons de réserver la couche d’abstraction aux opérations standards, et d’accepter un couplage ponctuel et documenté pour les fonctionnalités réellement spécifiques à un seul fournisseur.

  • Configurer plusieurs fournisseurs dès le départ, même si un seul est utilisé au démarrage
  • Écrire des prompts tolérants aux variations de style entre fournisseurs
  • Réserver un accès natif au fournisseur pour les réglages avancés non couverts
  • Tester réellement la bascule entre fournisseurs avant d’en dépendre en production

Une abstraction ne vaut que si la bascule a été testée avant l’incident, pas découverte pendant.

Notre verdict

Sur ce projet, la bibliothèque a rempli sa promesse principale : le changement de fournisseur pendant l’incident s’est fait sans réécriture de code, exactement le scénario qui justifiait son adoption. Nous conseillons de l’introduire dès qu’un projet WordPress prévoit d’utiliser plusieurs fournisseurs d’IA, ou simplement de garder cette option ouverte pour l’avenir, plutôt que d’écrire une nouvelle couche maison à chaque fois.

Partager :

À propos de l'auteur

Clément Hadrot

Développeur WordPress, passionné par Elementor, le FSE et l’automatisation par IA.

Voir tous ses articles

Dans la même veine

À lire aussi