Tandis que les Ă©pisodes de notre podcast Zenikast se succĂšdent, la nĂ©cessitĂ© de produire la transcription de chaque Ă©pisode est bien entendu toujours dâactualitĂ© (cf prĂ©cĂ©dent article).
Si une premiĂšre approche sâĂ©tait rĂ©vĂ©lĂ©e concluante avec Vertex AI, une solution qui nous avait clairement aidĂ© dans la production de qualitĂ© de ces transcriptions, nous voulions aller plus loin en rendant disponible ce moyen de transcription Ă lâensemble des collaborateurs·trices de Zenika, via une interface graphique, indĂ©pendamment de leur connaissance en Vertex AI, Google Cloud Platform ou autre item technique.
En tant que dĂ©veloppeur, lâidĂ©e de dĂ©marrer un projet, un âniĂšme side projectâ, vient rapidement Ă lâesprit đ. Javaiste depuis mes Ă©tudes, il Ă©tait Ă©vident pour moi que ce nouveau projet allait se faire avec du Java !
đ€ ADK
La premiĂšre question tourne autour du âcommentâ. Comment intĂ©grer Gemini dans une API? Une librairie de bas niveau de Google, java-genia, couvre clairement ce besoin.
Mais mon regard sâest finalement portĂ© vers Agent Development Kit (ADK), un framework créé par Google facilitant la crĂ©ation dâagents. Initialement créé en Python, des versions Java et derniĂšrement en Go sont disponibles.
AprÚs avoir créé votre projet maven, vous aurez besoin de cette dépendance :
La librairie google-adk amÚne plusieurs classes dont voici les 3 principales et nécessaires que vous allez manipuler :
- BaseAgent
- LlmAgent
- InMemoryRunner
La classe LlmAgent reprĂ©sente le builder de votre agent. Câest Ă cet endroit que vous allez dĂ©finir votre agent avec un nom, une description, le modĂšle Ă utiliser et des instructions.
> A noter que le choix du modĂšle est libre et peut ĂȘtre un autre modĂšle que Gemini.
Une instance de InMemoryRunner permet dâinitier et de gĂ©rer le cycle de vie de votre agent, notamment lâallocation mĂ©moire Ă son fonctionnement.
Une session est ensuite Ă initier Ă partir de ce runner afin de maintenir lâĂ©tat conversationnel avec lâagent :
LâexĂ©cution de votre agent peut se faire avec cet exemple :
Le rĂ©sultat est rĂ©cupĂ©rĂ© Ă partir de lâevents :
Une fois configurĂ©, lâagent est exĂ©cutĂ© avec cette commande et lorsque la rĂ©ponse sera obtenue, votre programme sera arrĂȘtĂ©. Votre agent est fonctionnel đ.
ADK met à disposition une seconde dépendance, google-adk-dev, offrant une interface graphique pour tester, utiliser et debbuger vos agents.
â ïž Cette dĂ©pendance est Ă utiliser lors de vos dĂ©veloppements.
La commande Ă exĂ©cuter est lĂ©gĂšrement diffĂ©rente. Elle exĂ©cute la classe AdkWebServerdisponible dans la dĂ©pendance dâADK.
Cette interface est composĂ©e de deux parties. La premiĂšre, le menu de gauche, dĂ©taille les diffĂ©rents Ă©vĂ©nements et Ă©tapes de rĂ©flexions de votre agent, comme les logs, lâĂ©tat des sessions en cours et passĂ©es ainsi que les outils que lâagent peut ĂȘtre amenĂ© Ă utiliser.
La partie centrale quant Ă elle, est une zone de conversation oĂč vous interagissez avec votre agent. Dans cet exemple, je lui envoie un passage audio pour vĂ©rifier la qualitĂ© de la transcription (et de mon prompt associĂ©).
đRetrouvez toute la documentation dâADK sur https://google.github.io/adk-docs .
âïž Gemini 3
La sortie de la version 3 de Gemini a Ă©tĂ© remarquĂ©e de par sa progression par rapport Ă la prĂ©cĂ©dente version et notamment grĂące Ă son entraĂźnement multimodal. Google a sorti une gamme de modĂšles trĂšs performant, que ce soit Gemini 3 pro, mais aussi sur son modĂšle dâimages, Nano Banana ou bien vidĂ©o avec Veo 3.
AprĂšs avoir testĂ© Gemini 3 pour nos transcriptions, lâamĂ©lioration de la qualitĂ© est clairement prĂ©sente.
đš Javelit
Javelit est un projet créé par Cyril de Catheu. InspirĂ© de Streamlit, une librairie de crĂ©ation de composants graphiques en Python, Javelit est une variante pour ⊠Java. Ce projet nâa pas vocation Ă concurrencer les frameworks Front end comme Angular, Vue ou React. Il offre la possibilitĂ© de crĂ©er rapidement des applications web dans le mĂȘme langage que votre API, et ça, câest super intĂ©ressant.
A partir de lâimport de la dĂ©pendance et du package core, vous avez accĂšs Ă des classes qui vous permettent dâavoir votre premier composant graphique en Java.
Dans cet exemple, je mentionne un composant âmarkdownâ mais le catalogue de composants est trĂšs complet, avec par exemple :
- Jt.title pour mettre un titre Ă votre page
- Jt.text pour afficher du texte
- Jt.code pour afficher du code
- Jt.html pour afficher du code HTML lâexĂ©cution de Javascript nâest pas possible
- Jt.echarts pour afficher des graphiques (basés sur la librairie ECharts)
- Jt.button, Jt.radio, Jt.textInput pour faire des formulaires
đRetrouvez la documentation complĂšte sur https://docs.javelit.io/.
đ ADK + Javelit = â„ïž
La puissance et la simplicitĂ© dâADK pour crĂ©er un agent, combinĂ©es Ă lâefficacitĂ© de Javelit pour dĂ©velopper des interfaces graphiques permettent de transformer rapidement des idĂ©es en applications fonctionnelles de A Ă Z. Lâinfrastructure âmono composantâ amĂšne aussi des simplicitĂ©s dans le dĂ©ploiement, par exemple avec Cloud Run il est rapidement possible de dĂ©ployer et mettre Ă disposition une application.
Câest avec ce raisonnement que lâapplication de transcription de podcast Zenika a Ă©tĂ© créée et dĂ©ployĂ©e sur Google Cloud Platform.
Plusieurs options ont Ă©tĂ© rajoutĂ©es pour modifier ou adapter le prompt en fonction des besoins comme lâaffichage de lâhorodatage dans la transcription (merci ThĂ©ophile pour lâidĂ©e), ou bien pour gĂ©nĂ©rer une transcription stricte (Ă©quivalente aux mots des intervenants·es) ou une version plus lisible.
đ Retrouvez le projet Agent-Z-transcribe-podcast sur GitHub : http://github.com/zenika-open-source/agent-Z-transcribe-podcast/
Ce trinĂŽme ADK, Gemini + Javelit est une belle dĂ©couverte. DĂ©ployĂ©e sur une instance serverless comme Cloud Run, notre application de transcription de podcast est graphiquement agrĂ©able, sans trop de prise de tĂȘte avec du CSS đ , et utilise la puissance du dernier modĂšle de Gemini pour me gĂ©nĂ©rer une transcription de qualitĂ©.
Cela donne des idĂ©es par la suite pour faire rapidement des projets. Si on ajoute Ă cette expĂ©rience, lâutilisation de lâIDE âagentiqueâ Antigravity, la production et surtout la rĂ©alisation de nouveaux projets vont pouvoir voir le jour beaucoup plus rapidement đ.



Top comments (0)