Thanks to visit codestin.com
Credit goes to docs.github.com

Skip to main content

应用卡片:GitHub Copilot 对话助手

了解如何通过了解 GitHub 的目的、功能和限制来负责任地使用 GitHub Copilot 对话助手。

什么是应用程序卡?

GitHub’s application and platform cards are intended to help you understand how our AI technology works, the choices application owners can make that influence application performance and behavior, and the importance of considering the whole application, including the technology, the people, and the environment. Application cards are created for AI applications and platform cards are created for AI platform services. These resources can support the development or deployment of your own applications and can be shared with users or stakeholders impacted by them.

As part of its commitment to responsible AI, GitHub adheres to Microsoft's six core principles: fairness, reliability and safety, privacy and security, inclusiveness, transparency, and accountability. These principles are embedded in the Responsible AI Standard, which guides teams in designing, building, and testing AI applications. Application and Platform Cards play a key role in operationalizing these principles by offering transparency around capabilities, intended uses, and limitations. For further insight, readers are encouraged to explore Microsoft’s Responsible AI Transparency Report and GitHub 条款.

1. 概述

GitHub Copilot聊天是一个聊天界面,可用于与GitHub Copilot进行交互,以询问和接收编码相关问题的解答。 GitHub.com、支持的 IDE(VS Code、Visual Studio、JetBrains 和 Eclipse)上、GitHub Mobile 和 Windows 终端 中提供了GitHub Copilot 对话助手。 在 GitHub.com 和 GitHub Desktop 上,Copilot 还可以生成拉取请求摘要和提交消息——即由 AI 生成的、对拉取请求或提交中所做更改的概述。

GitHub Copilot 对话助手可以回答各种与编码相关的主题问题,包括语法、编程概念、测试用例、调试等。 GitHub Copilot 对话助手不是为了回答非编码问题或提供有关编码外部主题的一般信息。

GitHub Copilot 对话助手支持的主要语言是英语。

2. 关键术语

以下列表提供了与 GitHub Copilot 对话助手相关的关键术语词汇表:

  • 内容筛选:在向用户显示内容之前扫描提示和响应以检测和阻止有害内容的安全系统。
  • 幻觉:一种现象,指语言模型生成的内容听起来很合理,但事实上是错误的、无法从所提供的上下文中得到支持,或完全凭空捏造。 幻觉是大型语言模型的已知风险,也是人工审查 AI 生成的输出非常重要的原因。
  • 大型语言模型(LLM):基于大量文本数据训练的神经网络,可以生成、分析和转换自然语言和代码。 GitHub Copilot 对话助手使用一个或多个 LLM 来处理提示并生成响应。
  • Prompt:提供给 GitHub Copilot 对话助手的输入。 在将提示发送到语言模型之前,系统会将提示与其他上下文(例如打开文件或存储库数据)组合在一起。
  • 公共代码匹配:用于检查Copilot的建议是否与公开可用的代码匹配的功能。 根据你的设置,匹配建议可能会被关闭或开启;如果开启,系统可能会阻止相关内容,或添加注释,附上源代码仓库的引用以及任何许可信息。
  • 拉取请求摘要:由 AI 生成的拉取请求变更概述,包含一段文字说明以及以项目符号列出的关键变更列表,并链接至受影响的文件。 摘要会在 GitHub.com 上按需生成。
  • 红队测试:一种结构化测试实践,测试人员会故意试图诱发 AI 系统产生不安全、有害或非预期行为。 红色组合有助于识别漏洞并改进发布前后的安全缓解措施。
  • 训练数据:用于训练 GitHub Copilot 对话助手背后的基础模型的大量公开可用文本和代码。 训练数据的组合会影响模型在不同编程语言、框架和主题中建议的质量和覆盖面。

3. 主要特性或功能

