Comment Google tente de mettre de l'ordre dans le développement d'applications IA avec Genkit
Les développeurs de l'équipe Firebase ont open-sourcé Genkit — un framework pour créer des fonctionnalités IA. Découvrons si cela permet de combiner Gemini, OpenAI et Ollama dans un seul projet sans code spaghetti.
Pourquoi avons-nous besoin d'un autre framework IA
Si vous avez déjà essayé d'ajouter un appel LLM à votre backend, vous avez probablement suivi ce parcours. D'abord, vous écrivez un simple appel fetch vers l'API OpenAI. Ensuite, vous devez解析 du JSON strictement valide à partir de la réponse du modèle, et vous avez recours à des contournements avec des expressions régulières. Puis, le côté métier demande de passer à Gemini ou de connecter un Ollama local pour les tests, mais chacun possède son propre SDK. Le résultat est un projet encombré de wrappers personnalisés, de systèmes de templating de prompts et de journalisation dispersée.
La communauté Python aborde ce problème avec LangChain ou LlamaIndex. Mais si votre pile principale est TypeScript ou Go, les alternatives ont été rares jusqu'à récemment. Les ingénieurs de Google de l'équipe Firebase ont rencontré le même problème en interne et ont construit Genkit. Maintenant, le projet est disponible en open source.

Ce que le framework peut faire
Le concept de Genkit est simple : fournir une interface unifiée aux différents fournisseurs de réseaux de neurones et gérer le travail routinier. Au lieu d'apprendre les SDK spécifiques pour chaque service, vous travaillez avec une API universelle.
Plusieurs langages sont actuellement supportés :
- JavaScript et TypeScript sont prêts pour la production
- Go est prêt pour la production
- Python est en Beta
- Dart est en Preview
Out of the box, les fournisseurs supportés incluent Google Gemini, OpenAI, Anthropic et Ollama. Passer d'un modèle à l'autre ne nécessite souvent qu'un simple changement de ligne de configuration.
Regardons un exemple minimal d'initialisation et d'appel d'un modèle en TypeScript :
import { genkit } from 'genkit';
import { googleAI } from '@genkit-ai/google-genai';
const ai = genkit({ plugins: [googleAI()] });
const { text } = await ai.generate({
model: googleAI.model('gemini-flash-latest'),
prompt: 'What is the meaning of life?'
});
Le code est propre et ne lie pas le backend aux requêtes HTTP de bas niveau.
Sortie typée et appel d'outils
L'une des tâches les plus courantes dans le développement de services IA est d'obtenir du modèle non seulement du texte, mais une structure de données. Genkit fonctionne avec les schémas Zod en TypeScript et des mécanismes similaires dans d'autres langages. Vous décrivez le schéma de réponse, le transmettez au modèle et obtenez un objet valide en retour.
La deuxième fonctionnalité utile est l'appel de fonctions externes, ou tool calling. Si le modèle doit vérifier la météo actuelle ou interroger une base de données, vous enregistrez un outil avec une description de ses arguments d'entrée. Genkit transmet automatiquement la description de la fonction au LLM, reçoit la décision d'appel et exécute le code nécessaire.
Le framework inclut également :
- Le templating de prompts via le format Dotprompt
- Les réponses en streaming
- La recherche vectorielle et RAG pour travailler avec des bases de connaissances
- Les chaînes d'appels et les agents via les mécanismes Flows
Débogage local via l'interface développeur
Lors du développement de fonctionnalités IA complexes, la partie la plus difficile est de comprendre exactement où la chaîne d'appels s'est rompue. Le modèle a-t-il renvoyé le mauvais format ? Un outil a-t-il planté avec une erreur ? Le prompt était-il trop long ?
Les développeurs de Genkit ont créé un utilitaire CLI local et une interface graphique pour le débogage. Vous exécutez la commande genkit start, et un tableau de bord s'ouvre dans votre navigateur.

Cette interface vous permet de faire plusieurs choses :
- Exécuter manuellement des prompts et des chaînes dans un bac à sable interactif
- Comparer les résultats de différents modèles sur le même prompt
- Voir des traces détaillées avec des décompositions étape par étape, des horodatages et des entrées et sorties précises pour chaque étape
Avoir une interface locale accélère considérablement les itérations. Vous n'avez pas besoin de déployer dans un environnement de test ni d'écrire une infrastructure de journalisation à chaque fois.
Où déployer et comment surveiller
Bien que Genkit ait été créé au sein de Google et s'intègre avec Firebase Cloud Functions et Google Cloud Run, il ne vous enferme pas dans l'infrastructure Google Cloud. Vous pouvez déployer l'application sur Node.js ou Go dans n'importe quel conteneur Docker, sur Vercel, AWS ou vos propres serveurs.
En production, le framework peut envoyer des métriques et des traces vers des systèmes de surveillance. Vous verrez les nombres de requêtes, les latences, les erreurs et les coûts en tokens directement dans la console Firebase ou via des solutions tierces basées sur OpenTelemetry.
Qui devrait l'essayer
Genkit s'est avéré être un outil équilibré. Contrairement à certaines bibliothèques open source qui tentent de tout faire, il montre une approche d'ingénierie soignée.
Le projet est utile si :
- Vous écrivez des services IA en TypeScript ou Go et ne voulez pas passer à Python
- Vous avez besoin d'une couche d'abstraction unifiée sur OpenAI, Gemini et les modèles locaux
- Vous êtes fatigué de déboguer des agents IA complexes sans traces claires
Le support Python est encore en beta et Dart est encore en développement. Mais la version Node.js est déjà assez prête pour les services en production. Vous pouvez essayer les exemples et lire la documentation sur le site officiel genkit.dev ou dans le dépôt GitHub genkit-ai/genkit.
Projets similaires