<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Genai on Java &amp; Moi</title><link>https://javaetmoi.com/tags/genai/</link><description>Recent content in Genai on Java &amp; Moi</description><generator>Hugo</generator><language>fr</language><lastBuildDate>Mon, 11 Nov 2024 18:34:24 +0000</lastBuildDate><atom:link href="https://javaetmoi.com/tags/genai/feed.xml" rel="self" type="application/rss+xml"/><item><title>Intégrer un Chatbot dans une webapp Java avec LangChain4j</title><link>https://javaetmoi.com/2024/11/integrer-un-chatbot-dans-une-webapp-java-avec-langchain4j/</link><pubDate>Mon, 11 Nov 2024 18:34:24 +0000</pubDate><guid isPermaLink="false">https://javaetmoi.com/?p=2391</guid><description>&lt;p&gt;Cet article explique comment intégrer un &lt;strong&gt;chatbot&lt;/strong&gt; utilisant l’ &lt;strong&gt;IA générative&lt;/strong&gt; dans une &lt;strong&gt;application de gestion&lt;/strong&gt; codée en &lt;strong&gt;Java&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Nous nous appuierons sur le framework Open Source &lt;a href="https://docs.langchain4j.dev/"&gt;&lt;strong&gt;LangChain4j&lt;/strong&gt;&lt;/a&gt;, une adaptation Java de la célèbre librairie python LangChain,
visant à simplifier l&amp;rsquo;intégration de grands modèles de langage ( &lt;strong&gt;LLM&lt;/strong&gt;). LangChain4j permet de créer des &lt;strong&gt;agents conversationnels&lt;/strong&gt;, des &lt;strong&gt;assistants virtuels&lt;/strong&gt; (comme notre chatbot),
ou des applications capables d&amp;rsquo;effectuer des &lt;strong&gt;analyses de texte&lt;/strong&gt; et de répondre en fonction de données contextuelles, le tout sans devoir écrire de code complexe et avec un &lt;strong&gt;haut niveau d’abstraction&lt;/strong&gt;.
Elle facilite notamment l&amp;rsquo;utilisation des API des Large Langage Model comme &lt;a href="https://docs.langchain4j.dev/integrations/language-models/open-ai"&gt;OpenAI&lt;/a&gt; et &lt;a href="https://docs.langchain4j.dev/integrations/language-models/hugging-face"&gt;Hugging Face&lt;/a&gt;,
et propose différents connecteurs pour des bases de données vectorielles, incluant &lt;a href="https://docs.langchain4j.dev/integrations/embedding-stores/elasticsearch"&gt;Elasticsearch&lt;/a&gt; et &lt;a href="https://docs.langchain4j.dev/integrations/embedding-stores/qdrant"&gt;Qdrant&lt;/a&gt;.
Pour accélérer son intégration, LangChain4j propose des extensions pour &lt;strong&gt;Quarkus&lt;/strong&gt; et des starters pour &lt;strong&gt;Spring Boot&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Pour illustrer cet article, nous utiliserons l’illustre application démo &lt;strong&gt;Spring Petclinic&lt;/strong&gt; et son récent fork dédié à LangChain4j : &lt;a href="https://github.com/spring-petclinic/spring-petclinic-langchain4j"&gt;&lt;strong&gt;spring-petclinic-langchain4j&lt;/strong&gt;&lt;/a&gt;&lt;br&gt;Propulsé par Spring Boot, Spring Petclinic s’appuie sur &lt;strong&gt;Spring Data JPA&lt;/strong&gt; pour l’accès aux données et &lt;strong&gt;Thymeleaf&lt;/strong&gt; pour la couche présentation HTML / CSS / JavaScript.&lt;br&gt;En septembre 2024, Oded Shopen, contributeur en 2020 du fork &lt;a href="https://github.com/spring-petclinic/spring-petclinic-cloud/"&gt;Spring Petclinic Cloud&lt;/a&gt;, &lt;a href="https://spring.io/blog/2024/09/26/ai-meets-spring-petclinic-implementing-an-ai-assistant-with-spring-ai-part-i"&gt;a proposé une intégration de Spring AI dans Spring Petclinic&lt;/a&gt;. De son travail, est né le projet &lt;a href="https://github.com/spring-petclinic/spring-petclinic-ai"&gt;spring-petclinic-ai&lt;/a&gt;. Le repository &lt;a href="https://github.com/spring-petclinic/spring-petclinic-langchain4j"&gt;spring-petclinic-langchain4j&lt;/a&gt; est un &lt;strong&gt;portage&lt;/strong&gt; du framework &lt;strong&gt;&lt;a href="https://spring.io/projects/spring-ai/"&gt;Spring AI&lt;/a&gt;&lt;/strong&gt; vers &lt;strong&gt;LangChain4j&lt;/strong&gt;. Y a été ajouté notamment une fonctionnalité de &lt;strong&gt;streaming&lt;/strong&gt;.&lt;br&gt;Extraits du sample, les exemples de code s’appuient sur les versions 3.3 de Spring Boot et &lt;strong&gt;0.35.0 de LangChaing4j&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;picture&gt;
&lt;img
loading="lazy"
decoding="async"
alt=" "
class="image_figure image_internal image_unprocessed"
src="https://javaetmoi.com/wp-content/uploads/2024/11/langchain4j-question-llm.png"
title=" "
/&gt;
&lt;/picture&gt;
&lt;/figure&gt;
&lt;/p&gt;</description></item><item><title>Utiliser les IA Génératives avec Java</title><link>https://javaetmoi.com/2024/04/utiliser-les-ia-generatives-avec-java/</link><pubDate>Sun, 21 Apr 2024 14:27:40 +0000</pubDate><guid isPermaLink="false">https://javaetmoi.com/?p=2270</guid><description>&lt;h2 id="au-delà-des-simples-chatbots"&gt;Au-delà des simples chatbots&lt;/h2&gt;
&lt;p&gt;Conférence : &lt;a href="https://www.devoxx.fr/"&gt;Devoxx France 2024&lt;/a&gt;&lt;br&gt;Date : 17 avril 2024&lt;br&gt;Speakers : &lt;a href="https://twitter.com/boredabdel"&gt;Abdellfetah Sghiouar&lt;/a&gt; (Google), &lt;a href="https://twitter.com/clunven"&gt;Cédrick Lunven&lt;/a&gt; (DataStax)&lt;br&gt;Format : Deep Dive (3h)&lt;br&gt;Slides : &lt;a href="_wp_link_placeholder"&gt;https://github.com/datastaxdevs/conference-2024-devoxx-france/blob/main/slides.pdf&lt;/a&gt;&lt;br&gt;Vidéo Youtube : &lt;a href="https://www.youtube.com/watch?v=6n8JysFyVA8"&gt;https://www.youtube.com/watch?v=6n8JysFyVA8&lt;/a&gt;&lt;br&gt;Repo GitHub : &lt;a href="https://github.com/datastaxdevs/conference-2024-devoxx-france"&gt;https://github.com/datastaxdevs/conference-2024-devoxx-france&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Dans ce Deep Dive de 3h (anciennement nommé Université à Devoxx France), Abdellfetah Sghiouar et Cédrick Lunven nous expliquent comment intégrer l&amp;rsquo;intelligence artificielle générative (la fameuse GenAI) dans nos applications Java, et ceci sans expertise en machine learning ou en Python (ce qui tombe bien). Après nous avoir initié aux Large Language Models (LLMs) et aux techniques de prompting, ils nous apprennent à coder en Java avec &lt;strong&gt;LangChain4J&lt;/strong&gt; et &lt;strong&gt;Spring AI&lt;/strong&gt; pour utiliser le &lt;strong&gt;LLM Gemini&lt;/strong&gt; de Google dans nos projets Java.&lt;/p&gt;
&lt;p&gt;L&amp;rsquo;approche &lt;strong&gt;Retrieval Augmented Generation&lt;/strong&gt; (RAG) est illustrée par son intégration avec des bases de données vectorielle comme Apache Cassandra, ceci pour générer des réponses avec nos propres données. Les Developer Advocates de Google et de DataStax nous donnent des stratégies pour minimiser les erreurs et les hallucinations des LLMs. Les modèles multimodaux (LMM) plus avancés seront également introduits.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Cédrick&lt;/strong&gt; est Developer Advocate chez DataStax&lt;br&gt;Il y’a 10 ans, il s’est fait connaitre par la communauté en créant le projet &lt;a href="https://ff4j.org/"&gt;&lt;strong&gt;ff4j&lt;/strong&gt;&lt;/a&gt;.&lt;br&gt;Ces dernières années, il a énormément travaillé sur Cassandra. Cédrick contribue aux projets OpenSource Langchain4j et Spring AI. Je l’ai personnellement rencontré dans le cadre du projet &lt;a href="https://github.com/spring-petclinic/spring-petclinic-reactive"&gt;&lt;strong&gt;Spring Petclinic Reactive&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Abdel&lt;/strong&gt; est Developer Advocate chez Google&lt;br&gt;Expert en Kubernetes, il travaille notamment sur le déploiement des solutions d’IA sur k8s.&lt;figure&gt;
&lt;picture&gt;
&lt;img
loading="lazy"
decoding="async"
alt=""
class="image_figure image_external image_processed"
width="1268"
height="717"
src="https://javaetmoi.com/word-image-2270-1_12798374238704013530.png"
/&gt;
&lt;/picture&gt;
&lt;/figure&gt;
&lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure&gt;
&lt;picture&gt;
&lt;img
loading="lazy"
decoding="async"
alt="devoxx-france-2024-banniere-generative-ai-avec-java"
class="image_figure image_internal image_unprocessed"
src="https://javaetmoi.com/wp-content/uploads/2024/04/devoxx-france-2024-banniere-generative-ai-avec-java.png"
/&gt;
&lt;/picture&gt;
&lt;/figure&gt;
&lt;/p&gt;</description></item></channel></rss>