Help us learn about your current experience with the documentation. Take the survey.

GitLab Duo 自托管版配置与身份验证

  • 版本:Premium, Ultimate
  • 附加组件:GitLab Duo Enterprise
  • 产品:GitLab Self-Managed

自管理版客户有两种配置选项:

  • GitLab.com AI 网关:这是 GitLab Self-Managed 客户的默认配置。使用由 GitLab 管理的 AI 网关,并配合 GitLab 选择的(例如 Google Vertex 或 Anthropic)外部大语言模型 (LLM) 提供商。
  • 自托管 AI 网关:在您自己的基础设施中部署和管理您的 AI 网关及语言模型,无需依赖 GitLab 提供的外部语言提供商。

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
    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

自托管 AI 网关

在此配置下,整个系统在企业内部隔离运行,确保了一个完全自托管的环境,从而保障数据隐私。

%%{init: { "theme": "default", "fontFamily": "GitLab Sans", "sequence": { "actorFontSize": 12, "participantFontSize": 12, "messageFontSize": 12 } }}%%
sequenceDiagram
    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 自托管版的身份验证

GitLab Duo 自托管版的身份验证流程安全、高效,由以下关键组件构成:

  • 自颁发令牌:在此架构中,访问凭证不会与 cloud.gitlab.com 同步。相反,令牌是动态自颁发的,类似于 GitLab.com 上的功能。这种方法在为用户提供即时访问权限的同时,保持了高度的安全性。
  • 离线环境:在离线设置中,没有与 cloud.gitlab.com 的连接。所有请求都完全路由到自托管的 AI 网关。
  • 令牌颁发与验证:实例颁发令牌,然后由 AI 网关根据 GitLab 实例对该令牌进行验证。
  • 模型配置与安全:当管理员配置模型时,他们可以集成 API 密钥来对请求进行身份验证。此外,您可以通过指定网络内的连接 IP 地址来增强安全性,确保只有受信任的 IP 才能与模型交互。

如下图所示:

  1. 当用户通过 GitLab 实例配置模型并提交访问 GitLab Duo 功能的请求时,身份验证流程即开始。
  2. GitLab 实例颁发一个访问令牌,用户将该令牌转发给 GitLab,然后 GitLab 再将其转发到 AI 网关进行验证。
  3. 在确认令牌有效性后,AI 网关向 AI 模型发送请求,该模型使用 API 密钥对请求进行身份验证并进行处理。
  4. 结果随后被中继回 GitLab 实例,并通过向用户发送响应来完成整个流程,该流程的设计旨在确保安全与高效。
%%{init: { "theme": "default", "fontFamily": "GitLab Sans", "sequence": { "actorFontSize": 12, "participantFontSize": 12, "messageFontSize": 12 } }}%%
   sequenceDiagram
      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