此处概述的主要特性和功能说明了 GitHub Copilot 对话助手 的设计用途,以及它在所支持的各项任务中的表现。

  • 对话式编程辅助:GitHub Copilot 对话助手 提供自然语言界面,用户可通过它提出与编程相关的问题,并以代码、解释或分步指导的形式获得答案。 用户可以提出后续问题来优化响应,会话历史记录保留在会话中。
  • 上下文感知响应:GitHub Copilot 对话助手 使用上下文信息(例如打开的文件、当前仓库、聊天历史记录以及(启用时)网络搜索结果)来生成与用户当前工作相关的回复。 可用的特定上下文取决于平台(GitHub.com、IDE、Mobile、Windows 终端 或 GitHub Desktop)。
  • 多平台可用性:GitHub Copilot 对话助手 可在多个平台上使用,包括 GitHub.com、受支持的 IDE(VS Code、Visual Studio、JetBrains 和 Eclipse)、GitHub Mobile、Windows 终端 和 GitHub Desktop。 每个平台提供针对其环境优化的定制体验。
  • Agent 模式:在受支持的 IDE 中,GitHub Copilot 对话助手可以在代理模式下运行,模型可以自主计划多步骤任务、调用工具(例如运行终端命令或编辑文件),并循环访问结果。 这将扩展聊天体验,超越单轮问答交互。
  • Copilot Spaces:空间允许用户将存储库、文件、问题和其他材料组织到精心策划的上下文集合中。 当在空间内提问时,Copilot使用包含的上下文生成更有针对性的相关响应。 也可以在 IDE 中通过远程 GitHub MCP 服务器访问 Spaces。
  • 拉取请求摘要:在 GitHub.com 上,Copilot 可以生成由 AI 生成的拉取请求中的更改摘要。 输出包括一段文字概述,后面是关联到受影响文件的关键更改项目符号列表。 摘要是按需生成的,旨在帮助审阅者快速了解更改的内容。
  • Commit 消息生成:在 GitHub.com 和 GitHub Desktop 中,Copilot可以根据所选的代码更改生成建议的提交摘要(标题)和说明。 在 GitHub Desktop 中,用户可以选择特定的代码行或文件以提高上下文和准确性。 可以在提交之前查看和编辑生成的消息。
  • 创建自己的密钥(BYOK):组织可以通过提供自己的 API 密钥,而不是使用默认GitHub托管模型,将GitHub Copilot 对话助手连接到受支持的第三方提供程序的大型语言模型。
  • 内容筛选:有时,GitHub Copilot 对话助手 可能包含一种内容筛选系统,用于扫描提示和响应,以检测并阻止有害内容。 公共代码匹配功能会检查建议是否与公开可用代码匹配,并根据设置阻止这些匹配项,或为其标注来源和许可证信息。

4. 预期用途

GitHub Copilot 对话助手可用于各种行业的多个方案。 用例的一些示例包括:

  • 编写代码问题:向 GitHub Copilot 对话助手询问有关特定编码问题的帮助或说明,并使用自然语言或代码片段格式接收响应。 响应可以基于模型的训练数据、存储库上下文和 Web 搜索结果(启用时)。
  • 解释代码和建议改进:生成函数用途、输入、输出和依赖项的自然语言说明。 GitHub Copilot 对话助手还可以建议改进,例如更好的错误处理或更多可读的控制流。 请注意,生成的解释可能并不总是准确或完整且应进行评审。
  • 生成单元测试用例:GitHub Copilot 对话助手可以根据编辑器中打开的代码或突出显示的代码片段生成代码片段来帮助编写单元测试用例。 它可以根据函数的签名和正文建议可能的输入参数、预期的输出值和断言。 GitHub Copilot 对话助手还可以为边缘事例和边界条件(例如错误处理、null 值或意外输入类型)建议测试用例,这可能难以手动识别。 生成的测试用例可能未涵盖所有可能的方案;仍需要手动测试和代码评审。
  • 建议代码修复:根据错误消息、代码语法和周围上下文获取针对 bug 的建议修复。 GitHub Copilot聊天可以建议对可能解决问题的变量、控件结构或函数调用进行更改。 请注意,建议的修复可能并不总是最佳或完整。
  • 规划编码任务:阅读和汇总GitHub问题、回答有关它们的问题或提出后续步骤。
  • 了解版本发布、讨论和提交记录:总结某次版本发布中的变更、某场讨论的要点,或某次特定提交中的更改。
  • 汇总拉取请求更改(GitHub.com):生成由 AI 提供支持的拉取请求更改摘要,包括文字概述以及按项目符号列出的关键更改列表,并链接到受影响的文件,以帮助审阅者快速了解变更内容以及应重点审查的部分。
  • 生成提交消息(GitHub.com 和GitHub桌面):根据选择提交的代码更改生成提交消息摘要(标题)和说明,帮助你节省时间和维护明确的提交历史记录。 在 GitHub Desktop 中,可以选择特定的代码行或文件,以便更好地了解上下文以提高准确性。 可以在提交之前查看和编辑建议的标题和说明。
  • 查找合适的命令(Windows 终端):让 Copilot 推荐可帮助你在命令行中执行任务的命令。 可以修改问题,直到返回的命令满足预期,然后将其插入命令行以运行它。
  • 解释不熟悉的命令(Windows 终端):询问 Copilot生成命令功能的自然语言说明,包括其输入和输出参数和用法示例。 请注意,生成的解释可能并不总是准确或完整。
  • 开发新功能(Spaces):将相关代码、产品规格和设计说明捆绑在一个空间中,以便Copilot可以解释当前实现、突出显示差距以及起草新代码或后续步骤。
  • 为重复任务(Spaces)定义逻辑:使用流程图、示例或架构记录一次流程,并在团队中重复使用一致模式和可重用模板。
  • 与队友(Spaces)</c0 共享知识>:在一个位置收集最新的代码和文档,以便Copilot可以解释系统、回答问题和加入团队成员。

