代码建议(Beta)

  • 引入于 15.9 版本,处于 Beta 阶段。
  • 可以选择启用于 15.11 版本,处于 Beta 阶段。
  • 从旗舰版移动到专业版于 16.0 版本。
caution此功能处于 Beta 阶段。代码建议使用生成式 AI,在您开发时建议代码。由于需求量大,此功能将出现计划外停机,VS Code 中的代码建议可能会延迟。代码建议可能会产生低质量或不完整的建议。Beta 版用户应阅读 已知限制

使用代码建议,通过在您键入时查看代码建议来更有效地编写代码。根据光标位置,代码建议可以:

  • 提供完整的代码片段,例如生成函数。
  • 完成当前行。

要接受建议,请按 Tab

带有极狐GitLab 工作流扩展的 Visual Studio Code 支持代码建议。极狐GitLab 计划在未来支持即将发布的新 WebIDE

代码建议可能会产生低质量或不完整的建议。Beta 版用户应阅读已知限制。对于以下六种语言,代码建议的结果是符合预期的:

  • C
  • C++
  • Go
  • Java
  • JavaScript
  • Python

对于其他语言的建议可能会混合。使用自然语言代码注释来请求完成也可能无法按预期运行。

极狐GitLab 正在不断改进模型,并期望很快支持另外七种语言,以及自然语言代码注释。

群组级别设置

群组所有者可以使用群组级代码建议设置

在 VS Code 中启用代码建议

先决条件:

在 VS Code 中启用代码建议:

  1. 下载并配置适用于 Visual Studio Code 的 Workflow 扩展
  2. GitLab: Add Account to VS Code on Mac 中,将您的极狐GitLab 工作帐户添加到 VS Code 扩展:
    • 在 macOS 中,按 Shift + Command + P
    • 在 Windows 中,按 Shift + Control + P
  3. 提供您的极狐GitLab 实例 URL。系统提供默认值。
  4. 提供您的个人访问令牌。
  5. 您的极狐GitLab 帐户连接成功后,在左侧边栏中,选择 扩展
  6. 找到 工作流 扩展,选择 设置),然后选择 扩展设置
  7. 启用 GitLab > AI 辅助代码建议

开始输入并接收有关极狐GitLab 项目的建议。

代码建议数据使用

概览

Code Suggestions 是托管在 SaaS 上的一种生成式人工智能 (AI) 模型,它可以在您的开发人员键入代码时提供建议,从而使他们能够更高效地编写代码。

个人访问令牌启用与 SaaS 的安全 API 连接。此 API 连接将上下文窗口从 VS Code 安全地传输到 Code Suggestions ML 模型以进行推理,并将生成的建议传输回 VS Code。

渐进增强

此功能旨在逐步增强现有 VS Code GitLab Workflow 插件。如果机器学习引擎可以生成建议,则 Code Suggestions 会提供一个完成的建议。如果出现连接问题或模型推理失败,该功能会正常降级。Code Suggestions 不会阻止您在 VS Code 中编写代码。

默认关闭

Code Suggestions 在默认情况下处于关闭状态,需要群组所有者使用群组级别设置启用该功能。

启用群组级别设置后,使用带有 Workflow 扩展 的 Visual Studio Code 的开发人员,可以通过具有 read_apiread_user 范围的个人访问令牌,连接到 SaaS。

生成建议

一旦由开发人员在 VS Code 中配置。个人访问令牌启用与 SaaS 的安全 API 连接。此 API 连接将上下文窗口从 VS Code 安全地传输到 Code Suggestions ML 模型以进行推理,并将生成的建议传输回 VS Code。

Code Suggestions 仅在您具有互联网连接并且可以访问 SaaS 时才有效。Code Suggestions 不适用于私有化部署版客户,也不适用于在隔离环境中运营的客户。

稳定性和性能

此功能目前处于 Beta 阶段。虽然 Code Suggestions 推理 API 完全在 SaaS 的企业基础架构中运行,但我们预计对此 Beta 功能的需求很高,可能会导致性能下降或功能意外停机。构建此功能时考虑了优雅降级,并有适当的控制措施来减少滥用或误用。极狐GitLab 可随时自行决定为任何或所有客户禁用此功能。

数据隐私

Code Suggestions 完全在 SaaS 基础设施中运行,提供与 SaaS 的任何其他功能相同级别的安全性,并遵循我们的隐私声明

系统不会收集新的附加数据来启用此功能。您的极狐GitLab 托管源代码的内容不用作训练数据。针对代码建议模型的源代码推理不用于重新训练模型。您的数据也永远不会离开 SaaS。所有训练和推理都在 SaaS 基础设施中完成。

模型精度和质量

在 Beta 阶段中,Code Suggestions 可能会生成低质量、不完整且可能不安全的代码。我们强烈鼓励所有测试版用户利用极狐GitLab 原生代码质量扫描安全扫描能力。

极狐GitLab 使用定制的开源数据集来微调模型以支持多种语言。根据您编写代码的语言,极狐GitLab 将请求路由到有针对性的推理和提示引擎以获取相关建议。

极狐GitLab 正在积极改进这些模型,以提高推荐质量,增加对更多语言的支持,并增加保护措施以限制个人数据、不安全代码和模型可能从训练数据中学到的其他不良行为。

训练数据

Code Suggestions 使用来自 CodeGen 系列的开源预训练基础模型,包括 CodeGen-MULTI 和 CodeGen-NL。然后,我们使用定制的开源数据集重新训练和微调这些基础模型,以实现多语言支持和其他用例。此自定义数据集包含来自 The PileGoogle 的 BigQuery 源代码数据集的 13 种编程语言的非预处理开源代码。然后,我们根据旨在提高数据集质量的启发式方法处理这个原始数据集。

Code Suggestions 模型未针对极狐GitLab 客户数据进行训练。

已知限制

在 Beta 版中,我们致力于提高整体生成内容的准确性。但是,代码建议可能会生成以下建议:

  • 低质量的建议
  • 不完整的建议
  • 导致流水线失败的建议
  • 包含不安全代码的建议
  • 具有攻击性或不敏感的建议

可能还会有产生意外或不连贯结果的特定情况,包括:

  • 基于自然语言代码注释的建议。
  • 以意想不到的方式混合编程语言的建议。