Créez des fonctionnalités basées sur l’IA dans Symfony

L’IA transforme le développement web — et avec php-llm/llm-chain, les développeurs PHP peuvent facilement intégrer des fonctionnalités LLM puissantes dans leurs applications Symfony. Cet article vous montre comment démarrer grâce à des chatbots, des assistants intelligents, et plus encore.
Pourquoi utiliser l’IA avec Symfony ?
L’intelligence artificielle n’est plus un concept futuriste — elle fait désormais partie intégrante des technologies web modernes. Des chatbots à l’enrichissement de contenu, en passant par la recherche sémantique, les fonctionnalités pilotées par l’IA sont aujourd'hui partout. Les développeurs PHP ne sont pas en reste. Grâce à la bibliothèque php-llm/llm-chain, intégrer ces capacités dans un projet Symfony n’a jamais été aussi simple.
Introduction
php-llm/llm-chain est une bibliothèque native PHP qui permet d’interagir avec des modèles de langage de grande taille (LLM) comme :
Elle prend en charge plusieurs plateformes (OpenAI, Azure, Replicate, etc.) et permet de :
Générer du contenu
Appeler des outils externes (fonctions PHP) depuis un LLM
Créer des embeddings et effectuer des recherches sémantiques
Lier plusieurs appels à des LLM de manière logique
L’intégration Symfony est fournie via php-llm/llm-chain-bundle, qui gère automatiquement l’enregistrement des services, l’injection de dépendances, et la configuration via YAML.
Installation du Bundle Symfony
Installez le package via Composer :
composer require php-llm/llm-chain-bundle
Ajoutez votre clé API à .env :
OPENAI_API_KEY=your-api-key-here
Configurez le service dans config/packages/llm_chain.yaml
:
llm_chain:
platform:
openai:
api_key: '%env(OPENAI_API_KEY)%'
chain:
default:
model:
name: 'gpt4o-mini'
Utiliser l’IA dans un service Symfony
Voici un exemple simple de service Symfony qui envoie un message à un LLM et récupère une réponse :
use PhpLlm\LlmChain\ChainInterface;
use PhpLlm\LlmChain\Model\Message\Message;
use PhpLlm\LlmChain\Model\Message\MessageBag;
use PhpLlm\LlmChain\Model\Response\ResponseInterface;
final class SmartAssistant
{
public function __construct(
private ChainInterface $chain
) {
}
public function ask(string $question): ResponseInterface
{
$messages = new MessageBag(
Message::forSystem('You are a helpful assistant.'),
Message::ofUser($question),
);
return $this->chain->call($messages);
}
}
Vous pouvez utiliser ce service dans un contrôleur, une commande console ou un worker.
Tool Calling : Rendez l’IA interactive
Vous souhaitez que le LLM appelle de vraies fonctions PHP ? Il suffit d’utiliser l’attribut #[AsTool]
:
use PhpLlm\LlmChain\Toolbox\Attribute\AsTool;
#[AsTool('current_time', 'Returns the current server time')]
final class ClockTool
{
public function __invoke(): string
{
return (new \DateTimeImmutable())->format('Y-m-d H:i:s');
}
}
Le LLM peut maintenant décider de lui-même quand utiliser cette fonction pendant une conversation. C’est comme les plugins ChatGPT… mais en PHP.
Embeddings & Recherche
llm-chain prend également en charge les embeddings pour la recherche sémantique. Vous pouvez stocker les vecteurs dans :
Ces solutions sont idéales pour implémenter la génération augmentée par la récupération (RAG). Cette technique consiste à rechercher des documents pertinents avant de poser une question au LLM.
Tester : Projet démo Symfony
Envie d’essayer ? L’équipe php-llm/llm-chain fournit une application Symfony de démonstration avec un chatbot et une recherche vectorielle :
➡ php-llm/llm-chain-symfony-demo
Maîtriser les coûts et les tokens
Les LLM ne sont pas gratuits. Voici quelques bonnes pratiques à suivre pour maîtriser ses coûts :
Mettre en cache les réponses répétitives
Utiliser des prompts courts
Surveiller l’utilisation des tokens via les logs
Limiter la taille des messages système
Conclusion
Avec quelques lignes de configuration et de code, vous pouvez intégrer des fonctionnalités IA puissantes à votre application Symfony. Que vous souhaitiez automatiser des tâches, répondre à des questions ou enrichir du contenu, llm-chain est un excellent point de départ.
Symfony est prêt pour l’ère de l’intelligence artificielle. Et vous ?