5. 模型和训练数据

GitHub Copilot 对话助手利用各种 AI 模型为用户所看到的体验提供支持。 有关可用于Copilot的模型的比较,请参阅 AI 模型比较。 有关支持模型的完整列表,请参阅 GitHub Copilot中支持的 AI 模型。 有关托管模型的位置的信息,请参阅 托管用于GitHub Copilot的模型。 若要详细了解用于训练 GitHub Copilot Chat 背后的基础模型的数据,请参阅上方链接的 AI 模型比较,以及 GitHub Copilot 常见问题解答中的 GitHub Copilot 是基于哪些数据训练的?

使用“自带密钥”(BYOK)

将“自带密钥”与 GitHub Copilot 对话助手配合使用时,可以将聊天体验连接到默认Copilot模型以外的受支持提供程序的大型语言模型。 支持的提供商示例包括 Anthropic、AWS Bedrock、Google AI Studio、Microsoft Foundry、OpenAI、兼容 OpenAI 的提供商,以及 xAI。 直接在Copilot设置中为所选提供程序添加 API 密钥。

BYOK 处于活动状态时:

  • 功能范围:您选择的模型将用于 GitHub Copilot 对话助手 中。 在代理模式下,BYOK 为主对话提供支持,但某些操作(如代码应用程序或其他工具调用)仍可能使用针对这些任务优化的Copilot集成模型。 这些内置模型不会通过 BYOK 提供程序运行。
  • Content 筛选:无论哪个提供程序处于活动状态,响应仍通过GitHub的 API 传递,并且可能会在结果显示之前进行内容筛选。
  • 质量注意事项:建议可能因所选提供商的优势和培训覆盖范围而异。
  • 数据处理:使用 BYOK 时,提示和响应将传输到所选提供商,并可能受到该提供程序的数据保留和隐私策略的约束。
  • 责任:你负责以下事项:
    • 提供程序 API 密钥安全性
    • 使用成本或配额
    • 输出验证
    • 评估所选模型是否满足安全性和质量要求
    • 遵守您所选提供商的条款
    • 确定所选模型是否符合适用法律
    • 确保由人工对所有输出进行评审,然后再使用它们做出影响人员的决策。
  • 导出限制:某些 AI 模型可能受到导出控件的约束。 验证所选提供商和模型是否有权在司法管辖区使用。

BYOK 使组织能够选择最符合需求的语言模型。 请注意,模型性能和安全特征依赖于提供程序。

6. 性能

GitHub Copilot 对话助手使用自然语言处理和机器学习的组合来理解问题并提供答案。 此过程包括:

  1. 输入处理:系统将预先处理用户的提示,并结合上下文信息(例如,当前存储库、打开的文件或聊天历史记录),并发送到大型语言模型。 用户输入可以采用代码片段或纯语言的形式。
  2. 语言模型分析:提示通过语言模型传递,该模型是针对大量文本数据进行训练的神经网络。 语言模型分析输入提示。
  3. 响应生成:模型根据响应提示的分析以及提供给它的上下文生成响应。 此响应可以采用生成的代码、代码建议或现有代码说明的形式。
  4. 输出格式:响应使用语法突出显示、缩进和其他功能进行格式化,以增加清晰度。 也可以提供模型使用的上下文(如源代码文件、问题或文档)的链接,具体取决于问题类型。

