关于 GitHub Copilot Spaces
Copilot Spaces 让你组织 Copilot Chat 用来回答问题的上下文。Spaces 可以包含仓库、代码、Pull Request、Issue、自由文本内容(如文字记录或笔记)、图片以及文件上传。你可以基于这些上下文向 Copilot 提问,或将 Space 与团队共享,以支持协作和知识共享。Spaces 也可以通过远程 GitHub MCP 服务器直接从 IDE 访问。
输入处理
当你在 Space 中提交问题时,Copilot Chat 会使用该 Space 中的相关上下文来补充你的请求。包含的上下文可以是
- 你已添加的文件和仓库
- Issue、Pull Request 和文档
- 你提供的笔记或文字记录
用户的输入提示会先由 Copilot Chat 系统预处理,然后与额外的上下文信息(例如当前日期和时间)结合后发送给大型语言模型。用户输入可以是代码片段,也可以是自然语言。
大型语言模型会接收该提示,获取更多上下文(例如 GitHub 上的仓库数据或 Bing 的搜索结果),并基于提示给出响应。英文是提交提示的首选语言。
语言模型分析
预处理后的提示随后传递给 Copilot Chat 语言模型,该模型是一个经过大规模文本数据训练的神经网络。语言模型会对输入提示进行分析。
响应生成
语言模型根据输入提示和提供的上下文进行分析,生成相应的回复。语言模型可以收集额外的上下文(例如 GitHub 上的仓库数据或 Bing 的搜索结果),并基于提示提供答案。
输出格式化
Copilot Chat 生成的回复会被格式化后呈现给用户。Copilot 可能会使用语法高亮、缩进和其他格式化特性来提升回复的可读性。根据用户提问的类型,还可能提供模型在生成回复时使用的上下文链接,例如源代码文件、Issue、Bing 搜索结果或文档。
Copilot Chat 旨在为你的问题提供最相关的答案,但它并不一定总能给出你期望的答案。Copilot Chat 的使用者有责任审查并验证系统生成的回复,以确保其准确且合适。此外,作为产品开发过程的一部分,我们会进行红队测试,以了解并提升 Copilot Chat 的安全性。输入提示和输出完成内容会经过内容过滤系统检测,防止输出包含有害、冒犯或离题的内容。有关提升 Copilot Chat 性能的更多信息,请参阅 提升 Copilot Chat 的性能。
Spaces 的使用场景
开发新功能
Spaces 让你将相关代码、产品规格和设计笔记整理在一起,Copilot 可以快速解释当前实现、指出不足并草拟新代码或后续步骤。这有助于节省时间、保持需求对齐,并产出更高质量的功能实现。
为小且频繁的任务定义逻辑
对于添加遥测或事件处理等重复性工作,Spaces 让你只需记录一次流程即可复用。通过在流程图、示例或模式图中为 Copilot 提供上下文,确保团队遵循一致的模式、使用可复用的模板并高效执行。
与团队成员共享知识
Spaces 可作为常见项目问题(例如认证或搜索实现)的活文档,通过把最新代码和文档集中在一起。Copilot 随后利用这些上下文解释系统、回答问题,并帮助新人快速掌握最佳实践。
提升 Spaces 的性能
Spaces 可应用于各种开发与协作工作流,从生成代码到在团队内部共享知识。为获得更高相关性的回复并提升性能,你可以遵循多项最佳实践。系统约束的详细信息请参阅 GitHub Copilot Spaces 的局限性。
有选择地提供上下文
仅添加最相关的文件、仓库和笔记,可帮助 Copilot 保持聚焦。向 Space 中填充不必要的内容会稀释回复质量,使得难以获得精确的结果。
保持上下文实时更新
随着项目演进,请及时刷新 Space 中的文件、Issue 或文档。过时的上下文可能导致 Copilot 生成不准确或不完整的答案。
将指令与来源一起使用
将自然语言指令与精心挑选的来源结合,可帮助 Copilot 更好地理解你的意图。指令提供方向,来源则将输出扎根于真实项目上下文。
在 Space 中锚定对话
从 Space 内部开始对话可确保连续性和相关性。这让 Copilot 的回复始终基于你已经设置好的特定上下文,而不是在每次新对话时重新开始。
验证 Space 的输出
Space 为 Copilot 的回复提供上下文支撑,但系统仍可能出现错误。这些错误可能是对你意图的误解或生成内容的简单失误。务必仔细审查 Copilot 的输出,确认其行为符合预期,并在投入生产前确保满足团队的质量和安全标准。
GitHub Copilot Spaces 的局限性
对用户意图的解释
Spaces 能让 Copilot Chat 的回复基于精心策划的上下文,但系统仍可能误解你的意图。在将其用于项目之前,请始终审查 Copilot 的输出,以确认其符合你的目标。
上下文限制
Spaces 有明确的大小限制,Copilot Chat 只会处理你所包含内容的一部分。这意味着并非 Space 中的每个文件、文档或笔记都会被用于生成回复。对添加内容进行筛选,有助于确保 Copilot 使用最相关的上下文。
范围有限
仅包含仓库的 Spaces 目前无法通过 GitHub MCP 服务器在 IDE 中访问。若想在 IDE 中使用 Spaces,需要加入额外的上下文,例如文件、Issue 或文档。
Spaces 由 Copilot Chat 支持,虽然已在大量代码上进行训练,但其范围仍受限,可能无法处理更复杂的代码结构或不常见的编程语言。不同语言的建议质量取决于该语言在训练数据中的数量和多样性。例如,JavaScript 在公共仓库中出现频率高,是 GitHub Copilot 最受支持的语言之一;而在公共仓库中代表性较低的语言,Copilot Chat 提供帮助的难度会更大。此外,Copilot Chat 只能基于当前正在编写的代码上下文提出建议,因而可能无法识别更宏观的设计或架构问题。
不准确的响应
即使已在 Space 中提供上下文,Copilot Chat 仍可能生成不准确、不完整或过时的响应。此类情况同样适用于代码、摘要或 Issue 草稿等所有输出类型。请始终根据自己的项目需求对结果进行验证。
安全性限制
Copilot Chat 根据正在编写的代码上下文生成代码,如果使用不慎,可能会暴露敏感信息或漏洞。在使用 Copilot Chat 为安全敏感型应用程序生成代码时,您应小心谨慎,并始终彻底审查和测试生成的代码。
法律与监管考虑
用户在使用任何 AI 服务和解决方案时,需要评估可能的特定法律和监管义务,这些服务可能并不适用于所有行业或场景。此外,AI 服务或解决方案并非设计用于且不得以适用服务条款和相关行为准则禁止的方式使用。
冒犯性内容
Spaces 使用 Copilot Chat,后者内置了针对有害、仇恨或冒犯性内容的防护机制。请将任何冒犯性内容的案例报告至 copilot-safety@github.com。