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

在 GitLab 自管实例上配置 GitLab Duo

  • 产品选项:GitLab Self-Managed

GitLab Duo 由大型语言模型 (LLM) 驱动,数据通过 AI 网关发送。 要在 GitLab 自管实例上使用 GitLab Duo,您可以执行以下任一操作:

要使用 GitLab Duo Self-Hosted,您必须拥有带有 GitLab Duo Enterprise 附加组件的高级版或旗舰版订阅。

本页面重点介绍当您使用默认的、由 GitLab 托管的选项时,如何配置 GitLab 自管实例。

先决条件

  • 您必须确保同时存在出站入站连接。 网络防火墙可能会导致延迟或响应缓慢。

  • 静默模式必须处于关闭状态。

  • 您必须使用激活码激活您的实例

    您不能使用离线许可证或旧版许可证。

  • 为获得最佳用户体验和效果,GitLab Duo 需要 GitLab 17.2 或更高版本。较早的版本可能仍可使用,但体验可能会有所下降。

GitLab Duo 的实验性功能或 Beta 版功能默认处于关闭状态 并必须手动开启

允许从 GitLab 实例出站连接

请同时检查您的出站和入站设置:

  • 您的防火墙和 HTTP/S 代理服务器必须允许通过 https:// 协议,从端口 443cloud.gitlab.comcustomers.gitlab.com 建立出站连接。这些主机受 Cloudflare 保护。请更新您的防火墙设置,以允许流量访问 Cloudflare 发布的 IP 范围列表 中的所有 IP 地址。
  • 要使用 HTTP/S 代理,gitLab_workhorsegitLab_rails 都必须设置必要的 Web 代理环境变量
  • 在多节点 GitLab 安装中,请在所有 RailsSidekiq 节点上配置 HTTP/S 代理。

允许从客户端到 GitLab 实例的入站连接

  • GitLab 实例必须允许来自 Duo 客户端(IDE、 代码编辑器和 GitLab Web 前端)的入站连接,这些连接通过端口 443,使用 https://wss:// 协议。
  • 必须同时允许 HTTP2 和 ‘upgrade’ 请求头,因为 GitLab Duo 同时使用 REST 和 WebSocket。
  • 检查对发往 wss://gitlab.example.com/-/cable 及其他 .com 域的 WebSocket (wss://) 流量是否存在限制。 对 wss:// 流量的网络策略限制可能会导致某些 GitLab Duo Chat 服务出现问题。请考虑更新策略以允许这些服务。
  • 如果您使用反向代理(例如 Apache),您可能会在日志中看到 GitLab Duo Chat 连接问题,例如 WebSocket 连接 …. 失败

要解决此问题,请尝试修改您的 Apache 代理设置:

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

为 GitLab Duo 运行健康检查

  • 状态:Beta

您可以确定您的实例是否满足使用 GitLab Duo 的要求。 健康检查完成后,它会显示通过或失败的结果以及问题类型。如果健康检查中有任何测试失败,用户可能无法在您的实例中使用 GitLab Duo 功能。

这是一个 Beta 版 功能。

先决条件:

  • 您必须是管理员。

要运行健康检查:

  1. 在左侧边栏的底部,选择 管理员
  2. 选择 GitLab Duo
  3. 在右上角,选择 运行健康检查
  4. 可选。在 GitLab 17.5 及更高版本中,健康检查完成后,您可以选择 下载报告 以保存健康检查结果的详细报告。

将执行以下测试:

测试 描述
网络 测试您的实例能否连接到 customers.gitlab.comcloud.gitlab.com

如果您的实例无法连接到任一目标,请确保您的防火墙或代理服务器设置允许连接
同步 测试您的订阅:
- 是否已使用激活码激活,并能与 customers.gitlab.com 同步。
- 是否具有正确的访问凭据。
- 最近是否已同步。如果尚未同步,或访问凭据缺失或已过期,您可以手动同步您的订阅数据。
系统交换 测试您的实例中是否可以使用代码建议 (Code Suggestions)。如果系统交换评估失败,用户可能无法使用 GitLab Duo 功能。

对于 17.10 版本之前的 GitLab 实例,如果您在健康检查方面遇到任何问题: