会話エージェント(Dialogflow CX)は、複数の Git プロバイダ(GitHub、Gitlab、Bitbucket など)と統合されています。この統合により、Git プロバイダに push するために JSON を使用してエージェントをエクスポートすることや、エージェントを復元するために Git プロバイダから pull することが容易になりました。Git プロバイダに push される JSON エクスポート形式は、エクスポートされたエージェントの展開された zip ファイルの内容です。
この機能を使用すると、次のような Git プロバイダのソース コントロール機能を利用できます。
- コードレビュー ツールを使用したエージェントの変更レビュー
- 差分ツールを使用してエージェントの差分を調べる
- 結合
制限事項
次の制限が適用されます。
- [古い統合バージョンのみ] GitHub API には、1 回の commit で更新できるファイルの数に制限があります。ファイル数が 500 を超えると、会話エージェント(Dialogflow CX)から GitHub に push できなくなる場合があります。その場合は、エージェントを zip としてエクスポートし、マシンの Git CLI を使用してエージェント ファイルを GitHub に push できます。この制限については、今後の会話エージェント(Dialogflow CX)リリースで対処する予定です。
- GitHub のプライベート アクセス セルフホスト リポジトリは、会話エージェント(Dialogflow CX)がこれらのリポジトリにアクセスできないため、サポートされていません。
- Git リポジトリには、エージェント エクスポートによってエクスポートされたエージェント ファイル以外のファイルを含めることはできません。リポジトリ内の他のすべてのファイルは、push のたびに削除されます。
構成
この機能を構成するには、Git プロバイダからアクセス トークンを取得し、Secret Manager に保存して、会話エージェント(Dialogflow CX)にシークレット リソースを提供する必要があります。
アクセス トークン
Git プロバイダからアクセス トークンを取得するには:
GitHub
GitHub 個人用トークンを取得する必要があります。きめ細かい個人用アクセス トークンを使用する場合は、次の権限のアクセス権が必要です。
- [リポジトリ権限] > [コンテンツ]: 読み取りと書き込み
- [リポジトリ権限] > [メタデータ]: 読み取り専用(コンテンツ権限の選択後に自動選択される)
GitLab
GitLab 個人アクセス トークンを取得する必要があります。
Bitbucket
Bitbucket アクセス トークンを取得する必要があります。
Secret Manager
アクセス トークンを取得したので、トークンのシークレットを作成する必要があります。
会話エージェント(Dialogflow CX)の構成
会話エージェント(Dialogflow CX)用にこの統合を構成するには:
- Secret Manager のアクセス トークン シークレットにアクセスする権限を Dialogflow サービス エージェントに付与します。エージェント プロジェクトの
gcp-sa-dialogflow.iam.gserviceaccount.com
サービス アカウントにSecret Manager Secret Accessor
ロールを付与します。Secret Manager シークレットへのアクセス権を付与するをご覧ください。 - Git 統合の構成を開きます。
- 会話型エージェント コンソール
- 右上にある設定アイコンをクリックして、設定画面を開きます。
- 下にスクロールして [Add Git integration] をクリックします。
- Dialogflow CX コンソール
- [管理] タブをクリックします。
- [Testing & Deployment] セクションで [Git] をクリックします。
- [新規作成] をクリックします。
- 会話型エージェント コンソール
- 構成の詳細を入力します。
- 次のように入力します。
- GitHub 接続の表示名。
- Git リポジトリの URL(例:
https://github.com/<path-to-repo>.git
)。 - エージェントがやり取りする Git ブランチを追加します。ブランチ名の横にあるスターアイコンをクリックすると、ブランチをデフォルトのブランチとして指定できます。
- アクセス トークン シークレット。これは、特定のバージョンの場合は
projects/*/secrets/*/versions/*
、最新バージョンの場合はprojects/*/secrets/*/versions/latest
の形式で作成したシークレット バージョンです。
- [接続] をクリックします。
- Git サービスを使用できるようになるまで 1 分ほどかかることがあります。コンソールに通知が表示されます。
- 次のように入力します。
プッシュと復元
構成が完了すると、Git との間でエージェントを push または pull できます。
[Push] ボタンは、エージェントをエクスポートして、[Git ブランチ] プルダウンで選択した Git ブランチに commit するために使用されます。この commit は特定変更ではなくエージェント全体で構成され、リポジトリ内の既存のファイルはすべて削除されます。
Dialogflow 閲覧者ロールを持つユーザーは、Git リポジトリに push できます。不要な push を防ぐには、これらのエージェントに読み取り専用の個人アクセス トークンを構成します。
[復元] ボタンは、[Git ブランチ] プルダウンで選択した Git ブランチからエージェント データを pull し、このデータから会話エージェント(Dialogflow CX)エージェントを復元するために使用します。これによって、エージェントの復元と同じ方法でエージェントが上書きされます。
使用例
次の例は、複数のユーザーがこの機能を使用して、本番環境のエージェントにさまざまなエージェントの変更を提案する方法を示しています。
エージェントが次の Git ブランチを使用していることを考慮します。
- Prod: 本番環境エージェントのブランチ
- Dev1: エージェント開発用のブランチ
- Dev2: エージェント開発用の別のブランチ
ユーザー 1 はエージェントの変更を提案し、次の手順を実行します。
- 本番環境用エージェントを新しいエージェントにエクスポートします。
- このエージェントのコピーに必要な変更を加えます。
- 変更をテストします。
- 変更したエージェントを Dev1 ブランチに push します。
- Prod ブランチへのマージ リクエストを作成します。
ユーザー 2 はエージェントの変更を提案し、次の手順を実行します。
- 本番環境用エージェントを新しいエージェントにエクスポートします。
- このエージェントのコピーに必要な変更を加えます。
- 変更をテストします。
- 変更したエージェントを Dev2 ブランチに push します。
- Prod ブランチへのマージ リクエストを作成します。
ユーザー 3 は両方のユーザーからのマージ リクエストを確認し、次の手順を行います。
- 競合を解決します。
- 承認された変更を commit します。
- 本番環境の Git ブランチを本番環境の会話エージェント(Dialogflow CX)エージェントに復元します。