Semantische Analyse mit verwalteten KI-Funktionen durchführen

In dieser Anleitung erfahren Sie, wie Sie mit verwalteten KI-Funktionen von BigQuery ML eine semantische Analyse von Kundenfeedback durchführen.

Ziele

In dieser Anleitung erwartet Sie Folgendes:

  • Dataset erstellen und Sentimentdaten in eine Tabelle laden
  • Cloud-Ressourcenverbindung erstellen
  • Verwenden Sie die folgenden KI-Funktionen, um eine semantische Analyse durchzuführen:
    • AI.IF: Daten mit Bedingungen in natürlicher Sprache filtern
    • AI.SCORE: Eingabe nach Stimmung bewerten
    • AI.CLASSIFY: Eingaben in benutzerdefinierte Kategorien klassifizieren

Kosten

In dieser Anleitung werden kostenpflichtige Komponenten von Google Cloudverwendet, darunter:

  • BigQuery
  • BigQuery ML

Weitere Informationen zu den Kosten für BigQuery finden Sie auf der Seite BigQuery-Preise.

Weitere Informationen zu den Kosten für BigQuery ML finden Sie unter BigQuery ML-Preise.

Hinweise

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Wenn Sie für diese Anleitung ein vorhandenes Projekt verwenden, prüfen Sie, ob Sie die erforderlichen Berechtigungen haben. Wenn Sie ein neues Projekt erstellt haben, haben Sie bereits die erforderlichen Berechtigungen.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Wenn Sie für diese Anleitung ein vorhandenes Projekt verwenden, prüfen Sie, ob Sie die erforderlichen Berechtigungen haben. Wenn Sie ein neues Projekt erstellt haben, haben Sie bereits die erforderlichen Berechtigungen.

  6. Enable the BigQuery API and BigQuery Connection API APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

    Bei neuen Projekten ist die BigQuery API automatisch aktiviert.

  7. Optional: Aktivieren Sie die Abrechnung für das Projekt. Die Abrechnung funktioniert auch dann, wenn Sie die Abrechnung nicht aktivieren oder keine Kreditkarte angeben möchten. BigQuery bietet Ihnen eine Sandbox zum Ausführen dieser Schritte. Weitere Informationen finden Sie unter BigQuery-Sandbox aktivieren.
  8. Erforderliche Rollen

    Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zur Verwendung von KI-Funktionen benötigen:

    Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

    Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

    Beispieldaten erstellen

    Führen Sie die folgende Abfrage aus, um ein Dataset namens my_dataset für dieses Tutorial zu erstellen.

    CREATE SCHEMA my_dataset OPTIONS (location = 'LOCATION');
    

    Erstellen Sie als Nächstes eine Tabelle mit dem Namen customer_feedback, die Beispielrezensionen von Kunden für ein Gerät enthält:

    CREATE TABLE my_dataset.customer_feedback AS (
      SELECT
        *
      FROM
        UNNEST( [STRUCT<review_id INT64, review_text STRING> 
          (1, "The battery life is incredible, and the screen is gorgeous! Best phone I've ever had. Totally worth the price."),
          (2, "Customer support was a nightmare. It took three weeks for my order to arrive, and when it did, the box was damaged. Very frustrating!"),
          (3, "The product does exactly what it says on the box. No complaints, but not exciting either."),
          (4, "I'm so happy with this purchase! It arrived early and exceeded all my expectations. The quality is top-notch, although the setup was a bit tricky."),
          (5, "The price is a bit too high for what you get. The material feels cheap and I'm worried it won't last. Service was okay."),
          (6, "Absolutely furious! The item arrived broken, and getting a refund is proving impossible. I will never buy from them again."),
          (7, "This new feature for account access is confusing. I can't find where to update my profile. Please fix this bug!"),
          (8, "The shipping was delayed, but the support team was very helpful and kept me informed. The product itself is great, especially for the price.") 
          ])
    );
    

    Verbindung herstellen

    Erstellen Sie eine Cloud-Ressourcenverbindung und rufen Sie das Dienstkonto der Verbindung ab.

    Wählen Sie eine der folgenden Optionen aus:

    Console

    1. Rufen Sie die Seite BigQuery auf.

      BigQuery aufrufen

    2. Klicken Sie im linken Bereich auf Explorer:

      Hervorgehobene Schaltfläche für den Explorer-Bereich.

      Wenn das linke Steuerfeld nicht angezeigt wird, klicken Sie auf  Linkes Steuerfeld maximieren, um es zu öffnen.

    3. Maximieren Sie im Bereich Explorer den Namen Ihres Projekts und klicken Sie dann auf Verbindungen.

    4. Klicken Sie auf der Seite Verbindungen auf Verbindung erstellen.

    5. Wählen Sie als Verbindungstyp die Option Vertex AI-Remote-Modelle, Remote-Funktionen, BigLake und Cloud Spanner (Cloud-Ressource) aus.

    6. Geben Sie im Feld Verbindungs-ID einen Namen für die Verbindung ein.

    7. Wählen Sie unter Standorttyp einen Standort für die Verbindung aus. Die Verbindung sollte sich am selben Standort wie Ihre anderen Ressourcen, z. B. Datasets, befinden.

    8. Klicken Sie auf Verbindung erstellen.

    9. Klicken Sie auf Zur Verbindung.

    10. Kopieren Sie im Bereich Verbindungsinformationen die Dienstkonto-ID zur Verwendung in einem späteren Schritt.

    bq

    1. Erstellen Sie in einer Befehlszeilenumgebung eine Verbindung:

      bq mk --connection --location=REGION --project_id=PROJECT_ID \
          --connection_type=CLOUD_RESOURCE CONNECTION_ID

      Der Parameter --project_id überschreibt das Standardprojekt.

      Ersetzen Sie dabei Folgendes:

      • REGION: Ihre Verbindungsregion
      • PROJECT_ID: Ihre Google Cloud Projekt-ID
      • CONNECTION_ID: eine ID für Ihre Verbindung

      Wenn Sie eine Verbindungsressource herstellen, erstellt BigQuery ein eindeutiges Systemdienstkonto und ordnet es der Verbindung zu.

      Fehlerbehebung:Wird der folgende Verbindungsfehler angezeigt, aktualisieren Sie das Google Cloud SDK:

      Flags parsing error: flag --connection_type=CLOUD_RESOURCE: value should be one of...
      
    2. Rufen Sie die Dienstkonto-ID ab und kopieren Sie sie zur Verwendung in einem späteren Schritt:

      bq show --connection PROJECT_ID.REGION.CONNECTION_ID

      Die Ausgabe sieht in etwa so aus:

      name                          properties
      1234.REGION.CONNECTION_ID     {"serviceAccountId": "connection-1234-9u56h9@gcp-sa-bigquery-condel.iam.gserviceaccount.com"}
      

    Terraform

    Verwenden Sie die Ressource google_bigquery_connection:

    Richten Sie zur Authentifizierung bei BigQuery die Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für Clientbibliotheken einrichten.

    Im folgenden Beispiel wird eine Cloud-Ressourcenverbindung mit dem Namen my_cloud_resource_connection in der Region US erstellt:

    
    # This queries the provider for project information.
    data "google_project" "default" {}
    
    # This creates a cloud resource connection in the US region named my_cloud_resource_connection.
    # Note: The cloud resource nested object has only one output field - serviceAccountId.
    resource "google_bigquery_connection" "default" {
      connection_id = "my_cloud_resource_connection"
      project       = data.google_project.default.project_id
      location      = "US"
      cloud_resource {}
    }

    Führen Sie die Schritte in den folgenden Abschnitten aus, um Ihre Terraform-Konfiguration auf ein Google Cloud -Projekt anzuwenden.

    Cloud Shell vorbereiten

    1. Rufen Sie Cloud Shell auf.
    2. Legen Sie das Standardprojekt Google Cloud fest, auf das Sie Ihre Terraform-Konfigurationen anwenden möchten.

      Sie müssen diesen Befehl nur einmal pro Projekt und in jedem beliebigen Verzeichnis ausführen.

      export GOOGLE_CLOUD_PROJECT=PROJECT_ID

      Umgebungsvariablen werden überschrieben, wenn Sie in der Terraform-Konfigurationsdatei explizite Werte festlegen.

    Verzeichnis vorbereiten

    Jede Terraform-Konfigurationsdatei muss ein eigenes Verzeichnis haben (auch als Stammmodul bezeichnet).

    1. Erstellen Sie in Cloud Shell ein Verzeichnis und eine neue Datei in diesem Verzeichnis. Der Dateiname muss die Erweiterung .tf haben, z. B. main.tf. In dieser Anleitung wird die Datei als main.tf bezeichnet.
      mkdir DIRECTORY && cd DIRECTORY && touch main.tf
    2. Wenn Sie einer Anleitung folgen, können Sie den Beispielcode in jedem Abschnitt oder Schritt kopieren.

      Kopieren Sie den Beispielcode in das neu erstellte main.tf.

      Kopieren Sie optional den Code aus GitHub. Dies wird empfohlen, wenn das Terraform-Snippet Teil einer End-to-End-Lösung ist.

    3. Prüfen und ändern Sie die Beispielparameter, die auf Ihre Umgebung angewendet werden sollen.
    4. Speichern Sie die Änderungen.
    5. Initialisieren Sie Terraform. Dies ist nur einmal für jedes Verzeichnis erforderlich.
      terraform init

      Fügen Sie optional die Option -upgrade ein, um die neueste Google-Anbieterversion zu verwenden:

      terraform init -upgrade

    Änderungen anwenden

    1. Prüfen Sie die Konfiguration und prüfen Sie, ob die Ressourcen, die Terraform erstellen oder aktualisieren wird, Ihren Erwartungen entsprechen:
      terraform plan

      Korrigieren Sie die Konfiguration nach Bedarf.

    2. Wenden Sie die Terraform-Konfiguration an. Führen Sie dazu den folgenden Befehl aus und geben Sie yes an der Eingabeaufforderung ein:
      terraform apply

      Warten Sie, bis Terraform die Meldung „Apply complete“ anzeigt.

    3. Öffnen Sie Ihr Google Cloud Projekt, um die Ergebnisse aufzurufen. Rufen Sie in der Google Cloud Console Ihre Ressourcen in der Benutzeroberfläche auf, um sicherzustellen, dass Terraform sie erstellt oder aktualisiert hat.

    Dem Dienstkonto der Verbindung Berechtigungen gewähren

    Weisen Sie dem Dienstkonto der Verbindung die Rolle „Vertex AI-Nutzer“ zu. Sie müssen diese Rolle in demselben Projekt zuweisen, das Sie im Abschnitt Vorbereitung erstellt oder ausgewählt haben. Die Zuweisung der Rolle in einem anderen Projekt führt zu dem Fehler bqcx-1234567890-xxxx@gcp-sa-bigquery-condel.iam.gserviceaccount.com does not have the permission to access resource.

    So weisen Sie die Rolle zu:

    1. Zur Seite IAM & Verwaltung.

      IAM & Verwaltung aufrufen

    2. Klicken Sie auf Zugriff gewähren.

    3. Geben Sie im Feld Neue Hauptkonten die Dienstkonto-ID ein, die Sie zuvor kopiert haben.

    4. Wählen Sie im Feld Rolle auswählen die Option Vertex AI und dann Vertex AI-Nutzerrolle aus.

    5. Klicken Sie auf Speichern.

    Sentiment insgesamt kategorisieren

    Es kann hilfreich sein, das im Text ausgedrückte Gesamtsentiment zu extrahieren, um Anwendungsfälle wie die folgenden zu unterstützen:

    • Kundenzufriedenheit anhand von Rezensionen messen
    • Markenwahrnehmung in den sozialen Medien beobachten
    • Priorisieren Sie Supportanfragen danach, wie verärgert die Nutzer sind.

    In der folgenden Abfrage wird gezeigt, wie Sie mit der Funktion AI.CLASSIFY Rezensionen aus der Tabelle customer_feedback als positiv, negativ oder neutral klassifizieren:

    SELECT
      review_id,
      review_text,
      AI.CLASSIFY(
        review_text,
        categories => ['positive', 'negative', 'neutral'],
        connection_id => "CONNECTION_ID") AS sentiment
    FROM
      my_dataset.customer_feedback;
    

    Das Ergebnis sieht in etwa so aus:

    +-----------+------------------------------------------+-----------+
    | review_id | review_text                              | sentiment |
    +-----------+------------------------------------------+-----------+
    | 7         | This new feature for account access is   | negative  |
    |           | confusing. I can't find where to update  |           |
    |           | my profile. Please fix this bug!         |           |
    +-----------+------------------------------------------+-----------+
    | 4         | "I'm so happy with this purchase! It     | positive  |
    |           | arrived early and exceeded all my        |           |
    |           | expectations. The quality is top-notch,  |           |
    |           | although the setup was a bit tricky."    |           |
    +-----------+------------------------------------------+-----------+
    | 2         | "Customer support was a nightmare. It    | negative  |
    |           | took three weeks for my order to         |           |
    |           | arrive, and when it did, the box was     |           |
    |           | damaged. Very frustrating!"              |           |
    +-----------+------------------------------------------+-----------+
    | 1         | "The battery life is incredible, and     | positive  |
    |           | the screen is gorgeous! Best phone I've  |           |
    |           | ever had. Totally worth the price."      |           |
    +-----------+------------------------------------------+-----------+
    | 8         | "The shipping was delayed, but the       | positive  |
    |           | support team was very helpful and kept   |           |
    |           | me informed. The product itself is       |           |
    |           | great, especially for the price."        |           |
    +-----------+------------------------------------------+-----------+
    | 5         | The price is a bit too high for what     | negative  |
    |           | you get. The material feels cheap and    |           |
    |           | I'm worried it won't last. Service was   |           |
    |           | okay.                                    |           |
    +-----------+------------------------------------------+-----------+
    | 3         | "The product does exactly what it says   | neutral   |
    |           | on the box. No complaints, but not       |           |
    |           | exciting either."                        |           |
    +-----------+------------------------------------------+-----------+
    | 6         | "Absolutely furious! The item arrived    | negative  |
    |           | broken, and getting a refund is proving  |           |
    |           | impossible. I will never buy from them   |           |
    |           | again."                                  |           |
    +-----------+------------------------------------------+-----------+
    

    Aspektbezogene Sentimentanalyse

    Wenn ein allgemeines Sentiment wie positiv oder negativ für Ihren Anwendungsfall nicht ausreicht, können Sie einen bestimmten Aspekt der Bedeutung von Text analysieren. Sie möchten beispielsweise die Einstellung eines Nutzers zur Qualität des Produkts ermitteln, ohne seine Meinung zum Preis zu berücksichtigen. Sie können sogar einen benutzerdefinierten Wert anfordern, um anzugeben, dass ein bestimmter Aspekt nicht zutrifft.

    Im folgenden Beispiel wird gezeigt, wie Sie mit der Funktion AI.SCORE die Stimmung der Nutzer anhand der einzelnen Rezensionen in der Tabelle customer_feedback in Bezug auf Preis, Kundenservice und Qualität auf einer Skala von 1 bis 10 bewerten können. Die Funktion gibt den benutzerdefinierten Wert „-1“ zurück, wenn ein Aspekt in der Rezension nicht erwähnt wird. So können Sie diese Rezensionen später herausfiltern.

    SELECT
      review_id,
      review_text,
      AI.SCORE(
        ("Score 0.0 to 10 on positive sentiment about PRICE for review: ", review_text,
        "If price is not mentioned, return -1.0"),
        connection_id => "CONNECTION_ID") AS price_score,
      AI.SCORE(
        ("Score 0.0 to 10 on positive sentiment about CUSTOMER SERVICE for review: ", review_text,
        "If customer service is not mentioned, return -1.0"),
        connection_id => "CONNECTION_ID") AS service_score,
      AI.SCORE(
        ("Score 0.0 to 10 on positive sentiment about QUALITY for review: ", review_text,
        "If quality is not mentioned, return -1.0"),
        connection_id => "CONNECTION_ID") AS quality_score
    FROM
      my_dataset.customer_feedback
    LIMIT 3;
    

    Das Ergebnis sieht in etwa so aus:

    +-----------+------------------------------------------+--------------+---------------+---------------+
    | review_id | review_text                              |    price_score | service_score | quality_score |
    +-----------+------------------------------------------+--------------+---------------+---------------+
    | 4         | "I'm so happy with this purchase! It     | -1.0         | -1.0          | 9.5           |
    |           | arrived early and exceeded all my        |              |               |               |
    |           | expectations. The quality is top-notch,  |              |               |               |
    |           | although the setup was a bit tricky."    |              |               |               |
    +-----------+------------------------------------------+--------------+---------------+---------------+
    | 8         | "The shipping was delayed, but the       |  9.0         |  8.5          | 9.0           |
    |           | support team was very helpful and kept   |              |               |               |
    |           | me informed. The product itself is       |              |               |               |
    |           | great, especially for the price."        |              |               |               |
    +-----------+------------------------------------------+--------------+---------------+---------------+
    | 6         | "Absolutely furious! The item arrived    | -1.0         |  1.0          | 0.0           |
    |           | broken, and getting a refund is proving  |              |               |               |
    |           | impossible. I will never buy from them   |              |               |               |
    |           | again."                                  |              |               |               |
    +-----------+------------------------------------------+--------------+---------------+---------------+
    

    Emotionen erkennen

    Neben einer positiven oder negativen Stimmung können Sie Text auch anhand bestimmter Emotionen klassifizieren, die Sie auswählen. Das ist nützlich, wenn Sie Nutzerreaktionen besser nachvollziehen oder sehr emotionales Feedback zur Überprüfung kennzeichnen möchten.

    SELECT
      review_id,
      review_text,
      AI.CLASSIFY(
        review_text,
        categories => ['joy', 'anger', 'sadness', 'surprise', 'fear', 'disgust', 'neutral', 'other'],
        connection_id => "CONNECTION_ID"
      ) AS emotion
    FROM
      my_dataset.customer_feedback;
    

    Das Ergebnis sieht in etwa so aus:

    +-----------+------------------------------------------+---------+
    | review_id | review_text                              | emotion |
    +-----------+------------------------------------------+---------+
    | 2         | "Customer support was a nightmare. It    | anger   |
    |           | took three weeks for my order to         |         |
    |           | arrive, and when it did, the box was     |         |
    |           | damaged. Very frustrating!"              |         |
    +-----------+------------------------------------------+---------+
    | 7         | This new feature for account access is   | anger   |
    |           | confusing. I can't find where to update  |         |
    |           | my profile. Please fix this bug!         |         |
    +-----------+------------------------------------------+---------+
    | 4         | "I'm so happy with this purchase! It     | joy     |
    |           | arrived early and exceeded all my        |         |
    |           | expectations. The quality is top-notch,  |         |
    |           | although the setup was a bit tricky."    |         |
    +-----------+------------------------------------------+---------+
    | 1         | "The battery life is incredible, and     | joy     |
    |           | the screen is gorgeous! Best phone I've  |         |
    |           | ever had. Totally worth the price."      |         |
    +-----------+------------------------------------------+---------+
    | 8         | "The shipping was delayed, but the       | joy     |
    |           | support team was very helpful and kept   |         |
    |           | me informed. The product itself is       |         |
    |           | great, especially for the price."        |         |
    +-----------+------------------------------------------+---------+
    | 5         | The price is a bit too high for what     | sadness |
    |           | you get. The material feels cheap and    |         |
    |           | I'm worried it won't last. Service was   |         |
    |           | okay.                                    |         |
    +-----------+------------------------------------------+---------+
    | 3         | "The product does exactly what it says   | neutral |
    |           | on the box. No complaints, but not       |         |
    |           | exciting either."                        |         |
    +-----------+------------------------------------------+---------+
    | 6         | "Absolutely furious! The item arrived    | anger   |
    |           | broken, and getting a refund is proving  |         |
    |           | impossible. I will never buy from them   |         |
    |           | again."                                  |         |
    +-----------+------------------------------------------+---------+
    

    Rezensionen nach Thema kategorisieren

    Mit der Funktion AI.CLASSIFY können Sie Rezensionen in vordefinierte Themen gruppieren. Sie haben zum Beispiel folgende Möglichkeiten:

    • Häufige Themen im Kundenfeedback erkennen
    • Dokumente nach Thema organisieren.
    • Support-Tickets nach Thema weiterleiten

    Im folgenden Beispiel wird gezeigt, wie Kundenfeedback in verschiedene Typen wie billing issue (Abrechnungsproblem) oder account access (Kontozugriff) klassifiziert und dann gezählt wird, wie viele Rezensionen zu jeder Kategorie gehören:

    SELECT
      AI.CLASSIFY(
        review_text,
        categories => ['Billing Issue', 'Account Access',
                       'Product Bug', 'Feature Request',
                       'Shipping Delay', 'Other'],
        connection_id => "CONNECTION_ID") AS topic,
        COUNT(*) AS number_of_reviews,
    FROM
      my_dataset.customer_feedback
    GROUP BY topic
    ORDER BY number_of_reviews DESC;
    

    Das Ergebnis sieht in etwa so aus:

    +----------------+-------------------+
    | topic          | number_of_reviews |
    +----------------+-------------------+
    | Other          | 5                 |
    | Shipping Delay | 2                 |
    | Product Bug    | 1                 |
    +----------------+-------------------+
    

    Semantisch ähnliche Rezensionen identifizieren

    Mit der Funktion AI.SCORE können Sie bewerten, wie semantisch ähnlich zwei Textteile sind, indem Sie sie auffordern, die Ähnlichkeit der Bedeutung zu bewerten. Das kann Ihnen bei Aufgaben wie den folgenden helfen:

    • Doppelte oder fast doppelte Einträge finden
    • Ähnliche Feedback-Beiträge gruppieren.
    • Semantische Suchanwendungen unterstützen

    Mit der folgenden Abfrage werden Rezensionen gefunden, in denen die Schwierigkeit der Einrichtung des Produkts angesprochen wird:

    SELECT
      review_id,
      review_text,
      AI.SCORE(
        (
          """How similar is the review to the concept of 'difficulty in setting up the product'?
             A higher score indicates more similarity. Review: """,
          review_text),
        connection_id => "CONNECTION_ID") AS setup_difficulty
    FROM my_dataset.customer_feedback
    ORDER BY setup_difficulty DESC
    LIMIT 2;
    

    Das Ergebnis sieht in etwa so aus:

    +-----------+------------------------------------------+------------------+
    | review_id | review_text                              | setup_difficulty |
    +-----------+------------------------------------------+------------------+
    | 4         | "I'm so happy with this purchase! It     | 3                |
    |           | arrived early and exceeded all my        |                  |
    |           | expectations. The quality is top-notch,  |                  |
    |           | although the setup was a bit tricky."    |                  |
    +-----------+------------------------------------------+------------------+
    | 7         | This new feature for account access is   | 1                |
    |           | confusing. I can't find where to update  |                  |
    |           | my profile. Please fix this bug!         |                  |
    +-----------+------------------------------------------+------------------+
    

    Sie können auch die Funktion AI.IF verwenden, um Rezensionen zu finden, die sich auf Text beziehen:

    SELECT
      review_id,
      review_text
    FROM my_dataset.customer_feedback
    WHERE
      AI.IF(
        (
          "Does this review discuss difficulty setting up the product? Review: ",
          review_text),
        connection_id => "CONNECTION_ID");
    

    Funktionen kombinieren

    Es kann hilfreich sein, diese Funktionen in einer einzigen Abfrage zu kombinieren. In der folgenden Abfrage werden Rezensionen zuerst nach negativer Stimmung gefiltert und dann nach der Art der Frustration klassifiziert:

    SELECT
      review_id,
      review_text,
      AI.CLASSIFY(
        review_text,
        categories => [
          'Poor Quality', 'Bad Customer Service', 'High Price', 'Other Negative'],
        connection_id => "CONNECTION_ID") AS negative_topic
    FROM my_dataset.customer_feedback
    WHERE
      AI.IF(
        ("Does this review express a negative sentiment? Review: ", review_text),
        connection_id => "CONNECTION_ID");
    

    Wiederverwendbare UDFs für Prompts erstellen

    Damit Ihre Abfragen lesbar bleiben, können Sie Ihre Prompt-Logik wiederverwenden, indem Sie benutzerdefinierte Funktionen erstellen. Mit der folgenden Abfrage wird eine Funktion zum Erkennen negativer Stimmung erstellt, indem AI.IF mit einem benutzerdefinierten Prompt aufgerufen wird. Anschließend wird die Funktion aufgerufen, um nach negativen Rezensionen zu filtern.

    CREATE OR REPLACE FUNCTION my_dataset.is_negative_sentiment(review_text STRING)
    RETURNS BOOL
    AS (
        AI.IF(
          ("Does this review express a negative sentiment? Review: ", review_text),
          connection_id => "CONNECTION_ID")
    );
    
    SELECT
      review_id,
      review_text
    FROM my_dataset.customer_feedback
    WHERE my_dataset.is_negative_sentiment(review_text);
    

    Bereinigen

    Damit keine Kosten anfallen, können Sie entweder das Projekt löschen, das die von Ihnen erstellten Ressourcen enthält, oder das Projekt beibehalten und die einzelnen Ressourcen löschen.

    Projekt löschen

    So löschen Sie das Projekt:

    1. In the Google Cloud console, go to the Manage resources page.

      Go to Manage resources

    2. In the project list, select the project that you want to delete, and then click Delete.
    3. In the dialog, type the project ID, and then click Shut down to delete the project.

    Dataset löschen

    Wenn Sie das Dataset und alle darin enthaltenen Ressourcen, einschließlich aller Tabellen und Funktionen, löschen möchten, führen Sie die folgende Abfrage aus:

    DROP SCHEMA my_dataset CASCADE;