In diesem Dokument wird beschrieben, wie Sie QueryData testen und die Kontextsatzdatei aktualisieren. Sie können testen, ob QueryData SQL-Abfragen aus Fragen in natürlicher Sprache generieren kann. Wenn eine generierte Abfrage nicht korrekt ist, können Sie die Kontextsatzdatei aktualisieren.
Weitere Informationen zu Kontextsätzen finden Sie unter Übersicht über Kontextsätze.Hinweis
Ein Kontextsatz muss bereits erstellt und die Kontextsatzdatei in den QueryData-Agenten hochgeladen worden sein. Weitere Informationen finden Sie unter Kontextsätze in Cloud SQL Studio verwalten.
QueryData testen
So testen Sie QueryData:
Rufen Sie in der Google Cloud Console die Seite „Cloud SQL“ auf.
Wählen Sie eine Instanz aus der Liste aus.
Klicken Sie im Navigationsmenü auf Cloud SQL Studio.
Melden Sie sich mit der Identity and Access Management-Authentifizierung in Studio an.
Klicken Sie im Bereich Explorer neben dem verwendeten Kontextsatz auf Aktionen anzeigen.
Klicken Sie auf Kontextsatz testen.
Klicken Sie im Abfrageeditor auf SQL generieren, um den Bereich Hilfe bei der Programmierung 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, ob die SQL-Abfrage korrekt ist.
Kontextsatz 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 Kontextsatzdatei herunter. Anschließend können Sie die Abfragevorlage prüfen und aktualisieren und die aktualisierte Kontextdatei wieder in den Agenten hochladen.
So laden Sie einen Kontextsatz herunter und aktualisieren ihn:
- Klicken Sie im Bereich Explorer auf Aktionen anzeigen.
- Klicken Sie auf Kontextdatei herunterladen.
- Folgen Sie der Anleitung unter Kontexte mit der Gemini CLI erstellen, um den Kontext mit zusätzlichen Abfragepaaren zu aktualisieren.
- Klicken Sie im Bereich Explorer neben dem verwendeten Kontextsatz auf Aktionen anzeigen.
- Klicken Sie auf Kontextsatz bearbeiten.
- Klicken Sie im Bereich Kontextsatzdatei hochladen auf Durchsuchen und wählen Sie die aktualisierte Kontextsatzdatei aus.
- Klicken Sie auf Speichern , um den Kontextsatz zu aktualisieren.
Wenn Sie mit der Genauigkeit Ihrer Antworten zufrieden sind, können Sie den QueryData-Endpunkt verwenden, um Ihre Anwendung mit dem Kontextsatz zu verbinden.
Kontextsatz-ID finden
Um eine Datenanwendung mit dem QueryData-Agenten zu verbinden, benötigen Sie die ID des Kontextsatzes.
Rufen Sie in der Google Cloud Console die Seite „Cloud SQL“ auf.
Wählen Sie eine Instanz aus der Liste aus.
Klicken Sie im Navigationsmenü auf Cloud SQL Studio.
Melden Sie sich mit der Identity and Access Management-Authentifizierung in Studio an.
Klicken Sie im Bereich Explorer neben dem verwendeten Kontextsatz auf Aktionen anzeigen.
Klicken Sie auf Kontextsatz bearbeiten.
Notieren Sie sich die Kontext-ID unter Kontextsatz-ID. Das Format der Kontextsatz-ID ähnelt
projects/data-agents-project/locations/us-east1/contextSets/bdf_pg_all_templates.
QueryData mit Anwendung verbinden
Legen Sie die Kontextsatz-ID im QueryData-Methodenaufruf fest, um einen erstellten Kontext für Datenbankdatenquellen wie AlloyDB, Spanner, Cloud SQL und Cloud SQL for PostgreSQL bereitzustellen. Weitere Informationen finden Sie unter Kontext für KI-Datenagenten für Datenbankdatenquellen definieren.
Nachdem Sie den Kontextsatz getestet haben, können Sie im QueryData-Aufruf auf die Datenbankdatenquelle verweisen.
Beispiel für eine QueryData-Anfrage mit erstelltem Kontext
Das folgende Beispiel zeigt eine QueryData-Anfrage mit der Datenbankdatenquelle cloud_sql_reference. Das Feld agent_context_reference.context_set_id wird verwendet, um auf in der Datenbank gespeicherten, vorab erstellten Kontext zu verweisen.
{ "parent": "projects/context-set-project/locations/us-central1", "prompt": "How many accounts in the Prague region are eligible for loans?? A3 contains the data of region.", "context": { "datasource_references": [ { "cloud_sql_reference": { "database_reference": { "engine": "POSTGRESQL" "project_id": "context-set-project", "region": "us-central1", "instance_id": "context-set-primary", "database_id": "financial" }, "agent_context_reference": { "context_set_id": "projects/context-set-project/locations/us-east1/contextSets/bdf_pg_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 Datenquellentyp an.cloud_sql_reference: Erforderlich beim Abfragen der Datenbank. Dieses Feld ändert sich je nach der abgefragten Datenbank.database_reference: Gibt Informationen zur Datenbankinstanz an.engine: Die Datenbank-Engine. Für Cloud SQL-Instanzen aufPOSTGRESQLfestgelegt.project_id: Die Projekt-ID der Datenbankinstanz.region: Die Region der Cloud SQL-Instanz.instance_id: Die Instanz-ID der Cloud SQL-Instanz.database_id: Die ID der Datenbank.
agent_context_reference: Verweist auf erstellten Kontext in der Datenbank.context_set_id: Die vollständige Kontextsatz-ID des in der Datenbank gespeicherten Kontexts. Beispiel:projects/context-set-project/locations/us-east1/contextSets/bdf_gsql_gemini_all_templates.
generationOptions: Konfiguriert den Typ der zu generierenden Ausgabe.generate_query_result: Auf „true“ setzen, 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 auf „true“ gesetzt, wird eine Erklärung der SQL-Abfrage generiert.generate_disambiguation_question: Optional. Wenn auf „true“ gesetzt, werden bei einer mehrdeutigen Abfrage Fragen zur Klärung generiert.
Beispiel für eine QueryData-Antwort
Hier ist ein Beispiel für eine erfolgreiche Antwort von einem QueryData-Aufruf:
{
"generated_query": "-- Count the number of accounts in Prague that are eligible for loans\nSELECT\n COUNT(DISTINCT \"loans\".\"account_id\")\nFROM \"loans\"\nJOIN \"district\" -- Join based on district ID\n ON \"loans\".\"district_id\" = \"district\".\"district_id\"\nWHERE\n \"district\".\"A3\" = 'Prague'; -- Filter for the Prague region",
"intent_explanation": "The question asks for the number of accounts eligible for loans in the Prague region. I need to join the `district` table with the `loans` table to filter by region and count the distinct accounts. The `A3` column in the `district` table contains the region information, and I'll filter for 'Prague'. The `loans` table contains information about loans, including the `account_id` and `district_id`. I will join these two tables on their respective district IDs.",
"query_result": {
"columns": [
{
"name": "count"
}
],
"rows": [
{
"values": [
{
"value": "2"
}
]
}
],
"total_row_count": 1
},
"natural_language_answer": "There are 2 accounts in Prague that are eligible for loans."
}
Nächste Schritte
- Weitere Informationen zu Kontextsätzen.
- Informationen zum Erstellen von Kontexten mit der Gemini CLI
- Informationen zum Verwalten von Kontextsätzen in Cloud SQL Studio