arrow_back

Analyser des avis clients avec Gemini à l'aide de notebooks Python

Testez vos connaissances et partagez-les avec notre communauté
done
Accédez à plus de 700 ateliers pratiques, badges de compétence et cours

Analyser des avis clients avec Gemini à l'aide de notebooks Python

Atelier 1 heure 30 minutes universal_currency_alt 5 crédits show_chart Intermédiaire
info Cet atelier peut intégrer des outils d'IA pour vous accompagner dans votre apprentissage.
Testez vos connaissances et partagez-les avec notre communauté
done
Accédez à plus de 700 ateliers pratiques, badges de compétence et cours

GSP1249

Google Cloud – Ateliers adaptés au rythme de chacun

Présentation

Dans cet atelier, vous allez apprendre à extraire des mots clés et à évaluer les sentiments des clients dans les avis clients en utilisant BigQuery Machine Learning avec des modèles distants (Gemini Pro).

BigQuery est une plate-forme d'analyse de données entièrement gérée et compatible avec l'IA, conçue pour être multimoteur, multiformat et multicloud. Elle vous aide à maximiser la valeur de vos données. BigQuery Machine Learning, l'une de ses fonctionnalités essentielles, vous permet de créer et d'exécuter des modèles de machine learning (ML) à l'aide de requêtes SQL ou avec des notebooks Colab Enterprise.

Gemini est une famille de modèles d'IA générative développés par Google DeepMind, et conçus pour les cas d'utilisation multimodaux. L'API Gemini vous donne accès aux modèles Gemini Pro, Gemini Pro Vision et Gemini Flash.

À la fin de cet atelier, vous créerez une application de service client basée sur Python dans un notebook Colab Enterprise au sein de BigQuery, afin d'utiliser le modèle Gemini Flash pour répondre aux avis clients audio.

Objectifs

Dans cet atelier, vous allez apprendre à :

  • créer un notebook Python dans BigQuery à l'aide de Colab Enterprise ;
  • créer une connexion à une ressource cloud dans BigQuery ;
  • créer l'ensemble de données et les tables dans BigQuery ;
  • créer les modèles distants Gemini dans BigQuery ;
  • demander à Gemini d'analyser les mots clés et les sentiments (positifs ou négatifs) des avis clients textuels ;
  • générer un rapport avec le nombre d'avis positifs et négatifs ;
  • répondre aux avis clients à grande échelle ;
  • créer une application pour les conseillers clientèle afin qu'ils puissent répondre aux avis clients audio.

Préparation

Avant de cliquer sur le bouton "Démarrer l'atelier"

Lisez ces instructions. Les ateliers sont minutés, et vous ne pouvez pas les mettre en pause. Le minuteur, qui démarre lorsque vous cliquez sur Démarrer l'atelier, indique combien de temps les ressources Google Cloud resteront accessibles.

Cet atelier pratique vous permet de suivre vous-même les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Nous vous fournissons des identifiants temporaires pour vous connecter à Google Cloud le temps de l'atelier.

Pour réaliser cet atelier :

  • vous devez avoir accès à un navigateur Internet standard (nous vous recommandons d'utiliser Chrome) ;
Remarque : Ouvrez une fenêtre de navigateur en mode incognito/navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le temporaire étudiant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.
  • vous disposez d'un temps limité ; une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Remarque : Si vous possédez déjà votre propre compte ou projet Google Cloud, veillez à ne pas l'utiliser pour réaliser cet atelier afin d'éviter que des frais supplémentaires ne vous soient facturés.

Démarrer l'atelier et se connecter à la console Google Cloud

  1. Cliquez sur le bouton Démarrer l'atelier. Si l'atelier est payant, un pop-up s'affiche pour vous permettre de sélectionner un mode de paiement. Sur la gauche, vous trouverez le panneau Détails concernant l'atelier, qui contient les éléments suivants :

    • Le bouton Ouvrir la console Google Cloud
    • Le temps restant
    • Les identifiants temporaires que vous devez utiliser pour cet atelier
    • Des informations complémentaires vous permettant d'effectuer l'atelier
  2. Cliquez sur Ouvrir la console Google Cloud (ou effectuez un clic droit et sélectionnez Ouvrir le lien dans la fenêtre de navigation privée si vous utilisez le navigateur Chrome).

    L'atelier lance les ressources, puis ouvre la page Se connecter dans un nouvel onglet.

    Conseil : Réorganisez les onglets dans des fenêtres distinctes, placées côte à côte.

    Remarque : Si la boîte de dialogue Sélectionner un compte s'affiche, cliquez sur Utiliser un autre compte.
  3. Si nécessaire, copiez le nom d'utilisateur ci-dessous et collez-le dans la boîte de dialogue Se connecter.

    {{{user_0.username | "Username"}}}

    Vous trouverez également le nom d'utilisateur dans le panneau Détails concernant l'atelier.

  4. Cliquez sur Suivant.

  5. Copiez le mot de passe ci-dessous et collez-le dans la boîte de dialogue Bienvenue.

    {{{user_0.password | "Password"}}}

    Vous trouverez également le mot de passe dans le panneau Détails concernant l'atelier.

  6. Cliquez sur Suivant.

    Important : Vous devez utiliser les identifiants fournis pour l'atelier. Ne saisissez pas ceux de votre compte Google Cloud. Remarque : Si vous utilisez votre propre compte Google Cloud pour cet atelier, des frais supplémentaires peuvent vous être facturés.
  7. Accédez aux pages suivantes :

    • Acceptez les conditions d'utilisation.
    • N'ajoutez pas d'options de récupération ni d'authentification à deux facteurs (ce compte est temporaire).
    • Ne vous inscrivez pas à des essais gratuits.

Après quelques instants, la console Cloud s'ouvre dans cet onglet.

Remarque : Pour afficher un menu contenant la liste des produits et services Google Cloud, cliquez sur le menu de navigation en haut à gauche. Icône du menu de navigation

Tâche 1 : Créer un notebook Python dans BigQuery et le connecter à l'environnement d'exécution

Dans cette tâche, vous allez créer un notebook Python dans BigQuery et le connecter à l'environnement d'exécution.

Créer le notebook Python dans BigQuery

  1. Dans la console Google Cloud, accédez au menu de navigation, puis cliquez sur BigQuery.

  2. Cliquez sur OK dans le pop-up de bienvenue.

  3. Cliquez sur NOTEBOOK PYTHON.

  4. Sélectionnez pour la région.

  5. Cliquez sur SÉLECTIONNER.

    Vous pouvez remarquer que le notebook Python est ajouté à la section des notebooks de l'explorateur sous votre projet.

  6. Supprimez toutes les cellules présentes dans le notebook en cliquant sur l'icône Corbeille qui s'affiche lorsque vous pointez sur chacune des cellules.

Vous avez terminé cette étape lorsque le notebook est vide. Vous pouvez alors passer à l'étape suivante.

Se connecter à l'environnement d'exécution

  1. Cliquez sur Se connecter.

  2. Cliquez sur l'ID de participant Qwiklabs.

    Veuillez patienter. La connexion à l'environnement d'exécution peut prendre jusqu'à trois minutes.

    À un moment donné, vous verrez que l'état de connexion passe à "Connecté" en bas de la fenêtre du navigateur.

Cliquez sur Vérifier ma progression pour valider l'objectif. Créer un notebook Python dans BigQuery et le connecter à l'environnement d'exécution

Tâche 2 : Créer la connexion à une ressource cloud et attribuer un rôle IAM

Créer la connexion à une ressource cloud dans BigQuery

Dans cette tâche, vous allez créer une connexion à une ressource cloud dans BigQuery pour pouvoir travailler avec les modèles Gemini Pro et Gemini Flash. Vous allez également accorder des autorisations IAM au compte de service de la connexion à la ressource cloud en lui attribuant un rôle, afin de lui permettre d'accéder aux services Vertex AI.

Vous utiliserez le SDK Python et la Google Cloud CLI pour créer la connexion à la ressource. Toutefois, vous devez d'abord importer les bibliothèques Python, ainsi que définir les variables "project_id" et "region".

  1. Créez une nouvelle cellule de code avec le code ci-dessous :

    # Import Python libraries import vertexai from vertexai.generative_models import GenerativeModel, Part from google.cloud import bigquery from google.cloud import storage import json import io import matplotlib.pyplot as plt from IPython.display import HTML, display from IPython.display import Audio from pprint import pprint

    Ce code importera les bibliothèques Python.

  2. Exécutez cette cellule. Les bibliothèques sont désormais chargées et prêtes à être utilisées.

  3. Créez une nouvelle cellule de code avec le code ci-dessous :

    # Set Python variables for project_id and region project_id = "{{{project_0.project_id|Project ID}}}" region = " {{{ project_0.default_region | "REGION" }}}" Remarque : "project_id" et "region" sont enregistrés ici en tant que variables Python, et non SQL. Par conséquent, vous ne pouvez y faire référence dans les cellules qu'en utilisant du code Python, pas du code SQL.
  4. Exécutez cette cellule. Les variables pour "project_id" et "region" sont définies.

  5. Créez une nouvelle cellule de code avec le code ci-dessous :

    # Create the resource connection !bq mk --connection \ --connection_type=CLOUD_RESOURCE \ --location=US \ gemini_conn

    Ce code utilisera la commande bq mk --connection de la Google Cloud CLI pour créer la connexion à la ressource.

  6. Exécutez cette cellule. La connexion à la ressource est maintenant créée.

  7. Cliquez sur le bouton Afficher les actions à côté de l'ID de votre projet dans l'explorateur.

  8. Cliquez sur Actualiser le contenu.

  9. Développez les connexions externes. Vous pouvez constater que us.gemini_conn est maintenant listé comme connexion externe.

  10. Cliquez sur us.gemini_conn.

  11. Copiez l'ID de compte de service indiqué dans le volet "Informations de connexion" dans un fichier texte. Vous en aurez besoin à l'étape suivante.

Attribuer le rôle d'utilisateur Vertex AI au compte de service de la connexion

  1. Dans le menu de navigation de la console, cliquez sur IAM et administration.

  2. Cliquez sur Accorder l'accès.

  3. Dans le champ Nouveaux comptes principaux, saisissez l'ID de compte de service que vous avez copié précédemment.

  4. Dans le champ "Sélectionner un rôle", choisissez Vertex AI, puis le rôle Utilisateur Vertex AI.

  5. Cliquez sur Enregistrer.

    Le compte de service inclut désormais le rôle d'utilisateur Vertex AI.

Cliquez sur Vérifier ma progression pour valider l'objectif. Créer la connexion à une ressource cloud et attribuer un rôle IAM

Tâche 3 : Examiner les fichiers audio et l'ensemble de données, et attribuer un rôle IAM au compte de service

Dans cette tâche, vous allez examiner l'ensemble de données et les fichiers audio. Vous accorderez ensuite des autorisations IAM au compte de service de la connexion à la ressource cloud.

Examiner les fichiers audio, les fichiers image et l'ensemble de données d'avis clients sur Cloud Storage

Avant de commencer cette tâche visant à accorder des autorisations au compte de service de la connexion à la ressource, examinez l'ensemble de données et les fichiers image.

  1. Dans la console Google Cloud, ouvrez le menu de navigation (Icône du menu de navigation), puis sélectionnez Cloud Storage.

  2. Cliquez sur le bucket -bucket.

  3. Une fois dans le bucket, ouvrez le dossier gsp1249. Celui-ci contient cinq éléments :

    • Le dossier audio contient tous les fichiers audio que vous allez analyser. Vous pouvez y accéder et examiner les fichiers audio.
    • Le fichier customer_reviews.csv est l'ensemble de données qui contient les avis clients textuels.
    • Le dossier images contient un fichier image que vous allez utiliser dans la suite de cet atelier. Vous pouvez accéder à ce dossier et voir le fichier image qu'il contient.
    • notebook.ipynb est une copie du notebook que vous créez dans cet atelier. Vous pouvez l'examiner au besoin.
    Remarque : vous pouvez utiliser l'URL authentifiée pour télécharger et examiner chaque élément.

Attribuer le rôle IAM d'administrateur des objets Storage au compte de service de la connexion

En attribuant les autorisations IAM requises au compte de service de la connexion à la ressource cloud avant de commencer à travailler dans BigQuery, vous vous assurez d'éviter les erreurs de type "accès refusé" lors de l'exécution des requêtes.

  1. Revenez à la racine du bucket.

  2. Cliquez sur AUTORISATIONS.

  3. Cliquez sur ACCORDER L'ACCÈS.

  4. Dans le champ Nouveaux comptes principaux, saisissez l'ID de compte de service que vous avez copié précédemment.

  5. Dans le champ "Sélectionnez un rôle", saisissez Objets Storage, puis sélectionnez le rôle Administrateur des objets Storage.

  6. Cliquez sur Enregistrer.

    Le compte de service inclut désormais le rôle d'administrateur des objets Storage.

Cliquez sur Vérifier ma progression pour valider l'objectif. Examiner les images et l'ensemble de données, et attribuer un rôle IAM au compte de service

Tâche 4 : Créer l'ensemble de données et la table des avis clients dans BigQuery

Dans cette tâche, vous allez créer un ensemble de données pour le projet, ainsi que la table pour les avis clients.

Créer l'ensemble de données

Pour l'ensemble de données, vous allez utiliser les propriétés suivantes :

Champ Valeur
ID de l'ensemble de données gemini_demo
Type d'emplacement Sélectionnez Multirégional
Emplacement multirégional Sélectionnez US
  1. Revenez au notebook Python dans BigQuery.

  2. Créez une nouvelle cellule de code avec le code ci-dessous :

    # Create the dataset %%bigquery CREATE SCHEMA IF NOT EXISTS `{{{project_0.project_id|Project ID}}}.gemini_demo` OPTIONS(location="US");

    Notez que le code commence par %%bigquery. Cela indique à Python que le code suivant immédiatement cette instruction sera du code SQL.

  3. Exécutez cette cellule.

    Le code SQL crée alors l'ensemble de données gemini_demo dans votre projet résidant dans la région "us" listée sous votre projet dans le volet "Explorateur" de BigQuery.

Créer la table des avis clients avec des exemples de données

Pour créer la table des avis clients, vous allez utiliser une requête SQL.

  1. Créez une nouvelle cellule de code avec le code ci-dessous :

    # Create the customer reviews table %%bigquery LOAD DATA OVERWRITE gemini_demo.customer_reviews (customer_review_id INT64, customer_id INT64, location_id INT64, review_datetime DATETIME, review_text STRING, social_media_source STRING, social_media_handle STRING) FROM FILES ( format = 'CSV', uris = ['gs://{{{project_0.project_id|Project ID}}}-bucket/gsp1249/customer_reviews.csv']);
  2. Exécutez cette cellule.

    La table customer_reviews est créée avec des exemples de données d'avis clients, incluant les éléments customer_review_id, customer_id, location_id, review_datetime, review_text, social_media_source et social_media_handle pour chaque avis de l'ensemble de données.

  3. Dans l'explorateur, cliquez sur la table customer_reviews, et examinez le schéma et les détails.

  4. Pour interroger la table afin d'examiner les enregistrements, créez une cellule de code avec le code ci-dessous.

    # Create the customer reviews table %%bigquery SELECT * FROM `gemini_demo.customer_reviews` ORDER BY review_datetime
  5. Exécutez cette cellule.

    Les enregistrements provenant de la table sont affichés avec toutes les colonnes incluses.

Cliquez sur Vérifier ma progression pour valider l'objectif. Créer l'ensemble de données et la table des avis clients dans BigQuery

Tâche 5 : Créer le modèle Gemini Pro dans BigQuery

Maintenant que les tables sont créées, vous pouvez commencer à les utiliser. Dans cette tâche, vous allez créer le modèle Gemini Pro dans BigQuery.

  1. Revenez au notebook Python.

  2. Créez une nouvelle cellule de code avec le code ci-dessous :

    # Create the customer reviews table %%bigquery CREATE OR REPLACE MODEL `gemini_demo.gemini_pro` REMOTE WITH CONNECTION `us.gemini_conn` OPTIONS (endpoint = 'gemini-pro')
  3. Exécutez cette cellule.

    Ce code crée le modèle gemini_pro. Celui-ci est ajouté à l'ensemble de données gemini_demo, dans la section des modèles.

  4. Dans l'explorateur, cliquez sur le modèle gemini_pro, et examinez le schéma et les détails.

Cliquez sur Vérifier ma progression pour valider l'objectif. Créer le modèle Gemini Pro dans BigQuery

Tâche 6 : Demander à Gemini d'analyser les mots clés et les sentiments des avis clients

Dans cette tâche, vous allez utiliser le modèle Gemini Pro pour analyser le sentiment, positif ou négatif, de chaque avis client.

Analyser les avis clients pour déterminer si le sentiment est positif ou négatif

  1. Créez une nouvelle cellule de code avec le code ci-dessous :

    # Create the sentiment analysis table %%bigquery CREATE OR REPLACE TABLE `gemini_demo.customer_reviews_analysis` AS ( SELECT ml_generate_text_llm_result, social_media_source, review_text, customer_id, location_id, review_datetime FROM ML.GENERATE_TEXT( MODEL `gemini_demo.gemini_pro`, ( SELECT social_media_source, customer_id, location_id, review_text, review_datetime, CONCAT( 'Classify the sentiment of the following text as positive or negative.', review_text, "In your response don't include the sentiment explanation. Remove all extraneous information from your response, it should be a boolean response either positive or negative.") AS prompt FROM `gemini_demo.customer_reviews` ), STRUCT( 0.2 AS temperature, TRUE AS flatten_json_output)));
  2. Exécutez cette cellule.

    Ce code récupère les avis clients de la table customer_reviews, crée la requête, puis utilise ces éléments avec le modèle gemini_pro afin de classer le sentiment de chaque avis. Les résultats sont ensuite stockés dans une nouvelle table appelée customer_reviews_analysis, à laquelle vous pourrez vous reporter ultérieurement pour réaliser des analyses approfondies.

    Veuillez patienter. Le traitement des enregistrements d'avis clients par le modèle prend environ 30 secondes.

    Lorsque le modèle a terminé cette opération, la table customer_reviews_analysis est créée.

  3. Dans l'explorateur, cliquez sur la table customer_reviews_analysis, et examinez le schéma et les détails.

  4. Créez une nouvelle cellule de code avec le code ci-dessous :

    # Pull the first 100 records from the customer_reviews_analysis table %%bigquery SELECT * FROM `gemini_demo.customer_reviews_analysis` ORDER BY review_datetime
  5. Exécutez cette cellule.

    Les lignes renvoyées comportent la colonne ml_generate_text_llm_result (qui contient l'analyse des sentiments), le texte de l'avis client, le numéro client et l'ID de zone géographique.

    Examinez certains des enregistrements. Vous remarquerez peut-être que le format de certains résultats, classés positifs ou négatifs, est incorrect. Ils peuvent par exemple contenir des caractères superflus, tels que des points ou des espaces en trop. Vous pouvez nettoyer les enregistrements en utilisant la vue ci-dessous.

Créer une vue pour nettoyer les enregistrements

  1. Créez une nouvelle cellule de code avec le code ci-dessous :

    # Sanitize the records within a new view %%bigquery CREATE OR REPLACE VIEW gemini_demo.cleaned_data_view AS SELECT REPLACE(REPLACE(LOWER(ml_generate_text_llm_result), '.', ''), ' ', '') AS sentiment, REGEXP_REPLACE( REGEXP_REPLACE( REGEXP_REPLACE(social_media_source, r'Google(\+|\sReviews|\sLocal|\sMy\sBusiness|\sreviews|\sMaps)?', 'Google'), 'YELP', 'Yelp' ), r'SocialMedia1?', 'Social Media' ) AS social_media_source, review_text, customer_id, location_id, review_datetime FROM `gemini_demo.customer_reviews_analysis`;
  2. Exécutez cette cellule.

    Le code crée la vue cleaned_data_view, dans laquelle il inclut les résultats d'analyse des sentiments, le texte de l'avis, le numéro client et l'ID de zone géographique. Ensuite, il nettoie le résultat d'analyse du sentiment (positif ou négatif) : il met toutes les lettres en minuscules et supprime les caractères superflus, comme les espaces ou les points en trop. La vue obtenue facilitera les analyses plus approfondies réalisées ultérieurement au cours de cet atelier.

  3. Créez une nouvelle cellule de code avec le code ci-dessous :

    # Pull the first 100 records from the cleaned_data_view view %%bigquery SELECT * FROM `gemini_demo.cleaned_data_view` ORDER BY review_datetime
  4. Exécutez cette cellule.

    Notez que la colonne sentiment contient désormais des valeurs nettoyées pour les avis positifs et négatifs. Vous pourrez utiliser cette vue ultérieurement pour créer un rapport.

Créer un rapport sur les nombres d'avis positifs et négatifs

Vous pouvez utiliser Python et la bibliothèque matplotlib pour créer un rapport avec graphique à barres sur les nombres d'avis positifs et négatifs.

  1. Créez une cellule et ajoutez-y ce code afin d'utiliser le client BigQuery pour interroger la vue cleaned_data_view sur les avis positifs et négatifs, de regrouper les avis par sentiment et de stocker les résultats dans un DataFrame.

    # Task 6.5 - Create the BigQuery client, and query the cleaned data view for positive and negative reviews, store the results in a dataframe and then show the first 10 records client = bigquery.Client() query = "SELECT sentiment, COUNT(*) AS count FROM `gemini_demo.cleaned_data_view` WHERE sentiment IN ('positive', 'negative') GROUP BY sentiment;" query_job = client.query(query) results = query_job.result().to_dataframe() results.head(10)
  2. Exécutez cette cellule.

    Le résultat de l'exécution de la cellule est une table contenant les nombres totaux d'avis positifs et négatifs.

  3. Créez une cellule pour définir les variables du rapport.

    # Define variable for the report. sentiment = results["sentiment"].tolist() count = results["count"].tolist()
  4. Exécutez cette cellule. Aucun résultat n'est produit.

  5. Créez une cellule pour générer le rapport.

    # Task 6.7 - Build the report. plt.bar(sentiment, count, color='skyblue') plt.xlabel("Sentiment") plt.ylabel("Total Count") plt.title("Bar Chart from BigQuery Data") plt.show()
  6. Exécutez cette cellule.

    Le résultat est un graphique à barres présentant les nombres d'avis positifs et négatifs.

  7. Vous pouvez également créer un rapport simple avec coloration des nombres de sentiments négatifs et positifs en utilisant le code ci-dessous :

    # Create an HTML table for the counts of negative and positive sentiment and color codes the results. html_counts = f"""
    Negative Positive
    {count[0]} {count[1]}
    """ # Display the HTML tables display(HTML(html_counts))

Cliquez sur Vérifier ma progression pour valider l'objectif. Demander à Gemini d'analyser les mots clés et les sentiments des avis clients

Tâche 7 : Répondre aux avis de vos clients

Data Beans souhaite tester des avis clients utilisant des images et des enregistrements audio. Dans cette section du notebook, vous allez utiliser Cloud Storage, BigQuery, Gemini Flash et Python pour réaliser une analyse des sentiments sur les avis clients fournis à Data Beans sous forme d'images et de fichiers audio. À partir de l'analyse obtenue, vous allez générer des réponses de service client à envoyer au client pour le remercier de son avis, ainsi que des actions que la chaîne de cafés peut entreprendre en fonction de l'avis.

Vous effectuerez cela à grande échelle, puis vous répéterez le processus avec une image et un fichier audio. Cela vous apprendra à créer une application de démonstration de faisabilité pour les conseillers clientèle. Un tel processus de gestion des commentaires clients permet d'adopter une stratégie "human-in-the-loop" (avec intervention humaine), où les conseillers clientèle peuvent entreprendre des actions directes auprès des clients et des cafés.

Traitement des fichiers audio à grande échelle avec réponses JSON

  1. Créez une cellule pour effectuer une analyse des sentiments sur les fichiers audio et répondre au client.

    # Conduct sentiment analysis on audio files and respond to the customer. vertexai.init(project="{{{project_0.project_id|Project ID}}}", location="{{{project_0.default_region|region}}}") model = GenerativeModel(model_name="gemini-1.5-flash") prompt = """ Please provide a transcript for the audio. Then provide a summary for the audio. Then identify the keywords in the transcript. Be concise and short. Do not make up any information that is not part of the audio and do not be verbose. Then determine the sentiment of the audio: positive, neutral or negative. Also, you are a customr service representative. How would you respond to this customer review? From the customer reviews provide actions that the location can take to improve. The response and the actions should be simple, and to the point. Do not include any extraneous characters in your response. Answer in JSON format with five keys: transcript, summary, keywords, sentiment, response and actions. Transcript should be a string, summary should be a sting, keywords should be a list, sentiment should be a string, customer response should be a string and actions should be string. """ bucket_name = "{{{project_0.project_id|Project ID}}}-bucket" folder_name = 'gsp1249/audio' # Include the trailing '/' def list_mp3_files(bucket_name, folder_name): storage_client = storage.Client() bucket = storage_client.bucket(bucket_name) print('Accessing ', bucket, ' with ', storage_client) blobs = bucket.list_blobs(prefix=folder_name) mp3_files = [] for blob in blobs: if blob.name.endswith('.mp3'): mp3_files.append(blob.name) return mp3_files file_names = list_mp3_files(bucket_name, folder_name) if file_names: print("MP3 files found:") print(file_names) for file_name in file_names: audio_file_uri = f"gs://{bucket_name}/{file_name}" print('Processing file at ', audio_file_uri) audio_file = Part.from_uri(audio_file_uri, mime_type="audio/mpeg") contents = [audio_file, prompt] response = model.generate_content(contents) print(response.text) else: print("No MP3 files found in the specified folder.")

    Voici quelques points essentiels à propos de cette cellule :

    • La première ligne initialise Vertex AI avec l'ID de votre projet et la région. Vous devez renseigner ces valeurs.
    • La ligne suivante crée un modèle nommé "model", basé sur le modèle Gemini Flash, dans BigQuery.
    • Vous définissez ensuite une requête que le modèle Gemini Flash utilisera. La requête assure la conversion du fichier audio en texte, puis l'analyse du sentiment du texte. Une fois l'analyse terminée, la réponse qui sera renvoyée au client est générée pour chaque fichier.
    • Vous devez définir votre bucket en tant que variable de chaîne "bucket_name". Remarque : "folder_name" est également utilisé pour le sous-dossier gsp1249/audio. Ne modifiez pas cela.
    • Une fonction appelée "list_mp3_files" est créée pour identifier tous les fichiers mp3 dans le bucket. Ces fichiers sont ensuite traités par le modèle Gemini Flash dans l'instruction IF.
  2. Exécutez cette cellule.

    Les cinq fichiers audio sont analysés, et le résultat de l'analyse est fourni sous forme de réponse JSON. La réponse JSON peut être analysée en conséquence et acheminée vers les applications appropriées pour fournir une réponse au client ou indiquer des mesures d'amélioration à un café particulier.

Créer une application pour les conseillers clientèle

Dans cette section de l'atelier, vous allez apprendre à créer une application de service client basée sur l'analyse d'un avis négatif. Vous découvrirez comment :

  • utiliser la même requête que celle de la cellule précédente pour analyser un seul avis négatif ;
  • générer la transcription à partir du fichier audio de l'avis négatif, créer l'objet JSON à partir de la sortie du modèle avec le formatage approprié, et enregistrer des parties spécifiques de l'objet JSON en tant que variables Python à utiliser avec HTML dans votre application ;
  • générer la table HTML, charger l'image que le client a importée pour l'avis et charger le fichier audio dans le lecteur ;
  • afficher la table HTML, avec l'image et le lecteur pour le fichier audio.
  1. Créez une cellule et insérez le code suivant pour pouvoir générer la transcription du fichier audio de l'avis négatif, ainsi que créer l'objet JSON et les variables associées.

    # Generate the transcript for the negative review audio file, create the JSON object, and associated variables audio_file_uri = f"gs://{bucket_name}/{folder_name}/data-beans_review_7061.mp3" print(audio_file_uri) audio_file = Part.from_uri(audio_file_uri, mime_type="audio/mpeg") contents = [audio_file, prompt] response = model.generate_content(contents) print('Generating Transcript...') #print(response.text) results = response.text # print("your results are", results, type(results)) print('Transcript created...') print('Transcript ready for analysis...') json_data = results.replace('```json', '') json_data = json_data.replace('```', '') jason_data = '"""' + results + '"""' # print(json_data, type(json_data)) data = json.loads(json_data) # print(data) transcript = data["transcript"] summary = data["summary"] sentiment = data["sentiment"] keywords = data["keywords"] response = data["response"] actions = data["actions"]

    Voici quelques points essentiels à propos de cette cellule :

    • Le code de la cellule sélectionnera un fichier audio spécifique dans Cloud Storage (data-beans_review_7061.mp3).
    • Il enverra ensuite le fichier à la requête de la cellule précédente étiquetée "Task 7.1" pour que le modèle Gemini Flash le traite.
    • La réponse du modèle est extraite au format JSON.
    • Les données JSON sont ensuite analysées, et les variables Python pour la transcription, le résumé, le sentiment, les mots clés, la réponse apportée au client et les actions sont stockées.
  2. Exécutez le code de la cellule.

    La sortie est réduite au strict minimum. Elle ne contient que l'URI du fichier audio traité et les messages de traitement.

  3. Créez une table HTML à partir des valeurs sélectionnées et chargez le fichier audio contenant l'avis négatif dans le lecteur.

    # Create an HTML table (including the image) from the selected values. html_string = f"""
    customer_id: 7061 - @coffee_lover789  
    {transcript} {sentiment} feedback
     
    {keywords[0]}
    {keywords[1]}
    {keywords[2]}
    {keywords[3]}
    Customer summary:{summary}
    Recommended actions:{actions}
    Suggested Response:{response}
    """ print('The table has been created.')

    Voici quelques points essentiels à propos de cette cellule :

    • Le code présent dans la cellule créera une chaîne de table HTML.
    • Il insèrera ensuite les valeurs pour la transcription, le sentiment, les mots clés, l'image, le résumé, les actions et la réponse dans les cellules de la table.
    • Le code appliquera également un style aux éléments de la table.
    • Lors de l'exécution de la cellule, la sortie indiquera quand la table aura été créée.
  4. Recherchez le tag <td style="padding:10px;"> avec la sortie {summary} incluse. Ajoutez une ligne de code avant ce tag.

  5. Collez <td rowspan="3" style="padding: 10px;"><img src="<authenticated url here>" alt="Customer Image" style="max-width: 300px;"></td> dans cette nouvelle ligne de code.

  6. Recherchez l'URL authentifiée pour le fichier image_7061.png. Accédez à Cloud Storage, sélectionnez le seul bucket disponible, puis le dossier d'images, et cliquez sur l'image.

  7. Dans la page qui apparaît, copiez l'URL authentifiée pour l'image.

  8. Revenez au notebook Python dans BigQuery. Remplacez <authenticated url here> par l'URL authentifiée réelle dans le code que vous venez de coller.

  9. Exécutez le code de la cellule.

    Encore une fois, la sortie est réduite au strict minimum. Il s'agit seulement des messages de traitement qui indiquent l'achèvement de chaque étape.

  10. Créez une cellule et insérez-y le code ci-dessous pour pouvoir télécharger le fichier audio et le charger dans le lecteur :

    # Download the audio file from Google Cloud Storage and load into the player storage_client = storage.Client() bucket = storage_client.bucket(bucket_name) blob = bucket.blob(f"{folder_name}/data-beans_review_7061.mp3") audio_bytes = io.BytesIO(blob.download_as_bytes()) # Assuming a sample rate of 44100 Hz (common for MP3 files) sample_rate = 44100 print('The audio file is loaded in the player.')

    Voici quelques points essentiels à propos de cette cellule :

    • Le code dans la cellule accède au bucket Cloud Storage et récupère le fichier audio concerné (data-beans_review_7061.mp3).
    • Il télécharge ensuite le fichier en tant que flux d'octets et détermine le taux d'échantillonnage du fichier, de sorte que celui-ci puisse être lu dans un lecteur directement dans le notebook.
    • Lorsque la cellule est exécutée, la sortie est un message indiquant que le fichier audio est chargé dans le lecteur et qu'il est prêt pour la lecture.
  11. Exécutez le code de la cellule.

  12. Créez une cellule et insérez le code ci-dessous :

    # Task 7.5 - Build the mockup as output to the cell. print('Analysis complete. Review the results below.') display(HTML(html_string)) display(Audio(audio_bytes.read(), rate=sample_rate, autoplay=True))
  13. Exécutez le code de la cellule.

    C'est dans cette cellule que la magie opère. La méthode "display" permet d'afficher le HTML et le fichier audio chargé dans le lecteur. Examinez la sortie de la cellule. Elle doit ressembler à l'image ci-dessous :

    Image illustrant le fonctionnement de l&#39;application.

Cliquez sur Vérifier ma progression pour valider l'objectif. Répondre aux avis de vos clients

Félicitations !

Vous avez créé une connexion à une ressource cloud dans BigQuery. Vous avez également créé un ensemble de données, des tables et des modèles pour demander à Gemini d'analyser le sentiment et les mots clés dans des avis clients. Enfin, vous avez utilisé Gemini pour analyser les avis clients audio afin de générer des résumés et des mots clés pour répondre aux avis clients dans une application de service client.

Étapes suivantes et informations supplémentaires

Formations et certifications Google Cloud

Les formations et certifications Google Cloud vous aident à tirer pleinement parti des technologies Google Cloud. Nos cours portent sur les compétences techniques et les bonnes pratiques à suivre pour être rapidement opérationnel et poursuivre votre apprentissage. Nous proposons des formations pour tous les niveaux, à la demande, en salle et à distance, pour nous adapter aux emplois du temps de chacun. Les certifications vous permettent de valider et de démontrer vos compétences et votre expérience en matière de technologies Google Cloud.

Dernière mise à jour du manuel : 26 juillet 2024

Dernier test de l'atelier : 26 juillet 2024

Copyright 2024 Google LLC Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms d'entreprises et de produits peuvent être des marques des entreprises auxquelles ils sont associés.

Ce contenu n'est pas disponible pour le moment

We will notify you via email when it becomes available

Parfait !

We will contact you via email if it becomes available