Datenbank abfragen

Ihr Webhook verwendet derzeit hartcodierte Daten in der Funktion cruisePlanCoverage. In diesem Schritt der Anleitung erstellen Sie eine Spanner-Datenbank, füllen sie mit abgedeckten Zielen und aktualisieren Ihre Funktion, um die Datenbank abzufragen.

Projektkonfiguration

Es ist wichtig, dass sich Ihr Dialogflow-Agent und die Datenbank im selben Projekt befinden. Dies ist die einfachste Möglichkeit, Ihrer Funktion sicheren Zugriff auf Ihre Datenbank zu gewähren. Außerdem müssen Sie die Spanner API aktivieren.

  1. Wählen Sie vor dem Erstellen der Datenbank Ihr Projekt in der Google Cloud Console aus.

    Zur Projektauswahl

  2. Aktivieren Sie die Spanner API für das Projekt.

    Spanner API aktivieren

Spanner-Instanz erstellen

Bei der ersten Verwendung von Spanner müssen Sie eine Instanz erstellen. Dies ist eine Zuordnung von Ressourcen, die von Spanner-Datenbanken in der Instanz verwendet werden.

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

    Zu den Spanner-Instanzen

  2. Klicken Sie auf Instanz erstellen.

  3. Geben Sie als Instanznamen Tutorial Instance ein.

  4. Die Instanz-ID wird automatisch anhand des Instanznamens eingetragen.

  5. Behalten Sie unter Konfiguration auswählen die Standardoption Regional bei und wählen Sie denselben regionalen Standort aus, den Sie beim Erstellen der Funktion ausgewählt haben.

  6. Geben Sie unter Rechenkapazität zuweisen 100 Verarbeitungseinheiten ein. Dadurch wird eine minimale Kapazität für die Anleitung bereitgestellt.

  7. Klicken Sie auf Erstellen. In der Google Cloud -Konsole wird die Seite Übersicht für die von Ihnen erstellte Instanz angezeigt.

Spanner-Datenbank erstellen

Nachdem Sie eine Instanz erstellt haben, müssen Sie eine Datenbank erstellen. So erstellen Sie eine Datenbank:

  1. Klicken Sie auf der Seite Übersicht der Instanz auf Datenbank erstellen.
  2. Geben Sie als Datenbankname tutorial-database ein.
  3. Wählen Sie den Datenbankdialekt Google Standard-SQL aus.
  4. Klicken Sie auf Erstellen. In der Google Cloud Console wird die Seite Übersicht für die von Ihnen erstellte Datenbank angezeigt.

Tabelle für die Datenbank erstellen

Nachdem Sie eine Datenbank erstellt haben, müssen Sie eine Tabelle für die Datenbank erstellen. So erstellen Sie eine Tabelle:

  1. Klicken Sie auf der Seite Übersicht der Datenbank im Abschnitt „Tabellen“ auf Tabelle erstellen.
  2. Geben Sie auf der Seite DDL-Anweisungen schreiben Folgendes ein:

    CREATE TABLE Destinations (
      Destination STRING(1024),
      Covered BOOL,
    ) PRIMARY KEY(Destination);
    
  3. Klicken Sie auf Senden. In der Google Cloud Console wird die Seite Übersicht der Datenbank angezeigt. Dort sehen Sie, dass Schemaaktualisierungen durchgeführt werden. Warte, bis das Update abgeschlossen ist.

Daten in die Tabelle einfügen

Nachdem Ihre Datenbank jetzt eine Tabelle hat, müssen Sie ihr Daten hinzufügen. So fügen Sie Daten hinzu:

  1. Klicken Sie in der Liste der Tabellen auf der Seite Übersicht der Datenbank auf die Zieltabelle. In der Google Cloud Console wird die Seite Schema der Zieltabelle angezeigt.
  2. Klicken Sie im linken Navigationsmenü auf Daten, um die Seite Daten der Zieltabelle aufzurufen.
  3. Klicken Sie auf Einfügen. In der Google Cloud Console wird die Seite Abfrage der Zieltabelle „Destinations“ mit einem neuen Abfrage-Tab angezeigt, der INSERT- und SELECT-Anweisungen enthält. Überschreiben Sie diese Anweisungen mit den folgenden:

    INSERT INTO Destinations (Destination, Covered)
    VALUES('anguilla', TRUE),
          ('canada', TRUE),
          ('china', TRUE),
          ('italy', TRUE),
          ('mexico', TRUE),
          ('spain', FALSE);
    
  4. Klicken Sie auf Ausführen.

  5. Klicken Sie im linken Navigationsmenü noch einmal auf Daten, um die Daten der Zieltabelle aufzurufen. Prüfen Sie, ob die Tabelle die gewünschten Daten enthält.

