Conversational Agents (Dialogflow CX) se integra en varios proveedores de Git (GitHub, GitLab, Bitbucket y otros). Esta integración facilita la exportación de tu agente a JSON para enviarlo a un proveedor de Git y extraerlo de un proveedor de Git para una restauración del agente. El formato JSON exportado que se envía a un proveedor de Git es el contenido expandido del archivo zip del agente exportado.
Usar esta función te permite aprovechar las funciones de control de código fuente de un proveedor de Git, como las siguientes:
- Revisión de cambios del agente con herramientas de revisión de código
- Cómo examinar las diferencias del agente con herramientas de comparación
- Combinaciones
Limitaciones
Se aplica la siguiente limitación:
- [Solo para la versión anterior de la integración] Las APIs de GitHub tienen una limitación en la cantidad de archivos que se pueden actualizar en una sola confirmación. Si la cantidad de archivos supera los 500, es posible que no puedas enviar contenido a GitHub desde Conversational Agents (Dialogflow CX). En esos casos, puedes exportar el agente como un archivo ZIP y usar la CLI de Git en tu máquina para enviar los archivos del agente a GitHub. Esta limitación se abordará en una versión posterior de Conversational Agents (Dialogflow CX).
- No se admiten los repositorios de alojamiento propio con acceso privado a GitHub, ya que Conversational Agents (Dialogflow CX) no puede acceder a ellos.
- El repositorio de Git no puede contener ningún archivo que no sean los archivos del agente exportados por la exportación del agente. Cualquier otro archivo del repositorio se quitará con cada envío.
Configuración
Para configurar esta función, debes adquirir un token de acceso de tu proveedor de Git, almacenarlo en Secret Manager y proporcionar el recurso secreto a los agentes conversacionales (Dialogflow CX):
Token de acceso
Para adquirir un token de acceso de tu proveedor de Git, haz lo siguiente:
GitHub
Debes adquirir un token personal de GitHub. Si usas un token de acceso personal detallado, necesitas acceso a los siguientes permisos:
- Permisos del repositorio > Contenido: Lectura y escritura
- Repository Permissions > Metadata: Solo lectura (se debería seleccionar automáticamente después de seleccionar el permiso de contenido)
GitLab
Debes adquirir un token de acceso personal de GitLab.
Bitbucket
Debes adquirir un token de acceso de Bitbucket.
Secret Manager
Ahora que tienes un token de acceso, debes crear un secreto para tu token:
Configuración de Conversational Agents (Dialogflow CX)
Para configurar esta integración en Conversational Agents (Dialogflow CX), sigue estos pasos:
- Proporciona permiso al agente de servicio de Dialogflow para acceder al secreto del token de acceso en Secret Manager.
Otorga el rol
Secret Manager Secret Accessor
a la cuenta de serviciogcp-sa-dialogflow.iam.gserviceaccount.com
en tu proyecto del agente. Consulta Cómo otorgar acceso a un secreto de Secret Manager. - Abre la configuración de la integración de Git:
- Consola de Conversational Agents
- Para abrir la pantalla de configuración, haz clic en el ícono de ajustes que se encuentra cerca de la esquina superior derecha.
- Desplázate hacia abajo y haz clic en Agregar integración de Git.
- Consola de Dialogflow CX
- Haz clic en la pestaña Administrar.
- Haz clic en Git en la sección Testing & Deployment.
- Haz clic en Crear nueva.
- Consola de Conversational Agents
- Proporciona los detalles de configuración:
- Ingresa lo siguiente:
- Es el nombre visible de la conexión de GitHub.
- URL del repositorio de Git (por ejemplo,
https://github.com/<path-to-repo>.git
). - Agrega las ramas de Git con las que interactuará tu agente. Para designar una rama como la rama predeterminada, haz clic en el ícono de estrella que se encuentra junto a ella.
- Secreto del token de acceso, que es la versión del secreto que creaste en el formulario
projects/*/secrets/*/versions/*
para una versión específica oprojects/*/secrets/*/versions/latest
para la versión más reciente.
- Haz clic en Conectar.
- El servicio de Git puede tardar un minuto en estar listo. La consola mostrará notificaciones.
- Ingresa lo siguiente:
Empujar y restablecer
Una vez que lo configures, podrás enviar o extraer tu agente a Git.
El botón Push se usa para exportar tu agente y confirmar la rama de Git seleccionada en el menú desplegable de ramas de Git. Esta confirmación incluirá todo el agente y no cambios específicos, y borrará los archivos existentes en el repositorio.
Los usuarios con roles de lector de Dialogflow pueden enviar cambios a repositorios de Git. Para evitar envíos no deseados, configura estos agentes con tokens de acceso personal de solo lectura.
El botón Restaurar se usa para extraer los datos del agente de la rama de Git seleccionada en el menú desplegable de la rama de Git y restaurar tu agente de Conversational Agents (Dialogflow CX) a partir de estos datos. Esta acción reemplazará tu agente de la misma manera que se comporta cualquier restauración de agente.
Ejemplo de caso de uso
En el siguiente ejemplo, se ilustra cómo varias personas pueden usar esta función para proponer diferentes cambios en un agente de producción.
Considera que tu agente usa las siguientes ramas de Git:
- Prod: Rama para tu agente de producción
- Dev1: Rama para el desarrollo del agente
- Dev2: Otra rama para el desarrollo del agente
El usuario 1 quiere proponer cambios en el agente y sigue estos pasos:
- Exporta el agente de producción a un agente nuevo.
- Realiza los cambios deseados en esta copia del agente.
- Prueba los cambios.
- Envía el agente modificado a la rama Dev1.
- Crea una solicitud de combinación para la rama Prod.
El usuario 2 quiere proponer cambios en el agente y sigue estos pasos:
- Exporta el agente de producción a un agente nuevo.
- Realiza los cambios deseados en esta copia del agente.
- Prueba los cambios.
- Envía el agente modificado a la rama Dev2.
- Crea una solicitud de combinación para la rama Prod.
El usuario 3 revisa las solicitudes de combinación de ambos usuarios y realiza los siguientes pasos:
- Resolver conflictos
- Confirma los cambios aprobados.
- Restablece la rama Git de producción en el agente de producción de Conversational Agents (Dialogflow CX).