대화형 에이전트 (Dialogflow CX)는 여러 Git 제공업체(GitHub, Gitlab, Bitbucket 등)와 통합됩니다. 이러한 통합을 통해 에이전트를 JSON으로 내보내 Git 제공업체에 푸시하고 에이전트 복원을 위해 Git 제공업체에서 가져올 수 있습니다. Git 제공업체에 푸시된 JSON 내보내기 형식은 내보낸 에이전트의 확장된 zip 파일 콘텐츠입니다.
이 기능을 사용하면 다음과 같은 Git 제공업체 소스 제어 기능을 활용할 수 있습니다.
- 코드 검토 도구를 사용한 상담사 변경사항 검토
- 비교 도구를 사용하여 에이전트 차이점 검사
- 병합
제한사항
다음과 같은 제한사항이 적용됩니다.
- [이전 통합 버전만 해당] GitHub API는 단일 커밋에서 업데이트할 수 있는 파일 수를 제한합니다. 파일 수가 500개를 초과하면 대화형 에이전트 (Dialogflow CX)에서 GitHub로 푸시할 수 없습니다. 이 경우 에이전트를 zip으로 내보내고 머신에서 Git CLI를 사용하여 에이전트 파일을 GitHub로 푸시하면 됩니다. 이 제한은 이후 대화형 에이전트(Dialogflow CX) 출시 버전에서 해결될 예정입니다.
- 대화형 에이전트 (Dialogflow CX)에서 이러한 저장소에 액세스할 수 없으므로 GitHub 비공개 액세스 자체 호스팅 저장소는 지원되지 않습니다.
- Git 저장소에는 에이전트 내보내기에서 내보낸 에이전트 파일 이외의 파일은 포함될 수 없습니다. 저장소의 다른 모든 파일은 푸시할 때마다 삭제됩니다.
구성
이 기능을 구성하려면 Git 제공업체에서 액세스 토큰을 가져와 Secret Manager에 저장하고 대화형 에이전트 (Dialogflow CX)에 보안 비밀 리소스를 제공해야 합니다.
액세스 토큰
Git 제공업체에서 액세스 토큰을 가져오는 방법은 다음과 같습니다.
GitHub
GitHub 개인 토큰을 가져와야 합니다. 세분화된 개인 액세스 토큰을 사용하는 경우 다음 권한에 액세스해야 합니다.
- 저장소 권한 > 콘텐츠: 읽기 및 쓰기
- 저장소 권한 > 메타데이터: 읽기 전용(콘텐츠 권한을 선택한 후 자동으로 선택됨)
GitLab
Gitlab 개인 액세스 토큰을 가져와야 합니다.
Bitbucket
Bitbucket 액세스 토큰을 가져와야 합니다.
Secret Manager
이제 액세스 토큰이 있으므로 토큰의 보안 비밀을 만들어야 합니다.
대화형 에이전트 (Dialogflow CX) 구성
대화형 에이전트 (Dialogflow CX)에 이 통합을 구성하려면 다음 단계를 따르세요.
- Dialogflow 서비스 에이전트에 Secret Manager에 액세스할 수 있는 권한을 부여합니다.
에이전트 프로젝트의
gcp-sa-dialogflow.iam.gserviceaccount.com
서비스 계정에Secret Manager Secret Accessor
역할을 제공합니다. IAM 역할 부여를 참고하세요. - Git 통합 구성을 엽니다.
- 대화형 에이전트 콘솔
- 오른쪽 상단 근처에 있는 설정 아이콘을 클릭하여 설정 디스플레이를 엽니다.
- 아래로 스크롤하여 Git 통합 추가를 클릭합니다.
- Dialogflow CX 콘솔
- 관리 탭을 클릭합니다.
- Git 섹션에서 Git을 클릭합니다.
- 새로 만들기를 클릭합니다.
- 대화형 에이전트 콘솔
- 구성 세부정보를 제공합니다.
- 다음을 입력합니다.
- GitHub 연결의 표시 이름.
- Git 저장소 URL (예:
https://github.com/<path-to-repo>.git
). - 에이전트가 상호작용할 Git 브랜치를 추가합니다. 옆에 있는 별표 아이콘을 클릭하여 브랜치를 기본 브랜치로 지정할 수 있습니다.
- 액세스 토큰 보안 비밀: 특정 버전의 경우
projects/*/secrets/*/versions/*
형식으로, 최신 버전의 경우projects/*/secrets/*/versions/latest
형식으로 만든 보안 비밀 버전입니다.
- 연결을 클릭합니다.
- Git 서비스가 준비되는 데 1분 정도 걸릴 수 있습니다. 콘솔에 알림이 표시됩니다.
- 다음을 입력합니다.
내보내기 및 복원
구성이 완료되면 에이전트를 Git으로 내보내거나 Git에서 가져올 수 있습니다.
푸시 버튼은 에이전트를 내보내고 Git 브랜치 드롭다운에서 선택한 Git 브랜치에 커밋하는 데 사용됩니다. 이 커밋은 특정 변경사항이 아닌 전체 에이전트로 구성되며 저장소의 기존 파일을 삭제합니다.
Dialogflow 리더 역할이 있는 사용자는 Git 저장소로 푸시할 수 있습니다. 원치 않는 푸시를 방지하려면 이러한 에이전트를 읽기 전용 개인 액세스 토큰으로 구성합니다.
복원 버튼은 Git 브랜치 드롭다운에서 선택한 Git 브랜치에서 에이전트 데이터를 가져와 이 데이터에서 대화형 에이전트 (Dialogflow CX)를 복원하는 데 사용됩니다. 이 방식은 모든 에이전트 복원과 동일한 방식으로 에이전트를 덮어씁니다.
사용 사례
다음 예시에서는 여러 사용자가 이 기능을 사용하여 프로덕션 에이전트에 다양한 에이전트 변경사항을 제안하는 방법을 보여줍니다.
에이전트에서 다음 Git 브랜치를 사용한다고 가정해 보겠습니다.
- Prod: 프로덕션 에이전트를 위한 브랜치
- Dev1: 에이전트 개발을 위한 브랜치
- Dev2: 에이전트 개발을 위한 또 다른 브랜치
사용자 1이 에이전트 변경을 제안하려고 하며 다음 단계를 수행합니다.
- 프로덕션 에이전트를 새 에이전트로 내보냅니다.
- 이 에이전트 사본을 원하는 대로 변경합니다.
- 변경사항을 테스트합니다.
- 변경된 에이전트를 Dev1 브랜치로 푸시합니다.
- Prod 브랜치에 대한 병합 요청을 만듭니다.
사용자 2가 에이전트 변경을 제안하려고 하며 다음 단계를 수행합니다.
- 프로덕션 에이전트를 새 에이전트로 내보냅니다.
- 이 에이전트 사본을 원하는 대로 변경합니다.
- 변경사항을 테스트합니다.
- 변경된 에이전트를 Dev2 브랜치로 푸시합니다.
- Prod 브랜치에 대한 병합 요청을 만듭니다.
사용자 3이 두 사용자의 요청 병합을 검토하고 다음 단계를 수행합니다.
- 충돌을 해결합니다.
- 승인된 변경사항을 커밋합니다.
- 프로덕션 Git 브랜치를 프로덕션 대화형 에이전트 (Dialogflow CX)로 복원합니다.