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 AI 供应商模型和由 GitLab 托管的云 AI 网关。这是默认选项。
- 使用 GitLab Duo Self-Hosted 自托管 AI 网关,并搭配支持的自托管 LLM。 此选项让您可以完全掌控自己的数据和安全性。
要使用 GitLab Duo Self-Hosted,您必须拥有带有 GitLab Duo Enterprise 附加组件的高级版或旗舰版订阅。
本页面重点介绍当您使用默认的、由 GitLab 托管的选项时,如何配置 GitLab 自管实例。
先决条件
-
静默模式必须处于关闭状态。
-
您必须使用激活码激活您的实例。
您不能使用离线许可证或旧版许可证。
-
为获得最佳用户体验和效果,GitLab Duo 需要 GitLab 17.2 或更高版本。较早的版本可能仍可使用,但体验可能会有所下降。
GitLab Duo 的实验性功能或 Beta 版功能默认处于关闭状态 并必须手动开启。
允许从 GitLab 实例出站连接
请同时检查您的出站和入站设置:
- 您的防火墙和 HTTP/S 代理服务器必须允许通过
https://协议,从端口443向cloud.gitlab.com和customers.gitlab.com建立出站连接。这些主机受 Cloudflare 保护。请更新您的防火墙设置,以允许流量访问 Cloudflare 发布的 IP 范围列表 中的所有 IP 地址。 - 要使用 HTTP/S 代理,
gitLab_workhorse和gitLab_rails都必须设置必要的 Web 代理环境变量。 - 在多节点 GitLab 安装中,请在所有 Rails 和 Sidekiq 节点上配置 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 版 功能。
先决条件:
- 您必须是管理员。
要运行健康检查:
- 在左侧边栏的底部,选择 管理员。
- 选择 GitLab Duo。
- 在右上角,选择 运行健康检查。
- 可选。在 GitLab 17.5 及更高版本中,健康检查完成后,您可以选择 下载报告 以保存健康检查结果的详细报告。
将执行以下测试:
| 测试 | 描述 |
|---|---|
| 网络 | 测试您的实例能否连接到 customers.gitlab.com 和 cloud.gitlab.com。如果您的实例无法连接到任一目标,请确保您的防火墙或代理服务器设置允许连接。 |
| 同步 | 测试您的订阅: - 是否已使用激活码激活,并能与 customers.gitlab.com 同步。- 是否具有正确的访问凭据。 - 最近是否已同步。如果尚未同步,或访问凭据缺失或已过期,您可以手动同步您的订阅数据。 |
| 系统交换 | 测试您的实例中是否可以使用代码建议 (Code Suggestions)。如果系统交换评估失败,用户可能无法使用 GitLab Duo 功能。 |
对于 17.10 版本之前的 GitLab 实例,如果您在健康检查方面遇到任何问题:
- GitLab 托管的 Duo,请参阅故障排除页面。