In diesem Dokument wird beschrieben, wie Sie QueryData testen und die Kontextsetdatei aktualisieren. Sie können testen, ob QueryData in der Lage ist, MongoDB-kompatible Abfragen in der Abfragesprache MQL (MongoDB Query Language) aus Fragen in natürlicher Sprache zu generieren. Wenn eine generierte Abfrage nicht korrekt ist, können Sie die Kontextsetdatei aktualisieren.
Weitere Informationen zu Kontextsets finden Sie in der Übersicht zu Kontextsets.Hinweis
Prüfen Sie, ob bereits ein Kontextset erstellt und die Kontextsetdatei in den QueryData-Agenten hochgeladen wurde. Weitere Informationen finden Sie unter Kontextsets in Firestore Studio verwalten.
Wenn Sie Kontextsetdateien herunterladen, aktualisieren und hochladen möchten, muss der IAM-Nutzer die Rolle Dataplex Catalog-Bearbeiter (roles/dataplex.catalogEditor) oder Dataplex Catalog-Administrator (roles/dataplex.catalogAdmin) für das Projekt haben. Weitere Informationen finden Sie unter Berechtigungen für Kontextsets.
QueryData testen
So testen Sie QueryData:
Rufen Sie in der Google Cloud Console die Seite Firestore auf.
Wählen Sie eine Datenbank aus, der Sie ein Kontextset hinzugefügt haben. Es wird nur Firestore mit MongoDB-Kompatibilität unterstützt.
Klicken Sie im Navigationsmenü auf Firestore Studio.
Klicken Sie im Bereich Explorer neben dem verwendeten Kontextset auf Aktionen anzeigen.
Klicken Sie auf Kontextset testen.
Klicken Sie im Query Editor auf Abfrage generieren, um den Bereich Hilfe beim Programmieren zu öffnen.
Geben Sie im Editor eine Frage in natürlicher Sprache ein, um eine MQL-Abfrage zu generieren, und klicken Sie auf Generieren.
Prüfen Sie die MQL-Abfrage auf Richtigkeit.
Kontextset herunterladen und aktualisieren
Wenn Sie mit der generierten MQL-Abfrage für eine Frage in natürlicher Sprache nicht zufrieden sind, laden Sie die vorhandene Kontextsetdatei herunter. Anschließend können Sie die Abfragevorlage überprüfen und aktualisieren und die aktualisierte Kontextdatei wieder in den Agenten hochladen.
So laden Sie ein Kontextset herunter und aktualisieren es:
- Klicken Sie im Bereich Explorer auf Aktionen anzeigen.
- 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 Kontextset auf Aktionen anzeigen.
- Klicken Sie auf Kontextset bearbeiten.
- Klicken Sie im Bereich Kontextsetdatei hochladen auf Durchsuchen und wählen Sie die aktualisierte Kontextsetdatei aus.
- Klicken Sie auf Speichern , um das Kontextset zu aktualisieren.
Wenn Sie mit der Genauigkeit Ihrer Antworten zufrieden sind, können Sie den QueryData-Endpunkt verwenden, um Ihre Anwendung mit dem Kontextset zu verbinden.
Kontextset-ID finden
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 Firestore auf.
Wählen Sie eine Datenbank aus, der Sie ein Kontextset hinzugefügt haben.
Klicken Sie im Navigationsmenü auf Firestore Studio.
Klicken Sie im Bereich Explorer neben dem verwendeten Kontextset auf Aktionen anzeigen.
Klicken Sie auf Kontextset bearbeiten.
Notieren Sie sich die Kontext-ID unter Kontextset-ID. Das Format der Kontextset-ID ähnelt
projects/data-agents-project/locations/us-central1/contextSets/bdf_pg_all_templates.
QueryData mit Anwendung verbinden
Legen Sie die Kontextset-ID im QueryData-Methodenaufruf fest, um einen erstellten Kontext für Datenbankdatenquellen wie AlloyDB, Spanner, Cloud SQL, Cloud SQL for PostgreSQL und Firestore bereitzustellen. Weitere Informationen finden Sie unter Kontext für KI-Datenagenten für Datenbankdatenquellen definieren.
Nachdem Sie das Kontextset getestet haben, können Sie im QueryData-Aufruf auf die Datenbankdatenquelle verweisen.
Beispiel für eine QueryData-Anfrage mit erstellt Kontext
Im folgenden Beispiel wird eine QueryData-Anfrage mit der Datenquelle firestore_reference (Firestore mit MongoDB-Kompatibilität) gezeigt. Das Feld agent_context_reference.context_set_id wird verwendet, um auf einen vorab erstellten Kontext zu verweisen, der in der Datenbank gespeichert ist.
{ "parent": "projects/context-set-project/locations/us-central1", "prompt": "How many accounts in the Prague region are eligible for loans?", "context": { "datasource_references": [ { "firestore_reference": { "database_reference": { "project_id": "context-set-project", "region": "us-central1", "database_id": "financial" }, "agent_context_reference": { "context_set_id": "projects/context-set-project/locations/us-central1/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.firestore_reference: Ist für die Abfrage der Datenbank erforderlich. Dieses Feld ändert sich je nach der Datenbank, die Sie abfragen.database_reference: Gibt Informationen zur Datenbankinstanz an.project_id: Die Projekt-ID der Datenbank.region: Die Region der Datenbank.database_id: Die ID der Datenbank.
agent_context_reference: Verweist auf den erstellten Kontext in der Datenbank.context_set_id: Die vollständige Kontextset-ID des in der Datenbank gespeicherten Kontexts. Beispiel:projects/context-set-project/locations/us-central1/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 MQL-Abfrage generiert.generate_disambiguation_question: Optional. Wenn auf „true“ gesetzt, werden Fragen zur Mehrdeutigkeitsauflösung generiert, falls die Abfrage mehrdeutig ist.
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\ndb.loans.aggregate([\n // 1. Filter loans in the Prague region\n { \n $match: { \"district.name\": \"Prague\" } \n },\n // 2. Group by account_id to get distinct values, and count them\n { \n $group: { \n _id: null, \n uniqueAccounts: { $addToSet: \"$account_id\" } \n } \n },\n // 3. Project the size of the unique accounts array\n { \n $project: { \n _id: 0,\n distinct_account_count: { $size: \"$uniqueAccounts\" } \n } \n }\n]);",
"intent_explanation": "The question asks for the number of accounts eligible for loans in the Prague region. I need to filter the documents in the loans collection to only give me those in the Prague region. Then I need to group the loans by account ID to get distinct values and count them. Finally, I need to project the size of the array of unique accounts.",
"query_result": {
"columns": [
{
"name": "distinct_account_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 Kontextsets.
- Kontextsets mit dem Context-Engineering-Agenten erstellen
- Erfahren Sie, wie Sie Kontextsets in Firestore Studio verwalten.