Skip to main content

在 GitHub Mobile 中负责任地使用 GitHub Copilot Chat

通过了解其目的、功能和限制,了解如何负责任地使用 GitHub Copilot Chat。

关于 GitHub Copilot Chat in GitHub Mobile

GitHub Copilot Chat in GitHub Mobile 是一个聊天界面,可让你与 GitHub Copilot 进行互动,直接在 GitHub Mobile 中询问编程相关问题并获得答案。 聊天界面提供对编码信息和支持的访问,让你无需浏览文档或搜索在线论坛。 除了 GitHub Mobile 以外,Copilot Chat 目前也在 GitHub 网站、Visual Studio Code、Visual Studio 和 IDE 的 JetBrains 套件中受支持。 有关 GitHub Copilot 的详细信息,请参阅“什么是 GitHub Copilot?”。

GitHub Copilot Chat 可以回答与编码相关的各种主题问题,包括语法、编程概念、测试用例、调试等。 GitHub Copilot Chat 并非旨在回答非编码问题或提供有关编码之外主题的一般信息。

GitHub Copilot Chat 支持的主要语言是“英语”。

GitHub Copilot Chat 结合使用自然语言处理和机器学习来理解你的问题并为你提供答案。 此过程可以细分为多个步骤。

输入处理

用户的输入提示由 Copilot Chat 系统预处理,并发送到大型语言模型,以便根据上下文和提示获取响应。 用户输入可以采用代码片段或纯语言的形式。 系统仅用于响应与编码相关的问题。

语言模型分析

然后,预处理的提示通过 Copilot Chat 语言模型传递,该模型是一个神经网络,已基于大量文本数据进行了训练。 语言模型分析输入提示。

响应生成

语言模型根据其对输入提示和所提供上下文的分析生成响应。 此响应可以采用生成的代码、代码建议或现有代码说明的形式。

输出格式设置

Copilot Chat 生成的响应将格式化并呈现给用户。 Copilot Chat 可以使用语法突出显示、缩进和其他格式设置功能来增加生成的响应的清晰度。 根据用户问题的类型,还可以提供模型在生成响应时使用的上下文的链接,例如源代码文件或文档。

GitHub Copilot Chat 旨在为你提供与你的问题最相关的答案。 但是,它可能并不总是提供你要查找的答案。 Copilot Chat 的用户负责查看和验证系统生成的响应,以确保它们准确无误。 有关提高 Copilot Chat in GitHub Mobile 性能的详细信息,请参阅提高 Copilot Chat in GitHub Mobile 的性能

每个 GitHub Copilot 计划的差异

Copilot Chat in GitHub Mobile 中可用的选项因所使用的 GitHub Copilot 计划而异。

  • 只有具有 GitHub Copilot Enterprise 订阅的人员才能使用专用索引存储库中的数据访问和拥有对话。
  • 如果你有 GitHub Copilot Enterprise 订阅,并且已启用必应搜索集成 (公共预览版),则 Copilot Chat in GitHub Mobile 可能会根据必应搜索的结果做出响应。 有关如何启用或禁用必应搜索集成的信息,请参阅 GitHub Enterprise Cloud 文档中的“管理企业中 Copilot 的策略和功能”。
  • 除了常规编码对话或有关单个文件的对话之外,具有 Copilot Individual 订阅的人员还可以使用嵌入讨论热门公共存储库。

如果没有 GitHub Copilot 订阅,可以直接在 iOS 版本的 GitHub Mobile 中或者 Android 版本的 GitHub Mobile 的 Google Play Store 中购买 Copilot Individual 订阅。

GitHub Copilot Chat in GitHub Mobile 的用例

GitHub Copilot Chat in GitHub Mobile 可以在各种应用场景中提供编码帮助。

说明代码和建议改进

Copilot Chat 可以通过生成代码功能和用途的自然语言说明来帮助解释所选代码。 如果想要了解代码的行为,这非常有用,对于需要了解代码工作原理的非技术利益干系人也非常有用。 例如,如果你在代码编辑器中选择函数或代码块,Copilot Chat 可以生成代码功能以及代码如何适应整个系统的自然语言说明。 这可能包括函数的输入和输出参数、其依赖项及其在较大应用程序中的用途等信息。

Copilot Chat 还可以建议对所选代码的潜在改进,例如改进错误和边缘案例的处理,或者更改逻辑流以使代码更易于阅读。

通过生成说明和建议相关文档,Copilot Chat 可以帮助你了解所选代码,从而改进协作,提高软件开发效率。 但是,请务必注意,生成的说明和文档可能并不总是准确或完整的,因此你需要查看 Copilot Chat 的输出,有时甚至需要更正。

建议代码修复

Copilot Chat 可以通过根据错误或问题的上下文建议代码片段和解决方案来为代码中的 bug 建议修复。 如果你正在努力确定 bug 的根本原因,或者需要有关修复 bug 的最佳方法的指导,这非常有用。 例如,如果你的代码生成错误消息或警告,Copilot Chat 可以根据错误消息、代码的语法和周围的代码建议可能的修复。

