关于 GitHub Copilot Spaces
借助 Copilot Spaces,你可以组织 Copilot 对话助手用于回答问题的上下文。 Spaces 可以包括仓库、代码、拉取请求、议题、自由文本内容(如脚本或笔记)、图像以及文件上传。 你可以在这些上下文的基础上向 Copilot 提问,也可以将该空间与团队共享,以促进协作与知识共享。 也可以通过远程 GitHub MCP 服务器直接从 IDE 访问 Spaces。
输入处理
在空间中提交问题时,Copilot 对话助手会使用该空间中的相关上下文来增强你的请求。 包含的上下文可以是:
- 已添加的文件和仓库
- 议题、拉取请求和文档
- 你提供的笔记或脚本
用户的输入提示由 Copilot 对话助手系统预先处理,并结合其他上下文信息(例如当前日期和时间),然后发送到大型语言模型。 用户输入可以采用代码片段或纯语言的形式。
大型语言模型将采用提示、收集其他上下文(例如存储在 GitHub 上的仓库数据或来自必应的搜索结果),并根据提示提供响应。 英语是提交的提示的首选语言。
语言模型分析
然后,预处理的提示通过 Copilot 对话助手语言模型传递,该模型是一个神经网络,已基于大量文本数据进行了训练。 语言模型分析输入提示。
响应生成
语言模型根据其对输入提示和所提供上下文的分析生成响应。 语言模型可以收集其他上下文(例如存储在 GitHub 上的仓库数据或来自必应的搜索结果),并根据提示提供响应。
输出格式设置
设置 Copilot Chat 生成的响应的格式并向用户显示。 Copilot 可以使用语法突出显示、缩进和其他格式设置功能来增加生成的响应的清晰度。 根据用户问题的类型,还可以提供模型在生成响应时使用的上下文的链接,例如源代码文件、问题、必应搜索结果或文档。
Copilot 对话助手旨在为你提供与你的问题最相关的答案。 但是,它可能并不总是提供你要查找的答案。 Copilot 对话助手的用户负责查看和验证系统生成的响应,以确保它们准确无误。 此外,在我们的产品开发流程中,我们开展红队测试以了解和提高 Copilot 对话助手的安全性。 输入提示和输出完成通过内容筛选器运行。 内容筛选系统可检测并阻止输出特定类别的内容,包括有害的、攻击性的或偏离主题的内容。 有关提高 Copilot 对话助手性能的详细信息,请参阅提高 Copilot 对话助手的性能。
Spaces 用例
开发新功能
使用 Spaces,你可以整合相关代码、产品规格说明和设计说明,这样一来,Copilot 就能快速解读当前的实现、指出存在的不足,并起草新代码或规划后续步骤。 这有助于节省时间、确保符合要求,并产出更高质量的功能成果。
定义小而频繁任务的处理逻辑
对于添加遥测或事件处理这类重复性任务,Spaces 只需一次性记录流程即可实现快速复用。 通过让 Copilot 以流程图、示例或架构为基础,你可以确保团队内部采用一致的模式、可复用的模板,并实现高效执行。
与团队成员共享知识
Spaces 可通过将最新代码与文档集中到一处,成为解答常见项目问题(例如“身份验证或搜索如何运作”)的动态指南。 随后,Copilot 会利用这些上下文信息来解读系统、解答问题,并结合最佳做法帮助团队成员快速上手。
提升 Spaces 的性能
Spaces 可广泛应用于各类开发与协作工作流,例如生成代码、在团队内部共享知识等。 为了提高性能并获得更相关的响应,你可以采用以下几项最佳做法。 有关系统约束的详细信息,请参阅 GitHub Copilot Spaces 的限制。
精选上下文
仅添加最相关的文件、仓库和备注有助于 Copilot 保持专注。 在空间中堆砌不必要的内容,会降低响应质量,也难以获得精准的结果。
及时更新上下文
随着项目推进,请及时更新你空间中的文件、议题及文档。 上下文信息过时可能导致 Copilot 生成不准确或不完整的答案。
结合源使用指令
将自然语言指令与精选的源相结合有助于 Copilot 更好地理解你的意图。 指令提供指导,而源则让输出内容贴合真实的项目上下文。
将聊天定位在空间中
在空间内发起对话可确保话题的连贯性与相关性。 这样既能确保 Copilot 的回答始终与你预设的特定上下文保持一致,也可避免每次新对话都需重新设置。
验证 Space 的输出
Spaces 会让 Copilot 的响应基于你提供的上下文,但该系统仍可能出现错误。 这些错误可能是对你意图的误解,也可能是生成响应时出现的简单失误。 在将 Copilot 的输出用于生产环境前,请务必仔细审查其内容,确认输出符合预期,且满足团队的质量与安全标准。
GitHub Copilot Spaces 的局限性
对用户意向的解释
Spaces 有助于让 Copilot 对话助手的响应基于精选的上下文,但该系统仍可能误解你的意图。 在将 Copilot 的输出用于项目前,请务必审查其内容,确认它符合你的目标。
上下文限制
Spaces 存在明确的大小限制,且 Copilot 对话助手仅会处理你所添加内容中的一部分。 这意味着并非空间中的每一个文件、文档或笔记,都会被用于生成响应。 有选择地添加内容,有助于确保 Copilot 能基于最相关的上下文开展工作。
作用域受限
当前,无法通过 GitHub MCP 服务器在 IDE 中访问仅包含一个仓库的 Spaces。 要在 IDE 中使用 Spaces,需要添加额外上下文,例如文件、议题或文档。
Spaces 由 Copilot 对话助手提供支持,因此它虽已基于大量代码进行训练,但范围仍然有限,可能无法处理更复杂的代码结构或晦涩难懂的编程语言。 对于每种语言,收到的建议质量可能取决于该语言训练数据的数量和多样性。 例如,JavaScript 在公共存储库中良好呈现,是 GitHub Copilot 最受支持的语言之一。 对于 Copilot 对话助手,在公共仓库中代表性内容较少的语言可能更难以提供帮助。 此外,Copilot Chat 只能根据所编写代码的上下文来建议代码,因此它可能无法识别更大的设计或体系结构问题。
响应不准确
即使依托 Space 提供的上下文,Copilot 对话助手生成的响应也可能会不准确、不完整或过时。 这一点适用于所有类型的输出,包括代码、摘要或议题草稿。 请始终根据自己的项目要求验证结果。
安全性限制
Copilot Chat 基于所编写代码的上下文生成代码,如果不谨慎使用,可能会公开敏感信息或漏洞。 使用 Copilot Chat 为安全敏感型应用程序生成代码时,应小心谨慎,并始终全面查看和测试所生成的代码。
法律和法规注意事项
用户在使用任何 AI 服务和解决方案时需要评估潜在的特定法律和法规义务,这些 AI 服务和解决方案可能不适合在每个行业或场景中使用。 此外,AI 服务或解决方案的设计目的并非用于适用服务条款和相关行为准则所禁止的用途,也不得以其中所禁止的方式使用。
冒犯性内容
Spaces 基于内置防护机制的 Copilot 对话助手,可有效拦截有害、仇恨或冒犯性内容。 如发现任何冒犯性内容,请向 copilot-safety@github.com 举报。