跳至主要内容

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

通过了解 GitHub Copilot Chat 的用途、功能和局限性,学习如何负责任地使用它。

关于 GitHub Mobile 中的 GitHub Copilot Chat

GitHub Mobile 中的 GitHub Copilot Chat 是一款聊天界面,可让您与 GitHub Copilot 进行交互,在 GitHub Mobile 中询问并获得与编码相关的问题的答案。聊天界面提供了访问编码信息和支持的功能,而无需您浏览文档或搜索在线论坛。除了 GitHub Mobile 之外,Copilot Chat 目前还支持 GitHub 网站、Visual Studio Code、Visual Studio 和 JetBrains 系列 IDE。有关 GitHub Copilot 的更多信息,请参阅“什么是 GitHub Copilot?”。

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

GitHub Mobile 中的 GitHub Copilot Chat 主要支持的语言是英语。

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

输入处理

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

语言模型分析

然后,预处理的提示将通过 Copilot Chat 语言模型,该模型是一个已在大规模文本数据上训练的神经网络。语言模型会分析输入提示。

响应生成

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

输出格式化

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

GitHub Copilot Chat 旨在为您提供与您的问题最相关的答案。但是,它可能并不总是提供您想要的答案。Copilot Chat 的用户有责任审查和验证系统生成的响应,以确保其准确性和适用性。有关如何提高 GitHub Mobile 中 Copilot Chat 性能的更多信息,请参阅“提高 GitHub Mobile 中 Copilot Chat 的性能”。

GitHub Copilot 计划之间的差异

GitHub Mobile 中 Copilot Chat 中可用的选项会根据您使用的 GitHub Copilot 计划而有所不同。

  • 只有拥有 GitHub Copilot Enterprise 订阅的用户才能访问并使用来自私有索引存储库的数据进行对话。
  • 如果您拥有 GitHub Copilot Enterprise 订阅并启用了必应搜索集成(公开预览版),则 GitHub Mobile 中的 Copilot Chat 可能会使用基于必应搜索结果的信息进行响应。有关如何启用或禁用必应搜索集成的信息,请参阅 GitHub Enterprise Cloud 文档中的“管理企业中的 Copilot 策略和功能”。
  • 除了关于一般编码或单个文件的对话之外,拥有 Copilot Individual 订阅的用户还可以使用嵌入讨论热门的公共存储库。

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

GitHub Mobile 中 GitHub Copilot Chat 的用例

GitHub Mobile 中的 GitHub Copilot Chat 可以提供各种场景下的编码帮助。

解释代码并建议改进

Copilot Chat 可以通过生成代码功能和目的的自然语言描述来帮助解释选定的代码。如果您想了解代码的行为或非技术利益相关者需要了解代码的工作原理,这将非常有用。例如,如果您在代码编辑器中选择一个函数或代码块,Copilot Chat 可以生成对代码作用及其在整个系统中的作用的自然语言描述。这可能包括诸如函数的输入和输出参数、其依赖项以及其在更大应用程序中的目的等信息。

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

通过生成解释并建议相关文档,Copilot Chat 可能会帮助您理解选定的代码,从而提高协作效率并更有效地进行软件开发。但是,需要注意的是,生成的解释和文档可能并不总是准确或完整的,因此您需要审查并偶尔更正 Copilot Chat 的输出。

提出代码修复

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

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

回答编码问题

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

提高 GitHub Mobile 中 Copilot Chat 的性能

Copilot Chat 可以支持各种实际应用,如代码生成、代码分析和代码修复,每个应用都有不同的性能指标和缓解策略。为了提高性能并解决 Copilot Chat 的一些局限性,您可以采取各种措施。有关 GitHub Mobile 中 Copilot Chat 的局限性的更多信息,请参阅“GitHub Mobile 中 Copilot Chat 的局限性”。

保持您的提示主题相关

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

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

虽然 Copilot Chat 可以成为生成代码的强大工具,但务必将其用作工具,而不是人类编程的替代品。您应该始终审查和测试 Copilot Chat 生成的代码,以确保其满足您的需求并且没有错误或安全问题。

使用安全的编码和代码审查实践

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

提供反馈

如果您遇到任何 Copilot Chat 的问题或局限性,我们建议您通过 GitHub Mobile 中 Copilot Chat 中的“**分享反馈**”链接提供反馈,该链接会在您不喜欢某个响应时出现。这可以帮助开发人员改进工具并解决任何问题或局限性。

保持最新

GitHub Mobile 中的 Copilot Chat 是一项新技术,可能会随着时间的推移而发展。您应该随时了解该工具的任何更新或更改,以及可能出现的任何新的安全风险或最佳实践。

GitHub Mobile 中 Copilot Chat 的局限性

根据代码库和输入数据等因素,您在使用 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 提问非编码问题,它可能会生成一个无关或毫无意义的答案,或者它可能会简单地表明它无法提供有用的回复。

进一步阅读