GitLab Duoを設定する
- 提供形態: GitLab Self-Managed、GitLab Dedicated for Government
GitLab Duoは、ソフトウェア開発ライフサイクル全体を支援する、AIネイティブなアシスタントです。
GitLab Duoは、以下の構成で使用できます:
- クラウドベースのAIゲートウェイ(デフォルト): GitLabがホストするAIゲートウェイと、ベンダーの言語モデルを使用します。
- セルフホストモデル: 独自のAIゲートウェイと言語モデルを使用し、データとセキュリティを完全に制御します。
- ハイブリッド構成: 一部の機能にはセルフホストモデル、その他の機能にはクラウドベースのモデルを使用します。
前提条件
- サイレントモードがオフになっている。
- アクティベーションコードでインスタンスをアクティブ化している。
- ライセンスキーは使用できません。
- GitLab Duo Self-Hostedを除き、オフラインライセンスではGitLab Duoを使用できません。
- HTTP/Sプロキシサーバーを使用している場合でも、インスタンスを実行するホストがDNSでパブリックホスト名を解決できる。
GitLabインスタンスからGitLab Duoへの送信接続を許可する
- GitLabアプリケーションノードは、HTTP/2を使用して
https://duo-workflow-svc.runway.gitlab.netにあるGitLab Duo Workflowに接続する必要があります。アプリケーションとサービスはgRPCを使用して通信します。 - GitLab Duo Agent Platformの機能を使用するには、ファイアウォールとHTTP/Sプロキシサーバーにおいて、
https://とHTTP/2トラフィックをサポートし、ポート443でduo-workflow-svc.runway.gitlab.netへの送信接続を許可する必要があります。 - インスタンスがHTTP/Sプロキシサーバー経由で接続する場合でも、ホストがDNSを使用してパブリックホスト名を解決できる必要があります。ホスト名をプロキシサーバー経由でしか解決できない場合、GitLab Duoのヘルスチェック、GitLabクレジットダッシュボード、GitLab Duo Agent PlatformなどのGitLab Duo機能がタイムアウトしたり、失敗したりする可能性があります。詳細については、イシュー602538を参照してください。
- AI機能は、長時間維持されるHTTP接続を介してレスポンスをストリーミングします。リクエストの最大継続時間やアイドルタイムアウトを適用するHTTP/Sプロキシサーバーまたはファイアウォールでは、エラーを表示せずに長いレスポンスが切断される可能性があります。プロキシには、経路上にある他のコンポーネントよりも長いタイムアウトを設定してください。
クライアントからGitLabインスタンスへの受信接続を許可する
GitLabインスタンスは、IDEクライアントからの受信接続を許可する必要があります。
- 次のヘッダーを含むWebSocketプロトコルのアップグレードリクエストを許可します:
Connection: upgradeUpgrade: websocketHTTP/2プロトコルのサポート- 標準のWebSocketセキュリティヘッダー:
Sec-WebSocket-*
wss://(WebSocket Secure)プロトコルのサポートを有効にします。- 許可する特定のエンドポイントを追加します:
- プライマリエンドポイント:
wss://<customer-instance>/-/cable HTTP/2プロトコルがHTTP/1.1にダウングレードされないことを確認してください。- ポート:
443(HTTPS/WSS)
- プライマリエンドポイント:
問題が発生した場合:
wss://gitlab.example.com/-/cableやその他の.comドメインへのWebSocketトラフィックに制限がかかっていないか確認してください。- Apacheなどのリバースプロキシを使用している場合、ログにWebSocket connection to …. failuresのようなGitLab Duo Chat接続の問題が表示されることがあります。
この問題を解決するには、プロキシ設定を編集します:
# Enable WebSocket reverse Proxy
# Needs proxy_wstunnel enabled
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule ^/?(.*) "ws://127.0.0.1:8181/$1" [P,L]Runnerからの接続を許可する
フローなど、Runnerを使用するGitLab Duo Agent Platformの機能では、RunnerがGitLabインスタンスに接続できる必要があります。
クライアントからGitLabインスタンスへの受信接続として許可されているものと同じ接続を、RunnerからGitLabインスタンスへの送信接続としても許可する必要があります。
さらに、Runnerは以下に接続できる必要があります:
| 宛先 | ポート | 目的 |
|---|---|---|
registry.npmjs.org | 443 | 実行時にDuo CLIパッケージをダウンロードする |
registry.gitlab.com | 443 | デフォルトのDockerイメージをダウンロードする(カスタムイメージを使用する場合を除く) |
組織でパブリックnpmレジストリへのアクセスを許可できない場合は、必要な依存関係がすでにインストールされているカスタムDockerイメージを使用できます。
RunnerからGitLab Duo Agent Platformサービスへの接続は、GitLabインスタンスを経由します。Runnerがduo-workflow-svc.runway.gitlab.netに直接接続することはありません。ポート443でduo-workflow-svc.runway.gitlab.netへの接続を許可するファイアウォール要件は、RunnerではなくGitLabインスタンスに適用されます。Runnerのネットワーク設定では、GitLabインスタンスへの送信HTTPSトラフィックを許可する必要があります。
GitLabと使用状況データを共有する
サービス品質の向上に役立つよう、GitLab Duo Agent Platform機能に関する使用状況データをGitLabと共有できます。
データ収集をオンにすると、GitLabはGitLab Duo機能の使用状況に関する情報を記録します。このデータは、サービス改善およびデバッグのみに使用され、AIモデルのトレーニングには使用されません。
収集されるデータの詳細については、Agent Platformの使用状況データを参照してください。
前提条件:
- GitLab 18.9.1以降が必要です。
拡張ロギングをオンにするには:
- 右上隅で、管理者を選択します。
- 左側のサイドバーで、GitLab Duoを選択します。
- 設定の変更を選択します。
- 使用状況データを収集チェックボックスを選択します。
- 変更を保存を選択します。
セルフホストモデルでのデータの使用
セルフホストAIゲートウェイとセルフホストモデルを使用する場合、詳細なログは自身のインフラストラクチャに保存され、GitLabとは共有されません。GitLabとデータを共有するには、外部の可観測性サービスにトレースを送信するように、セルフホストAIゲートウェイを設定する必要があります。
Service Pingを使用して、使用状況データをGitLabに送信できます。このデータはテレメトリデータとは異なります。
GitLab Duoのヘルスチェックを実行する
- ステータス: ベータ版
インスタンスがGitLab Duoを使用するための要件を満たしているかどうかを判断できます。ヘルスチェックが完了すると、合格または失敗の結果と問題の種類が表示されます。ヘルスチェックがテストに失敗した場合、ユーザーはインスタンスでGitLab Duo機能を使用できない可能性があります。
これはベータ版の機能です。
前提条件:
- 管理者である必要があります。
ヘルスチェックを実行するには:
- 右上隅で、管理者を選択します。
- 左側のサイドバーで、GitLab Duoを選択します。
- 右上隅で、ヘルスチェックを実行するを選択します。
- オプション。GitLab 17.5以降では、ヘルスチェックが完了した後、レポートのダウンロードを選択して、ヘルスチェック結果の詳細レポートを保存できます。
次のテストが実行されます:
| テスト | 説明 |
|---|---|
| AIゲートウェイ | GitLab Duo Self-Hostedモデルのみ。AIゲートウェイのURLが環境変数として設定されているかどうかをテストします。この接続は、AIゲートウェイを使用するセルフホストモデルのデプロイに必要です。 |
| ネットワーク | インスタンスがcustomers.gitlab.comおよびcloud.gitlab.comに接続できるかどうかをテストします。インスタンスがいずれかの宛先に接続できない場合は、ファイアウォールまたはプロキシサーバーの設定が接続を許可していることを確認してください。 |
| 同期 | サブスクリプションが次の条件を満たしているかどうかをテストします: - アクティベーションコードでアクティブ化されており、 customers.gitlab.comと同期できる。- 正しいアクセス認証情報を持っている。 - 最近同期されている。そうでない場合、またはアクセス認証情報がないか期限切れになっている場合は、サブスクリプションデータを手動で同期できます。 |
| コード提案 | GitLab Duo Self-Hostedモデルのみ。コード提案が利用可能かどうかをテストします: - ライセンスにコード提案機能へのアクセスが含まれている。 - この機能を使用するために必要な権限を持っている。 |
| GitLab Duo Agent Platform | バックエンドサービスが稼働中でアクセス可能かどうかをテストします。このサービスは、Agent PlatformやGitLab Duo Agentic Chatなど、エージェント型の機能に必要です。 GitLab Duo Self-Hostedでは、GitLab Duo Agent Platform機能に使用するセルフホストモデルを選択するまで、このテストは合格しません。 また、次の基本フローの前提条件も検証します: - インスタンスレベルのフロー実行設定が有効になっている。 - インスタンスレベルの基本フロー設定が有効になっている。 - gitlab--duoタグが設定され、アクティブなインスタンスRunnerが1つ以上登録および接続されており、Docker互換のexecutorを使用している。 |
| システム連携 | インスタンスでコード提案を使用できるかどうかをテストします。システム連携アセスメントが失敗した場合、ユーザーはGitLab Duo機能を使用できない可能性があります。 |
| 使用量課金 | インスタンスがカスタマーポータル、AIゲートウェイ、Duo Workflowサービスを含む使用量課金エンドポイントに接続できるかどうかをテストします。 |
バージョン17.10より前のGitLabインスタンスで、ヘルスチェックに問題が発生した場合は、トラブルシューティングページを参照してください。
その他のホスティングオプション
デフォルトでは、GitLab DuoはサポートされているAIベンダーの言語モデルを使用し、GitLabがホストするクラウドベースのAIゲートウェイを介してデータを送信します。
独自の言語モデルまたはAIゲートウェイをホストする場合:
- GitLab Duo Self-Hostedを使用してAIゲートウェイをホストし、サポートされているセルフホストモデルを使用できます。このオプションを選択すると、データとセキュリティを完全に制御できます。
- ハイブリッド構成を使用します。一部の機能には独自のAIゲートウェイとモデルをホストしますが、他の機能にはGitLab AIゲートウェイとAIベンダーモデルを使用します。
GitLab Dedicated for Government
GitLab Dedicated for Governmentでは、GitLab Duo Self-HostedをFedRAMP承認済みモデルと組み合わせて使用する必要があります。クラウドベースのAIゲートウェイとベンダーモデルは、GitLab Dedicated for Governmentでは使用できません。
詳細については、GitLab Dedicated for GovernmentでGitLab Duoを設定するを参照してください。