Esportazione/ripristino GitHub

Dialogflow CX si integra con GitHub. Questa integrazione semplifica l'esportazione dell'agente in formato JSON per il push a GitHub ed il pull da GitHub per un ripristino degli agenti. Il formato JSON esportato inviato a GitHub è il contenuto del file ZIP espanso dell'agente esportato.

Questa funzione ti permette di sfruttare le funzioni di controllo del codice sorgente di GitHub, come

Limitazioni

Si applicano le seguenti limitazioni:

  • GitHub prevede un limite di frequenza per il numero di richieste all'ora (5000 per gli account non aziendali, 15.000 per gli account aziendali). Se il push dell'agente supera questo limite, la console di Dialogflow segnalerà l'errore relativo alla limitazione di frequenza. Puoi riprovare a eseguire il push dopo un'ora.
  • Le API GitHub hanno un limite al numero di file che possono essere aggiornati in un singolo commit. Se il numero di file supera 500, potresti non essere in grado di eseguire il push a GitHub da Dialogflow. In questi casi, puoi esportare
    l'agente come file ZIP e utilizzare l'interfaccia a riga di comando Git sulla tua macchina per eseguire il push dei file dell'agente in GitHub. Questa limitazione verrà risolta in una release successiva di Dialogflow.
  • I repository in self-hosting per l'accesso privato non sono supportati, perché Dialogflow non può accedere a questi repository.
  • Il repository GitHub non può contenere nessun file diverso dai file degli agenti esportati dall'esportazione degli agenti. Qualsiasi altro file nel repository verrà rimosso a ogni push.

Configurazione

Per configurare questa integrazione:

  1. Apri la console Dialogflow CX.
  2. Scegli il tuo progetto Google Cloud.
  3. Seleziona l'agente.
  4. Fai clic sulla scheda Gestisci.
  5. Fai clic su Git nella sezione Test e deployment.
  6. Fai clic su Aggiungi integrazione Git. Si apre una finestra di dialogo di configurazione.
  7. Inserisci i seguenti valori:
    • Nome visualizzato per la connessione GitHub.
    • URL del repository GitHub (ad esempio: https://api.github.com/repos/<repository_owner>/<repository_name>).
    • Aggiungi rami GitHub con cui il tuo agente interagirà. Puoi impostare un ramo come predefinito facendo clic sull'icona a forma di stella accanto a quest'ultimo.
    • Una volta impostato, il token personale di GitHub non può essere visualizzato; sono supportati solo gli aggiornamenti. Se utilizzi un token di accesso personale granulare, devi disporre delle seguenti autorizzazioni:
      • Autorizzazioni repository > Contenuti: lettura e scrittura
      • Autorizzazioni repository > Metadati: sola lettura (deve essere selezionata automaticamente dopo aver selezionato l'autorizzazione Contenuti)
  8. Fai clic su Connetti.

Puoi cambiare questa configurazione in qualsiasi momento facendo clic sull'icona di modifica.

Esegui il push e ripristina

Dopo la configurazione, puoi eseguire il push/pull dell'agente su/da GitHub.

Il pulsante Push viene utilizzato per esportare l'agente e confermare il commit al ramo GitHub selezionato nel menu a discesa del ramo Git. Questo commit è composto dall'intero agente e non da modifiche specifiche ed elimina tutti i file esistenti nel repository.

Per i nuovi repository, assicurati che sia presente almeno un commit da GitHub prima di utilizzare l'opzione push nella console di Dialogflow.

Gli utenti con ruoli Lettore Dialogflow possono eseguire il push ai repository GitHub. Per evitare push indesiderati, configura questi agenti con token di accesso personale di sola lettura.

Il pulsante Ripristina viene utilizzato per estrarre i dati dell'agente dal ramo GitHub selezionato nel menu a discesa del ramo Git e ripristinare l'agente Dialogflow da questi dati. L'agente verrà sovrascritto nello stesso modo in cui funziona il ripristino di qualsiasi agente.

Esempio di caso d'uso

L'esempio seguente illustra come questa funzionalità può essere utilizzata da più persone per proporre modifiche diverse a un agente di produzione.

Tieni presente che il tuo agente utilizza i seguenti rami GitHub:

  • Prod: ramo per l'agente di produzione
  • Dev1: ramo per lo sviluppo degli agenti
  • Dev2: un altro ramo per lo sviluppo degli agenti.

L'utente 1 vuole proporre modifiche all'agente e completa i seguenti passaggi:

  1. Esporta l'agente di produzione in un nuovo agente.
  2. Apporta le modifiche desiderate alla copia dell'agente.
  3. Prova le modifiche.
  4. Esegui il push dell'agente modificato al ramo Dev1.
  5. Crea una richiesta di unione per il ramo Prod.

L'utente 2 vuole proporre modifiche all'agente e procede nel seguente modo:

  1. Esporta l'agente di produzione in un nuovo agente.
  2. Apporta le modifiche desiderate alla copia dell'agente.
  3. Prova le modifiche.
  4. Esegui il push dell'agente modificato al ramo Dev2.
  5. Crea una richiesta di unione per il ramo Prod.

L'utente 3 esamina le richieste di unione di entrambi gli utenti e procede nel seguente modo:

  1. Risolvi i conflitti.
  2. Esegue il commit delle modifiche approvate.
  3. Ripristina il ramo GitHub di produzione nell'agente Dialogflow di produzione.