经验差异

  • 在 GitHub.com 上:模型可以从存储在 GitHub 上的仓库数据以及网页搜索结果中收集更多上下文信息(如果您的管理员已启用此功能)。 响应可能包括指向源代码文件、问题或文档的链接。
  • 拉取请求摘要(GitHub.com):当用户请求摘要时,工作流会使用各文件中的代码差异内容来构建提示,并请求 Copilot 生成整体摘要。 输出包括一个概述这些更改的文字段落,随后是按项目符号列出的关键更改列表,并链接到相应的代码行。 可以在新拉取请求或现有拉取请求的说明或拉取请求时间线的注释中生成摘要。 较大的拉取请求可能需要几分钟才能处理。 拉取请求摘要的唯一支持语言是英语。
  • Commit 消息生成(GitHub.com):单击 GitHub.com提交更改按钮时,Copilot根据所选文件中的代码更改生成建议的摘要(标题)和说明。 文本将插入摘要和说明字段,供你在提交之前查看和编辑。 提交消息生成的唯一支持语言是英语。
  • Commit 消息生成(GitHub桌面):单击 GitHub Desktop 中的Copilot按钮时,Copilot根据所选的代码更改生成建议的摘要(标题)和说明。 可以选择特定的代码行或文件来提高上下文和准确性,并且可以在完成之前重新生成建议。 唯一支持的语言是英语。
  • 在 IDE 中:系统将用户输入与上下文信息(例如存储库的名称和用户打开的文件)组合在一起。 在 VS Code 和Visual Studio中,可以从可选的 .github/copilot-instructions.md 文件(用户可以在设置中禁用此内容)自动提供其他上下文。 在 VS Code 或 Visual Studio 中使用 @github 聊天参与程序时,GitHub Copilot 对话助手 还可以从存储在 GitHub 上的代码以及必应搜索结果中收集上下文(如果已由管理员启用)。
  • On GitHub Mobile:将预处理输入提示并将其发送到语言模型。 系统仅用于响应与编码相关的问题。 可用选项因Copilot计划而异:具有Copilot企业订阅的用户可以使用专用索引存储库中的数据进行对话;如果启用了 Web 搜索集成,则接收由 Web 搜索结果通知的响应。 具有Copilot Pro订阅的用户可以讨论热门公共存储库。
  • 在 Windows 终端中:用户输入的提示词会与上下文信息(当前活动 shell 的名称和聊天历史记录)组合后,一并发送给语言模型。 响应采用建议的命令或命令说明的形式。 建议的命令不会自动运行 — 你必须单击命令,将其插入命令行,然后手动运行它。
  • 在 Copilot Spaces 中:Space 可让你整理 GitHub Copilot 对话助手 用来回答你的问题时所使用的上下文。 空间可以包括存储库、代码、拉取请求、问题、自由文本内容(如脚本或备注、图像和文件上传)。 当你在某个空间中提出问题时,Copilot 会为你的请求补充该空间中的相关上下文。 还可以通过远程 GitHub MCP 服务器从 IDE 访问 Spaces。 并非空间中的所有内容在每次响应中都会用到——Copilot 只会处理所含内容中的一部分,因此,有选择地添加内容有助于确保相关性。

GitHub Copilot 对话助手旨在为你提供最相关的问题答案。 但是,它可能并不总是提供你要查找的答案。 GitHub Copilot 对话助手的用户负责查看和验证系统生成的响应,以确保它们准确且合适。

7. 限制

了解 GitHub Copilot 对话助手的限制对于确定它是否在安全有效的边界内使用至关重要。 虽然我们鼓励客户在其创新解决方案或应用程序中利用 GitHub Copilot 对话助手,但请务必注意,GitHub Copilot 对话助手并非针对每种可能的方案而设计。 我们建议用户在选择用例时参考 GitHub 条款 以及以下注意事项:

  • 适用范围有限:GitHub Copilot 对话助手 基于海量代码进行训练,但可能无法处理更复杂的代码结构或较冷门的编程语言。 对于每种语言,建议的质量取决于训练数据的量和多样性。 例如,JavaScript 表示良好且受支持,而不太常见的语言可能会产生质量较低的结果。
  • 潜在偏差:从现有代码存储库中提取的训练数据可能包含工具可以延续的偏差和错误。 GitHub Copilot 对话助手也可能偏向于某些编程语言或编码样式,这可能会导致代码建议欠佳或不完整。
  • 安全风险:如果尚未仔细查看,生成的代码可能会公开敏感信息或漏洞。 始终全面查看和测试生成的代码,尤其是对于安全敏感的应用程序。
  • 与公共代码匹配:虽然这种概率较低,但 GitHub Copilot 对话助手 可能会生成与训练集中代码相匹配的代码。 应采取与使用未独立生成材料的任何代码相同的预防措施,包括严格的测试、IP 扫描和检查安全漏洞。 有关详细信息,请参阅“查找与 GitHub Copilot 建议匹配的公共代码”。
  • 不准确的代码:GitHub Copilot 对话助手 可能会生成看似有效、但在语义或语法上不正确的代码,或者无法准确反映开发者的意图。 仔细查看和测试生成的代码,尤其是对于关键或敏感的应用程序。
  • 对非编码主题的不准确回答:GitHub Copilot 对话助手 并非用于回答非编码问题,在此类情境下,它的回答可能无关或荒谬。
  • 破坏性命令的风险(Windows 终端):Copilot 可能会建议一些具有破坏性的命令,例如删除内容或格式化硬盘;这些命令在某些情况下可能是必需的,但如果使用不当,也可能会导致问题。 你最终负责你选择执行的任何命令。 尽管存在故障机制和安全机制,执行命令仍具有固有的风险。
  • PR 摘要的变更行数限制(GitHub.com):新增与删除总计超过 400 行的文件将不纳入摘要生成。
  • PR 摘要不会自动更新(GitHub.com):仅当用户手动请求拉取请求摘要时才创建。 对拉取请求进行更新或更改时,不会自动刷新摘要。 用户可以请求新的摘要,但应仔细查看更新的输出 -- 它具有与原始的不准确性相同的风险。
  • ** PR 内容(GitHub.com)** 的复制:因为摘要概述了拉取请求中的更改,如果拉取请求内容中出现有害或冒犯性术语,摘要可能会复制这些术语。 用户应期望其 PR 中使用的术语显示在 AI 生成的摘要中。
  • 提交消息的适用范围有限(GitHub.com 和 GitHub Desktop):对于复杂的代码变更、较短的差异窗口或新近出现的编程语言,提交消息生成功能可能难以有效处理。 建议的质量取决于所涉及语言的训练数据的可用性和多样性。
  • 提交内容(GitHub.com 和GitHub桌面)的复制:由于提交消息汇总了提交中的更改,如果代码更改中出现有害或冒犯性术语,则生成的消息可能会包含这些术语。
  • Commit 消息不会自动更新(GitHub.com 和GitHub桌面):提交消息仅在请求时生成。 进行其他更改时,不会自动刷新提交消息。 可以重新生成新建议,但应仔细查看更新的输出,这会带来与原始输出不一致的风险。
  • 用户意图的解读(Spaces):Spaces 可帮助 GitHub Copilot 对话助手 基于精选上下文生成回复,但系统仍可能误解你的意图。 请始终查看输出以确认它反映你的目标。
  • 上下文限制(空间):空间具有明确的大小限制,而 GitHub Copilot 对话助手 只会处理你所包含的部分内容。 不是每个空间中的文件、文档或备注都将在响应中使用。 有选择地添加内容有助于确保使用最相关的上下文。
  • 基于自然语言的差异性能:GitHub Copilot 对话助手主要针对英语进行了优化。 你可能会注意到,使用其他语言的提示词时,表现会有所不同。
  • 利用网络搜索:在 GitHub.com 上以及在受支持的 IDE 中使用 GitHub 聊天参与者时,GitHub Copilot 对话助手 可选择使用 Bing 搜索来帮助回答你的问题,例如有关近期事件、新技术或非常具体的主题的查询。 企业管理员可以为贵组织启用或禁用必应。 使用 Web 搜索时,系统会使用你的提示内容以及其他附加上下文,为你生成必应搜索查询内容。 发送到Bing的搜索查询受 Microsoft 隐私声明的约束。 有关详细信息,请参阅“管理企业中 GitHub Copilot 的策略和功能”。

8. 评估

性能和安全评估通过检查基础性、相关性和一致性等因素来评估 AI 应用程序是否安全可靠地运行,同时识别生成有害内容的风险。 以下评估是在安全组件已就位的情况下进行的,这些组件也在9. 安全组件和缓解措施中进行了说明。

性能和质量评估

