Présentation de Conversational Analytics dans BigQuery

1. Introduction

Obtenir des insights à partir de données nécessite souvent beaucoup de temps, d'efforts et une expertise approfondie en SQL. Dans cet atelier de programmation, vous allez découvrir le catalogue d'agents de BigQuery, une nouvelle plate-forme qui fournit des insights instantanés basés sur l'IA grâce à des agents de données conversationnels.

Vous irez au-delà de la simple conversion de texte en SQL en créant un agent de données organisé. Vous apprendrez à enrichir l'agent avec le contexte commercial, les instructions système et les requêtes validées pour obtenir des résultats très précis. Enfin, vous publierez cet agent pour qu'il puisse être utilisé par d'autres membres de votre organisation.

Prérequis

  • Connaissances de base de Google Cloud

Points abordés

  • Parcourir le catalogue d'agents BigQuery
  • Créer un agent personnalisé et définir des sources de connaissances
  • Utiliser Gemini pour générer des métadonnées sémantiques
  • Ajouter des instructions système et des requêtes validées pour guider l'agent
  • Publier et partager des agents

Prérequis

  • Un compte Google Cloud et un projet Google Cloud
  • Connaissances de base de BigQuery et de SQL
  • Un navigateur Web tel que Chrome

2. Préparation

Choisir un projet

  1. Connectez-vous à la console Google Cloud, puis créez un projet ou réutilisez un projet existant. (Si vous ne possédez pas encore de compte Gmail ou Google Workspace, vous devez en créer un.)

295004821bab6a87.png

37d264871000675d.png

96d86d3d5655cdbe.png

  • Le nom du projet est le nom à afficher pour les participants au projet. Il s'agit d'une chaîne de caractères non utilisée par les API Google. Vous pourrez toujours le modifier.
  • L'ID du projet est unique parmi tous les projets Google Cloud et non modifiable une fois défini. La console Cloud génère automatiquement une chaîne unique (en général, vous n'y accordez d'importance particulière). Dans la plupart des ateliers de programmation, vous devrez indiquer l'ID de votre projet (généralement identifié par PROJECT_ID). Si l'ID généré ne vous convient pas, vous pouvez en générer un autre de manière aléatoire. Vous pouvez également en spécifier un et voir s'il est disponible. Après cette étape, l'ID n'est plus modifiable et restera donc le même pour toute la durée du projet.
  • Pour information, il existe une troisième valeur (le numéro de projet) que certaines API utilisent. Pour en savoir plus sur ces trois valeurs, consultez la documentation.
  1. Vous devez ensuite activer la facturation dans la console Cloud pour utiliser les ressources/API Cloud. L'exécution de cet atelier de programmation est très peu coûteuse, voire sans frais. Pour désactiver les ressources et éviter ainsi que des frais ne vous soient facturés après ce tutoriel, vous pouvez supprimer le projet ou les ressources que vous avez créées. Les nouveaux utilisateurs de Google Cloud peuvent participer au programme d'essai sans frais pour bénéficier d'un crédit de 300 $.

3. Avant de commencer

Accorder à votre compte les rôles requis

Accédez à la page IAM du projet et accordez-vous le rôle Propriétaire de l'agent des données des analyses de données Gemini :

1d3874c1bc28d81d.png

Ce rôle vous permet de créer, modifier, partager et supprimer tous les agents de données du projet.

Activer les API requises

Utilisez le menu de navigation de la barre latérale ou le menu de recherche en haut de la page pour accéder à BigQuery > Agents.

Cliquez sur Activer l'API Data Analytics avec Gemini :

4bc781d1a83ba367.png

Activez l'API Gemini dans BigQuery et l'API Gemini pour Google Cloud :

71678b9b8900a7a6.png

La nouvelle page de l'agent doit s'afficher :

23935c00cd4b23c1.png

4. Créer un agent

Créons votre premier agent de données à l'aide de l'ensemble de données public international Google Trends. Cet ensemble de données est utile pour poser des questions sur les termes de recherche les plus populaires à l'échelle internationale et pour comparer ces intérêts à l'historique.

Commençons par donner un nom et une brève description à votre agent. Cette description est uniquement utilisée par les autres utilisateurs pour comprendre l'objectif de l'agent.

