Symfony AI : simplifier l'analyse de similarités de textes et l'interaction avec vos LLMs favoris

JoliCode - JoliCodeBlog - 25/08
Dernier-né dans la famille Symfony, nous vous présentons Symfony AI 🎉 Symfony AI est un ensemble de composants permettant d’intégrer l’intelligence artificielle dans des applications PHP. Il se compose de plusieurs parties : Les Composants Platform : interface unifiée vers diverses

Dernier-né dans la famille Symfony, nous vous présentons Symfony AI 🎉

Symfony AI est un ensemble de composants permettant d’intégrer l’intelligence artificielle dans des applications PHP.

Il se compose de plusieurs parties :

  • Les Composants

    • Platform : interface unifiée vers diverses plateformes d’IA telles que OpenAI, Anthropic, Azure, Gemini, etc. ;
    • Agent : framework pour créer des agents IA capables d’interagir avec les utilisateurs et d’exécuter des tâches ;
    • Store : abstraction de stockage de données avec indexation et recherche pour les applications IA ;
    • MCP SDK : SDK pour le Model Context Protocol permettant la communication entre agents IA et outils.
  • Les Bundles

    • AI Bundle : intégration Symfony pour les composants AI Platform, Store et Agent ;
    • MCP Bundle : intégration Symfony pour MCP SDK, permettant d’agir en tant que serveur ou client MCP.

Décrire tous les composants et bundles serait trop long pour cet article. Nous allons donc nous concentrer sur deux d’entre eux : Platform et Store.

Dans cet article, nous allons créer un petit projet qui indexe des documents et retrouve ceux qui sont similaires à un document donné.

Pour cela, nous devons d’abord vectoriser les documents.

Section intitulée la-vectorisationLa vectorisation

En intelligence artificielle, vectoriser un texte (ou une image, un son, etc.) signifie le transformer en une représentation numérique sous forme d’un tableau de nombres : un vecteur.

  • Chaque vecteur est une liste de valeurs flottantes (ex. [0.12, -0.45, 0.87, ...]) ;
  • Ces nombres sont calculés par un modèle d’embedding, réseau de neurones spécialisé ;
  • L’idée : deux contenus similaires doivent avoir des vecteurs proches dans l’espace numérique.

Pourquoi faire ça ? La vectorisation permet de mesurer la similarité entre deux contenus. Par exemple :

  • « chien » et « chiot » → vecteurs proches ;
  • « chien » et « chat » → vecteurs assez proches ;
  • « chien » et « banane » → vecteurs éloignés.

Vue d’artiste, non réaliste, représentant une ...
[Courte citation de 8% de l'article original]

Loading...