Grounding avec Google Search et fonctionnalités live
Demandez à Gemini « Qui a remporté le simple messieurs du dernier Open d'Australie ? » avec le grounding désactivé, et vous obtiendrez peut-être une réponse assurée sur un tournoi terminé avant la date de coupure de l'entraînement du modèle. Activez le grounding : Gemini lance une vraie recherche Google, lit des résultats frais et vous donne la réponse actuelle avec des liens cliquables pour vérifier. Cette leçon montre exactement comment cela fonctionne, et comment l'activer dans l'APIAPIApplication Programming Interface : une interface standardisée qui permet aux applications de communiquer et d'échanger des données sans connaître leur fonctionnement interne respectif.Voir la définition complète → Gemini et AI Studio.
Le problème que le grounding résout
Un modèle de base répond depuis ses paramètres. Cette connaissance est figée au moment de l'entraînement et n'a aucune notion d'« aujourd'hui ». Pour tout ce qui est sensible au temps (prix, scores, actualités, changements de direction, versions de produits) le modèle est soit périmé, soit en train de deviner.
Le grounding connecte le modèle à une source de vérité externe au moment de l'inférenceinférenceLe moment où un modèle d'IA entraîné se met au travail : il reçoit une donnée nouvelle et produit une réponse, une prédiction ou un contenu.Voir la définition complète → et le contraint à fonder sa réponse sur ce qu'il récupère. Avec le grounding via Google Search, cette source est Google Search en direct. Gemini décide quand une requête nécessite des faits frais, lance la recherche et conditionne sa réponse aux résultats.
Le gain, ce sont deux choses qu'un modèle brut ne peut pas offrir : la fraîcheur et les citations. L'API renvoie les résultats de recherche justificatifs et les passages de texte qu'ils étayent, ce qui vous permet de montrer aux utilisateurs d'où vient chaque affirmation.
Sans grounding vs avec grounding, côte à côte
Prompt : *« Quelle est la dernière version stable du SDK Python de l'API Gemini, et quand a-t-elle été publiée ? »*
Réponse sans grounding : un numéro de version qui sonne plausible, peut-être faux, sans source, sans date fiable.
Réponse avec grounding : la version indiquée par les résultats de recherche actuels, plus des groundingChunks pointant vers la documentation officielle et les notes de version. **Si la réponse est fausse, vous pouvez voir *pourquoi* en inspectant les sources au lieu de relancer le prompt à l'aveugle**.
C'est le basculement mental central : **avec le grounding, une réponse fausse devient une réponse *débogable***.
Activer le grounding dans l'API Gemini
Le grounding est un tool que vous attachez à une requête. Vous ne modifiez pas le prompt ; vous donnez au modèle le tool Google Search et vous le laissez décider quand l'appeler.
from google import genai
from google.genai import types
client = genai.Client() # lit GEMINI_API_KEY depuis l'environnement
response = client.models.generate_content(
model="gemini-2.5-flash",
contents="Who won the most recent F1 Grand Prix, and what was the date?",
config=types.GenerateContentConfig(
tools=[types.Tool(google_search=types.GoogleSearch())]
),
)
print(response.text)
# Inspecter ce sur quoi le modèle s'est réellement appuyé
metadata = response.candidates[0].grounding_metadata
for chunk in metadata.grounding_chunks:
print(chunk.web.title, "->", chunk.web.uri)Quelques points à noter :
- Vous passez
google_searchcomme tool, aux côtés des tools de function calling que vous utilisez déjà. Le modèle choisit de l'invoquer ou non à chaque requête. - La réponse contient un bloc
grounding_metadata. C'est là que se trouvent les citations, pas dans le texte. - Flash est un choix par défaut raisonnable ici : les requêtes avec grounding sont fréquentes et en fort volume, et Flash maintient latence et coût bas. Passez à Pro quand le raisonnement *sur* les faits récupérés est difficile.
Obtenez une clé et testez en quelques minutes sur aistudio.google.com. La référence complète du tool est dans la documentation du grounding Google Search.
Lire correctement les métadonnées de grounding
grounding_metadata vous donne trois structures utiles :
grounding_chunks: les sources (titre + URI). Ce sont vos citations.grounding_supports: associe des passages du texte de réponse aux chunks qui les étayent. C'est ainsi que vous construisez des notes de bas de page par phrase.web_search_queries: les requêtes réellement envoyées par Gemini à Search. Très utile pour déboguer quand une réponse paraît étrange ; vous voyez ce qu'il a cherché.
Si vous affichez des réponses avec grounding aux utilisateurs, les conditions de Google exigent que vous montriez les suggestions de recherche renvoyées dans la réponse (searchEntryPoint). Affichez-les. Ce n'est pas une décoration optionnelle.
entry = response.candidates[0].grounding_metadata.search_entry_point
if entry and entry.rendered_content:
html_to_show_in_ui = entry.rendered_contentLe grounding dans AI Studio (sans code)
Dans AI Studio, ouvrez un prompt de chat et activez Grounding with Google Search dans le panneau de tools à droite. Envoyez votre question sensible au temps et regardez la réponse revenir avec un bandeau de sources en dessous.
C'est la manière la plus rapide de *comparer* les comportements : lancez le même prompt avec l'option désactivée, puis activée. Le contraste rend la valeur évidente, et le bouton « Get code » exporte la requête exacte (y compris la configuration de tool ci-dessus) pour que vous la reprenniez directement dans votre application.
Grounding vs RAGRAGMéthode qui permet à un modèle d'IA de répondre à partir de vos propres documents, en récupérant les passages pertinents avant de générer une réponse.Voir la définition complète → : lequel utiliser et quand
Vous connaissez déjà le RAG sur le plan conceptuel. Le grounding avec Search ne le remplace pas. Choisissez selon l'endroit où se trouve la vérité :
- Votre vérité est privée (documents internes, catalogue produit, base de connaissances) : construisez un RAG sur vos propres données, ou utilisez les chemins de grounding sur vos données de l'API dans Vertex AI.
- Votre vérité est publique et actuelle (actualités, météo, scores, données de marché, « quelle est la dernière version de X ») : grounding avec Google Search.
Beaucoup d'assistants en production utilisent les deux : RAG pour la connaissance de l'entreprise, grounding Search pour le web ouvert. Ils se combinent proprement parce que les deux ne sont que des tools que le modèle peut appeler.
Fonctionnalités live : interaction temps réel et multimodale
Le grounding rend les réponses *fraîches*. **La Live API rend l'interaction *temps réel***. C'est une capacité différente, et les deux sont souvent confondues, donc soyons précis :
La Live API ouvre un flux persistant, bidirectionnel et à faible latence entre votre application et Gemini. Au lieu de « envoyer le prompt, attendre la réponse complète », vous streamez de l'audio (et éventuellement des images vidéo) *en entrée* et recevez de l'audio et du texte *en sortie* au fil de la génération. L'utilisateur peut interrompre en pleine phrase, et le modèle le gère. C'est ce qui alimente les conversations vocales naturelles, l'aide par partage d'écran en direct et le tutorat en temps réel.
Propriétés clés :
- Streaming dans les deux sens sur une session de type WebSocket, pas en requête/réponse.
- Audio natif en entrée et en sortie : vous n'avez pas à greffer un speech-to-text et un text-to-speech séparés. Le modèle entend et parle directement.
- Les interruptions et l'alternance des tours de parole sont gérées par la session.
- Les tools fonctionnent toujours, y compris le function calling et le grounding Search, *à l'intérieur* d'une session live. Un assistant vocal peut ancrer une réponse orale dans des résultats Search en direct.
Une session Live minimale
import asyncio
from google import genai
client = genai.Client()
MODEL = "gemini-2.5-flash-native-audio-preview-09-2025"
async def main():
config = {"response_modalities": ["AUDIO"]}
async with client.aio.live.connect(model=MODEL, config=config) as session:
await session.send_client_content(
turns={"parts": [{"text": "In one sentence, what's the weather typically like in Lisbon in May?"}]}
)
async for message in session.receive():
if message.data:
play_audio_chunk(message.data) # votre sortie audio
asyncio.run(main())Les noms exacts des modèles live/audio natif évoluent : vérifiez la documentation de la Live API pour connaître le modèle preview actuel avant de développer. La forme du code (connexion, envoi, itération asynchrone sur les messages streamés) est stable.
Quand le live compte
Utilisez la Live API quand l'*interaction* est le produit :
- Agents vocaux et assistants de type téléphonique.
- Support « montrez-moi ce que vous voyez », où l'utilisateur streame sa caméra ou son écran et Gemini réagit en temps réel.
- Coaching en direct, pratique des langues ou outils d'accessibilité où la latence tue l'expérience.
Si vous avez seulement besoin d'une réponse texte rapide, vous n'avez pas besoin de la Live API. Un simple generate_content (avec sortie en streaming si vous voulez les tokenstokensUn token est l'unité de base de texte que traitent les modèles de langage : le plus souvent un fragment de mot, un mot entier ou un signe de ponctuation, plutôt qu'un simple caractère.Voir la définition complète → au fil de l'eau) est plus simple et moins cher.
Vérification des acquis
1. Quel problème central le grounding avec Google Search résout-il pour un modèle de langage ?
2. La leçon décrit un « basculement mental central » lors de l'utilisation du grounding. Lequel ?
3. Selon la leçon, comment active-t-on le grounding dans une requête à l'API Gemini ?
4. Sélectionnez TOUS les bénéfices apportés par le grounding avec Google Search qu'un modèle brut, sans grounding, ne peut pas offrir.
Sélectionnez toutes les réponses correctes.
5. Sélectionnez TOUTES les situations où activer le grounding est clairement préférable à se fier au seul modèle de base.
Sélectionnez toutes les réponses correctes.
Assemblage : un assistant vocal avec grounding
Les deux fonctionnalités se combinent en quelque chose de réellement utile : un assistant temps réel qui parle, écoute et répond à partir de faits en direct. Vous ouvrez une session Live, activez le tool Search dans la configuration de session, et le modèle ancre automatiquement les réponses orales.
config = {
"response_modalities": ["AUDIO"],
"tools": [{"google_search": {}}],
}
# Dans la session live, une question orale comme
# "What did the markets do today?" déclenche désormais une vraie recherche,
# et la réponse orale est ancrée dans des résultats en direct.Cette unique ligne tools fait la différence entre un assistant qui invente avec assurance l'évolution des marchés du jour et un assistant qui vérifie vraiment. Même schémamaUtiliser un logiciel pour automatiser les tâches et campagnes marketing répétitives, afin de personnaliser à grande échelle sur des canaux comme l'email, le web et le social.Voir la définition complète → que pour l'API non live : le grounding est un tool, et le modèle décide quand l'utiliser.
Garde-fousGarde-fousRègles et contrôles qui maintiennent un système d'IA dans des limites sûres, légales et conformes à la marque, en bloquant les sorties et actions hors cadre.Voir la définition complète → pour la production
Quelques éléments qui séparent une démo d'un produit livrable :
- Affichez toujours les citations. Si vous masquez les sources, vous avez reconstruit le problème d'hallucinationhallucinationUne hallucination, c'est lorsqu'un modèle d'IA produit une réponse fluide et assurée mais factuellement fausse, inventée, ou non étayée par ses données sources.Voir la définition complète → avec des étapes supplémentaires. Faites apparaître
grounding_chunksdans l'interface. - Affichez les suggestions de recherche (
searchEntryPoint) lorsque les conditions de grounding de Google l'exigent. - Ne supposez pas que le grounding s'est déclenché. Le modèle peut répondre depuis ses paramètres s'il estime qu'aucune recherche n'est nécessaire. Vérifiez la présence de
grounding_metadataavant d'affirmer « ceci est vérifié ». - Choisissez le palier de façon délibérée. Flash pour les recherches avec grounding en fort volume, Pro quand le raisonnement sur les faits récupérés est la partie difficile.
- Pour une vérité à la fois privée et publique, prévoyez de faire tourner RAG et grounding Search ensemble plutôt que de forcer un seul tool à faire les deux jobs.
Où cela passe à l'échelle
Pour les déploiements en entreprise, le même concept de grounding existe dans Vertex AI, **avec le grounding sur Google Search *et* le grounding sur vos propres données d'entreprise, plus la gouvernance, la journalisation et les contrôles IAM dont une organisation régulée a besoin**. Si votre assistant passe du prototype à un système de production dans Google Cloud, c'est la voie à suivre : voir cloud.google.com/vertex-ai. La surface d'API est suffisamment proche pour que les prototypes construits dans AI Studio soient portés sans réécriture de votre logique centrale.
Points clés
- Le grounding est un tool, pas une astuce de prompt. Attachez
google_searchà votre requête ; le modèle décide quand chercher et renvoie les citations dansgrounding_metadata. Lisez et affichez ces sources. - Utilisez le grounding pour le web public et actuel ; utilisez le RAG pour vos données privées. Ils se combinent : les assistants en production font souvent tourner les deux.
- La Live API concerne l'interaction temps réel, pas la fraîcheur. Streamez audio/vidéo en entrée et en sortie sur une session persistante pour les agents vocaux et l'aide en direct ; les tools (y compris le grounding Search) y fonctionnent.
- Prototypez dans AI Studio, puis exportez. Activez/désactivez le grounding pour voir le contraste, cliquez sur « Get code » et reprenez la configuration de tool exacte dans votre application.
- Faites toujours apparaître les citations et les suggestions de recherche. Masquer les sources annule tout l'intérêt du grounding et peut violer les conditions d'utilisation.
À faire, tiré de cette leçon
Ces actions sont compilées dans le plan d'action du rôle.
- Utilisez les extensions via @-mention pour les données applicatives, le search grounding pour les faits publics du web
- Prototypez visuellement dans AI Studio, puis récupérez le code avec une clé en variable d'environnement