Exportação/restauração do Git

Os agentes de conversa (Dialogflow CX) são integrados a vários provedores do Git (GitHub, Gitlab, Bitbucket e outros). Essa integração facilita a exportação do agente para JSON para um envio a um provedor do Git e a extração de um provedor do Git para um restauro do agente. O formato JSON exportado para um provedor do Git é o conteúdo do arquivo ZIP aberto do agente exportado.

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

  • O agente faz revisões de mudanças usando ferramentas de revisão de código
  • Examinar as diferenças do agente usando ferramentas de comparação
  • 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 fazer push para o GitHub de agentes de conversação (Dialogflow CX). Nesses casos, é possível exportar o agente como um arquivo ZIP e usar a CLI do Git na máquina para enviar os arquivos do agente ao GitHub. Essa limitação será abordada em uma versão futura dos agentes de conversação (Dialogflow CX).
  • Não é possível usar repositórios de acesso privado autohospedados do GitHub, porque os agentes de conversação (Dialogflow CX) não podem acessar esses repositórios.
  • O repositório do Git não pode conter outros arquivos além dos exportados pelo agente. Todos os outros arquivos no repositório serão removidos em cada push.

Configuração

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

Token de acesso

Para adquirir um token de acesso do provedor do Git:

GitHub

Você precisa adquirir um token pessoal do GitHub. Se você usar um token de acesso pessoal detalhado, será necessário ter as seguintes 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 "Conteúdos")

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, é necessário criar um secret para ele:

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

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

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

  1. Conceda ao agente de serviço do Dialogflow permissão para acessar o Secret Manager. Forneça o papel Secret Manager Secret Accessor à conta de serviço gcp-sa-dialogflow.iam.gserviceaccount.com no projeto do agente. Consulte Conceder um papel do IAM.
  2. Abra a configuração de integração do Git:
    • Console de agentes de conversação
      1. Abra a tela de configurações clicando no ícone de configurações perto do canto superior direito.
      2. Role a página 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 detalhes de configuração:
    1. Digite o seguinte:
      • Nome de exibição para a conexão do GitHub.
      • URL do repositório Git (por exemplo, https://github.com/<path-to-repo>.git).
      • Adicione as branches do Git com que o agente vai interagir. É possível designar uma como a padrão clicando no ícone de estrela ao lado dela.
      • Secret do token de acesso, que é a versão secreta que você criou no formulário 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 do Git ficar pronto. O console vai mostrar notificações.

Envio e restauração

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

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

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

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

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 de agente a um agente de produção.

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

  • Prod: ramificação para o agente de produção
  • Dev1: ramificação para desenvolvimento de agentes
  • Dev2: outra ramificação para o 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 de produção do Git para o agente de agentes de conversação (Dialogflow CX) de produção.