2023年早些时候,GitHub 推出了 Copilot Chat,这是一款类似 ChatGPT 的以编程为中心的聊天机器人。最近,Copilot Chat 面向个人 Copilot 客户推出测试版。现在,GitHub 向所有用户全面推出 Chat。
图片.png
Copilot Chat 已整合在微软的 IDE 工具 Visual Studio Code 和 Visual Studio 中,可通过侧边栏访问。除了GitHub Copilot付费用户之外,现在经过认证的教师、学生和某些开源项目的维护人员都可以免费使用。

该聊天机器人仍然由 OpenAI 的旗舰生成人工智能模型 GPT-4 提供支持,专门针对开发场景进行了微调。开发人员可以用自然语言提示 Copilot Chat 以获得实时指导,例如要求 Copilot Chat 解释概念、检测漏洞或编写单元测试。

与所有生成式 AI 模型一样,支持 Copilot Chat 的模型 GPT-4 是根据公开数据进行训练的——其中一些数据受版权保护或受到限制性许可。包括 GitHub 在内的供应商认为,合理使用原则使他们免受版权索赔。但这并没有阻止程序员对 GitHub、微软(GiHub 的母公司)和 OpenAI 提起集体诉讼,指控其开源许可和知识产权侵权。

此外,根据斯坦福大学最近的一项研究,与不使用人工智能助手的开发人员相比,使用人工智能助手进行编码的开发人员往往会生成不太安全的代码,部分原因是人工智能助手引入了错误或已弃用的代码片段。

https://docs.github.com/zh/copilot/github-copilot-chat/using-github-copilot-chat-in-your-ide

GitHub Copilot 展示 AI 自动完成方法并聊天为其编写单元测试
hero.gif
无论是要排除错误还是开发新功能,当遇到挑战时,GitHub Copilot 可提供帮助 :
-聊天视图:在聊天视图中向 Copilot 寻求有关任何任务或问题的帮助,从当前文件中引入代码。
-内联聊天:将 Copilot 的 AI 建议直接应用到代码中,保持流畅。
-快速聊天:调出一个由聊天驱动的下拉菜单,用于快速提出问题和建议。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

官方关于 GitHub Copilot Chat的解释

GitHub Copilot Chat 是一个聊天界面,可让你与 GitHub Copilot 进行交互,直接从 GitHub.com 和受支持的 IDE 中询问编码相关问题并接收答案。 聊天界面提供对编码信息和支持的访问,让你无需浏览文档或搜索在线论坛。 除了 GitHub.com 之外,Copilot Chat 目前在 Visual Studio Code、Visual Studio 和 JetBrains ide 中也受支持。

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

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

输入处理

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

语言模型分析

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

响应生成

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

输出格式设置


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

GitHub Copilot Chat 旨在为你提供与你的问题最相关的答案。 但是,它可能并不总是提供你要查找的答案。 Copilot Chat 的用户负责查看和验证系统生成的响应,以确保它们准确无误。 Copilot Chat 还旨在从反馈中学习并持续改进。


GitHub Copilot Chat 的用例


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

生成单元测试用例

Copilot Chat 可以根据编辑器中打开的代码或编辑器中突出显示的代码片段生成代码片段,从而帮助编写单元测试用例。 这可以帮助你编写测试用例,让你无需在重复任务上花费太多时间。 例如,如果要为特定函数编写测试用例,则可以使用 Copilot Chat 根据函数的签名和正文建议可能的输入参数和预期输出值。 Copilot Chat 还可以根据代码的上下文和语义建议断言,以确保函数正常工作。

Copilot Chat 还可以帮助你为可能难以手动识别的边缘情况和边界条件编写测试用例。 例如,Copilot Chat 可以建议错误处理、null 值或意外输入类型的测试用例,从而帮助你确保代码可靠且可复原。 但是,请务必注意,生成的测试用例可能并不涵盖所有可能的场景,并且仍需要手动测试和代码评审来确保代码的质量。  

说明代码和建议改进

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

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

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

建议代码修复

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

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

回答编码问题



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


使用 Copilot Chat

询问你的第一个问题


GitHub Copilot Chat 旨在以自然语言专门回答你询问的编码相关问题。 例如,可以要求 GitHub Copilot Chat 来帮助你编写返回两个数字之和的函数。

1 在 Visual Studio Code 活动栏中,单击“GitHub Copilot Chat”**** 图标以打开 GitHub Copilot Chat 聊天窗口。

图片.png

2 在 GitHub Copilot Chat 窗口底部的“向 Copilot 询问问题或键入 / 作为主题”文本框中,键入与编码相关的问题,然后按 Enter 。 例如,键入“如何编写返回两个数字之和的函数?”。

3 GitHub Copilot Chat 将在聊天窗口中处理你的问题、提供答案,并在适当时提供代码建议。如果你的问题超出了 GitHub Copilot Chat 的范围,它会告诉你,并可能建议询问的替代问题。

4 (可选)如果 GitHub Copilot Chat 在向 Copilot 询问问题或键入 / 作为主题”文本框上方建议后续问题,请单击后续问题进行提问。

使用 GitHub Copilot Chat 的代码建议

当 GitHub Copilot Chat 提供代码建议时,有多种使用代码建议的选项。

1 在 GitHub Copilot Chat 窗口中,若要显示代码建议的选项,请将鼠标悬停在建议上。

图片.png

2 选择其中一种使用代码建议的选项。
   - 若要将代码建议复制到剪贴板,请单击“复制”图标。
   - 若要将代码建议插入代码中的当前光标位置,请单击“在光标处插入”图标。
   - 若要查看其他选项,请单击“...”图标。
          - 若要创建新文件并将建议插入其中,请单击“插入新文件”。
          - 若要在 Visual Studio Code 终端运行代码建议,请单击“在终端运行”。

向 GitHub Copilot Chat 询问有关代码的问题

GitHub Copilot Chat 可以为广泛的编码相关主题提供答案和支持。

1 在 Visual Studio Code 中,打开希望 GitHub Copilot Chat 为你提供帮助的文件。
2 向 GitHub Copilot Chat 询问有关已打开文件的问题。 例如:
   - 若要生成文件用途的说明,请询问类似于 What does this file do? 的问题。
   - 若要为文件生成单元测试,请键入类似于 Write a unit test for this file 的请求。 或者,突出显示要为其生成单元测试的代码,然后询问类似于 Write a unit test for this code 的问题。
   - 若要为文件中的 bug 生成修复,请键入类似于 Fix this bug 的请求。


更多信息:https://docs.github.com/zh/copilot/github-copilot-chat/using-github-copilot-chat-in-your-ide