Exportação/restauração do Git

Os agentes de conversação (Dialogflow CX) são integrados a vários provedores Git (GitHub, GitLab, Bitbucket e outros). Essa integração facilita exportar seu agente para JSON para um push em um provedor Git e extrair de um provedor Git para uma restauração do agente. O formato JSON exportado enviado para um provedor Git é o conteúdo expandido do arquivo zip do agente exportado.

Com esse recurso, você pode aproveitar os recursos de controle de origem de um provedor do Git, como:

  • Revisões de mudanças feitas pelo agente usando ferramentas de revisão de código
  • Examinar diferenças de agentes usando ferramentas de diff
  • Mesclagens

Limitações

Considere as seguintes limitações:

  • [Somente versão antiga da integração] As APIs do GitHub têm uma limitação no número de arquivos que podem ser atualizados em um único commit. Se o número de arquivos exceder 500, talvez não seja possível enviar para o GitHub usando os agentes de conversa (Dialogflow CX). Nesses casos, você pode exportar o agente como um arquivo ZIP e usar a CLI do Git na sua máquina para enviar os arquivos do agente ao GitHub. Essa limitação será abordada em uma versão posterior dos agentes de conversação (Dialogflow CX).
  • O acesso privado do GitHub a repositórios autohospedados não é compatível, porque os agentes de conversação (Dialogflow CX) não podem acessar esses repositórios.
  • O repositório Git não pode conter arquivos que não sejam os do agente exportados pela exportação do agente. Todos os outros arquivos no repositório serão removidos a cada push.

Configuração

Para configurar esse recurso, é necessário adquirir um token de acesso do seu provedor Git, armazená-lo no Secret Manager e fornecer o recurso de secret aos agentes de conversa (Dialogflow CX):

Token de acesso

Para adquirir um token de acesso do seu provedor do Git:

GitHub

Você precisa adquirir um token pessoal do GitHub. Se você usa um token de acesso pessoal refinado, precisa do seguinte acesso às permissões:

  • Permissões do repositório > Conteúdo: leitura e gravação
  • Permissões do repositório > Metadados: somente leitura (deve ser selecionado automaticamente depois de selecionar a permissão de conteúdo)

Gitlab

Você precisa adquirir um token de acesso pessoal do GitLab.

Bitbucket

Você precisa adquirir um token de acesso do Bitbucket.

Secret Manager

Agora que você tem um token de acesso, crie um secret para ele:

  1. Ative a API Secret Manager.
  2. Criar um secret.

Configuração de agentes de conversação (Dialogflow CX)

Para configurar essa integração com os agentes de conversação (Dialogflow CX):

  1. Conceda ao agente de serviço do Dialogflow permissão para acessar o secret do token de acesso no Secret Manager. Conceda o papel Secret Manager Secret Accessor à conta de serviço gcp-sa-dialogflow.iam.gserviceaccount.com no projeto do agente. Consulte Conceder acesso a um secret do Secret Manager.
  2. Abra a configuração da integração do Git:
    • Console dos agentes de conversação
      1. Clique no ícone de configurações perto do canto superior direito para abrir a tela de configurações.
      2. Role a tela para baixo e clique em Adicionar integração do Git.
    • Console do Dialogflow CX
      1. Clique na guia Gerenciar.
      2. Clique em Git na seção Teste e implantação.
      3. Clique em Criar novo.
  3. Forneça os detalhes da configuração:
    1. Digite o seguinte:
      • Nome de exibição da conexão do GitHub.
      • URL do repositório Git (por exemplo, https://github.com/<path-to-repo>.git).
      • Adicione as ramificações do Git com que o agente vai interagir. Para designar uma ramificação como padrão, clique no ícone de estrela ao lado dela.
      • O secret do token de acesso, que é a versão do secret criada no formato projects/*/secrets/*/versions/* para uma versão específica ou projects/*/secrets/*/versions/latest para a versão mais recente.
    2. Clique em Conectar.
    3. Pode levar um minuto para o serviço Git ficar pronto. O console vai mostrar notificações.

Enviar e restaurar

Depois de configurado, você pode enviar/extrair seu agente para/do Git.

O botão Push é usado para exportar seu agente e fazer um commit na ramificação do Git selecionada no menu suspenso. Esse commit vai consistir em todo o agente, não em mudanças específicas, e vai excluir todos os arquivos atuais no repositório.

Os usuários com funções de Leitor do Dialogflow podem enviar para repositórios do Git. Para evitar pushes indesejados, configure esses agentes com tokens de acesso pessoal somente leitura.

O botão Restaurar é usado para extrair os dados do agente da ramificação do Git selecionada no menu suspenso e restaurar o agente de conversação (Dialogflow CX) com base nesses dados. Isso vai substituir seu agente da mesma forma que qualquer restauração de agente se comporta.

Exemplo de caso de uso:

O exemplo a seguir ilustra como esse recurso pode ser usado por várias pessoas para propor diferentes mudanças em um agente de produção.

Considere que seu agente usa as seguintes ramificações do Git:

  • Prod: ramificação do seu agente de produção
  • Dev1: ramificação para desenvolvimento de agentes
  • Dev2: outra ramificação para desenvolvimento de agentes

O usuário 1 quer propor mudanças no agente e segue estas etapas:

  1. Exporte o agente de produção para um novo agente.
  2. Faça as mudanças desejadas na cópia do agente.
  3. Teste as mudanças.
  4. Envie o agente alterado para a ramificação Dev1.
  5. Crie uma solicitação de mesclagem para a ramificação Prod.

O usuário 2 quer propor mudanças no agente e segue estas etapas:

  1. Exporte o agente de produção para um novo agente.
  2. Faça as mudanças desejadas na cópia do agente.
  3. Teste as mudanças.
  4. Envie o agente alterado para a ramificação Dev2.
  5. Crie uma solicitação de mesclagem para a ramificação Prod.

O usuário 3 analisa as solicitações de mesclagem dos dois usuários e segue estas etapas:

  1. Resolva os conflitos.
  2. Faz commit das mudanças aprovadas.
  3. Restaura a ramificação Git de produção para o agente de produção dos agentes de conversação (Dialogflow CX).