Conversational Agents (Dialogflow CX) si integra con più provider Git (GitHub, GitLab, Bitbucket e altri). Questa integrazione semplifica l'esportazione dell'agente in JSON per il push a un provider Git e il pull da un provider Git per il ripristino dell'agente. Il formato JSON esportato inviato a un provider Git è il contenuto del file zip espanso dell'agente esportato.
L'utilizzo di questa funzionalità ti consente di sfruttare le funzionalità di controllo del codice sorgente di un provider Git, ad esempio:
- Revisioni delle modifiche dell'agente utilizzando gli strumenti di revisione del codice
- Esaminare le differenze tra gli agenti utilizzando gli strumenti di confronto
- Unioni
Limitazioni
Si applicano le seguenti limitazioni:
- [Solo versione precedente dell'integrazione] Le API GitHub hanno una limitazione al numero di file che possono essere aggiornati in un singolo commit. Se il numero di file supera 500, potresti non riuscire a eseguire il push su GitHub da Conversational Agents (Dialogflow CX). In questi casi, puoi esportare l'agente come file ZIP e utilizzare la CLI Git sulla tua macchina per eseguire il push dei file dell'agente su GitHub. Questa limitazione verrà risolta in una release successiva di Conversational Agents (Dialogflow CX).
- I repository self-hosted con accesso privato a GitHub non sono supportati, perché Conversational Agents (Dialogflow CX) non può accedervi.
- Il repository Git non può contenere file diversi da quelli dell'agente esportati dall'esportazione dell'agente. Tutti gli altri file nel repository verranno rimossi a ogni push.
Configurazione
Per configurare questa funzionalità, devi acquisire un token di accesso dal tuo provider Git, archiviarlo in Secret Manager e fornire la risorsa secret a Conversational Agents (Dialogflow CX):
Token di accesso
Per ottenere un token di accesso dal tuo provider Git:
GitHub
Devi acquisire un token personale GitHub. Se utilizzi un token di accesso personale granulare, devi disporre delle seguenti autorizzazioni di accesso:
- Autorizzazioni repository > Contenuti: lettura e scrittura
- Repository Permissions > Metadata (Autorizzazioni repository > Metadati): Read-only (deve essere selezionato automaticamente dopo aver selezionato l'autorizzazione Contents)
GitLab
Devi acquisire un token di accesso personale GitLab.
Bitbucket
Devi acquisire un token di accesso Bitbucket.
Secret Manager
Ora che hai un token di accesso, devi creare un secret per il token:
Configurazione di Conversational Agents (Dialogflow CX)
Per configurare questa integrazione per Conversational Agents (Dialogflow CX):
- Fornisci all'agente di servizio Dialogflow
l'autorizzazione ad accedere al secret del token di accesso in Secret Manager.
Fornisci il ruolo
Secret Manager Secret Accessor
all'account di serviziogcp-sa-dialogflow.iam.gserviceaccount.com
nel progetto dell'agente. Vedi Concedere l'accesso al secret di Secret Manager. - Apri la configurazione dell'integrazione Git:
- Console Conversational Agents
- Apri la visualizzazione delle impostazioni facendo clic sull'icona delle impostazioni vicino all'angolo in alto a destra.
- Scorri verso il basso e fai clic su Aggiungi integrazione Git.
- Console di Dialogflow CX
- Fai clic sulla scheda Gestisci.
- Fai clic su Git nella sezione Test e deployment.
- Fai clic su Crea nuova.
- Console Conversational Agents
- Fornisci i dettagli della configurazione:
- Inserisci:
- Nome visualizzato per la connessione GitHub.
- URL repository Git (ad esempio:
https://github.com/<path-to-repo>.git
). - Aggiungi i rami Git con cui interagirà l'agente. Puoi designare una filiale come filiale predefinita facendo clic sull'icona a forma di stella accanto a questa.
- Secret del token di accesso,
ovvero la versione del secret che hai creato nel modulo
projects/*/secrets/*/versions/*
per una versione specifica oprojects/*/secrets/*/versions/latest
per la versione più recente.
- Fai clic su Connetti.
- Potrebbe essere necessario un minuto prima che il servizio Git sia pronto. La console mostrerà le notifiche.
- Inserisci:
Push and restore
Una volta configurato, puoi eseguire il push/pull dell'agente da/verso Git.
Il pulsante Push viene utilizzato per esportare l'agente ed eseguire un commit nel ramo Git selezionato nel menu a discesa del ramo Git. Questo commit sarà costituito dall'intero agente e non da modifiche specifiche ed eliminerà tutti i file esistenti nel repository.
Gli utenti con ruoli Lettore Dialogflow possono eseguire il push nei repository Git. 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 Git selezionato nel menu a discesa 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 a un agente di produzione.
Tieni presente che l'agente utilizza i seguenti rami Git:
- Prod: branch per l'agente di produzione
- Dev1: branch per lo sviluppo dell'agente
- Dev2: un altro ramo per lo sviluppo dell'agente
L'utente 1 vuole proporre modifiche all'agente e segue questi passaggi:
- Esporta l'agente di produzione in un nuovo agente.
- Apporta le modifiche desiderate a questa copia dell'agente.
- Testa le modifiche.
- Esegui il push dell'agente modificato sul branch Dev1.
- Crea una richiesta di unione al ramo Prod.
L'utente 2 vuole proporre modifiche all'agente e segue questi passaggi:
- Esporta l'agente di produzione in un nuovo agente.
- Apporta le modifiche desiderate a questa copia dell'agente.
- Testa le modifiche.
- Esegui il push dell'agente modificato sul ramo Dev2.
- Crea una richiesta di unione al ramo Prod.
L'utente 3 esamina le richieste di unione di entrambi gli utenti e segue questi passaggi:
- Risolvi i conflitti.
- Esegue il commit delle modifiche approvate.
- Ripristina il ramo Git di produzione nell'agente Conversational Agents (Dialogflow CX) di produzione.