Intégrez l'IA dans vos applications Jakarta EE avec LangChain4J-CDI

DEV - 24/01
Objectif : Cet article montrera comment ajouter des fonctionnalités d'IA à une application Jakarta EE / MicroProfile...

Objectif : Cet article montrera comment ajouter des fonctionnalités d'IA à une application Jakarta EE/MicroProfile à l'aide de LangChain4J‑CDI, avec des exemples simples à implémenter qui s'exécutent sur Payara, WildFly, Open Liberty, Helidon, Quarkus ou tout autre environnement d'exécution compatible CDI 4.x. Remarque : Il s'agit d'un article mis à jour par rapport à celui publié dans le magazine JAVAPRO - "04-2025 | Java 25 - Special Edition". Depuis la sortie de LangChain4J-CDI version 1.0.0, des changements mineurs ont été apportés, mais l'architecture fondamentale et l'utilisation de la bibliothèque sont les mêmes.

Qu’est-ce que LangChain4J-CDI ?

Langchain4J est une bibliothèque Java qui simplifie l'intégration de l'IA et des LLM et, grâce à sa fonctionnalité de services d'IA, elle fournit une API déclarative et de type sécurisé permettant aux développeurs de définir des interfaces qui représentent les services d'IA, éliminant ainsi les complexités de la communication directe LLM.

LangChain4J‑CDI est une extension CDI qui connecte les composants LangChain4J (modèles de discussion, modèles d'intégration, mémoires, récupérateurs, outils) à votre application à l'aide des annotations Jakarta familières et de MicroProfile Config. Vous déclarez une interface de service AI et l'extension génère et enregistre un bean CDI que vous pouvez injecter n'importe où (bean gérés par CDI, ressources REST, EJB, planificateurs, etc.).

Grâce à ces avantages clés offerts par LangChain4J-CDI, les développeurs d'entreprise bénéficieront de :

  • Intégration déclarative utilisant les annotations CDI. Interface des services d'IA LangChain4J annotée avec@RegisterAIServicel'annotation peut être injectée sous forme de beans CDI.
  • Configuration flexible des composants : la configuration LangChain4J-CDI utilise Microprofile Config pour configurer divers composants LangChain4J en tant que paramètres de configuration.
  • Visibilité et observabilité : observez vos métriques d'IA d'entrée et de sortie LLM à l'aide de l'observabilité (télémétrie Microprofile) et de la résilience des services avec Microprofile Fault Tolerance.
  • Portabilité : fonctionne sur les serveurs et frameworks d'applications conformes à Jakarta EE/Microprofile.

Les principales fonctionnalités fournies par Langchain4J Microprofile :

  1. Construisez avec le CDI à la base. Avec@RegisterAIServiceannotation annotée sur une interface de service Lanchain4J AI, le proxy du service AI devient un bean détectable CDI prêt à être injecté. LangChain4J-CDI fournit 2 extensions de service CDI parmi lesquelles les développeurs peuvent choisir afin de rendre leur service d'IA CDI détectable : extension portable CDI ou extension compatible CDI Build (introduite dans CDI 4.0 et versions ultérieures).
  2. Configuration Langchain4J Microprofile : les développeurs peuvent bénéficier de la puissance de Microprofile Config pour créer des éléments fondamentaux de LangChain4J tels queChatModèle/StreamingChatModèle,ChatMessage,ChatMémoire,ContentRetriever,Fournisseur d'outils(utile pour Model Context Protocol, MCP), et plus encore, sans obliger les développeurs à écrire des constructeurs pour générer de tels éléments.
  3. Langchain4J Microprofile Fault Tolerance : tirer parti de la puissance des résiliences et des politiques de Microprofile Fault Tolerance sur vos services d'IA Lanchain4J existants (tels que@Réessayer,@Temps mort,@RateLimit,@Retomber, etc).
  4. Télémétrie de microprofil Langchain4J : lorsqu'elle est activée, les développeurs peuvent observer leurs métriques LLM (qui suivent les conventions sémantiques pour les métriques GenAI), via la télémétrie ouverte.

**Veuillez noter :* Langchain4J-CDI est un module développé par les membres de Microprofile, initialement appelé SmallRye-LLM. Il a depuis été donné à Langchain. Le dépôt SmallRye-LLM sur GitHub a été retiré.*

Premiers pas avec LangChain4J-CDI

Langchain4J-CDI fournit un exemple concret de création d'un agent d'IA conversationnel pour un système de réservation de voitures. Cette démonstration est inspirée de la conférence perspicace « Java meets AI » de Lize Raes à Devoxx Belgium 2023 (avec d'autres contributions de Jean-François James. La démo originale est de Dmytro Liubarskyi). Les développeurs peuvent voir comment le même exemple est implémenté sur les serveurs d'applications populaires Jakarta EE 10.

Avant de commencer, nous supposerons que vous connaissez les éléments suivants :

  • Développement Java.
  • Connaissance de base de Maven.
  • Connaissance de base de LangChain4J. Lize Raes a écrit ici un brillant article sur la création d'un agent d'IA pratique avec Langchain4J.

Nous utilisons OpenLiberty comme serveur d'applications de choix (vous pouvez parcourir leexemples/liberty-car-bookingexemple à partir de l'exemple de lien fourni ci-dessus), mais vous pouvez utiliser n'importe quel serveur d'applications compatible Jakarta EE / Microprofile avec lequel vous êtes à l'aise (voir les exemples d'autres...
[Courte citation de 8% de l'article original]

Loading...