Kontingentfehler durch iteratives Aufrufen von ML.GENERATE_TEXT verarbeiten
In dieser Anleitung erfahren Sie, wie Sie mit der öffentlichen gespeicherten Prozedur bqutil.procedure.bqml_generate_text in BigQuery Aufrufe der Funktion ML.GENERATE_TEXT durchlaufen.
Durch iteratives Aufrufen der Funktion können Sie alle wiederholbaren Fehler beheben, die aufgrund der Überschreitung der für die Funktion geltenden Kontingente und Limits auftreten.
Den Quellcode für die bqutil.procedure.bqml_generate_text-Speicherprozedur auf GitHub finden Sie unter bqml_generate_text.sqlx.
Weitere Informationen zu den Parametern und zur Verwendung der gespeicherten Prozedur finden Sie in der README-Datei.
In dieser Anleitung werden Sie durch die folgenden Aufgaben geführt:
- Remote-Modell über ein
gemini-2.5-pro-Modell erstellen - Aufrufe der Funktion
ML.GENERATE_TEXTunter Verwendung des Remote-Modells und der öffentlichen Datentabellebigquery-public-data.bbc_news.fulltextmit der gespeicherten Prozedurbqutil.procedure.bqml_generate_textiterativ aufrufen.
Erforderliche Berechtigungen
Zum Ausführen dieses Tutorials benötigen Sie die folgenden IAM-Rollen (Identity and Access Management):
- BigQuery-Datasets, ‑Verbindungen und ‑Modelle erstellen und verwenden: BigQuery-Administrator (
roles/bigquery.admin). - Gewähren Sie dem Dienstkonto der Verbindung Berechtigungen: „Projekt-IAM-Administrator“ (
roles/resourcemanager.projectIamAdmin).
Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Ausführen der Aufgaben in diesem Dokument erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
- Dataset erstellen:
bigquery.datasets.create - Verbindung erstellen, delegieren und verwenden:
bigquery.connections.* - Standardverbindung festlegen:
bigquery.config.* - Dienstkontoberechtigungen festlegen:
resourcemanager.projects.getIamPolicyundresourcemanager.projects.setIamPolicy - Modell erstellen und Inferenz ausführen:
bigquery.jobs.createbigquery.models.createbigquery.models.getDatabigquery.models.updateDatabigquery.models.updateMetadata
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Kosten
In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:
- BigQuery ML: You incur costs for the data that you process in BigQuery.
- Gemini Enterprise Agent Platform: You incur costs for calls to the Agent Platform model.
Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen.
Weitere Informationen zu den Preisen von BigQuery finden Sie unter BigQuery-Preise.
Weitere Informationen zu den Preisen für die Agent Platform finden Sie unter Preise für die Agent Platform.
Hinweis
-
Wählen Sie in der Google Cloud Console auf der Seite für die Projektauswahl ein Google Cloud -Projekt aus oder erstellen Sie eines.
Rollen, die zum Auswählen oder Erstellen eines Projekts erforderlich sind
- Projekt auswählen: Für die Auswahl eines Projekts ist keine bestimmte IAM-Rolle erforderlich. Sie können jedes Projekt auswählen, für das Ihnen eine Rolle zugewiesen wurde.
-
Projekt erstellen: Zum Erstellen eines Projekts benötigen Sie die Rolle „Projektersteller“ (
roles/resourcemanager.projectCreator), die die Berechtigungresourcemanager.projects.createenthält. Weitere Informationen zum Zuweisen von Rollen
-
Prüfen Sie, ob die Abrechnung für Ihr Google Cloud Projekt aktiviert ist.
-
Aktivieren Sie die APIs für BigQuery, BigQuery Connection und die Agent Platform.
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (
roles/serviceusage.serviceUsageAdmin), die die Berechtigungserviceusage.services.enableenthält. Weitere Informationen zum Zuweisen von Rollen
Dataset erstellen
Erstellen Sie ein BigQuery-Dataset zum Speichern Ihrer Modelle und Beispieldaten:
Rufen Sie in der Google Cloud Console die Seite BigQuery auf.
Klicken Sie im Bereich Explorer auf den Namen Ihres Projekts.
Klicken Sie auf Aktionen ansehen > Dataset erstellen.
Führen Sie auf der Seite Dataset erstellen die folgenden Schritte aus:
Geben Sie unter Dataset-ID
sampleein.Wählen Sie als Standorttyp die Option Mehrere Regionen und dann USA (mehrere Regionen in den USA) aus.
Übernehmen Sie die verbleibenden Standardeinstellungen unverändert und klicken Sie auf Dataset erstellen.
Textgenerierungsmodell erstellen
Erstellen Sie ein Remote-Modell, das ein gehostetes gemini-2.5-pro-Modell der Agent Platform darstellt:
Rufen Sie in der Google Cloud Console die Seite BigQuery auf.
Führen Sie im Abfrageeditor folgende Abfrage aus:
CREATE OR REPLACE MODEL `sample.generate_text` REMOTE WITH CONNECTION DEFAULT OPTIONS (ENDPOINT = 'gemini-2.5-pro');
Die Abfrage dauert mehrere Sekunden. Anschließend wird das Modell
generate_textimsample-Dataset des Bereichs Explorer angezeigt. Da die Abfrage eineCREATE MODEL-Anweisung zum Erstellen eines Modells verwendet, gibt es keine Abfrageergebnisse.
Führen Sie die gespeicherte Prozedur aus.
Führen Sie die gespeicherte Prozedur bqutil.procedure.bqml_generate_text aus, die die Aufrufe der Funktion ML.GENERATE_TEXT mithilfe des Modells sample.generate_text und der öffentlichen Datentabelle bigquery-public-data.bbc_news.fulltext iterativ durchläuft:
Rufen Sie in der Google Cloud Console die Seite BigQuery auf.
Führen Sie im Abfrageeditor folgende Abfrage aus:
CALL `bqutil.procedure.bqml_generate_text`( "bigquery-public-data.bbc_news.fulltext", -- source table "PROJECT_ID.sample.news_generated_text", -- destination table "PROJECT_ID.sample.generate_text", -- model "body", -- content column ["filename"], -- key columns '{}' -- optional arguments );
Ersetzen Sie
PROJECT_IDdurch die Projekt-ID des Projekts, das Sie für diese Anleitung verwenden.Die gespeicherte Prozedur erstellt eine
sample.news_generated_text-Tabelle, die die Ausgabe der FunktionML.GENERATE_TEXTenthält.Wenn die Abfrage abgeschlossen ist, bestätigen Sie, dass die Tabelle
sample.news_generated_textkeine Zeilen mit einem wiederholbaren Fehler enthält. Führen Sie im Abfrageeditor folgende Abfrage aus:SELECT * FROM `sample.news_generated_text` WHERE ml_generate_text_status LIKE '%A retryable error occurred%';
Die Abfrage gibt die Nachricht
No data to displayzurück.
Bereinigen
- Wechseln Sie in der Google Cloud -Console zur Seite Ressourcen verwalten.
- Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
- Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.