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

为 Duo Self-Hosted 开发 AI 功能

本文档概述了为 GitLab Duo Self-Hosted 开发 AI 功能的流程。为 GitLab Duo Self-Hosted 开发 AI 功能与为 Duo SaaS 开发 AI 功能非常相似,但存在一些差异。

获取托管模型的访问权限

截至 2025 年 7 月,以下模型目前可供 GitLab 团队成员用于开发目的:

  • AWS Bedrock 上的 Claude Sonnet 3.5
  • AWS Bedrock 上的 Claude Sonnet 3.5 v2
  • AWS Bedrock 上的 Claude Sonnet 3.7
  • AWS Bedrock 上的 Claude Sonnet 4
  • AWS Bedrock 上的 Claude Haiku 3.5
  • AWS Bedrock 上的 Llama 3.3 70b
  • AWS Bedrock 上的 Llama 3.1 8b
  • AWS Bedrock 上的 Llama 3.1 70b
  • FireworksAI 上的 Mistral Small
  • FireworksAI 上的 Mixtral 8x22b
  • FireworksAI 上的 Codestral 22b v0.1
  • FireworksAI 上的 Llama 3.1 70b
  • FireworksAI 上的 Llama 3.1 8b
  • FireworksAI 上的 Llama 3.3 70b

开发环境提供有限模型集的访问权限,以优化成本。完整模型目录 在生产部署中可用。

获取 FireworksAI 模型的访问权限

要获取 FireworksAI 的访问权限,首先创建一个访问请求。如果您不确定要填写哪些信息,请参阅此示例访问请求。 我们的 FireworksAI 账户由 Create::Code Creation 管理。获得访问权限后,导航到 https://fireworks.ai/ 创建 API 密钥。

获取 AWS Bedrock 模型的访问权限

要获取 AWS Bedrock 中模型的访问权限,请使用 aws_services_account_iam_update 模板创建访问请求。如果您不确定要填写哪些信息,请参阅此示例访问请求

您的访问请求获得批准后,可以通过访问 https://gitlabsandbox.cloud/login 获取 AWS 凭证。

登录 gitlabsandbox.cloud 后,执行以下步骤:

  1. 选择 cstm-mdls-dev-bedrock AWS 账户。
  2. 在页面右上角,选择 查看 IAM 凭证
  3. 在打开的模型中,您应该能够看到 AWS 控制台 URL用户名密码。访问此 AWS 控制台 URL 并输入获取的用户名和密码进行登录。

在 AWS Bedrock 上,您必须获取要使用模型的访问权限。为此:

  1. 访问 AWS 模型目录控制台
  2. 确保您的位置设置为 us-east-1
  3. 从模型列表中,找到您要使用的模型,并将鼠标悬停在 可请求访问 链接上。然后选择 请求访问
  4. 完成表单以请求访问该模型。

您的访问权限应在几分钟内获得批准。

在 AWS 上生成访问密钥和秘密密钥

要使用 AWS Bedrock 模型,您必须生成访问密钥。要生成这些访问密钥:

  1. 访问 IAM 控制台
  2. 选择 用户 选项卡。
  3. 选择您的用户名。
  4. 选择 安全凭证 选项卡。
  5. 选择 创建访问密钥
  6. 选择 下载 .csv 以下载访问密钥。

将访问密钥保存在安全的位置。您需要它们来配置模型。

或者,要在 AWS 上生成访问密钥,您可以遵循此关于如何在 AWS 中创建访问和秘密密钥的视频

设置您的 GDK 环境

GitLab Duo Self-Hosted 要求您的 GDK 环境在 Self-Managed 模式下运行。它在 Multi-Tenant/SaaS 模式下不起作用。

要设置您的 GDK 环境以运行 GitLab Duo Self-Hosted,请按照此AI 开发文档中的步骤操作,在 GitLab Self-Managed / Dedicated 模式 下。

设置环境变量

