询问 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 解释选中的代码:
你还可以添加额外的指令供考虑。例如:
/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 typeExplain 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或图像)不受支持。
操作步骤:
- 在你的IDE中,打开GitLab Duo Chat,输入
/include。 - 要添加文件,你可以:
- 从列表中选择文件。
- 输入文件路径。
例如,如果你正在开发一个电子商务应用,你可以将 cart_service.py 和 checkout_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重构选中的代码:
- 在IDE中选择一些代码。
- 在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修复选中的代码:
- 在IDE中选择一些代码。
- 在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为选定的代码创建测试:
- 在你的IDE中选择一些代码。
- 在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作业:
- 在左侧边栏中选择搜索或前往并找到您的项目
- 进入您的合并请求
- 选择Pipelines标签页
- 在“失败作业”小部件中,执行以下任一操作:
- 选择作业ID进入作业日志
- 选择排查直接分析失败原因
从作业日志排查
若要从作业日志中排查失败的CI/CD作业:
- 在左侧边栏中选择搜索或前往并找到您的项目
- 选择构建 > 作业
- 选择失败的CI/CD作业
- 在作业日志下方,执行以下任一操作:
- 选择排查
- 打开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 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 | 包含文件上下文 |