正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

GitLab Duo Self-Hostedの設定と認証

  • プラン: Premium、Ultimate
  • アドオン: GitLab Duo Enterprise
  • 提供形態: GitLab Self-Managed

セルフマネージドのお客様向けの設定オプションは2つあります:

  • GitLab.com AIゲートウェイ: これはGitLab Self-Managedのお客様向けのデフォルト設定です。GitLabで選択された外部大規模言語モデル(LLM)プロバイダー(たとえば、Google VertexまたはAnthropic)で、GitLabマネージドのAIゲートウェイを使用します。
  • Self-hosted AIゲートウェイ: GitLabが提供する外部言語プロバイダーに依存せずに、独自のAIゲートウェイと言語AIモデルをインフラストラクチャにデプロイして管理します。

GitLab.com AIゲートウェイ

この設定では、GitLabインスタンスは外部のGitLab AIゲートウェイに依存してリクエストを送信します。これは、Google VertexやAnthropicなどの外部AIベンダーと通信します。次に、レスポンスがGitLabインスタンスに転送されます。

%%{init: { "theme": "default", "fontFamily": "GitLab Sans", "sequence": { "actorFontSize": 12, "participantFontSize": 12, "messageFontSize": 12 } }}%%
sequenceDiagram
    accTitle: GitLab.com AI gateway flow
    accDescr: User requests are processed through a self-hosted GitLab instance, external AI gateway, and AI vendor.

    actor User as User
    participant SelfHostedGitLab as Self-hosted GitLab (Your Instance)
    participant GitLabAIGateway as GitLab AI gateway (External)
    participant GitLabAIVendor as GitLab AI Vendor (External)

    User ->> SelfHostedGitLab: Send request
    SelfHostedGitLab ->> SelfHostedGitLab: Check if self-hosted model is configured
    SelfHostedGitLab ->> GitLabAIGateway: Forward request for AI processing
    GitLabAIGateway ->> GitLabAIVendor: Create prompt and send request to AI model server
    GitLabAIVendor -->> GitLabAIGateway: Respond to the prompt
    GitLabAIGateway -->> SelfHostedGitLab: Forward AI response
    SelfHostedGitLab -->> User: Forward AI response

Self-hosted AIゲートウェイ

この設定では、システム全体が企業内で分離され、データのプライバシーを保護する完全に自己ホストされた環境が保証されます。

%%{init: { "theme": "default", "fontFamily": "GitLab Sans", "sequence": { "actorFontSize": 12, "participantFontSize": 12, "messageFontSize": 12 } }}%%
sequenceDiagram
    accTitle: Self-hosted AI gateway flow
    accDescr: User requests are processed entirely within self-hosted infrastructure using an AI gateway and model.

    actor User as User
    participant SelfHostedGitLab as Self-hosted GitLab
    participant SelfHostedAIGateway as Self-hosted AI gateway
    participant SelfHostedModel as Self-hosted model

    User ->> SelfHostedGitLab: Send request
    SelfHostedGitLab ->> SelfHostedGitLab: Check if self-hosted model is configured
    SelfHostedGitLab ->> SelfHostedAIGateway: Forward request for AI processing
    SelfHostedAIGateway ->> SelfHostedModel: Create prompt and perform request to AI model server
    SelfHostedModel -->> SelfHostedAIGateway: Respond to the prompt
    SelfHostedAIGateway -->> SelfHostedGitLab: Forward AI response
    SelfHostedGitLab -->> User: Forward AI response

GitLab Duo Self-Hostedの認証

GitLab Duo Self-Hostedの認証プロセスは安全で効率的であり、次の主要コンポーネントで構成されています:

  • 自己発行トークン: このアーキテクチャでは、アクセス認証情報はcloud.gitlab.comと同期されていません。代わりに、トークンはGitLab.comの機能と同様に、動的に自己発行されます。この方法により、高レベルのセキュリティを維持しながら、ユーザーはすぐにアクセスできます。

  • オフライン環境: オフラインセットアップでは、cloud.gitlab.comへの接続はありません。すべてのリクエストは、自己ホスト型AIゲートウェイにのみルーティングされます。

  • トークンの生成と検証: インスタンスはトークンを生成し、AIゲートウェイによってGitLabインスタンスに対して検証されます。

  • AIモデルの設定とセキュリティ: 管理者がAIモデルを設定すると、APIキーを組み込んでリクエストを認証できます。さらに、ネットワーク内の接続IPアドレスを指定することでセキュリティを強化し、信頼できるIPのみがAIモデルと対話できるようにすることができます。

次の図に示すように:

  1. 認証フローは、ユーザーがGitLabインスタンスを介してAIモデルを設定し、GitLab Duo機能にアクセスするためのリクエストを送信すると開始されます。
  2. GitLabインスタンスはアクセストークンを生成し、ユーザーはそれをGitLabに転送し、次に検証のためにAIゲートウェイに転送します。
  3. トークンの有効性を確認すると、AIゲートウェイはAIAIモデルにリクエストを送信します。これはAPIキーを使用してリクエストを認証し、処理します。
  4. 結果はGitLabインスタンスに中継され、応答をユーザーに送信してフローが完了します。これは安全で効率的になるように設計されています。
%%{init: { "theme": "default", "fontFamily": "GitLab Sans", "sequence": { "actorFontSize": 12, "participantFontSize": 12, "messageFontSize": 12 } }}%%
sequenceDiagram
    accTitle: GitLab Duo authentication flow
    accDescr: Authentication tokens are minted, verified, and used to secure AI model requests.

    participant User as User
    participant GitLab as GitLab Instance
    participant AI gateway as AI gateway
    participant AIModel as AI Model

    User->>GitLab: Configure Model
    User->>GitLab: Request Access
    GitLab->>GitLab: Mint Token
    GitLab->>User: Send Token
    User->>GitLab: Forward Minted Token
    GitLab->>AI gateway: Verify Token
    AI gateway->>GitLab: Token Validated
    GitLab->>AI gateway: Send Request to Model
    AI gateway->>AIModel: Send Request to Model
    AIModel->>AIModel: Authenticate using API Key
    AIModel->>AI gateway: Process Request
    AI gateway->>GitLab: Send Result to GitLab
    GitLab->>User: Send Response