GitHub Copilot 对话助手 AI 功能使用行业标准基准(例如 SWE-Bench)和内部开发的评估套件的组合进行评估。 基准任务源自公共开源存储库和综合方案;不使用真正的用户查询或客户代码。 每个评估包括多个独立运行,以考虑到模型输出中的不确定性。 关键指标包括解决率(成功完成的任务百分比)、令牌效率、延迟和工具调用可靠性。 模型在进行更新时会重新评估,并在生产环境中通过错误率、响应延迟和总体使用模式持续监控。

性能和质量评估方法

用于 GitHub Copilot 对话助手 的新模型在部署前会经过分阶段评估。 集成器团队运行特定于其表面的基准套件,针对代表性编码任务(如 bug 修复、代码生成和多文件重构)测试模型。 根据已建立的基线和现有生产模型查看结果。 在前进到下一阶段之前,模型必须满足或超过关键指标(例如分辨率、令牌效率和延迟)的基线性能。 跨职能评审委员会会在任何模型获准进行面向用户的部署之前,正式作出是否通过的决定。

风险和安全评估

评估与 AI 生成内容相关的潜在风险对于防范不同程度严重性的内容风险至关重要。 这包括评估 AI 应用程序生成有害内容或测试越狱攻击漏洞的倾向。 对于 GitHub,我们会进行性能评估,其中包括从 Microsoft Foundry 改编而来、用于编码的评估:

  • 仇恨和不公平
  • 性行为
  • 暴力
  • 自残
  • 受保护的材料
  • 越狱
  • 代码漏洞

质量和安全的评估数据

我们的评估数据是定制的,用于评估 AI 应用程序在安全和****质量的关键领域的性能,模拟实际场景和风险。 首先,我们根据多学科研究和专家的意见,确定相关的评估关注点。 这些关注点转化为有针对性的评估目标,并指导制定评估指标。 在安全性方面,我们会设计对抗性提示,以诱导产生不良或边缘情况响应,随后由经过训练、能够评估是否符合 GitHub 标准的 AI 辅助标注人员对这些响应进行评分。 对于质量,我们设计了基于评分标准的提示词,适用于评估检索增强生成(RAG)应用和智能体等场景。 数据集由各种来源(包括合成数据集和公共数据集)进行策展,以模拟真实用户方案。 使用特选数据集,评估都经过迭代优化和人工对齐,以提高指标有效性和可靠性。 此方法构成了可重复的严格评估的基础,这些评估反映了客户如何使用评估来构建更好的 AI。

自定义评估

作为我们产品开发流程的一部分,我们开展红队测试,以了解并提升 GitHub Copilot 对话助手 的安全性。 启用后,输入提示和输出完成将通过内容筛选器运行。

9. 安全组件和缓解措施

  • 内容筛选:启用后,内容筛选系统将检测并阻止有害内容的输出。 如果遇到冒犯性内容,请将其报告给 [email protected]
  • 公共代码匹配:根据设置,GitHub Copilot 对话助手可能打开或关闭重复检测筛选器。 如果启用此选项,GitHub Copilot 对话助手 要么阻止与公共代码匹配的建议,要么为这些建议添加指向源代码仓库的链接及相关许可证详细信息。 在 VS Code 中,如果启用了与公共代码匹配的建议,GitHub Copilot 对话助手会显示一条消息,其中包含一个链接,用于在编辑器中显示匹配的代码和任何许可证详细信息。 在 Visual Studio、JetBrains、Eclipse 和 GitHub Mobile 中,GitHub Copilot 对话助手使用阻止与公共代码匹配的筛选器。 无论设置如何,都应采取与使用未独立发起材料的任何代码相同的预防措施,包括严格的测试、IP 扫描和检查安全漏洞。 有关详细信息,请参阅“查找与 GitHub Copilot 建议匹配的公共代码”。

10. 部署和采用 GitHub Copilot 对话助手的最佳做法

