Ospita il tuo agente

Il passaggio finale di questo tutorial consiste nell'ospitare l'agente Dialogflow. App Engine viene utilizzato per l'hosting, perché è semplice da configurare e garantisce una buona scalabilità. L'integrazione di Dialogflow Messenger viene utilizzata per l'interfaccia utente di un agente.

Configurazione progetto

Idealmente, l'agente Dialogflow e l'istanza App Engine si trovano entrambi nello stesso progetto. Inoltre, devi abilitare l'API Cloud Build.

  1. Prima di creare l'istanza, seleziona il progetto dalla console Google Cloud.

    Vai al selettore progetti

  2. Abilitare l'API Cloud Build per il progetto.

    Abilita l'API Cloud Build

Configurazione dell'ambiente

Per sviluppare un'applicazione Go per App Engine, devi installare e configurare alcuni elementi. Segui tutti i passaggi non ancora completati in Configurazione dell'ambiente di sviluppo.

Crea il codice del servizio web

Il codice di esempio per questo tutorial è scritto in Go, ma puoi usare qualsiasi linguaggio supportato da App Engine. Crea la seguente struttura di file ovunque sulla tua macchina locale:

  • go-app/: directory per il tuo servizio Go.
    • templates/: directory per i tuoi modelli HTML Go.
      • index.html: modello Go HTML.
    • app.yaml: impostazioni di configurazione del tuo servizio.
    • main.go: il codice della tua applicazione.

Le tre sezioni successive forniscono i contenuti per i tre file.

Contenuti del file index.html

Questo file del modello HTML Go contiene il codice HTML della home page. Compila questo file con i seguenti contenuti:

<!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>

Contenuti del file app.yaml

Questo è un file di configurazione che specifica le impostazioni dell'ambiente di runtime del tuo servizio. Puoi fare riferimento al documento Go 1.12+ Runtime Environment per visualizzare l'elenco delle versioni Go supportate. Compila questo file con i seguenti contenuti:

runtime: go116  # or another supported version

Contenuti del file main.go

Questo file contiene il codice dell'applicazione. Compila questo file con i seguenti contenuti:

// 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)
	}
}

Deployment del servizio web

Ora il tuo codice è pronto per il deployment. Questi passaggi utilizzano lo strumento gcloud per il deployment:

  1. Assicurati che gcloud sia configurato con lo stesso progetto dell'agente Dialogflow. Per controllare il progetto:

    gcloud config get-value project

    Per modificare il progetto:

    gcloud config set project YOUR_PROJECT
  2. Nella directory go-app in cui si trova il file app.yaml, esegui il deployment del tuo servizio web in App Engine utilizzando questo comando:

    gcloud app deploy

    Il comando ti chiederà una regione. Assicurati di selezionare la stessa regione dell'agente Dialogflow. Il comando restituirà il valore target url, ovvero l'URL del tuo servizio web.

  3. Per avviare il browser e visualizzare il servizio web, puoi aprire l'URL di destinazione del passaggio precedente o eseguire il seguente comando:

    gcloud app browse

Configurare Dialogflow Messenger

Per configurare l'accesso non autenticato all'agente Dialogflow Messenger:

  1. Vai alla console Dialogflow CX.
  2. Scegli il tuo progetto Google Cloud.
  3. Seleziona l'agente.
  4. Seleziona la scheda Gestisci.
  5. Fai clic su Integrazioni nel menu della barra laterale sinistra.
  6. Fai clic su Connetti in Dialogflow Messenger.
  7. Si apre una finestra di dialogo di configurazione.
  8. Se l'integrazione è stata configurata in precedenza per questo agente, vedrai un codice HTML incorporabile. Indipendentemente dal fatto che tu voglia eseguire l'autenticazione o meno, fai clic sul pulsante Disattiva... nella parte inferiore della finestra di dialogo per riconfigurare le impostazioni nel passaggio successivo.
  9. Seleziona un Ambiente.
  10. Seleziona API non autenticata.
  11. Seleziona uno stile.
  12. Facoltativamente, limita l'accesso al dominio.
  13. Fai clic su Abilita l'API non autenticata.
  14. Nella finestra di dialogo viene mostrato il codice HTML incorporabile che può essere incorporato nel sito web. Copia questo codice.
  15. Fai clic su Fine.

Incorpora l'agente nel servizio web

Incolla il codice di incorporamento copiato in precedenza nel file index.html. Gli elementi HTML <script> e <df-messenger> devono trovarsi nell'elemento <body> della pagina.

Esegui di nuovo il deployment dell'app di servizio web con gcloud. Dopo il deployment, puoi interagire con l'agente tramite la pagina web facendo clic sull'icona della chat nell'angolo in basso a destra.

Screenshot dell'agente Dialogflow incorporato nella pagina web

Ora hai un agente Dialogflow di cui è stato eseguito il deployment completo. Prova a parlare con l'agente.

esegui la pulizia

Durante i passaggi di questo tutorial, hai creato risorse fatturabili. Per evitare che al tuo account Google Cloud vengano addebitati costi aggiuntivi:

  1. Elimina l'istanza di database.
  2. Elimina la funzione:

    gcloud functions delete tutorial-telecommunications-webhook
  3. Disattivare l'app.

  4. Eliminare l'agente

Informazioni dettagliate

Per ulteriori informazioni sui passaggi precedenti, vedi: