In diesem Dokument wird beschrieben, wie Sie QueryData testen und die Kontextdatei aktualisieren. Sie können die Fähigkeit von QueryData testen, SQL-Abfragen aus Fragen in natürlicher Sprache zu generieren. Wenn eine generierte Abfrage nicht korrekt ist, können Sie die Kontextset-Datei aktualisieren.
Weitere Informationen zu Kontextgruppen finden Sie unter Kontextgruppen – Übersicht.Hinweis
Achten Sie darauf, dass bereits ein Kontextset erstellt und die Kontextset-Datei in den QueryData-Agenten hochgeladen wurde. Weitere Informationen finden Sie unter Kontextsätze in Bigtable Studio verwalten.
Wenn Sie Kontextset-Dateien herunterladen, aktualisieren und hochladen möchten, muss der IAM-Nutzer die Rolle „Dataplex Catalog Editor“ (roles/dataplex.catalogEditor) oder „Dataplex Catalog Admin“ (roles/dataplex.catalogAdmin) für das Projekt haben. Weitere Informationen finden Sie unter Berechtigungen für Kontextgruppen.
QueryData testen
So testen Sie ein QueryData-Objekt:
Rufen Sie in der Google Cloud Console die Seite „Bigtable“ auf.
Wählen Sie eine Instanz aus der Liste aus.
Klicken Sie im Navigationsmenü auf Bigtable Studio.
Klicken Sie im Bereich Explorer neben dem verwendeten Kontextsatz auf Aktionen ansehen.
Klicken Sie auf Kontextset testen.
Klicken Sie im Abfrageeditor auf SQL mit QueryData generieren mit: CONTEXT_SET_NAME, um den Bereich Help me code zu öffnen.
Geben Sie im Editor eine Frage in natürlicher Sprache ein, um eine SQL-Abfrage zu generieren, und klicken Sie auf Generieren.
Prüfen Sie die SQL-Abfrage auf Richtigkeit. Klicken Sie auf Einfügen, um die Abfrage dem Editor hinzuzufügen.
Kontextset herunterladen und aktualisieren
Wenn Sie mit der generierten SQL-Abfrage für eine Frage in natürlicher Sprache nicht zufrieden sind, laden Sie die vorhandene Kontextset-Datei herunter. Anschließend können Sie die Abfragevorlage prüfen und aktualisieren und die aktualisierte Kontextdatei noch einmal in den Agenten hochladen.
So laden Sie einen Kontextsatz herunter und aktualisieren ihn:
- Klicken Sie im Bereich Explorer neben dem verwendeten Kontextsatz auf Aktionen ansehen.
- Klicken Sie auf Kontextdatei herunterladen.
- Folgen Sie der Anleitung unter Kontextsets mit dem Context-Engineering-Agenten erstellen, um den Kontext mit zusätzlichen Abfragepaaren zu aktualisieren.
- Klicken Sie im Bereich Explorer neben dem verwendeten Kontextsatz auf Aktionen ansehen.
- Klicken Sie auf Kontextgruppe bearbeiten.
- Klicken Sie im Abschnitt Kontextdatei hochladen auf Durchsuchen und wählen Sie die aktualisierte Kontextdatei aus.
- Klicken Sie auf Speichern, um den Kontextsatz zu aktualisieren.
Wenn Sie mit der Genauigkeit der Antworten zufrieden sind, können Sie den Endpunkt QueryData verwenden, um Ihre Anwendung mit dem Kontextset zu verbinden.
Kontextset-ID ermitteln
Wenn Sie eine Datenanwendung mit dem QueryData-Agenten verbinden möchten, benötigen Sie die ID des Kontextsets.
Rufen Sie in der Google Cloud Console die Seite „Bigtable“ auf.
Wählen Sie eine Instanz aus der Liste aus.
Klicken Sie im Navigationsmenü auf Bigtable Studio.
Klicken Sie im Bereich Explorer neben dem verwendeten Kontextsatz auf Aktionen ansehen.
Klicken Sie auf Kontextgruppe bearbeiten.
Notieren Sie sich die Kontext-ID unter Kontextset-ID. Das Format der Kontextset-ID ähnelt
projects/PROJECT_ID/locations/LOCATION/contextSetGroups/GROUP_ID/contextSets/CONTEXT_SET_ID@v1.
QueryData mit Anwendung verbinden
Legen Sie die Kontext-Set-ID im Methodenaufruf QueryData fest, um erstellten Kontext für Datenbankdatenquellen wie AlloyDB, Spanner, Cloud SQL, Cloud SQL for PostgreSQL, Firestore und Bigtable bereitzustellen. Weitere Informationen finden Sie unter Kontext für Daten-Agenten für Datenbank-Datenquellen definieren.
Nachdem Sie den Kontextsatz getestet haben, können Sie die Datenbank-Datenquelle in Ihrem QueryData-Aufruf referenzieren.
Beispiel für eine QueryData-Anfrage mit selbst erstelltem Kontext
Das folgende Beispiel zeigt eine QueryData-Anfrage mit der bigtable_reference-Datenbankdatenquelle. Das Feld agent_context_reference.context_set_id wird verwendet, um auf den Kontextsatz zu verweisen, der den von Ihnen erstellten Kontext enthält.
POST https://geminidataanalytics.googleapis.com/v1beta/projects/context-set-project/locations/us-central1:queryData
{ "parent": "projects/context-set-project/locations/us-central1", "prompt": "List the names and ratings of all hotels located in London.", "context": { "datasource_references": { "bigtable_reference": { "database_reference": { "project_id": "context-set-project", "instance_id": "evalbench" }, "agent_context_reference": { "context_set_id": "projects/context-set-project/locations/us-central1/contextSets/hotels_bigtable_all_templates" } } } }, "generation_options": { "generate_query_result": true, "generate_natural_language_answer": true, "generate_disambiguation_question": true, "generate_explanation": true } }
Der Anfragetext enthält die folgenden Felder:
prompt: Die Frage des Endnutzers in natürlicher Sprache.context: Enthält Informationen zu den Datenquellen.datasource_references: Gibt den Typ der Datenquelle an.bigtable_reference: Erforderlich, wenn die Datenbank abgefragt wird. Dieses Feld ändert sich je nach der Datenbank, die Sie abfragen.database_reference: Gibt Informationen zu Ihrer Bigtable-Instanz an.project_id: Die Projekt-ID, zu der die Bigtable-Instanz gehört.instance_id: Die Instanz-ID der Bigtable-Instanz.table_ids: Optional. Die Tabellen-IDs, auf die der KI-Agent beschränkt werden soll. Wenn keine Angabe erfolgt, werden alle Tabellen in der Instanz einbezogen.
agent_context_reference: Links zu verfasstem Kontext.context_set_id: Die vollständige Kontextsatz-ID des Kontextsatzes, der den von Ihnen erstellten Kontext enthält. Beispiel:projects/PROJECT_ID/locations/LOCATION/contextSetGroups/GROUP_ID/contextSets/CONTEXT_SET_ID@v1.
generation_options: Konfiguriert den Typ der zu generierenden Ausgabe.generate_query_result: Legen Sie „true“ fest, um die Abfrageergebnisse zu generieren und zurückzugeben.generate_natural_language_answer: Optional. Wenn auf „true“ gesetzt, wird eine Antwort in natürlicher Sprache generiert.generate_explanation: Optional. Wenn diese Option auf „true“ gesetzt ist, wird eine Erklärung der SQL-Abfrage generiert.generate_disambiguation_question: Optional. Wenn diese Option auf „true“ gesetzt ist, werden Fragen zur Mehrdeutigkeitsauflösung generiert, wenn die Abfrage mehrdeutig ist.
QueryData-Beispielantwort
Hier ist ein Beispiel für eine erfolgreiche Antwort auf einen QueryData-Aufruf:
{
"generatedQuery": "SELECT COUNT(*) FROM `hotels` WHERE CAST(cf['location'] AS STRING) = 'London'",
"intentExplanation": "count of hotels in London",
"queryResult": {
"columns": [
{
"name": "$col1",
"type": "int64_type:{}"
}
],
"rows": [
{
"values": [
{
"value": "2"
}
]
}
],
"totalRowCount": "1"
},
"naturalLanguageAnswer": "Based on the data, there are 2 hotels located in London."
}