Agent Name (Nom de l'agent)

Google Trends Agent

Description de l'agent

Data agent for the Google Trends International Top Terms public dataset

Sources de connaissances

Ajoutez maintenant les sources de connaissances. Une source de connaissances est une table, une vue ou une UDF BigQuery que l'agent peut utiliser pour répondre aux questions.

Pour cette démonstration, ajoutez un seul tableau pour plus de simplicité. Toutefois, n'oubliez pas que vous pouvez ajouter jusqu'à 50 sources de connaissances par agent pour gérer des scénarios de données plus complexes.

Saisissez le tableau suivant dans le champ de recherche, cochez la case, puis cliquez sur Ajouter :

bigquery-public-data.google_trends.international_top_terms

8b84bd4c4227637d.png

Contexte structuré

Pour améliorer la précision de l'agent de données, ajoutez du contexte structuré à la table et aux colonnes. Cliquez sur Customise :

f802527c7d72ae63.png

Gemini génère automatiquement des suggestions de descriptions. Cliquez sur Accepter à côté de la description de la table :

cc02e10c0c74bf4b.png

Pour appliquer des descriptions à toutes les colonnes, cochez Sélectionner toutes les lignes, puis cliquez sur Accepter les suggestions :

f811458ff0240c.png

Cliquez sur Mettre à jour en bas de la page pour enregistrer les modifications et revenir à l'éditeur d'agent.

Instructions

La boîte de dialogue des instructions de l'agent vous permet de fournir à l'agent des conseils supplémentaires pour qu'il puisse interpréter et interroger les sources de données. Par exemple :

  • Synonymes : termes alternatifs pour les champs clés.
  • Champs clés : les champs les plus importants pour l'analyse.
  • Champs exclus : champs que l'agent de données doit éviter.
  • Filtrage et regroupement : champs que l'agent doit utiliser pour filtrer et regrouper les données.
  • Relations de jointure : façon dont deux tables ou plus sont combinées en fonction de champs communs.

Copiez et collez les instructions suivantes :

### System Instruction

* You are an expert data analyst for the Google Trends International public dataset.
* Always filter on yesterday's refresh_date = DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY).
* If yesterday returns no data, filter on 2 days ago's refresh_date = DATE_SUB(CURRENT_DATE(), INTERVAL 2 DAY).
* Default to country-level results (one row per term).
* "Top" queries must deduplicate snapshot rows.
* Only include week or score when the user explicitly asks for trends over time.
* This is an international dataset and does not include any data for the United States.

### Additional Descriptions

#### 1. Core model:

* refresh_date selects the daily Top-25 term set.
* week + score are historical weekly values attached to those terms.
* Filtering week does not change which terms appear.

#### 2. Deduplication rule (critical):

* Snapshot rows repeat across weeks and regions.
* For "top" queries, always GROUP BY term (country-level) and compute rank as MIN(rank).

#### 3. Defaults:

* Country-level results only.
* Use region_code only if the user explicitly asks for regions.
* Limit results unless the user asks otherwise.

#### 4. Time series usage:

* Only include week or score when the user asks for trends over time, historical context, or week-over-week score changes.

#### 5. Field guidance:

* Prefer country_code or region_code for filters.
* country_name / region_name are for display only.
* score is normalized; compare trends within a term, not across terms.

Requêtes validées

Les requêtes validées, anciennement appelées requêtes en or, servent de référence à l'agent pour améliorer la précision des réponses. Elles définissent la structure de la réponse d'un agent et l'aident à comprendre la logique métier utilisée par votre organisation.

Ajoutons deux exemples pour votre agent. Cliquez sur Ajouter une requête, puis copiez et collez la question et la requête suivantes :

Question 1 :

What are the top search terms in the UK right now?

Requête 1 :

SELECT term, MIN(rank) AS rank
FROM `bigquery-public-data.google_trends.international_top_terms`
WHERE refresh_date = DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY)
  AND country_code = 'GB'
GROUP BY term
ORDER BY rank
LIMIT 25;

Avant d'enregistrer cette requête, exécutons-la pour nous assurer qu'elle est valide.

e3fb570a4109e93c.png

Cela me semble bien ! Cliquez sur Ajouter pour enregistrer la requête validée.

Ajoutons un exemple pour un cas d'utilisation plus complexe. Cliquez sur Gérer les requêtes et ajoutez :

Question 2 :

Show the last 12 weeks of interest for the current top 5 terms in Auckland.

Réponse 2 :

WITH top5 AS (
  SELECT term, MIN(rank) AS rank
  FROM `bigquery-public-data.google_trends.international_top_terms`
  WHERE refresh_date = DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY)
    AND country_code = 'NZ'
    AND region_code = 'NZ-AUK'
  GROUP BY 1
  ORDER BY 2
  LIMIT 5
),
series AS (
  SELECT term, week, score,
    ROW_NUMBER() OVER (PARTITION BY term ORDER BY week DESC) AS rn
  FROM `bigquery-public-data.google_trends.international_top_terms`
  WHERE refresh_date = DATE_SUB(CURRENT_DATE(), INTERVAL 1 DAY)
    AND country_code = 'NZ'
    AND region_code = 'NZ-AUK'
    AND term IN (SELECT term FROM top5)
)
SELECT week, term, score
FROM series
WHERE rn <= 12
ORDER BY 1 DESC, 3

Avant de passer à la section suivante, examinons les suggestions générées par Gemini :

b52489d21f503a76.png

Vous trouverez ici des requêtes validées suggérées. Lorsque vous créerez un nouvel agent, ce sera un excellent point de départ. Veillez simplement à valider toute requête que vous ajoutez.

Glossaire

Ajoutons un terme au glossaire. Si votre entreprise utilise Dataplex, ces termes sont importés directement depuis le glossaire d'entreprise dans Dataplex Universal Catalog.

Cliquez sur Ajouter un terme, puis copiez / collez l'exemple suivant :

Durée de validité :

refresh_date

Définition :

Snapshot date that selects the daily Top 25 term set. All rows for that date belong to the same "what's trending now" snapshot. Attach Historical week and score values after this selection.

Synonymes :

today, latest, current, now, recent

Cliquez ensuite sur "Ajouter", puis sur "Enregistrer".

33b4a74fcde504d5.png

Paramètres de l'agent

Dans la section Paramètres, vous pouvez configurer les libellés et le nombre maximal d'octets facturés.

Libellés

Les libellés sont des paires clé/valeur utilisées pour organiser les ressources Google Cloud en groupes logiques. Pour que cet atelier reste concentré, laissez les libellés vides.

Nombre maximal d'octets facturés

Pour éviter de générer accidentellement des requêtes coûteuses, définissons une limite pour le nombre maximal d'octets facturés par requête. Si la requête de l'agent traite des octets au-delà de cette limite, elle échoue sans entraîner de frais. Saisissez la valeur suivante :

10000000000

10 000 000 000 octets correspondent à environ 9,3 Go. Si vous ne spécifiez pas de valeur, le nombre maximal d'octets facturés est défini par défaut sur le quota d'utilisation quotidienne des requêtes du projet.

5. Enregistrer et partager votre agent

Aperçu

C'est bon ! Testons votre agent avant de continuer. Sur la droite de l'écran, vous pouvez tester l'agent de manière dynamique tout en modifiant la configuration. L'aperçu utilise automatiquement les nouvelles métadonnées que vous fournissez, sans enregistrer ni publier les modifications.

Demandons-lui à quelles données il a accès. N'hésitez pas à poser quelques questions avec vos propres mots :

b2679cc7c6c926b2.png

Enregistrer

Après avoir testé quelques requêtes, cliquez sur Enregistrer, puis sur Publier l'agent :

56a45347d496dd42.png

La publication de l'agent le rendra disponible dans BigQuery Studio, l'API Conversational Analytics et Looker Studio Pro (sous réserve de licence) :

a4fbeb3011d409f5.png

La prise en charge d'autres surfaces et intégrations est prévue dans les prochaines versions.

Partager

Un message de confirmation indiquant que l'agent a été publié doit s'afficher. Vous pouvez maintenant partager cet agent avec d'autres utilisateurs.

bdd4ee4be02c26d8.png

Lorsque vous partagez un agent avec d'autres utilisateurs, vous contrôlez leur niveau d'accès en leur attribuant un rôle spécifique. Ces rôles déterminent si un collaborateur peut simplement consulter votre agent ou s'il peut modifier et gérer sa configuration.

Il est important de noter que ces rôles peuvent être appliqués à deux niveaux différents :

  • Au niveau du projet : accorder un rôle au niveau du projet permet à l'utilisateur de disposer de ces autorisations pour tous les agents de ce projet Google Cloud.
  • Niveau de l'agent : pour un contrôle plus précis, vous pouvez accorder des rôles pour un agent spécifique. Cela peut être utile lorsque vous souhaitez qu'un utilisateur ait accès à un agent de données spécifique sans voir les autres agents du projet.

Voici les rôles prédéfinis pour Conversational Analytics :

  1. Propriétaire d'agent des données des analyses de données Gemini (roles/geminidataanalytics.dataAgentOwner)  créer, modifier, partager et supprimer tous les agents de données
  2. Créateur d'agent des données des analyses de données Gemini (roles/geminidataanalytics.dataAgentCreator) : créez, modifiez, partagez et supprimez vos propres agents de données.
  3. Éditeur d'agent de données Gemini Data Analytics (roles/geminidataanalytics.dataAgentEditor) : accès par chat et en modification aux agents de données
  4. Utilisateur d'agent de données des analyses de données (roles/geminidataanalytics.dataAgentUser) : accès en lecture et à la discussion avec les agents de données
  5. Lecteur d'agent des données des analyses de données Gemini (roles/geminidataanalytics.dataAgentViewer) : accès en lecture seule aux agents de données

6. Créer une conversation avec un agent

Quittons l'onglet Partager et créons une conversation :

d7a824ed0aaeaf12.png

Lorsque vous cliquez sur Créer une conversation, une nouvelle conversation sans titre est générée.

Demandons quels sont les termes tendance en Angleterre (n'hésitez pas à remplacer ce pays par celui de votre choix) :

Based on the top 10 terms in England, how did they trend for the past 3 months?

Décompresser le flux de réponse

L'agent de données suit généralement le même flux de réponse lorsqu'il répond à des questions :

  1. Raisonnement : l'agent "réfléchit" d'abord à la requête. Développez le bouton Afficher le raisonnement pour afficher des insights détaillés sur le processus de prise de décision de l'agent.
  2. Résumé : l'agent génère un résumé général de la requête, du rapport et de la visualisation.
  3. Code SQL généré : développez la section Voici la requête… pour inspecter le code SQL. Cliquez sur Ouvrir dans l'éditeur pour affiner manuellement la requête dans BigQuery Studio.
  4. Résultats des données : l'agent présente les résultats de la requête dans un tableau clair.
  5. Visualisation : un graphique s'affiche à côté d'une brève description. L'agent déduit automatiquement le type de visualisation le mieux adapté à vos données (par exemple, un graphique linéaire multisérie).
  6. Insights sur les données : l'agent résume les principales tendances et les principaux points à retenir des résultats.
  7. Questions complémentaires : enfin, l'agent suggère des questions complémentaires pertinentes pour vous aider à poursuivre votre analyse.

ee07f83cdbd20de1.png

Assistance BigQuery ML

Demandons à l'agent de données s'il peut effectuer des prévisions en fonction de ces résultats. Il utilise les fonctions BigQuery ML pour prédire les points futurs.

Saisissez la requête suivante (en veillant à remplacer "plateau de Monopoly" par un terme pertinent pour votre requête) :

Can you predict and visualize how monopoly board will trend in the next 4 weeks?

Vous pouvez voir que AI_FORECAST a été utilisé pour prévoir une série temporelle. Rien de surprenant, même s'il est intéressant de noter un pic important en août 2021, qui coïncide avec l'ouverture de l'attraction Monopoly Lifesized à Londres.

441a92d19f7d15e0.png

7. Explorer le catalogue d'agents

Avant de conclure, examinons le catalogue d'agents. Cliquez sur Catalogue d'agents en haut de la fenêtre :

59acded82548bd.png

Cette page vous permet de gérer les agents de données de manière centralisée. Elle est divisée en plusieurs sections :

  • Mes agents : vos agents actuellement publiés.
  • Mes brouillons d'agents : configurations que vous avez enregistrées, mais pas encore publiées.
  • Partagés par d'autres membres de votre organisation : agents créés par des collègues auxquels vous êtes autorisé à accéder.
  • Exemples d'agents par Google : exemples préconfigurés pour vous aider à vous lancer.

Pour chaque agent que vous gérez, vous pouvez modifier les configurations, dupliquer les agents et gérer les autorisations de partage.

8. Conclusion

Félicitations, vous avez créé un agent de données Conversational Analytics. Consultez les documents de référence pour en savoir plus.

Documentation de référence