KI-Datenagenten prüfen und aufrufen

In diesem Dokument wird beschrieben, wie Sie einen Agent prüfen und die Kontextdatei des Agents aktualisieren. Sie können einen Agenten untersuchen, um seine Fähigkeit zu testen, SQL-Abfragen aus Fragen in natürlicher Sprache zu generieren. Wenn eine generierte Anfrage nicht korrekt ist, können Sie den Kontext des Agents aktualisieren.

Weitere Informationen zu Daten-Agents finden Sie unter Daten-Agents – Übersicht.

Hinweise

Prüfen Sie, ob bereits ein Daten-Agent erstellt und der Agent-Kontext in den Daten-Agenten hochgeladen wurde. Weitere Informationen finden Sie unter Data Agents in Spanner Studio verwalten.

KI-Datenagenten prüfen

So prüfen Sie einen Daten-Agent:

  1. Rufen Sie in der Google Cloud Console die Spanner-Seite auf.

    Spanner aufrufen

  2. Wählen Sie eine Instanz aus der Liste und dann eine Datenbank aus.

  3. Klicken Sie im Navigationsmenü auf Spanner Studio.

  4. Klicken Sie im Explorer-Bereich neben Data Agents auf Aktionen ansehen.

  5. Klicken Sie auf Agent prüfen.

  6. Klicken Sie im Abfrageeditor auf SQL generieren, um den Bereich Hilfe beim Programmieren zu öffnen.

  7. Geben Sie eine Frage in natürlicher Sprache ein, um eine SQL-Abfrage zu generieren, und klicken Sie auf Generieren.

  8. Prüfen Sie die SQL-Abfrage auf Richtigkeit.

Kontext für einen KI-Datenagenten 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 Kontextdatei des Agents herunter. Anschließend können Sie die Abfragevorlage überprüfen und aktualisieren und die aktualisierte Kontextdatei wieder in den Agenten hochladen.

So laden Sie Kontext für einen Daten-Agent herunter und aktualisieren ihn:

  1. Klicken Sie im Explorer-Bereich neben Data Agents auf Aktionen ansehen.
  2. Klicken Sie auf Kontextdatei des Agenten herunterladen.
  3. Folgen Sie der Anleitung unter Kontexte mit der Gemini CLI erstellen, um den Kontext mit zusätzlichen Frage-Antwort-Paaren zu aktualisieren.
  4. Klicken Sie im Explorer-Bereich neben Ihrem Daten-Agent auf Aktionen ansehen.
  5. Klicken Sie auf Agent bearbeiten.
  6. Klicken Sie im Abschnitt Agent-Kontextdatei hochladen auf Durchsuchen und wählen Sie die aktualisierte Agent-Kontextdatei aus.
  7. Klicken Sie auf Speichern, um den Agent-Kontext zu aktualisieren.

Wenn Sie mit der Genauigkeit Ihrer Antworten zufrieden sind, können Sie den QueryData-Endpunkt verwenden, um Ihre Anwendung mit dem Daten-Agent zu verbinden.

Agentenkontext-ID finden

Wenn Sie eine Datenanwendung mit dem Daten-Agent verbinden möchten, benötigen Sie die Kontext-ID des Agents.

  1. Rufen Sie in der Google Cloud Console die Spanner-Seite auf.

    Spanner aufrufen

  2. Wählen Sie eine Instanz aus der Liste und dann eine Datenbank aus.

  3. Klicken Sie im Navigationsmenü auf Spanner Studio.

  4. Klicken Sie im Explorer-Bereich neben Data Agents auf Aktionen ansehen.

  5. Klicken Sie auf Agent bearbeiten.

  6. Notieren Sie sich die Kontext-ID unter Agentenkontext-ID. Das Format der Agent-Kontext-ID ähnelt projects/cloud-db-nl2sql/locations/us-east1/contextSets/bdf_pg_all_templates.

Daten-Agent mit Anwendung verbinden

Legen Sie die Agent-Kontext-ID im QueryData-Methodenaufruf fest, um 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 KI-Datenagenten geprüft haben, können Sie in Ihrem QueryData-Aufruf auf die Datenbankdatenquelle verweisen.

Beispiel für eine QueryData-Anfrage mit selbst erstelltem Kontext

Das folgende Beispiel zeigt eine QueryData-Anfrage mit der Datenquelle spanner_reference-Datenbank. Das Feld agent_context_reference.context_set_id wird verwendet, um auf vorab erstellten Kontext zu verweisen, der in der Datenbank gespeichert ist.

{
  "parent": "projects/cloud-db-nl2sql/locations/us-central1",
  "prompt": "How many accounts who have region in Prague are eligible for loans? A3 contains the data of region.",
  "context": {
    "datasource_references": [
      {
        "spanner_reference" {
          "database_reference" {
            "engine": "GOOGLE_SQL"
            "project_id": "cloud-db-nl2sql"
            "region": "us-central1"
            "instance_id": "evalbench"
            "database_id": "financial"
          },
          "agent_context_reference": {
            "context_set_id": "projects/cloud-db-nl2sql/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.
      • spanner_reference: Beim Abfragen der Datenbank erforderlich. Dieses Feld ändert sich je nach der Datenbank, die Sie abfragen.
        • database_reference: Gibt Informationen zu Ihrer Datenbankinstanz an.
          • engine: Der SQL-Dialekt der Datenbank. Für Spanner-Datenbanken auf GOOGLE_SQL festlegen.
          • project_id: Die Projekt-ID der Datenbankinstanz.
          • region: Die Region der Spanner-Instanz.
          • instance_id: Die Instanz-ID der Spanner-Instanz.
          • database_id: Die ID der Datenbank.
        • agent_context_reference: Links zum erstellten Kontext in der Datenbank.
          • context_set_id: Die vollständige Agentenkontext-ID des in der Datenbank gespeicherten Kontexts. Beispiel: projects/cloud-db-nl2sql/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 dieser Wert auf „true“ gesetzt ist, wird eine Erklärung der SQL-Abfrage generiert.
    • generate_disambiguation_question: Optional. Wenn auf „true“ gesetzt, werden bei mehrdeutigen Anfragen Fragen zur Begriffsklärung generiert.

Beispielantwort QueryData

Hier ist ein Beispiel für eine erfolgreiche Antwort auf einen 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