Copilot Chat 可以建议对变量、控制结构或函数调用的更改,这些更改可能会解决问题并生成可合并到代码库中的代码片段。 但是,请务必注意,建议的修复可能并不总是最佳或完整的,因此你需要查看和测试建议。

回答编码问题

你可以向 Copilot Chat 寻求有关特定编码问题的帮助或澄清,并以自然语言格式或代码片段格式接收响应。 对于程序员来说,这是一个有用的工具,因为它可以为常见的编码任务和挑战提供指导和支持。

提高 Copilot Chat in GitHub Mobile 的性能

Copilot Chat 可以支持各种实际应用,例如代码生成、代码分析和代码修复,每个应用都具有不同的性能指标和缓解策略。 若要增强性能并解决 Copilot Chat 的某些限制,有多种可以采用的措施。 有关 Copilot Chat in GitHub Mobile 的限制的详细信息,请参阅Copilot Chat in GitHub Mobile 的限制

使提示与主题相关

Copilot Chat 旨在专门处理与编码相关的查询。 因此,将提示限制为编码问题或任务可以提高模型的输出质量。

使用 Copilot Chat 作为工具,而不是替代

虽然 Copilot Chat 是生成代码的强大工具,但请务必将其用作工具,而不用于替代人工编程。 应始终查看和测试 Copilot Chat 生成的代码,以确保它符合你的要求,并且没有错误或安全问题。

使用安全编码和代码评审做法

虽然 Copilot Chat 可以生成语法正确的代码,但它可能并不总是安全的。 应始终遵循安全编码的最佳做法,例如避免硬编码密码或 SQL 注入漏洞,并遵循代码评审最佳做法,以解决 Copilot Chat 的限制。

提供反馈

如果在使用 Copilot Chat 时遇到任何问题或限制,建议通过 Copilot Chat in GitHub Mobile 中的“共享反馈”链接提供反馈,该链接在你不喜欢响应时显示。 这可以帮助开发人员改进该工具并解决任何问题或限制。

掌握最新动态

Copilot Chat in GitHub Mobile 是一项新技术,可能持续改进。 应随时了解工具的任何更新或更改,以及可能出现的任何新安全风险或最佳做法。

Copilot Chat in GitHub Mobile 的限制

根据代码库和输入数据等因素,在使用 Copilot Chat 时,可能会体验到不同级别的性能。 以下信息旨在帮助你了解系统限制以及有关性能的关键概念,因为它们适用于 Copilot Chat。

作用域受限

Copilot Chat 已基于大量代码进行训练,但范围仍然有限,可能无法处理更复杂的代码结构或晦涩难懂的编程语言。 对于每种语言,收到的建议质量可能取决于该语言训练数据的数量和多样性。 例如,JavaScript 在公共存储库中表现良好,并且是 GitHub Copilot 最受支持的语言之一。 对于 Copilot Chat 来说,公共存储库中代表性较少的语言可能更难以提供帮助。 此外,Copilot Chat 只能根据所编写代码的上下文建议代码,因此可能无法识别更大的设计或体系结构问题。

潜在偏见

Copilot 的训练数据取自现有代码存储库,其中可能包含工具可能会延续的偏见和错误。 此外,Copilot Chat 可能偏向于某些编程语言或编码样式,这可能导致代码建议欠佳或不完整。

安全风险

Copilot Chat 基于所编写代码的上下文生成代码,如果不谨慎使用,可能会暴露敏感信息或漏洞。 使用 Copilot Chat 为安全敏感型应用程序生成代码时,应小心谨慎,并始终全面评审和测试生成的代码。

与公共代码匹配

Copilot Chat 能够生成新代码,但有概率一说。 虽然它生成与训练集中的代码匹配的代码的概率很低,但 Copilot Chat 建议可能包含一些与训练集中的代码匹配的代码片段。 Copilot Chat 利用筛选器阻止与 GitHub 存储库上的公共代码匹配,但你应该始终采取与使用非你独立创作的材料编写的任何代码相同的预防措施,包括确保其适用性的预防措施。 这些预防措施包括严格的测试、IP 扫描和安全漏洞检查。

代码不准确

Copilot Chat 的其中一个限制是,它可能会生成看似有效的代码,但实际上该代码在语义或语法上可能不正确,或者可能无法准确反映开发人员的意图。 若要降低代码不准确的风险,应仔细评审和测试生成的代码,尤其是在处理关键或敏感应用程序时。 还应确保生成的代码遵循最佳做法和设计模式,并符合代码库的整体体系结构和样式。

对非编码主题的响应不准确

Copilot Chat 并非旨在回答非编码问题,因此其响应在这些上下文中可能并不总是准确或有用。 如果用户向 Copilot Chat 询问非编码问题,则可能生成不相关或无意义的答案,或者可能只是指示无法提供有用的响应。

其他阅读材料