要使用托管模型,请在您的 AI 网关上设置以下环境变量:

  1. GDK_ROOT/gitlab-ai-gateway/.env 文件中,设置以下变量:

    AWS_ACCESS_KEY_ID=your-access-key-id
    AWS_SECRET_ACCESS_KEY=your-secret-access-key
    AWS_REGION=us-east-1
    FIREWORKS_AI_API_KEY=your-fireworks-api-key
    AIGW_CUSTOM_MODELS__ENABLED=true
    # useful for debugging
    AIGW_LOGGING__ENABLE_REQUEST_LOGGING=true
    AIGW_LOGGING__ENABLE_LITELLM_LOGGING=true
  2. GDK_ROOT/env.runit 文件中,设置以下变量:

    export GITLAB_SIMULATE_SAAS=0
  3. 使用 bundle exec rake gitlab:duo:seed_self_hosted_models 为您的 Duo 自托管模型进行种子化。

  4. 运行 bundle exec rake gitlab:duo:list_self_hosted_models 应该输出创建的模型列表

  5. 使用 gdk restart 重启您的 GDK 以使更改生效。

在 UI 中配置自定义模型

要在 GitLab 实例中启用自托管模型的使用,请按照以下步骤操作:

  1. 在您的 GDK 实例上,转到 /admin/gitlab_duo/configuration

  2. 选择 在 GitLab Duo Self-Hosted 中使用测试版模型和功能 复选框。

  3. 对于 本地 AI 网关 URL,输入您的 AI 网关实例的 URL。在大多数情况下,这将是 http://localhost:5052

  4. 保存更改。

  5. 要保存更改,选择 创建自托管模型

  • 通过点击 Create self-hosted model 按钮保存您的更改。

使用自托管模型为 AI 功能提供支持

要使用创建的自托管模型为 AI 原生功能提供支持:

  1. 在您的 GDK 实例上,转到 /admin/gitlab_duo/self_hosted
  2. 对于您要与自托管模型一起使用的每个 AI 功能(例如,代码生成、代码补全、通用聊天、解释代码等),从相应的下拉列表中选择您新创建的自托管模型(例如,Bedrock 上的 Claude 3.5 Sonnet)。
  3. 可选。要将配置复制到特定类别下的所有功能,请选择其旁边的复制图标。
  4. 完成选择后,更改通常会自动保存。

GitLab Duo Self-Hosted 功能配置

这样,您就成功配置了自托管模型,为 GitLab 实例中的 AI 原生功能提供支持。要使用例如聊天功能测试该功能,请打开聊天并说 Hello。您应该在聊天中看到由您的自托管模型提供支持的响应。

将 GitLab.com 或 GitLab Self-Managed 中可用的功能迁移到 GitLab Duo Self-Hosted

要将 GitLab.com 或 GitLab Self-Managed 中可用的功能迁移到 GitLab Duo Self-Hosted:

  1. 使该功能可配置为使用自托管模型。
  2. 为该功能添加提示,为您要支持的每个模型系列。

使该功能可配置为使用自托管模型

当功能在 GitLab.com 或 GitLab Self-Managed 中可用时,它应该可配置为使用自托管模型。要使该功能可配置为使用自托管模型:

  • 将该功能的名称添加到 ee/app/models/ai/feature_setting.rb 中,作为稳定功能或测试版/实验性功能。
  • 将该功能的名称添加到 ee/lib/gitlab/ai/feature_settings/feature_metadata.yml 文件中,包括它支持的模型系列列表。
  • 将单元原语添加到 gitlab-cloud-connector 仓库 中的 config/services/self_hosted_models.yml。此合并请求可用作参考。
  • 基于上述更改关联的规范更改。

请参阅以下合并请求作为参考:

为该功能添加提示

为您要支持的该功能的每个模型系列,您必须添加一个提示。提示存储在 AI Gateway 仓库 中。

在大多数情况下,GitLab.com 上使用的提示也用于 Self-Hosted Duo。

请参阅以下合并请求作为参考:

您的功能现在应该在 GitLab Duo Self-Hosted 中可用。重启您的 GDK 实例以应用更改并测试该功能。