Cloud Functions-Funktion aktualisieren, um die Datenbank abzufragen

Die Funktion cruisePlanCoverage im Webhook-Code prüft, ob bestimmte Umgebungsvariablen mit Informationen für die Verbindung zur Datenbank festgelegt sind. Wenn diese Umgebungsvariablen nicht festgelegt sind, verwendet die Funktion eine hartcodierte Liste von Zielen.

Nachdem Sie eine Datenbank eingerichtet haben, aktualisieren Sie Ihre Cloud Functions-Funktion, um die erforderlichen Umgebungsvariablen festzulegen:

  1. Öffnen Sie die Übersichtsseite zu Cloud Functions.

    Zur Cloud Functions-Übersicht

  2. Klicken Sie auf die Funktion „tutorial-telecommunications-webhook“, um die zugehörige Detailseite aufzurufen.

  3. Klicken Sie auf Bearbeiten.

  4. Öffnen Sie den Bereich Laufzeit-, Build- und Verbindungseinstellungen.

  5. Wählen Sie den Tab Laufzeit aus.

  6. Fügen Sie im Abschnitt „Laufzeitumgebungsvariablen“ die folgenden Variablen hinzu:

    • PROJECT_ID: Ihre Projekt-ID.
    • SPANNER_INSTANCE_ID: Ihre Spanner-Instanz-ID (wahrscheinlich tutorial-instance)
    • SPANNER_DATABASE_ID: Ihre Spanner-Datenbank-ID (wahrscheinlich tutorial-database)
  7. Klicken Sie auf Weiter.

  8. Klicken Sie auf Bereitstellen.

  9. Warten Sie, bis die Statusanzeige angibt, dass die Funktion erfolgreich bereitgestellt wurde.

KI-Agenten testen

Ihr KI-Agent ist jetzt bereit zum Testen. Klicken Sie in der Dialogflow-Konsole auf den Button Agent testen, um den Simulator zu öffnen. Versuchen Sie, die folgende Unterhaltung mit dem KI-Agenten zu führen:

Gesprächsrunde Ich Agent
1 Hallo! Hallo! Ich bin der virtuelle Kundenservicemitarbeiter für Telekommunikation. Ich kann Ihnen bei Fragen zur Abrechnung und zu Tarifen helfen, Probleme beheben und Reise- und Kreuzfahrtpläne hinzufügen. Wie kann ich Ihnen heute helfen?
2 Ich möchte einen Kreuzfahrtplan hinzufügen Ich sehe mir das mal an. Wie lautet Ihre Telefonnummer, die Sie bei uns angegeben haben?
3 123-123-1234 Wie viele Tage dauert Ihre Kreuzfahrt?
4 7 Option 1 umfasst Anrufe und SMS. Die Kosten betragen [XX] € pro Tag. Weitere Informationen findest du hier: [URL]. Option 2 umfasst Anrufe, SMS und Daten. Die Kosten betragen [XX] € pro Tag. Weitere Informationen findest du hier: [URL]. Welchen Kreuzfahrtplan möchtest du hinzufügen?
5 Option 1 Ok. Ich habe diesen Tarif Ihrem Konto hinzugefügt. Während Ihrer Kreuzfahrt benötigen Sie möglicherweise auch an Land Mobilfunkempfang. An welchem Hafen werden Sie anlegen?
6 Italien Und wie viele Tage verbringen Sie dort?
7 3 Wir haben tolle Neuigkeiten! In Italien ist die Abdeckung an Land kostenlos. Das war's! Kann ich sonst noch etwas für Sie tun?

Wenn Sie sich den Code ansehen, werden Sie feststellen, dass Italien nicht in der hartcodierten Liste der abgedeckten Ziele enthalten ist. Das bedeutet, dass Ihr Webhook erfolgreich mit der Datenbank verbunden wurde, die Italien enthält.

Fehlerbehebung

Der Webhook-Code enthält Logging-Anweisungen. Wenn Probleme auftreten, rufen Sie die Logs für Ihre Cloud Functions-Funktion auf.

Wenn Ihre Funktion keine Verbindung zur Datenbank herstellt und in den Logs ein Berechtigungsfehler angezeigt wird, müssen Sie möglicherweise die Rolle für das von Ihrer Funktion verwendete Standarddienstkonto korrigieren. Dieses Dienstkonto hat das Format PROJECT_ID@. Sie können dieses Problem auf eine der folgenden Arten beheben:

Weitere Informationen

Weitere Informationen zu den oben genannten Schritten finden Sie hier: