Conversational Agents (Dialogflow CX) si integra con GitHub. Questa integrazione semplifica la esportazione dell'agente in JSON per un push su GitHub e il pull da GitHub per un ripristino dell'agente. Il formato JSON esportato inviato a GitHub è costituito dai contenuti espansi del file ZIP dell'agente esportato.
L'utilizzo di questa funzionalità ti consente di sfruttare le funzionalità di controllo del codice sorgente di GitHub, ad esempio:
- Revisione delle modifiche apportate dall'agente utilizzando strumenti di revisione del codice
- Esamina le differenze tra gli agenti utilizzando strumenti di confronto
- Unione
- e così via
Limitazioni
Si applicano le seguenti limitazioni:
- GitHub ha un limite di frequenza per il numero di richieste all'ora (5000 per gli account non Enterprise, 15.000 per gli account Enterprise). Se il push dell'agente supera questo limite, la console Dialogflow CX segnalerà l'errore di limite di frequenza. Puoi riprovare a inviare 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 i 500, potresti non essere in grado di eseguire push su GitHub dagli agenti conversazionali (Dialogflow CX). In questi casi, puoi esportare
l'agente in un file ZIP e utilizzare la CLI Git sulla tua macchina per spingere i file dell'agente su GitHub. Questa limitazione verrà risolta in una release successiva di Conversational Agents (Dialogflow CX). - I repo con accesso privato self-hosted non sono supportati, poiché Conversational Agents (Dialogflow CX) non può accedere a questi repo.
- Il repository GitHub non può contenere altri file oltre a quelli dell'agente esportati dall'esportazione dell'agente. Tutti gli altri file nel repository verranno rimossi a ogni push.
Configurazione
Per configurare questa integrazione:
- Apri la console Dialogflow CX.
- Scegli il tuo progetto Google Cloud.
- Seleziona il tuo agente.
- Fai clic sulla scheda Gestisci.
- Fai clic su Git nella sezione Test e deployment.
- Fai clic su Aggiungi integrazione Git per aprire una finestra di dialogo di configurazione.
- Inserisci quanto segue:
- Nome visualizzato per la connessione GitHub.
- URL del repository GitHub (ad esempio
https://api.github.com/repos/<repository_owner>/<repository_name>
). - Aggiungi i rami GitHub con cui l'agente interagirà. Puoi designare un ramo come predefinito facendo clic sull'icona a forma di stella accanto.
- Il token personale GitHub non può essere visualizzato una volta impostato, sono supportati solo gli aggiornamenti.
Se utilizzi un token di accesso personale granulare,
devi disporre delle seguenti
autorizzazioni:
- Autorizzazioni del repository > Contenuti: lettura e scrittura
- Autorizzazioni del repository > Metadati: di sola lettura (dovrebbe essere selezionata automaticamente dopo aver selezionato l'autorizzazione Contenuti)
- Fai clic su Connetti.
Questa configurazione può essere modificata in qualsiasi momento facendo clic sull'icona di modifica.
Push e ripristino
Una volta configurato, puoi eseguire push/pull dell'agente su/da GitHub.
Il pulsante Push viene utilizzato per esportare l'agente e creare un commit nel ramo GitHub selezionato nel menu a discesa Ramo Git. Questo commit sarà costituito dall'intero agente e non da modifiche specifiche e eliminerà 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 Dialogflow CX.
Gli utenti con i ruoli Lettore Dialogflow hanno la possibilità di eseguire push nei 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 Conversational Agents (Dialogflow CX) da questi dati. L'agente verrà sovrascritto nello stesso modo in cui si comporta qualsiasi ripristino dell'agente.
Caso d'uso di esempio
L'esempio seguente illustra come questa funzionalità può essere utilizzata da più persone per proporre modifiche diverse all'agente di produzione.
Supponiamo che il tuo agente utilizzi i seguenti branch di GitHub:
- Prod: il branch per l'agente di produzione
- Dev1: ramo per lo sviluppo dell'agente
- Dev2: un altro ramo per lo sviluppo dell'agente
L'utente 1 vuole proporre modifiche agli agenti e segue questi passaggi:
- Esporta l'agente di produzione in un nuovo agente.
- Apporta le modifiche che preferisci a questa copia dell'agente.
- Testa le modifiche.
- Esegui il push dell'agente modificato nel branch Dev1.
- Crea una richiesta di unione al ramo Prod.
L'utente 2 vuole proporre modifiche agli agenti e segue questi passaggi:
- Esporta l'agente di produzione in un nuovo agente.
- Apporta le modifiche che preferisci a questa copia dell'agente.
- Testa le modifiche.
- Esegui il push dell'agente modificato nel branch Dev2.
- Crea una richiesta di unione al ramo Prod.
L'utente 3 esamina le richieste di unione di entrambi gli utenti ed esegue i seguenti passaggi:
- Risolvi i conflitti.
- Applica le modifiche approvate.
- Ripristina il ramo GitHub di produzione nell'agente Conversational Agents (Dialogflow CX) di produzione.