Los agentes conversacionales (Dialogflow CX) se integran en GitHub. Esta integración facilita la exportación de tu agente a JSON para enviarlo a GitHub y extraerlo de GitHub para un restablecimiento del agente. El formato JSON exportado que se envió a GitHub es el contenido expandido del archivo ZIP del agente exportado.
El uso de esta función te permite aprovechar las funciones de control de código fuente de GitHub, como las siguientes:
- Revisiones de cambios de agentes con herramientas de revisión de código
- Examinar las diferencias de los agentes con las herramientas de diferencias
- Fusiones
- Y así sucesivamente
Limitaciones
Se aplica la siguiente limitación:
- GitHub tiene un límite de frecuencia para la cantidad de solicitudes por hora (5, 000 para cuentas que no son de empresa y 15,000 para cuentas de empresa). Si el envío del agente supera este límite, la consola de CX de Dialogflow informará el error de límite de frecuencia. Puedes volver a intentar la publicación después de una hora.
- 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 a GitHub desde los agentes conversacionales (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 los agentes conversacionales (Dialogflow CX). - No se admiten repositorios alojados de forma privada con acceso privado, ya que los agentes conversacionales (Dialogflow CX) no pueden acceder a ellos.
- El repositorio de GitHub no puede contener ningún archivo que no sean los archivos del agente que exporta el agente de exportación. Se quitarán todos los demás archivos del repositorio en cada envío.
Configuración
Para configurar esta integración, sigue estos pasos:
- Abre la consola de Dialogflow CX.
- Elige tu proyecto de Google Cloud.
- Selecciona el agente.
- Haz clic en la pestaña Administrar.
- Haz clic en Git en la sección Pruebas y, luego, Implementación.
- Haz clic en Add Git integration y se abrirá un cuadro de diálogo de configuración.
- Ingresa lo siguiente:
- Es el nombre visible de la conexión de GitHub.
- URL del repositorio de GitHub (por ejemplo,
https://api.github.com/repos/<repository_owner>/<repository_name>
). - Agrega las ramas de GitHub con las que interactuará tu agente. Para designar una rama como la predeterminada, haz clic en el ícono de estrella junto a ella.
- El token personal de GitHub no se puede ver una vez establecido, solo se admiten actualizaciones.
Si usas un token de acceso personal detallado, necesitas los siguientes permisos de acceso:
- Permisos del repositorio > Contenido: Lectura y escritura
- Permisos del repositorio > Metadatos: Solo lectura (debería seleccionarse automáticamente después de seleccionar el permiso de Contenido)
- Haz clic en Conectar.
Puedes cambiar esta configuración en cualquier momento haciendo clic en el ícono de edición.
Envío y restablecimiento
Una vez configurado, puedes enviar o extraer tu agente desde o hacia GitHub.
El botón Push se usa para exportar tu agente y confirmar la rama de GitHub seleccionada en el menú desplegable de ramas de Git. Esta confirmación consistirá en todo el agente y no en cambios específicos, y borrará todos los archivos existentes en el repositorio.
En el caso de los repositorios nuevos, asegúrate de que haya al menos una confirmación de GitHub antes de usar la opción de envío en la consola de Dialogflow CX.
Los usuarios con roles de Lector de Dialogflow pueden enviar cambios a los repositorios de GitHub. Para evitar envíos no deseados, configura estos agentes con tokens de acceso personal de solo lectura.
El botón Restore se usa para extraer los datos de tu agente de la rama de GitHub seleccionada en el menú desplegable de la rama de Git y restablecer tu agente de agentes conversacionales (Dialogflow CX) a partir de estos datos. Esta acción reemplazará tu agente de la misma manera que se comporta cualquier restablecimiento de agente.
Ejemplo de caso de uso
En el siguiente ejemplo, se muestra cómo varias personas pueden usar esta función para proponer diferentes cambios de agente a un agente de producción.
Considera que tu agente usa las siguientes ramas de GitHub:
- Prod: Es la rama de tu agente de producción.
- Dev1: Rama para el desarrollo de agentes
- Dev2: Otra rama para el desarrollo de agentes
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 alterado a la rama Dev1.
- Crea una solicitud de combinación en 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 alterado a la rama Dev2.
- Crea una solicitud de combinación en la rama Prod.
El usuario 3 revisa las solicitudes de combinación de ambos usuarios y sigue estos pasos:
- Resolver conflictos
- Confirma los cambios aprobados.
- Restablece la rama de GitHub de producción en el agente de agentes de conversación (Dialogflow CX) de producción.