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 才能与模型交互。
如下图所示:
- 当用户通过 GitLab 实例配置模型并提交访问 GitLab Duo 功能的请求时,身份验证流程即开始。
- GitLab 实例颁发一个访问令牌,用户将该令牌转发给 GitLab,然后 GitLab 再将其转发到 AI 网关进行验证。
- 在确认令牌有效性后,AI 网关向 AI 模型发送请求,该模型使用 API 密钥对请求进行身份验证并进行处理。
- 结果随后被中继回 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