Agent hosten

Der letzte Schritt dieser Anleitung ist das Hosten Ihres Dialogflow-Agenten. App Engine wird für das Hosting verwendet, da es einfach einzurichten ist und gut skaliert. Die Dialogflow Messenger Integration wird für eine Benutzeroberfläche des Agenten verwendet.

Projektkonfiguration

Im Idealfall befinden sich Ihr Dialogflow-Agent und die App Engine-Instanz im selben Projekt. Außerdem müssen Sie die Cloud Build API aktivieren.

  1. Wählen Sie vor dem Erstellen der Instanz, wählen Sie Ihr Projekt aus der Google Cloud Konsole aus.

    Zur Projektauswahl

  2. Aktivieren Sie die Cloud Build API für das Projekt.

    Cloud Build API aufrufen

Umgebung einrichten

Sie müssen einige Dinge installieren und konfigurieren, um eine Go-Anwendung für App Engine zu entwickeln. Führen Sie alle Schritte aus, die Sie noch nicht unter Entwicklungsumgebung einrichtenabgeschlossen haben.

Webdienstcode erstellen

Der Beispielcode für diese Anleitung ist in Go geschrieben, aber Sie können jede von App Engine unterstützte Sprache verwenden. Erstellen Sie die folgende Dateistruktur an einer beliebigen Stelle auf Ihrem lokalen Computer:

  • go-app/: Verzeichnis für Ihren Go-Dienst
    • templates/: Verzeichnis für Ihre Go-HTML-Vorlagen
      • index.html: Go-HTML-Vorlage
    • app.yaml: die Konfigurationseinstellungen Ihres Dienstes
    • main.go: Ihr Anwendungscode

In den nächsten drei Abschnitten finden Sie Inhalte für die drei Dateien.

Inhalte der Datei index.html

Diese Go-HTML-Vorlagendatei enthält das HTML für die Startseite. Füllen Sie diese Datei mit den folgenden Inhalten:

<!DOCTYPE html>
<html lang="en-US">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width">
    <title>Tutorial agent</title>
  </head>
  <body>
    <p>Open the chat window in the bottom right corner.</p>
  </body>
</html>

Inhalte der Datei app.yaml

Dies ist eine Konfigurationsdatei, in der die Einstellungen der Laufzeitumgebung Ihres Dienstes festgelegt sind. Im Dokument Laufzeitumgebungen von Go 1.12+ finden Sie eine Liste der unterstützten Go-Versionen. Füllen Sie diese Datei mit den folgenden Inhalten:

runtime: go116  # or another supported version

Inhalte der Datei main.go

Diese Datei enthält Ihren Anwendungscode. Füllen Sie diese Datei mit den folgenden Inhalten:

// Package main is the main package
package main

import (
	"log"
	"net/http"
	"os"
	"text/template"
)

var templates *template.Template

func init() {
	templates = template.Must(template.New("").ParseGlob("templates/*"))
}

// indexHandler handles the homepage.
func indexHandler(w http.ResponseWriter, r *http.Request) {
	if r.URL.Path != "/" {
		http.NotFound(w, r)
		return
	}
	if err := templates.ExecuteTemplate(w, "index.html", nil); err != nil {
		log.Fatal(err)
	}
}

func main() {
	// Register the handlers
	http.HandleFunc("/", indexHandler)

	port := os.Getenv("PORT")
	if port == "" {
		port = "8080"
		log.Printf("Defaulting to port %s", port)
	}

	log.Printf("Listening on port %s", port)
	if err := http.ListenAndServe(":"+port, nil); err != nil {
		log.Fatal(err)
	}
}

Webdienst bereitstellen

Ihr Code ist jetzt bereit für die Bereitstellung. In diesen Schritten wird das gcloud-Tool für die Bereitstellung verwendet:

  1. Achten Sie darauf, dass gcloud mit demselben Projekt wie Ihr Dialogflow-Agent konfiguriert ist. So prüfen Sie das Projekt:

    gcloud config get-value project

    So ändern Sie das Projekt:

    gcloud config set project YOUR_PROJECT
  2. Stellen Sie in Ihrem go-app-Verzeichnis, in dem sich die Datei app.yaml befindet, Ihren Webdienst mithilfe des folgenden Befehls in App Engine bereit:

    gcloud app deploy

    Sie werden vom Befehl aufgefordert, eine Region anzugeben. Wählen Sie dieselbe Region wie für Ihren Dialogflow-Agenten aus. Der Befehl gibt den Wert target url aus, die URL für Ihren Webdienst.

  3. Wenn Sie Ihren Browser starten und Ihren Webdienst aufrufen möchten, können Sie die Ziel-URL aus dem vorherigen Schritt öffnen oder den folgenden Befehl ausführen:

    gcloud app browse

Dialogflow Messenger einrichten

So richten Sie den nicht authentifizierten Zugriff auf Ihren Dialogflow CX Messenger-Agenten ein:

  1. Rufen Sie die Dialogflow CX Console auf.
  2. Wählen Sie Ihr Google Cloud-Projekt aus.
  3. Wählen Sie den Agent aus.
  4. Wählen Sie den Tab Verwalten.
  5. Klicken Sie im linken Seitenleistenmenü auf Integrations.
  6. Klicken Sie bei Dialogflow CX Messenger auf Verbinden.
  7. Ein Konfigurationsdialogfeld wird geöffnet.
  8. Wenn die Integration zuvor für diesen Agenten eingerichtet wurde, wird ein einbettbarer HTML-Code angezeigt. Unabhängig davon, ob Sie eine authentifizierte oder nicht authentifizierte Integration möchten, klicken Sie unten im Dialogfeld auf die Schaltfläche Deaktivieren... , damit Sie die Einstellungen im nächsten Schritt neu konfigurieren können.
  9. Wählen Sie eine Umgebung aus.
  10. Wählen Sie Nicht authentifizierte API aus.
  11. Wählen Sie ein Design aus.
  12. Optional können Sie den Zugriff auf Domains einschränken.
  13. Klicken Sie auf Nicht authentifizierte API aktivieren.
  14. Im Dialogfeld wird der einbettbare HTML-Code angezeigt, der in Ihre Website eingebettet werden kann. Kopieren Sie diesen Code.
  15. Klicken Sie auf Fertig.

Agenten in Ihren Webdienst einbetten

Fügen Sie den oben kopierten Einbettungscode in Ihre Datei index.html ein. Die HTML-Elemente <script> und <df-messenger> sollten sich im <body>-Element Ihrer Seite befinden.

Stellen Sie Ihre Webdienstanwendung noch einmal mit gcloud bereit. Nach der Bereitstellung können Sie über die Webseite mit Ihrem Agenten interagieren. Klicken Sie dazu rechts unten auf das Chatsymbol.

Screenshot eines in eine Webseite eingebetteten Dialogflow-Agenten

Sie haben jetzt einen vollständig bereitgestellten Dialogflow-Agenten. Versuchen Sie, ein Gespräch mit dem Agenten zu führen.

Bereinigen

Bei der Durchführung der Schritte in dieser Anleitung, haben Sie kostenpflichtige Ressourcen erstellt. So vermeiden Sie zusätzliche Kosten für Ihr Google Cloud-Konto:

  1. Löschen Sie Ihre Datenbankinstanz.
  2. Löschen Sie Ihre Funktion:

    gcloud functions delete tutorial-telecommunications-webhook
  3. Deaktivieren Sie Ihre Anwendung.

  4. Löschen Sie Ihren Agenten.

Weitere Informationen

Weitere Informationen zu den oben genannten Schritten finden Sie unter: