Créer une application de chat avec Conversational Analytics et Looker

1. Avant de commencer

Cet atelier de programmation vous guidera dans l'utilisation de l'API Conversational Analytics (API CA) avec Looker pour créer votre propre application de chat permettant d'interroger des données. Pour en tirer le meilleur parti, vous devez connaître BigQuery, Looker, les LLM et les agents, ainsi que Python.

Points abordés

Après avoir suivi cet atelier de programmation, vous aurez appris les points suivants :

  • Utiliser Conversational Analytics avec Looker
  • Configurer et utiliser l'application de démarrage rapide Python Conversational Analytics (et comprendre son fonctionnement)
  • Avantages de l'utilisation de Looker pour la modélisation sémantique avec Conversational Analytics

Prérequis

Voici les conditions à réunir pour effectuer cet atelier de programmation :

  • Une instance Looker avec le bloc Looker ASC Demographic Data installé
  • Accès aux API et aux développeurs à votre instance Looker
  • Un environnement local avec Python 3.11 ou version ultérieure, Git et gcloud installés.
  • Un projet cloud avec ces rôles IAM configurés pour votre compte utilisateur :
  • roles/bigquery.dataViewer Lecteur de données BigQuery
  • roles/bigquery.user Utilisateur BigQuery
  • roles/looker.instanceUser Utilisateur de l'instance Looker

2. Créer et tester votre application de chat avec BigQuery

Commençons par configurer et essayer l'application de démarrage rapide Conversational Analytics avec BigQuery comme source de données.

S'authentifier et activer les API Cloud

  1. Authentifiez-vous localement avec votre compte utilisateur :
gcloud auth login
  1. Activez les API du projet Cloud. Veuillez remplacer YOUR_PROJECT_ID par l'ID de votre projet Google Cloud :
gcloud services enable geminidataanalytics.googleapis.com bigquery.googleapis.com cloudaicompanion.googleapis.com --project=YOUR_PROJECT_ID
  1. Définissez les identifiants par défaut de l'application (ADC) et la facturation :
gcloud auth application-default login
gcloud auth application-default set-quota-project YOUR_PROJECT_ID

Configurer l'application de démarrage rapide

  1. Clonez le dépôt GitHub de démarrage rapide dans votre environnement local. Consultez l'exemple de commande ci-dessous :
git clone "https://github.com/looker-open-source/ca-api-quickstarts"
  1. Accédez au répertoire ca-api-quickstarts que vous avez cloné :
cd ca-api-quickstarts
  1. Créez un fichier secrets.toml dans le répertoire .streamlit. YOUR_LOOKER_CLIENT_ID et YOUR_LOOKER_CLIENT_SECRET doivent correspondre à votre ID client Looker et à votre code secret du client Looker à partir de votre instance Looker. Le contenu du fichier doit être le suivant :
[cloud]
project_id = "YOUR_PROJECT_ID"

[looker]
client_id = "YOUR_LOOKER_CLIENT_ID"
client_secret = "YOUR_LOOKER_CLIENT_SECRET"

Vous pouvez utiliser l'exemple de commande suivant pour créer le fichier. Veillez à remplacer les valeurs par l'ID de votre projet, l'ID client et le secret client :

cat > .streamlit/secrets.toml <<'EOF'
[cloud]
project_id = "YOUR_PROJECT_ID"

[looker]
client_id = "YOUR_LOOKER_CLIENT_ID"
client_secret = "YOUR_LOOKER_CLIENT_SECRET"
EOF
  1. Installez les exigences Python de l'application de démarrage rapide :
pip install -r requirements.txt
  1. Exécutez l'application de démarrage rapide :
streamlit run app.py
  1. Ouvrez https://localhost:8501 dans le navigateur de votre choix.

Tester l'application de démarrage rapide

Vous êtes maintenant sur la page des agents de l'application de démarrage rapide. Aucun agent de données n'est disponible.

  1. Créons maintenant un agent de données qui parle comme un pirate dans le formulaire Créer un agent :
  2. Définissez le champ Nom à afficher :
Pirate BQ Agent
  1. Définissez le champ Instructions système :
You are a pirate. Answer questions like a pirate
  1. Sélectionnez l'option BigQuery.
  2. Définissez le champ Projet :
