Apprenez à créer un assistant vocal en temps réel avec l’API Gemini Live et Google ADK. Maîtrisez les WebSockets, l’appel d’outils et le streaming audio natif.
Si vous avez déjà tenté de créer un assistant vocal, vous savez à quel point le pipeline traditionnel est lourd. Vous enregistrez la voix de l’utilisateur, vous la transcrivez avec un modèle STT, vous envoyez ce texte à un LLM, vous attendez la réponse, puis vous la faites lire par un moteur TTS.
Au moment où l’utilisateur entend une réponse, plusieurs secondes de silence gênant se sont écoulées. On est plus proche d’un cycle lent de demande-réponse que d’une véritable conversation.
L’API Gemini Live change la donne en vous permettant de diffuser audio et vidéo en continu via une connexion WebSocket avec état. Comme le modèle traite et génère l’audio nativement, il peut réagir immédiatement, s’adapter aux nuances vocales naturelles et même gérer les interruptions (barge-in) en plein milieu d’une phrase.
Dans ce tutoriel, je vous montre comment créer un concierge de voyage IA en temps réel à l’aide du kit de développement d’agents Google (ADK), orienté code. Nous équiperons notre agent de Google Search pour consulter en direct la météo des destinations, le connecterons à une base de données de vols factice et lancerons une interface développeur locale pour tester le dialogue en temps réel et l’appel d’outils.
Comprendre le fonctionnement interne, les capacités et la tarification de l’API Gemini Live.
Configurer un environnement Python avec le Google Agent Development Kit.
Exposer des outils intégrés (Google Search) et une logique métier personnalisée (consultation d’une base d’état des vols) à l’assistant vocal.
Lancer une interface web locale pour parler en direct avec votre agent de voyage.
Prérequis :
Notions de base en Python.
Un projet Google Cloud (pour accéder à Vertex AI) ou une clé API Google AI Studio.
Qu’est-ce que l’API Gemini Live ?
Au cœur, l’API Gemini Live est un outil développeur de Google qui permet de créer des interactions vocales et visuelles en temps réel avec les modèles Gemini. Plutôt que d’attendre des réponses textuelles à tour de rôle, elle rend possible une conversation continue et naturelle entre un utilisateur et un agent IA.
Techniquement, l’API Gemini Live est conçue pour le streaming bidirectionnel en temps réel. Contrairement aux API REST HTTP classiques, fondées sur des cycles requête-réponse sans état, la Live API s’appuie sur une connexion WebSocket (WSS) persistante avec état. Par ce canal ouvert, le client diffuse de l’audio brut, de la vidéo (transmise sous forme d’images à ~1 FPS) et du texte, tandis que le modèle renvoie immédiatement de l’audio natif et du texte.
Capacités clés de Gemini Live
Barge-in (interruption) : Dans une conversation humaine, on n’attend pas forcément la fin d’un long paragraphe pour demander une précision. Gemini Live gère nativement le barge-in : les utilisateurs peuvent interrompre la parole du modèle en plein milieu d’une phrase, le serveur stoppe aussitôt le flux audio et s’adapte au nouvel input.
Dialogue affectif et audio natif : Au lieu de générer du texte pour l’envoyer ensuite à un moteur de synthèse vocale (TTS), des modèles comme gemini-live-2.5-flash-native-audio et gemini-3.1-flash-live-preview traitent et produisent l’audio nativement. Les nuances émotionnelles, les rires, l’adaptation du ton et le rythme de parole sont ainsi préservés, rendant les interactions plus humaines.
Entrées multimodales et usage d’outils : La Live API ne se limite pas à l’audio. Elle peut « voir » votre environnement via des images vidéo et déclencher des fonctions ou outils externes (comme Google Search ou des API personnalisées) en temps réel, en réinjectant les résultats dans le flux vocal.
Tarification de l’API Gemini Live
Comme le streaming temps réel implique une connexion continue en duplex intégral, le modèle de facturation diffère des API texte statiques. Google propose un palier gratuit généreux pour le prototypage dans Google AI Studio et un palier payant prêt pour la production sur Vertex AI.
Le modèle gemini-3.1-flash-live-preview est facturé au million de tokens ou converti
directement en métrique basée sur la durée pour l’audio et la vidéo :
Métrique
Palier gratuit (Google AI Studio)
Palier payant (Vertex AI)
Prix d’entrée (Texte)
Gratuit
$0.75 par 1 M de tokens
Prix d’entrée (Audio)
Gratuit
$3.00 par 1 M de tokens (ou $0.005 / minute)
Prix d’entrée (Image/Vidéo)
Gratuit
$1.00 par 1 M de tokens (ou $0.002 / minute)
Prix de sortie (Texte)
Gratuit
$4.50 par 1 M de tokens
Prix de sortie (Audio)
Gratuit
$12.00 par 1 M de tokens (ou $0.018 / minute)
Ancrage avec Google Search
Gratuit (limité par le taux)
Premiers 5 000 prompts/mois gratuits, puis $14 par 1 000 requêtes
Si vous prototypez, je vous recommande vivement de tester gratuitement dans Google AI Studio, qui offre une large tolérance sous réserve de limites de débit.
Quand vous serez prêt à monter en charge, migrez vers Vertex AI pour une mise en production en paiement à l’usage, avec un débit garanti et des SLA de niveau entreprise.
Comment accéder à l’API Gemini Live
En tant que développeur, vous avez plusieurs options d’architecture pour implémenter la Live API. Comme elle repose sur des WebSockets, le routage de la connexion a un impact sur la latence et la sécurité.
Client-vers-serveur vs serveur-vers-serveur
Client-vers-serveur : votre frontend (par ex. application web ou mobile) se connecte directement à l’endpoint WebSocket de Google. C’est l’approche la plus efficace pour réduire la latence, car le flux audio évite des sauts réseau supplémentaires.
Cependant, vous ne pouvez pas exposer vos clés API Google Cloud en clair dans un client frontend : vous devez mettre en place un flux d’authentification qui génère des jetons temporaires et éphémères pour un accès client sécurisé.
Serveur-vers-serveur : votre frontend transmet l’audio à votre propre backend, qui ouvre ensuite le WebSocket vers l’API Gemini Live. C’est très sécurisé et vous permet d’injecter de la logique serveur (authentification, accès base de données), mais cela ajoute une légère latence réseau au flux audio.
SDK et intégrations partenaires
Vous pouvez écrire du code WebSocket brut, mais le plus simple est d’utiliser le SDK GenAI de Google ou l’Agent Development Kit (ADK).
Pour la production en entreprise, l’écosystème a rapidement évolué vers des intégrations WebRTC. Des plateformes comme LiveKit, Pipecat by Daily, Twilio et Voximplant offrent une infrastructure robuste pour gérer la gigue réseau, l’annulation d’écho et le routage audio temps réel directement vers l’API Gemini Live.
Créer un assistant vocal en temps réel avec l’API Gemini Live
Passons à la pratique. Nous allons construire un concierge de voyage IA.
Cet agent utilisera l’API Gemini Live pour converser avec les utilisateurs par la voix et, surtout, il aura accès à des fonctions Python personnalisées pour interroger en cours de conversation l’état des vols en temps réel.
Nous utiliserons le Google Agent Development Kit (ADK) et le puissant modèle gemini-3.1-flash-live-preview, optimisé à la fois pour les échanges texte standard et le streaming WebSocket en temps réel.
1. Configuration de l’environnement
Commencez par créer un environnement virtuel Python et installez le package ADK requis. Exécutez ces commandes dans votre terminal :
# Créer et activer un environnement virtuel
python3 -m venv .venv
source .venv/bin/activate
# Installer l'Agent Development Kit
pip install google-adkPropulsé par
Ensuite, configurez vos variables d’environnement pour que l’ADK puisse s’authentifier en toute sécurité avec votre projet Google Cloud :
export GOOGLE_CLOUD_PROJECT="your-project-id"
export GOOGLE_CLOUD_LOCATION="us-central1"Propulsé par
Si vous utilisez plutôt une clé API Gemini de Google AI Studio, créez un fichier .env à la racine :
GEMINI_API_KEY=your_google_ai_studio_api_keyPropulsé par
2. Initialiser l’agent Gemini Live
Créez un fichier nommé agent.py dans votre répertoire de projet. L’ADK est conçu pour détecter et exécuter automatiquement la variable root_agent. Dans ce code, nous allons définir une fonction Python personnalisée pour vérifier l’état des vols, puis l’ajouter directement à la boîte à outils de l’agent. Initialisez le répertoire de l’agent :
mkdir voice_assistant
touch voice_assistant/__init__.py
touch voice_assistant/agent.pyPropulsé par
Exposez le package de l’agent dans voice_assistant/__init__.py :
3. Définir l’agent et exposer des outils personnalisés
Ouvrez voice_assistant/agent.py et écrivez la configuration de l’agent de voyage. Dans le code ci-dessous, nous définissons une fonction Python standard check_flight_status.
Dans Google ADK, toute fonction Python avec des annotations de type et une docstring appropriées est automatiquement convertie en outil d’agent. Le LLM se sert de la description et des paramètres de la docstring pour déterminer quand et comment appeler la fonction.
Configuration du modèle
Exploiter Gemini 3.1 Flash Live Preview. Pour prendre en charge les deux modes d’interaction dans le serveur de développement ADK — chat texte standard (qui utilise les endpoints REST generateContent) et l’interface microphone WebSocket bidirectionnelle en temps réel — nous définissons explicitement le modèle sur gemini-3.1-flash-live-preview.
Contrairement aux anciens modèles uniquement streaming, qui renvoient une erreur 404 Not Found lorsqu’ils sont sollicités via des requêtes REST HTTP standard, gemini-3.1-flash-live-preview prend en charge nativement à la fois la génération de contenu REST et le streaming WebSocket avec état.
from google.adk.agents.llm_agent import Agent
from google.adk.tools import google_search
def check_flight_status(flight_no: str) -> str:
"""Check the real-time flight status (e.g. delays, gate info, cancellations).
Args:
flight_no: The flight number to look up (e.g., AA120, DL450, UA990).
"""
flight_no = flight_no.upper().strip()
if "AA120" in flight_no:
return "Flight AA120 to Paris is currently delayed by 45 minutes due to air traffic control. New departure time: 3:15 PM. Gate status: B22."
elif "DL450" in flight_no:
return "Flight DL450 to London is on time. Gate status: Boarding now at Gate C10."
elif "UA990" in flight_no:
return "Flight UA990 to Tokyo is cancelled due to adverse weather conditions at the destination. Passengers are advised to rebook at the counter."
else:
return f"Flight {flight_no} is currently scheduled on time. No delay reports found in the flight database."
# Define the root agent with search grounding and custom database flight checks
root_agent = Agent(
model='gemini-3.1-flash-live-preview',
name='root_agent',
description='A real-time AI Travel Concierge with flight tracking and search grounding.',
instruction=(
'You are an expert AI Travel Concierge. You assist users with real-time flight status checkups, '
'destination recommendations, and general travel planning. '
'Always answer professionally and conversationally. '
'Use the check_flight_status tool when a user asks about a specific flight status. '
'Use Google Search to look up weather, transit conditions, or travel advisories at destinations.'
),
tools=[google_search, check_flight_status],
)Propulsé par
4. Exécuter et tester l’UI de développement interactive
L’ADK inclut un serveur de développement et une interface Web intégrés. Vous pouvez ainsi tester votre agent en local sans écrire de code frontend. Démarrez le serveur web depuis votre espace de travail :
Vous devriez voir un message confirmant le démarrage du serveur :
Ouvrez http://127.0.0.1:8000 dans votre navigateur.
Sélectionnez votre agent dans la liste des applications.
Cliquez sur le bouton Microphone pour démarrer une session en direct.
Sélectionnez root_agent dans la liste des applications pour ouvrir l’interface de chat.
4. Parlez dans votre microphone : Pouvez-vous vérifier le statut du vol AA120 ? L’agent analysera votre demande, détectera qu’il a besoin d’informations de base de données, déclenchera la fonction Python personnalisée check_flight_status et affichera le résultat JSON de l’appel d’outil avant de vous répondre à l’oral.
5. Tester l’ancrage Google Search : Demandez ensuite au concierge la météo d’une destination : Quel temps fait-il à Londres en ce moment ? L’agent activera l’outil intégré google_search, explorera le web et synthétisera les conditions en direct dans sa réponse audio.
6. Tester la fonction Barge-in : Posez une question générale du type : Parlez-moi des meilleurs sites historiques à visiter à Rome. Quand l’agent commence à énumérer des lieux, coupez-le nettement : En fait, attendez ! Vérifiez plutôt le vol UA990 !. L’agent stoppera immédiatement son flux vocal, interrompra les détails sur Rome, exécutera l’outil de suivi des vols personnalisé et annoncera que le vol UA990 a été annulé. Cela illustre la faible latence et le duplex intégral de la connexion Live API.
Bonnes pratiques pour la production avec l’API Gemini Live
La création d’applications vocales temps réel impose des exigences spécifiques concernant l’architecture des instructions, la gestion d’état réseau, l’ingestion audio et la montée en charge des ressources. Voici des bonnes pratiques clés issues des recommandations officielles.
1. Concevoir des instructions système claires
Pour tirer le meilleur de Gemini Live, structurez vos instructions système (SI) en hiérarchie stricte : persona, règles de conversation et garde-fous.
Séparer les personas : limitez chaque rôle d’agent à une instruction système distincte, au lieu de surcharger un agent avec plusieurs personas.
Distinguer les flux de conversation : séparez clairement les éléments ponctuels (par ex. « demander le nom et le numéro de billet une seule fois ») des boucles conversationnelles ouvertes (par ex. « répondre aux recommandations de voyage aussi longtemps que souhaité »).
Rédiger les invocations d’outils en phrases : décrivez l’usage des outils séquentiellement. Exemple : « D’abord, demandez le numéro de billet à l’utilisateur. Puis invoquez look_up_ticket avec ce numéro. »
Imposer la cohérence linguistique : les modèles audio natifs peuvent dériver de langue si le contexte change. Si votre agent doit rester en anglais uniquement, imposez-le dans vos instructions : RESPOND IN English. YOU MUST RESPOND UNMISTAKABLY IN English.
2. Définitions d’outils précises et conditions d’invocation
Lors de l’exposition d’outils à la Live API :
Incluez toujours des annotations de type et des descriptions de paramètres détaillées.
Documentez explicitement les conditions d’invocation dans la description des métadonnées de l’outil (par ex. « N’invoquez cet outil qu’après confirmation par l’utilisateur de sa date de départ et de sa destination »). Cela évite au LLM de déclencher des fonctions trop tôt.
3. Gestion du contexte audio natif (compression)
Les tokens audio natifs s’accumulent rapidement, environ 25 tokens par seconde de conversation. Pour des sessions vocales longues, cela peut saturer la fenêtre de contexte et augmenter la latence.
Activez ContextWindowCompressionConfig dans vos paramètres de connexion pour supprimer l’historique ancien au-delà d’un seuil :
from google.genai import types
live_config = types.LiveConnectConfig(
context_window_compression=types.ContextWindowCompressionConfig(
trigger_tokens=100_000,
sliding_window=types.SlidingWindow(target_tokens=4_000),
),
)Propulsé par
Remarque : la compression du contexte entraîne la perte de l’historique ancien de la conversation.
4. Reprise de session transparente
Les connexions mobiles en temps réel sont sujettes aux pertes de paquets et aux déconnexions temporaires. Plutôt que de repartir de zéro, mettez en place une reprise de session transparente :
Configurez votre flux avec SessionResumptionConfig(transparent=True).
Écoutez les événements session_resumption_update du serveur et stockez le new_handle.
Maintenez un buffer local des messages sortants. En cas de coupure, interceptez l’APIError ou le signal GoAway, reconnectez-vous avec le handle sauvegardé et rejouez uniquement les messages client non accusés de réception (en utilisant le server-reported last_consumed_client_message_index pour purger le buffer).
5. Optimisation du streaming audio
Buffer côté client : n’accumulez pas de longs segments audio avant envoi. Diffusez en continu de petits blocs audio (entre 20 ms et 40 ms) pour minimiser la latence de bout en bout.
Rééchantillonnage du micro : assurez-vous que la capture audio côté client rééchantillonne les entrées (généralement 44,1 kHz ou 48 kHz) à 16 kHz PCM avant envoi sur le WebSocket.
Signaux VAD explicites : laissez le modèle gérer la détection d’activité vocale (VAD). Si votre frontend doit afficher des indicateurs instantanés (par ex. « l’IA écoute » vs « l’IA réfléchit »), activez explicit_vad_signal=True dans votre configuration pour recevoir les événements VAD start/stop directement dans le flux de messages serveur.
6. Sécurité (gestion des jetons)
Ne codez jamais en dur des clés maîtres : évitez d’exposer votre clé API AI Studio ou des identifiants de compte de service Google Cloud dans du code côté client (navigateurs ou mobiles).
Déployez un échange de jetons éphémères : construisez un endpoint d’authentification sur votre backend sécurisé. Quand un client veut démarrer une session vocale, le backend génère un jeton d’accès court et restreint (OAuth ou API, par ex. via Vertex AI IAM) et le transmet au client. Le client utilise ce justificatif temporaire pour ouvrir la connexion WebSocket directe.
Conclusion : l’horizon de l’IA conversationnelle
Le passage de LLM textuels et séquentiels à un streaming multimodal à faible latence marque un changement de paradigme dans la conception des interfaces homme-machine. En traitant nativement l’audio et la vidéo via des WebSockets avec état, l’API Gemini Live nous permet de créer des expériences agentiques moins statiques et plus fluides, proches d’une interaction humaine.
Tout au long de ce guide, nous avons exploré l’architecture interne de Gemini Live, examiné les modèles de tarification et construit un concierge de voyage IA pleinement fonctionnel grâce au Google Agent Development Kit (ADK). Nous avons vu comment l’ADK transforme des fonctions Python standard en outils d’agent actifs, donnant à notre assistant vocal accès à la fois à l’ancrage par recherche web et à des consultations de bases de données internes privées.
Que construire ensuite ?
Maintenant que vous maîtrisez les fondamentaux des agents vocaux temps réel, envisagez d’étendre votre concierge de voyage IA :
Exposer des flux vidéo en direct : ajoutez la prise en charge de la transmission d’images caméra pour permettre au concierge de « voir » des cartes, cartes d’embarquement ou bons de voyage physiques en temps réel.
Intégrer des outils transactionnels personnalisés : implémentez un outil book_flight ou reserve_hotel qui modifie un état réel, avec des périmètres d’authentification pour des confirmations utilisateur sécurisées.
Routage middleware de production : passez des tests locaux ADK à un framework basé sur WebRTC avec LiveKit ou Pipecat pour diffuser des appels vocaux de production directement depuis des apps web et mobiles.
Prêt à concevoir des workflows conversationnels avancés ? Découvrez le parcours de compétences AI Agent Fundamentals de DataCamp pour approfondir les architectures agentiques, l’usage d’outils et les déploiements IA générative.
Je rédige et crée du contenu sur Internet. Expert développeur Google pour Google Workspace, diplômé en informatique de la NMIMS et passionné par l'automatisation et l'intelligence artificielle générative.
L'essor du développement de l'intelligence artificielle (IA) a entraîné une augmentation notable de la demande en matière de calcul, d'où la nécessité de disposer de solutions matérielles robustes. Les unités de traitement graphique (GPU) et les unités de traitement tensoriel (TPU) sont devenues des technologies essentielles pour répondre à ces demandes.
Découvrez les principaux types d'agents d'intelligence artificielle, comment ils interagissent avec les environnements et comment ils sont utilisés dans les différents secteurs d'activité. Comprendre les agents réflexes simples, les agents basés sur un modèle, les agents basés sur un but, les agents basés sur l'utilité, les agents d'apprentissage, etc.
Apprenez à utiliser JSON en Python, notamment la sérialisation, la désérialisation, le formatage, l'optimisation des performances, la gestion des API, ainsi que les limites et les alternatives de JSON.
Si vous avez déjà tenté de créer un assistant vocal, vous savez à quel point le pipeline traditionnel est lourd. Vous enregistrez la voix de l’utilisateur, vous la transcrivez avec un modèle STT, vous envoyez ce texte à un LLM, vous attendez la réponse, puis vous la faites lire par un moteur TTS.
Au moment où l’utilisateur entend une réponse, plusieurs secondes de silence gênant se sont écoulées. On est plus proche d’un cycle lent de demande-réponse que d’une véritable conversation.
L’API Gemini Live change la donne en vous permettant de diffuser audio et vidéo en continu via une connexion WebSocket avec état. Comme le modèle traite et génère l’audio nativement, il peut réagir immédiatement, s’adapter aux nuances vocales naturelles et même gérer les interruptions (barge-in) en plein milieu d’une phrase.
Dans ce tutoriel, je vous montre comment créer un concierge de voyage IA en temps réel à l’aide du kit de développement d’agents Google (ADK), orienté code. Nous équiperons notre agent de Google Search pour consulter en direct la météo des destinations, le connecterons à une base de données de vols factice et lancerons une interface développeur locale pour tester le dialogue en temps réel et l’appel d’outils.
Si vous découvrez l’écosystème, je vous recommande de commencer par le cours Building AI Agents with Google ADK pour poser vos bases.
Ce que vous allez accomplir :
Prérequis :
Qu’est-ce que l’API Gemini Live ?
Au cœur, l’API Gemini Live est un outil développeur de Google qui permet de créer des interactions vocales et visuelles en temps réel avec les modèles Gemini. Plutôt que d’attendre des réponses textuelles à tour de rôle, elle rend possible une conversation continue et naturelle entre un utilisateur et un agent IA.
Techniquement, l’API Gemini Live est conçue pour le streaming bidirectionnel en temps réel. Contrairement aux API REST HTTP classiques, fondées sur des cycles requête-réponse sans état, la Live API s’appuie sur une connexion WebSocket (WSS) persistante avec état. Par ce canal ouvert, le client diffuse de l’audio brut, de la vidéo (transmise sous forme d’images à ~1 FPS) et du texte, tandis que le modèle renvoie immédiatement de l’audio natif et du texte.
Capacités clés de Gemini Live
Tarification de l’API Gemini Live
Comme le streaming temps réel implique une connexion continue en duplex intégral, le modèle de facturation diffère des API texte statiques. Google propose un palier gratuit généreux pour le prototypage dans Google AI Studio et un palier payant prêt pour la production sur Vertex AI.
Le modèle gemini-3.1-flash-live-preview est facturé au million de tokens ou converti
directement en métrique basée sur la durée pour l’audio et la vidéo :
Métrique
Palier gratuit (Google AI Studio)
Palier payant (Vertex AI)
Prix d’entrée (Texte)
Gratuit
$0.75 par 1 M de tokens
Prix d’entrée (Audio)
Gratuit
$3.00 par 1 M de tokens (ou $0.005 / minute)
Prix d’entrée (Image/Vidéo)
Gratuit
$1.00 par 1 M de tokens (ou $0.002 / minute)
Prix de sortie (Texte)
Gratuit
$4.50 par 1 M de tokens
Prix de sortie (Audio)
Gratuit
$12.00 par 1 M de tokens (ou $0.018 / minute)
Ancrage avec Google Search
Gratuit (limité par le taux)
Premiers 5 000 prompts/mois gratuits, puis $14 par 1 000 requêtes
Si vous prototypez, je vous recommande vivement de tester gratuitement dans Google AI Studio, qui offre une large tolérance sous réserve de limites de débit.
Quand vous serez prêt à monter en charge, migrez vers Vertex AI pour une mise en production en paiement à l’usage, avec un débit garanti et des SLA de niveau entreprise.
Comment accéder à l’API Gemini Live
En tant que développeur, vous avez plusieurs options d’architecture pour implémenter la Live API. Comme elle repose sur des WebSockets, le routage de la connexion a un impact sur la latence et la sécurité.
Client-vers-serveur vs serveur-vers-serveur
SDK et intégrations partenaires
Vous pouvez écrire du code WebSocket brut, mais le plus simple est d’utiliser le SDK GenAI de Google ou l’Agent Development Kit (ADK).
Pour la production en entreprise, l’écosystème a rapidement évolué vers des intégrations WebRTC. Des plateformes comme LiveKit, Pipecat by Daily, Twilio et Voximplant offrent une infrastructure robuste pour gérer la gigue réseau, l’annulation d’écho et le routage audio temps réel directement vers l’API Gemini Live.
Créer un assistant vocal en temps réel avec l’API Gemini Live
Passons à la pratique. Nous allons construire un concierge de voyage IA.
Cet agent utilisera l’API Gemini Live pour converser avec les utilisateurs par la voix et, surtout, il aura accès à des fonctions Python personnalisées pour interroger en cours de conversation l’état des vols en temps réel.
Nous utiliserons le Google Agent Development Kit (ADK) et le puissant modèle gemini-3.1-flash-live-preview, optimisé à la fois pour les échanges texte standard et le streaming WebSocket en temps réel.
1. Configuration de l’environnement
Commencez par créer un environnement virtuel Python et installez le package ADK requis. Exécutez ces commandes dans votre terminal :
Ensuite, configurez vos variables d’environnement pour que l’ADK puisse s’authentifier en toute sécurité avec votre projet Google Cloud :
Si vous utilisez plutôt une clé API Gemini de Google AI Studio, créez un fichier .env à la racine :
2. Initialiser l’agent Gemini Live
Créez un fichier nommé agent.py dans votre répertoire de projet. L’ADK est conçu pour détecter et exécuter automatiquement la variable root_agent. Dans ce code, nous allons définir une fonction Python personnalisée pour vérifier l’état des vols, puis l’ajouter directement à la boîte à outils de l’agent. Initialisez le répertoire de l’agent :
Exposez le package de l’agent dans voice_assistant/__init__.py :
3. Définir l’agent et exposer des outils personnalisés
Ouvrez
voice_assistant/agent.pyet écrivez la configuration de l’agent de voyage. Dans le code ci-dessous, nous définissons une fonction Python standardcheck_flight_status.Dans Google ADK, toute fonction Python avec des annotations de type et une docstring appropriées est automatiquement convertie en outil d’agent. Le LLM se sert de la description et des paramètres de la docstring pour déterminer quand et comment appeler la fonction.
Configuration du modèle
Exploiter Gemini 3.1 Flash Live Preview. Pour prendre en charge les deux modes d’interaction dans le serveur de développement ADK — chat texte standard (qui utilise les endpoints REST generateContent) et l’interface microphone WebSocket bidirectionnelle en temps réel — nous définissons explicitement le modèle sur gemini-3.1-flash-live-preview.
Contrairement aux anciens modèles uniquement streaming, qui renvoient une erreur 404 Not Found lorsqu’ils sont sollicités via des requêtes REST HTTP standard, gemini-3.1-flash-live-preview prend en charge nativement à la fois la génération de contenu REST et le streaming WebSocket avec état.
4. Exécuter et tester l’UI de développement interactive
L’ADK inclut un serveur de développement et une interface Web intégrés. Vous pouvez ainsi tester votre agent en local sans écrire de code frontend. Démarrez le serveur web depuis votre espace de travail :
Vous devriez voir un message confirmant le démarrage du serveur :
Sélectionnez root_agent dans la liste des applications pour ouvrir l’interface de chat.
4. Parlez dans votre microphone : Pouvez-vous vérifier le statut du vol AA120 ? L’agent analysera votre demande, détectera qu’il a besoin d’informations de base de données, déclenchera la fonction Python personnalisée check_flight_status et affichera le résultat JSON de l’appel d’outil avant de vous répondre à l’oral.
5. Tester l’ancrage Google Search : Demandez ensuite au concierge la météo d’une destination : Quel temps fait-il à Londres en ce moment ? L’agent activera l’outil intégré google_search, explorera le web et synthétisera les conditions en direct dans sa réponse audio.
6. Tester la fonction Barge-in : Posez une question générale du type : Parlez-moi des meilleurs sites historiques à visiter à Rome. Quand l’agent commence à énumérer des lieux, coupez-le nettement : En fait, attendez ! Vérifiez plutôt le vol UA990 !. L’agent stoppera immédiatement son flux vocal, interrompra les détails sur Rome, exécutera l’outil de suivi des vols personnalisé et annoncera que le vol UA990 a été annulé. Cela illustre la faible latence et le duplex intégral de la connexion Live API.
Bonnes pratiques pour la production avec l’API Gemini Live
La création d’applications vocales temps réel impose des exigences spécifiques concernant l’architecture des instructions, la gestion d’état réseau, l’ingestion audio et la montée en charge des ressources. Voici des bonnes pratiques clés issues des recommandations officielles.
1. Concevoir des instructions système claires
Pour tirer le meilleur de Gemini Live, structurez vos instructions système (SI) en hiérarchie stricte : persona, règles de conversation et garde-fous.
2. Définitions d’outils précises et conditions d’invocation
Lors de l’exposition d’outils à la Live API :
3. Gestion du contexte audio natif (compression)
Les tokens audio natifs s’accumulent rapidement, environ 25 tokens par seconde de conversation. Pour des sessions vocales longues, cela peut saturer la fenêtre de contexte et augmenter la latence.
ContextWindowCompressionConfigdans vos paramètres de connexion pour supprimer l’historique ancien au-delà d’un seuil :Remarque : la compression du contexte entraîne la perte de l’historique ancien de la conversation.
4. Reprise de session transparente
Les connexions mobiles en temps réel sont sujettes aux pertes de paquets et aux déconnexions temporaires. Plutôt que de repartir de zéro, mettez en place une reprise de session transparente :
SessionResumptionConfig(transparent=True).session_resumption_updatedu serveur et stockez le new_handle.server-reported last_consumed_client_message_indexpour purger le buffer).5. Optimisation du streaming audio
6. Sécurité (gestion des jetons)
Conclusion : l’horizon de l’IA conversationnelle
Le passage de LLM textuels et séquentiels à un streaming multimodal à faible latence marque un changement de paradigme dans la conception des interfaces homme-machine. En traitant nativement l’audio et la vidéo via des WebSockets avec état, l’API Gemini Live nous permet de créer des expériences agentiques moins statiques et plus fluides, proches d’une interaction humaine.
Tout au long de ce guide, nous avons exploré l’architecture interne de Gemini Live, examiné les modèles de tarification et construit un concierge de voyage IA pleinement fonctionnel grâce au Google Agent Development Kit (ADK). Nous avons vu comment l’ADK transforme des fonctions Python standard en outils d’agent actifs, donnant à notre assistant vocal accès à la fois à l’ancrage par recherche web et à des consultations de bases de données internes privées.
Que construire ensuite ?
Maintenant que vous maîtrisez les fondamentaux des agents vocaux temps réel, envisagez d’étendre votre concierge de voyage IA :
Prêt à concevoir des workflows conversationnels avancés ? Découvrez le parcours de compétences AI Agent Fundamentals de DataCamp pour approfondir les architectures agentiques, l’usage d’outils et les déploiements IA générative.