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

询问 GitLab Duo Chat

作为 GitLab Duo 原生 AI 功能的一部分,GitLab Duo Chat 可帮助您:

  • 获取代码、错误及 GitLab 功能的解释。
  • 生成或重构代码、编写测试并修复问题。
  • 创建 CI/CD 配置并排查作业失败问题。
  • 总结问题、史诗和合并请求。
  • 解决安全漏洞。

以下示例提供了有关 Duo Chat 功能的更多信息。

如需更多实用示例,请参阅 GitLab Duo 用例

本页面的示例问题(包括 斜杠命令)均为通用示例。若向 Chat 提出与当前目标相关的具体问题,可能会获得更有用的回复。例如,“data_cleaning.py 中的 clean_missing_data 函数如何决定删除哪些行?”

询问关于 GitLab 的问题

  • 层级:Premium、Ultimate
  • 附加组件:GitLab Duo Core、Pro 或 Enterprise
  • 提供方式:GitLab.com、GitLab 自托管、GitLab 专用版
  • 编辑器:GitLab UI、Web IDE、VS Code 及 JetBrains IDE
  • LLM:Anthropic [Claude 4.0 Sonnet](https: //console.cloud.google.com/vertex-ai/publishers/anthropic/model-garden/claude-sonnet-4)

您可以询问关于 GitLab 工作原理的问题,例如:

  • 简明解释“fork”的概念。
  • 提供重置用户密码的分步说明。

GitLab Duo Chat 使用来自 GitLab 仓库 的 GitLab 文档作为知识来源。

为确保 Chat 与文档保持同步,其知识库每日更新。

  • 在 GitLab.com 上,使用最新版本的文档。
  • 在 GitLab 自托管和 GitLab 专用版上,使用实例版本的文档。

询问特定问题

  • 层级:高级版, 旗舰版
  • 附加组件:GitLab Duo 企业版
  • 产品形态:GitLab.com, GitLab 自托管, GitLab 专用
  • 编辑器:GitLab UI, Web IDE, VS Code, JetBrains IDEs
  • 大语言模型:Anthropic [Claude 4.0 Sonnet](https: //console.cloud.google.com/vertex-ai/publishers/anthropic/model-garden/claude-sonnet-4)

你可以询问特定的 GitLab 问题。例如:

  • 生成此链接所指向问题的摘要:<你的问题链接>
  • 当你在 GitLab 中查看问题时,可以提问 生成当前问题的简洁摘要。
  • 如何改进 <你的问题链接> 的描述,让读者理解其价值和待解决的问题?

如果问题包含大量文本(超过 40,000 字),GitLab Duo Chat 可能无法考虑每一个词。AI 模型对单次处理的输入量有限制。

关于 GitLab Duo Chat 如何通过问题和史诗提升生产力的技巧,请参阅 使用 GitLab Duo Chat 提升生产力

询问特定史诗

  • 层级:高级版, 旗舰版
  • 附加组件:GitLab Duo 企业版
  • 产品形态:GitLab.com, GitLab 自托管, GitLab 专用
  • 编辑器:GitLab UI, Web IDE, VS Code, JetBrains IDEs
  • 大语言模型:Anthropic [Claude 4.0 Sonnet](https: //console.cloud.google.com/vertex-ai/publishers/anthropic/model-garden/claude-sonnet-4)

你可以询问特定的 GitLab 史诗。例如:

  • 生成此链接所指向史诗的摘要:<你的史诗链接>
  • 当你在 GitLab 中查看史诗时,可以提问 生成已打开史诗的简洁摘要。
  • 在 <你的史诗链接> 中,评论者提出了哪些独特用例?

如果史诗包含大量文本(超过 40,000 字),GitLab Duo Chat 可能无法考虑每一个词。AI 模型对单次处理的输入量有限制。

询问特定合并请求

  • 层级:高级版, 旗舰版
  • 附加组件:GitLab Duo 企业版
  • 产品形态:GitLab.com, GitLab 自托管, GitLab 专用
  • 编辑器:GitLab UI
  • 大语言模型:Anthropic [Claude 4.0 Sonnet](https: //console.cloud.google.com/vertex-ai/publishers/anthropic/model-garden/claude-sonnet-4)

你可以向 GitLab 询问你正在查看的合并请求。你可以询问:

  • 标题或描述。
  • 评论和讨论线程。
  • 更改 标签页上的内容。
  • 元数据,如标签、源分支、作者、里程碑等。

在合并请求页面中,打开聊天窗口并输入你的问题。例如:

  • 为什么修改了 .vue 文件?
  • 评审者对该合并请求有何评价?
  • 这个合并请求如何改进?
  • 我应该优先审查哪些文件和更改?

关于特定提交的提问

  • Tier: Premium, Ultimate
  • Add-on: GitLab Duo Enterprise
  • Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
  • Editors: GitLab UI
  • LLM: Anthropic Claude 4.0 Sonnet

您可以针对特定的 GitLab 提交进行提问。例如:

  • 生成此链接所标识的提交的摘要:<link to your commit>
  • 如何改进此提交的描述?
  • 当您在 GitLab 中查看提交时,可以询问 生成当前提交的摘要。

关于特定流水线作业的提问

  • Tier: Premium, Ultimate
  • Add-on: GitLab Duo Enterprise
  • Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
  • Editors: GitLab UI
  • LLM: Anthropic Claude 4.0 Sonnet

您可以针对特定的 GitLab 流水线作业进行提问。例如:

  • 生成此链接所标识的流水线作业的摘要:<link to your pipeline job>
  • 能否建议修复此失败流水线作业的方法?
  • 此流水线作业执行的主要步骤有哪些?
  • 当您在 GitLab 中查看流水线作业时,可以询问 生成当前流水线作业的摘要。

关于特定工作项的提问

  • Tier: Premium, Ultimate
  • Add-on: GitLab Duo Enterprise
  • Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
  • Editors: GitLab UI, Web IDE, VS Code, JetBrains IDEs
  • LLM: Anthropic Claude 4.0 Sonnet

您可以针对特定的 GitLab 工作项进行提问。例如:

  • 生成此链接所标识的工作项的摘要:<link to your work item>
  • 当您在 GitLab 中查看工作项时,可以询问 生成当前工作项的简洁摘要。
  • 如何改进<link to your work item>的描述,使读者理解其价值和待解决的问题?

如果工作项包含大量文本(超过40,000字),GitLab Duo Chat 可能无法考虑每一个词。AI 模型一次能处理的输入量有上限。

解释选中的代码

  • 层级:高级版、旗舰版
  • 附加组件:GitLab Duo Core、Pro 或 Enterprise,GitLab Duo with Amazon Q
  • 提供方式:GitLab.com、GitLab 自托管、GitLab Dedicated
  • 编辑器:GitLab UI、Web IDE、VS Code、JetBrains IDEs
  • 大语言模型(LLM):Anthropic [Claude 4.0 Sonnet](https: //console.cloud.google.com/vertex-ai/publishers/anthropic/model-garden/claude-sonnet-4)
  • Amazon Q 的 LLM:Amazon Q Developer
  • GitLab Duo with self-hosted models 上可用:是

你可以让 GitLab Duo Chat 解释选中的代码:

  1. 在 IDE 中选择一些代码。

  2. 在 Duo Chat 中输入 /explain

    选择代码并使用 /explain 斜杠命令让 GitLab Duo Chat 解释代码。

你还可以添加额外的指令供考虑。例如:

  • /explain the performance
  • /explain focus on the algorithm
  • /explain the performance gains or losses using this code
  • /explain the object inheritance(类,面向对象)
  • /explain why a static variable is used here(C++)
  • /explain how this function would cause a segmentation fault(C)
  • /explain how concurrency works in this context(Go)
  • /explain how the request reaches the client(REST API,数据库)

有关更多信息,请参阅:

在 GitLab UI 中,你也可以在以下位置解释代码:

询问或生成代码

  • 层级:高级版、旗舰版
  • 附加组件:GitLab Duo Core、Pro 或 Enterprise
  • 提供方式:GitLab.com、GitLab 自托管、GitLab Dedicated
  • 编辑器:GitLab UI、Web IDE、VS Code、JetBrains IDEs
  • 大语言模型(LLM):Anthropic [Claude 4.0 Sonnet](https: //console.cloud.google.com/vertex-ai/publishers/anthropic/model-garden/claude-sonnet-4)

你可以通过将代码粘贴到聊天窗口来向 GitLab Duo Chat 提问关于代码的问题。例如:

Provide a clear explanation of this Ruby code: def sum(a, b) a + b end.
Describe what this code does and how it works.

你也可以让 Chat 生成代码。例如:

  • 编写一个调用时打印 'Hello, World!' 的 Ruby 函数。
  • 开发一个模拟两人井字棋游戏的 JavaScript 程序。如果适用,同时提供游戏逻辑和用户界面。
  • 创建一个用于解析 Python 中 IPv4 和 IPv6 地址的正则表达式。
  • 生成用于解析 syslog 日志文件的 Java 代码。尽可能使用正则表达式,并将结果存储在哈希映射中。
  • 创建一个带有线程和共享内存的生产者-消费者示例(C++)。尽可能使用原子锁。
  • 生成用于高性能 gRPC 调用的 Rust 代码。提供一个服务器和客户端的源代码示例。

提出后续问题

  • 层级:Premium, Ultimate
  • 附加组件:GitLab Duo Core, Pro, 或 Enterprise
  • 提供:GitLab.com, GitLab 自托管, GitLab Dedicated
  • 编辑器:GitLab UI, Web IDE, VS Code, JetBrains IDEs
  • 用于 GitLab 自托管、GitLab Dedicated 的 LLM:Anthropic [Claude 3.5 Sonnet V2](https: //console.cloud.google.com/vertex-ai/publishers/anthropic/model-garden/claude-3-5-sonnet-v2)
  • 用于 GitLab.com 的 LLM:Anthropic [Claude 4.0 Sonnet](https: //console.cloud.google.com/vertex-ai/publishers/anthropic/model-garden/claude-sonnet-4)

你可以向当前主题或任务提出后续问题以深入探讨。这有助于你获得更详细且精准的响应,满足你的特定需求,无论是进一步澄清、详述还是额外协助。

对问题 编写一个在调用时打印 'Hello, World!' 的 Ruby 函数 的后续问题可能是:

  • 您能否解释一下如何在典型的 Ruby 环境(例如命令行)中调用并执行这个 Ruby 函数?

对问题 如何开始一个 C# 项目? 的后续问题可能是:

  • 您能否也解释一下如何为 C# 添加 .gitignore 和 .gitlab-ci.yml 文件?

询问错误信息

  • 层级:Premium, Ultimate
  • 附加组件:GitLab Duo Core, Pro, 或 Enterprise
  • 提供:GitLab.com, GitLab 自托管, GitLab Dedicated
  • 编辑器:GitLab UI, Web IDE, VS Code, JetBrains IDEs
  • 用于 GitLab 自托管、GitLab Dedicated 的 LLM:Anthropic [Claude 3.5 Sonnet V2](https: //console.cloud.google.com/vertex-ai/publishers/anthropic/model-garden/claude-3-5-sonnet-v2)
  • 用于 GitLab.com 的 LLM:Anthropic [Claude 4.0 Sonnet](https: //console.cloud.google.com/vertex-ai/publishers/anthropic/model-garden/claude-sonnet-4)

需要编译源代码的编程语言可能会抛出晦涩的错误消息。同样,脚本或 Web 应用程序也可能抛出堆栈跟踪。你可以通过在复制的错误消息前加上前缀(例如 Explain this error message:)来询问 GitLab Duo Chat。添加具体上下文,比如编程语言。

  • Explain this error message in Java: Int and system cannot be resolved to a type
  • Explain when this C function would cause a segmentation fault: sqlite3_prepare_v2()
  • Explain what would cause this error in Python: ValueError: invalid literal for int()
  • Why is "this" undefined in VueJS? Provide common error cases, and explain how to avoid them.
  • How to debug a Ruby on Rails stacktrace? Share common strategies and an example exception.

在IDE中询问特定文件

  • 层级:Premium、Ultimate
  • 插件:GitLab Duo Core、Pro 或 Enterprise
  • 提供:GitLab.com、GitLab 自托管、GitLab Dedicated
  • 编辑器:VS Code、JetBrains IDEs
  • 大语言模型:Anthropic [Claude 4.0 Sonnet](https: //console.cloud.google.com/vertex-ai/publishers/anthropic/model-garden/claude-sonnet-4)

在VS Code或JetBrains IDE中,通过输入 /include 并选择文件,将仓库文件添加到你的Duo Chat对话中。

前提条件:

  • 文件必须是仓库的一部分。
  • 文件必须是文本类型的。二进制文件(如PDF或图像)不受支持。

操作步骤:

  1. 在你的IDE中,打开GitLab Duo Chat,输入 /include
  2. 要添加文件,你可以:
    • 从列表中选择文件。
    • 输入文件路径。

例如,如果你正在开发一个电子商务应用,你可以将 cart_service.pycheckout_flow.js 文件添加到Chat的上下文中并提问:

  • checkout_flow.js 如何与 cart_service.py 交互?生成一个Mermaid序列图。
  • 能否扩展结账流程,显示与用户购物车中商品相关的商品?我想在继续之前将结账逻辑移至后端。生成Python后端代码,并修改前端代码以适配新后端。

你不能使用 Quick Chat 来添加文件或询问已添加到Chat上下文中的文件的问题。

在IDE中重构代码

  • 层级:Premium, Ultimate
  • 插件:GitLab Duo Core、Pro 或 Enterprise,GitLab Duo with Amazon Q
  • 提供:GitLab.com、GitLab 自托管、GitLab 专用
  • 编辑器:Web IDE、VS Code、JetBrains IDEs
  • 大语言模型:Anthropic [Claude 4.0 Sonnet](https: //console.cloud.google.com/vertex-ai/publishers/anthropic/model-garden/claude-sonnet-4)
  • Amazon Q的大语言模型:Amazon Q Developer
  • 自托管模型的GitLab Duo上可用:是

你可以要求GitLab Duo Chat重构选中的代码:

  1. 在IDE中选择一些代码。
  2. 在Duo Chat中输入 /refactor

你可以添加额外的指令以供考虑。例如:

  • 使用特定的编码模式,例如 /refactor with ActiveRecord/refactor into a class providing static functions
  • 使用特定的库,例如 /refactor using mysql
  • 使用特定的函数/算法,例如 C++ 中 /refactor into a stringstream with multiple lines
  • 重构为不同的编程语言,例如 /refactor to TypeScript
  • 关注性能,例如 /refactor improving performance
  • 关注潜在漏洞,例如 /refactor avoiding memory leaks and exploits

/refactor 使用 Repository X-Ray 来提供更准确、上下文感知的建议。

有关更多信息,请参阅:

在IDE中修复代码

  • 层级:Premium, Ultimate
  • 插件:GitLab Duo Core、Pro 或 Enterprise,GitLab Duo with Amazon Q
  • 提供:GitLab.com、GitLab 自托管、GitLab 专用
  • 编辑器:Web IDE、VS Code、JetBrains IDEs
  • 大语言模型:Anthropic [Claude 4.0 Sonnet](https: //console.cloud.google.com/vertex-ai/publishers/anthropic/model-garden/claude-sonnet-4)
  • Amazon Q的大语言模型:Amazon Q Developer
  • 自托管模型的GitLab Duo上可用:是

你可以要求GitLab Duo Chat修复选中的代码:

  1. 在IDE中选择一些代码。
  2. 在Duo Chat中输入 /fix

你可以添加额外的指令以供考虑。例如:

  • 关注语法和拼写错误,例如 /fix grammar mistakes and typos
  • 关注具体的算法或问题描述,例如 /fix duplicate database inserts/fix race conditions
  • 关注非直接可见的潜在bug,例如 /fix potential bugs
  • 关注代码性能问题,例如 /fix performance problems
  • 关注当代码无法编译时修复构建,例如 /fix the build

/fix 使用 Repository X-Ray 来提供更准确、上下文感知的建议。

在IDE中编写测试

  • 层级:高级版、旗舰版
  • 附加组件:GitLab Duo 核心版、专业版或企业版,带Amazon Q的GitLab Duo
  • 提供方式:GitLab.com、GitLab 自托管、GitLab 专用
  • 编辑器:Web IDE、VS Code、JetBrains IDEs
  • 大语言模型:Anthropic [Claude 4.0 Sonnet](https: //console.cloud.google.com/vertex-ai/publishers/anthropic/model-garden/claude-sonnet-4)
  • Amazon Q的大语言模型:Amazon Q Developer
  • 可用于自托管模型的GitLab Duo:是

你可以让GitLab Duo Chat为选定的代码创建测试:

  1. 在你的IDE中选择一些代码。
  2. 在Duo Chat中,输入 /tests

你可以添加额外的指令以供考虑。例如:

  • 使用特定的测试框架,例如 /tests using the Boost.test framework(C++)或 /tests using Jest(JavaScript)。
  • 关注极端测试用例,例如 /tests focus on extreme cases, force regression testing
  • 关注性能,例如 /tests focus on performance
  • 关注回归和潜在漏洞,例如 /tests focus on regressions and potential exploits

/tests 使用 Repository X-Ray 来提供更准确、上下文感知的建议。

更多信息请参见 在VS Code中使用GitLab Duo Chat

观看概述视频

询问CI/CD相关内容

  • 层级:高级版、旗舰版
  • 附加组件:GitLab Duo 专业版或企业版
  • 提供方式:GitLab.com、GitLab 自托管、GitLab 专用
  • 编辑器:GitLab UI、Web IDE、VS Code、JetBrains IDEs
  • 大语言模型:Anthropic [Claude 4.0 Sonnet](https: //console.cloud.google.com/vertex-ai/publishers/anthropic/model-garden/claude-sonnet-4)

你可以让GitLab Duo Chat创建CI/CD配置:

  • 创建一个.gitlab-ci.yml配置文件,用于在GitLab CI/CD管道中测试和构建Ruby on Rails应用程序。
  • 创建一个用于构建和检查Python应用程序的CI/CD配置。
  • 创建一个用于构建和测试Rust代码的CI/CD配置。
  • 创建一个用于C++的CI/CD配置。使用gcc作为编译器,cmake作为构建工具。
  • 创建一个用于VueJS的CI/CD配置。使用npm,并添加SAST安全扫描。
  • 生成一个针对Java优化的安全扫描管道配置。

你也可以通过复制粘贴错误信息(前缀为Explain this CI/CD job error message, in the context of <language>:)来请求解释特定作业的错误:

  • Explain this CI/CD job error message in the context of a Go project: build.sh: line 14: go command not found

或者,你可以使用GitLab Duo根因分析来排查失败的CI/CD作业

使用根因分析排查失败的CI/CD作业

  • 层级:Premium, Ultimate
  • 插件:GitLab Duo Enterprise, GitLab Duo with Amazon Q
  • 提供:GitLab.com, GitLab Self-Managed, GitLab Dedicated
  • 编辑器:GitLab UI
  • 大语言模型:Anthropic [Claude 4.0 Sonnet](https: //console.cloud.google.com/vertex-ai/publishers/anthropic/model-garden/claude-sonnet-4)
  • Amazon Q的大语言模型:Amazon Q Developer
  • 支持自托管模型的GitLab Duo:是

您可以在GitLab Duo聊天中使用GitLab Duo根因分析功能,快速识别并修复CI/CD作业失败问题。它会分析作业日志的最后100,000个字符以确定失败原因,并提供示例修复方案。

您可通过合并请求的Pipelines标签页或直接从作业日志访问此功能。

观看概述视频

根因分析不支持:

  • 触发器作业
  • 下游流水线

请在史诗任务13872中提供对此功能的反馈。

先决条件:

  • 您必须拥有查看CI/CD作业的权限
  • 您必须拥有付费的GitLab Duo Enterprise席位

从合并请求排查

若要从合并请求中排查失败的CI/CD作业:

  1. 在左侧边栏中选择搜索或前往并找到您的项目
  2. 进入您的合并请求
  3. 选择Pipelines标签页
  4. 在“失败作业”小部件中,执行以下任一操作:
    • 选择作业ID进入作业日志
    • 选择排查直接分析失败原因

从作业日志排查

若要从作业日志中排查失败的CI/CD作业:

  1. 在左侧边栏中选择搜索或前往并找到您的项目
  2. 选择构建 > 作业
  3. 选择失败的CI/CD作业
  4. 在作业日志下方,执行以下任一操作:
    • 选择排查
    • 打开GitLab Duo聊天并输入/troubleshoot

解释漏洞

  • 层级:Ultimate
  • 插件:GitLab Duo Enterprise, GitLab Duo with Amazon Q
  • 提供:GitLab.com, GitLab Self-Managed, GitLab Dedicated
  • 编辑器:GitLab UI
  • 大语言模型:Anthropic [Claude 4.0 Sonnet](https: //console.cloud.google.com/vertex-ai/publishers/anthropic/model-garden/claude-sonnet-4)
  • Amazon Q的大语言模型:Amazon Q Developer
  • 支持自托管模型的GitLab Duo:是

当您查看SAST漏洞报告时,可要求GitLab Duo聊天解释该漏洞。

有关更多信息,请参阅解释漏洞

创建新对话

  • 层级:Premium, Ultimate
  • 插件:GitLab Duo Pro 或 Enterprise
  • 提供:GitLab.com
  • 编辑器:GitLab UI

在GitLab 17.10及更高版本中,您可以与Chat进行多个并发对话。

  • 在聊天抽屉的左上角,选择新建聊天
  • 在文本框中,输入/new并按Enter键或选择发送

删除或重置对话

对于单个聊天对话:

  • 若要永久删除所有对话并清空聊天窗口:

    • 在文本框中,输入/clear并选择发送
  • 若要开始新对话但保留之前对话在聊天窗口中可见:

    • 在文本框中,输入/reset并选择发送

以上两种情况中,新提问时均不会参考对话历史记录。删除或重置有助于提升上下文切换时的回答质量,因为Duo Chat不会被无关对话干扰。

当存在多个对话时:

  • /new斜杠命令会替代/clear/reset命令,并打开新的聊天抽屉

GitLab Duo Chat 斜杠命令

Duo Chat 有一系列通用、GitLab UI 和 IDE 命令,每个命令前都带有斜杠(/)。

使用这些命令快速完成特定任务。

通用

  • 层级:Premium, Ultimate
  • 附加组件:GitLab Duo Core, Pro, 或 Enterprise
  • 提供:GitLab.com, GitLab 自托管, GitLab Dedicated
  • 编辑器:GitLab UI, Web IDE, VS Code, JetBrains IDEs
命令 用途
/clear 永久删除所有对话并清空聊天窗口
/reset 开始新对话,但保留之前的对话在聊天窗口中可见
/help 了解更多关于 Duo Chat 如何工作的信息

在 GitLab.com 上,GitLab 17.10 及更高版本中,当存在 多个对话 时,/clear/reset 斜杠命令会被 /new 斜杠命令 替换。

GitLab UI

  • 层级:Premium, Ultimate
  • 附加组件:GitLab Duo Enterprise
  • 提供:GitLab.com, GitLab 自托管, GitLab Dedicated
  • 编辑器:GitLab UI

这些命令是动态的,仅在 GitLab UI 中使用 Duo Chat 时可用:

命令 用途 区域
/summarize_comments 生成当前问题所有评论的摘要 问题
/troubleshoot 通过根因分析排查失败的 CI/CD 作业 作业
/vulnerability_explain 解释当前漏洞 漏洞
/new 创建新的聊天对话。GitLab 17.10 及更高版本。 全部

IDE

  • 层级:Premium, Ultimate
  • 附加组件:GitLab Duo Core, Pro, 或 Enterprise
  • 提供:GitLab.com, GitLab 自托管, GitLab Dedicated
  • 编辑器:Web IDE, VS Code, JetBrains IDEs

这些命令仅在使用支持 IDE 中的 Duo Chat 时有效:

命令 用途
/tests 编写测试
/explain 解释代码
/refactor 重构代码
/fix 修复代码
/include 包含文件上下文