bigquery-public-data
  1. Définissez le champ Ensemble de données :
google_trends
  1. Définissez le champ Table :
top_rising_terms
  1. Sélectionnez Créer un agent.
  1. Accédez maintenant à la page de chat via le panneau de navigation principal de gauche. Notre nouvel agent est disponible pour discuter. Commençons une discussion en ajoutant une requête/un message : "Bonjour, comment allez-vous ?"
  2. Maintenant, apprenons-en un peu plus sur cet ensemble de données : "De quoi parle cet ensemble de données ?"
  1. Posez une autre question, par exemple :
  2. "Quels sont les lieux [saisir l'État] présents dans l'ensemble de données ?"
  3. "Peux-tu me donner les données des deux dernières semaines pour [ville, État] ?"
  4. "Peux-tu créer une visualisation ?"

Vous venez d'avoir une conversation en plusieurs étapes avec votre agent de données et vos données BigQuery dans votre propre application de chat.

3. Modéliser et explorer vos données dans Looker

Nous allons maintenant modéliser et explorer les mêmes données BigQuery dans Looker.

Interroger les données de recensement BigQuery

Que se passe-t-il lorsque nous nous connectons à un ensemble de données relationnelles plus volumineux ? Nous allons d'abord créer un agent.

  1. Revenez au formulaire Créer un agent de la page des agents.
  2. Définissez le champ Nom à afficher :
BQ Census Agent
  1. Définissez le champ Instructions système :
You are really excited about census data, you love learning about the demographics in your area because you want to come up with marketing campaigns for your company
  1. Sélectionnez l'option BigQuery.
  2. Définissez le champ Projet :
bigquery-public-data
  1. Définissez le champ Ensemble de données :
census_bureau_acs
  1. Définissez le champ Table :
blockgroup_2018_5yr
  1. Sélectionnez Créer un agent.
  2. Posez les deux questions suivantes à l'agent que vous venez de créer :
  3. "Quelles données avez-vous ?"
  4. "Peux-tu me montrer un aperçu de mes données ?"

Utiliser Looker pour modéliser les données de recensement

Nous allons maintenant utiliser un modèle LookML pour définir les données de recensement BigQuery. Nous allons résoudre les problèmes que nous venons de voir.

  1. Se connecter à votre instance Looker
  2. Pour accéder à vos fichiers de blocs de données démographiques ACS, accédez à la navigation principale de gauche, sélectionnez Développer, puis marketplace_acs_census-v2.
  3. Examinons une vue Looker. Ouvrez les répertoires imported_project, acs_census-v2 et geography.
  4. Enfin, ouvrez le fichier cbsa.view.
  5. La ligne 17 indique que le code LookML crée une table dérivée. En d'autres termes, ce code crée une table combinée en associant deux ensembles de données BigQuery publics : l'un contenant des données de recensement et l'autre des données sur les limites géographiques. LookML nous permet de joindre plusieurs ensembles de données en créant une table dérivée persistante à interroger.

De plus, la jointure est définie dans un code versionnable (LookML) au lieu d'instructions système, ce qui rend le développement d'agents plus évolutif. Avec LookML, vous pouvez définir des hypothèses et des contraintes spécifiques autour de vos données pour aider vos utilisateurs à discuter avec vos données via un agent de données.

Explorer les données de recensement modélisées de Looker

Exécutons une requête rapide dans un Explore pour montrer que nous disposons d'une source de données centralisée à interroger.

  1. Dans le menu de navigation principal de gauche, sélectionnez Explorer, puis Bloc de données de recensement,puis État et comté.
  2. Sélectionnez la mesure Formation > Diplôme de premier cycle.
  3. Sélectionnez les dimensions suivantes :
  4. Zone géographique > Groupe de blocs
  5. Géographie > Comté > Nom du comté
  6. Zone géographique > État > État.
  7. Exécutez la requête (en haut à droite). Vous verrez alors que ces ID géographiques (appelés "groupe de blocs") sont désormais associés à des chaînes lisibles par l'utilisateur.
  8. Ouvrez l'onglet "Visualisation". Vous verrez alors ces données sur une carte.

4. Tester l'application de chat avec Looker