负责任的 AI 是GitHub与其客户之间的共同承诺。 虽然 GitHub 在构建 AI 应用时以安全、公平和透明为核心,但客户在各自的应用场景中负责任地部署和使用这些技术也发挥着关键作用。 为了支持这种合作关系,我们为部署人员和最终用户提供以下最佳做法,帮助客户有效地实现负责任的 AI。

  • 在将 GitHub Copilot 对话助手用于结果决策或敏感域中时,请谨慎评估结果: 后果性决定是可能对某人获得教育、就业、金融平台、政府福利、医疗保健、住房、保险、法律平台或可能导致身体、心理或经济伤害的人产生法律或重大影响的决定。 敏感领域(如金融平台、医疗保健和住房)需要特别照顾,因为可能会对不同人群产生不成比例的影响。 在这些领域使用 AI 做出决策时,请确保受影响的利益干系人能够了解如何做出决策、对决策提出上诉,并更新任何相关的输入数据。

  • 评估法律和法规注意事项: 客户在使用任何 AI 平台和解决方案时需要评估潜在的特定法律和法规义务,这些义务可能不适合在每个行业或方案中使用。 此外,AI 平台或解决方案不设计用于适用的服务条款和相关行为准则禁止的使用方式,也不得以这些禁止的方式使用。

  • 适当时执行人工监督:在与 AI 应用程序交互时,人工监督是一个重要的保障措施。 虽然我们不断改进 AI 应用程序,但 AI 仍可能会出错。 生成的输出可能不准确、不完整、有偏见、未对齐或与预期目标无关。 这可能是由于各种原因导致的,例如输入不明确或基础模型的限制。 因此,用户应查看 GitHub Copilot 对话助手生成的响应,并验证它们是否符合预期和要求。

  • 请注意过度关注的风险: 当用户接受不正确的或不完整的 AI 输出时,AI 的过度依赖会发生,这主要是因为 AI 输出中的错误可能难以检测到。 对于最终用户来说,过度信赖可能导致生产力下降、信任丧失、应用程序放弃、经济损失、心理伤害、身体伤害等。 (例如,医生接受错误的 AI 输出) 。

  • 在敏感域中设计代理 AI 时,请谨慎操作: 在代理操作不可逆或高度后果的敏感域中设计和/或部署代理 AI 应用程序时,用户应谨慎行事。 创建自治代理 AI 时,还应采取其他预防措施,如 GitHub 条款 中所述。

  • 将 GitHub Copilot 对话助手用作工具,而不是替换工具:虽然 GitHub Copilot 对话助手可以是生成代码的强大工具,但请务必将其用作工具,而不是替代人工编程。 始终查看和测试 GitHub Copilot 对话助手生成的代码,以确保它满足你的要求,并且没有错误或安全问题。

  • 确保提示内容切题:GitHub Copilot 对话助手旨在回答与编码相关的问题。 限制对问题或任务的编码提示可增强模型的输出质量。

  • 使用安全编码和代码评审做法:遵循安全编码的最佳做法(例如避免硬编码的密码或 SQL 注入漏洞),并查看所有生成的代码。

  • 有选择地使用上下文(Spaces):仅将最相关的文件、存储库和笔记添加到空间中,有助于 Copilot 保持专注。 在有限空间内塞入不必要的内容,可能会降低回复质量。

  • 保持上下文更新(Spaces):随着项目的发展,刷新空间中的文件、问题或文档。 过时的上下文可能会导致Copilot生成不准确或不完整的答案。

  • 将说明与来源(Spaces)结合使用:将自然语言说明与精选来源相结合,有助于 Copilot 更好地理解你的意图。

  • 在空间(Spaces)中定位聊天:从空间内开始对话可确保连续性和相关性,使响应与设置的上下文保持一致。

  • 发布前查看拉取请求摘要(GitHub.com):拉取请求摘要旨在补充而非取代你自己对这些更改的了解。 在保存或发布拉取请求之前,请始终查看和评估生成的摘要的准确性。

  • 在提交前检查提交消息(GitHub.com 和 GitHub Desktop):生成提交消息旨在补充,而非取代你自己对更改的说明。 在提交之前,请始终查看和编辑建议的标题和说明。 在 GitHub Desktop 中,选择特定代码行或文件可以提高准确性。 可以通过 GitHub.com 上的 Copilot settings 页面选择退出提交消息生成。

  • 提供反馈:如果遇到任何问题或限制,请通过每个聊天响应下方的向上/向下按钮提供反馈。 提供有关拉取请求摘要的反馈的能力取决于企业设置。 有关详细信息,请参阅“管理企业中 GitHub Copilot 的策略和功能”。 对于提交消息生成功能,你可以通过社区讨论或在GitHub Desktop 仓库中提交 issue来提供反馈。 这有助于改进工具并解决问题。

  • 最新:GitHub Copilot 对话助手不断发展。 随时了解更新、新的安全风险和最佳做法。

11. 详细了解 GitHub Copilot 对话助手

有关负责任地使用 GitHub Copilot 对话助手 的更多指导,我们建议查看以下文档:

详细了解负责任的人工智能