Créons maintenant un agent de données pour Looker.

  1. Accédez au formulaire Create Agent (Créer un agent) de la page de l'agent de votre application de démarrage rapide :
  2. Définissez le champ Nom à afficher :
Cartoon character data analyst
  1. Définissez le champ Instructions système :
You are [fill in your favorite cartoon character, Bugs Bunny is a favorite]. Answer questions like that cartoon character
  1. Sélectionnez l'option Looker.
  2. Définissez le champ Url sur l'URL de votre instance Looker : "https://...".
  3. Définissez le champ Modèle :
data_block_acs_bigquery
  1. Définissez le champ Explorer :
cbsa
  1. Sélectionnez Créer un agent.
  2. Accédez à la page de chat et sélectionnez l'agent que vous venez de créer.
  3. Commençons une discussion en ajoutant une requête/un message : "Bonjour, comment allez-vous ?"
  4. Demandons à l'agent de décrire l'ensemble de données : "Quelles données sont disponibles ?"
  5. Posons quelques questions supplémentaires :
  6. "Quel comté de l'État de New York a la plus grande population ?"
  7. "Qu'en est-il du nombre de diplômés du secondaire par habitant ?"
  8. "Peux-tu me donner la population par genre et par État ?"
  9. "J'aimerais voir un graphique à barres des 10 États les plus peuplés."

5. Que peut faire d'autre l'application de démarrage rapide ?

Vous avez désormais :

  • Configurer l'application de chat en local
  • Création d'un agent de données BigQuery et d'un agent de données Looker
  • Conversations avec vos agents de données
  • Vous avez découvert les avantages de la modélisation sémantique Looker comme contexte pour vos discussions.

Essayons les autres fonctionnalités de l'application de démarrage rapide :

  1. Rechargez la page Web de l'application de démarrage rapide et accédez à la page de chat.
  2. Vous pouvez consulter vos conversations précédentes avec tous les messages correspondants de vos agents BigQuery et Looker. L'interface utilisateur de l'application ne stocke pas les conversations ni les messages passés, mais les récupère à partir de l'API CA.
  1. Accédez à la page des agents et sélectionnez votre agent Looker dans la liste.
  2. Vous pouvez modifier les configurations de l'agent ou le supprimer si vous le souhaitez. Aucun agent n'est stocké dans l'interface utilisateur de l'application.

6. Défis facultatifs et exploration approfondie

Si vous le souhaitez, vous pouvez profiter de cette occasion pour vous familiariser avec Conversational Analytics et l'application de démarrage rapide. Vous pouvez également vous lancer le défi de modifier l'application de démarrage rapide. Vous pouvez essayer certaines des suggestions et des défis suivants, ou passer directement à la section finale.

Se familiariser avec l'API CA et l'application de démarrage rapide

Défis de modification de l'application de démarrage rapide

  • Connaissez-vous l'intégration Looker ? Si c'est le cas, essayez d'intégrer un tableau de bord Looker dans l'application de démarrage rapide. Envisagez d'utiliser le composant iframe de Streamlit.
  • Trouvez un ensemble de données public contenant des URL de vidéos et mettez à jour la logique de rendu du chat de l'application pour afficher une vidéo dans le chat.

7. Conclusion et points à retenir

Vous avez terminé ! Vous avez créé une application de chat, des agents de données et discuté avec vos données à l'aide de l'API Conversational Analytics. Passons en revue quelques fonctionnalités et concepts clés.

Fonctionnalités Conversational Analytics

Nous avons abordé de nombreuses fonctionnalités d'analyse conversationnelle, comme la possibilité de :

  • Créer, mettre à jour, lister, obtenir et supprimer des agents de données.
  • Indiquez aux agents de données d'utiliser BigQuery ou Looker comme source de données.
  • Créez, listez et obtenez des conversations et leurs messages respectifs.
  • Produire des spécifications de graphiques Vega pour une visualisation immersive dans les conversations.
  • Utiliser les messages précédents d'une conversation comme contexte utile pour les messages futurs.

Avantages de l'utilisation de Looker avec l'API CA

Looker fournit une modélisation sémantique centralisée, testable et contrôlable de vos données. Combiné à Conversational Analytics, Looker offre un moyen évolutif de fournir du contexte à vos agents de données.

Étape suivante