详细摘要 摘要

生成:2025-06-22 19:42

摘要详情

音频文件
2024-09-28 | Visual Studio Code | Using Custom Instructions with Copilot to enhance our prompts
摘要类型
详细摘要
LLM 提供商
openai
LLM 模型
gemini-2.5-pro
温度
0.3
已创建
2025-06-22 19:42:44

核心摘要

本演示介绍了 Visual Studio Code 1.93 版本中一项名为“自定义 Copilot 指令”的实验性功能。该功能允许用户通过工作区设置,让 Copilot 在处理每个请求时自动引用指定的项目文件(如 Markdown 规范、SQL 数据库定义等),从而赋予其项目上下文感知能力。

演示者通过一个15分钟的实战项目,展示了该功能的强大潜力:
1. 项目结构生成:利用一个定义了代码风格和目录结构的 Markdown 文件,指导 Copilot 成功生成了整个项目的脚手架脚本。
2. 数据模型生成:通过引用一个 SQL 数据库表结构文件,Copilot 能够为指定的 ORM(如 Sequelize 或 Drizzle)精确生成所有数据模型,并正确处理了模型间的复杂关联。
3. 业务与测试代码生成:基于一份购物车服务的功能规范文档,Copilot 自动生成了完整的服务层逻辑及其配套的单元测试代码,并能根据进一步指令优化测试用例。

尽管过程中需要进行少量手动清理,但最终生成的应用程序基础代码成功通过了全部7个测试用例。结论是,自定义指令极大地提升了 Copilot 的智能化水平,使其能遵循项目规范、理解上下文,自动化生成高度定制化的初始代码,从而显著加速开发进程。演示者强调,该功能目前仍处于实验阶段,鼓励用户积极提供反馈。


功能介绍:实验性自定义 Copilot 指令

演示者介绍了 VS Code 2024年8月发布的1.93版本中的“实验性自定义 Copilot 指令”功能。该功能允许用户通过全局或工作区设置,向 Copilot 的聊天会话预置指令或文件引用。这意味着 Copilot 在每次交互时都会首先参考这些预设的上下文,从而使其行为更符合特定项目的需求。该功能目前仍处于实验阶段。

第一步:通过规范生成项目结构

为展示该功能,演示者首先创建了一个 code-style.md 文件,其中定义了项目的推荐目录结构。随后,他在工作区的 settings.json 文件中配置 Copilot 引用此 Markdown 文件。当他向 Copilot 提问如何构建应用结构时,Copilot 准确地根据文件内容给出了建议,并生成了一个 Bash 脚本(init.sh)来一键创建所有必需的目录。

第二步:结合数据库定义生成数据模型

接下来,演示者将一个包含数据库表定义的 SQL 文件(chinook test database)添加到了 Copilot 的自定义指令中。基于此文件,他向 Copilot 发出指令,要求使用 Sequelize ORM 生成数据模型。Copilot 成功地分析了 SQL 结构,生成了精确的 JavaScript 模型代码,甚至正确识别了模型间的关联(associations)、可空性(nullability)、复合主键以及多对多关系。演示者还展示了只需更改提示词,Copilot 就能切换到另一个工具(如 Drizzle)生成相应代码。最后,他让 Copilot 创建了一个自动化脚本(models.sh),用于通过 Sequelize CLI 批量生成所有模型和迁移文件。

第三步:根据服务规范生成业务逻辑与测试

为了生成具体的业务代码,演示者创建了一份新的规范文件 cart.md,详细描述了购物车服务的功能需求,并将其与之前的风格指南一同添加至 Copilot 的指令中。当被要求“生成购物车服务”时,Copilot 同时生成了:
1. 服务逻辑:一个遵循规范的 cart.js 文件,包含添加商品、设置客户等功能,并内置了必要的逻辑校验。
2. 测试代码:一套完整的单元测试用例。

演示者还展示了与 Copilot 的互动优化能力:在指出初始测试用例包含多个断言后,他要求 Copilot 将其重构为“每个测试仅包含一个断言”,Copilot 随即生成了符合要求的优化版本。

最终验证:运行测试与成果

在将生成的代码文件放置到正确的项目目录下、安装了 uuid 等依赖并配置好 Jest 测试环境后,演示者运行了测试。经过对 Copilot 自动生成的额外测试文件进行简单清理后,最终测试套件成功运行,结果显示 7个测试通过 (7 passed)。演示者对 Copilot 生成的代码能够“开箱即用”表示非常惊喜。

核心结论

自定义 Copilot 指令通过赋予 AI “项目感知能力”,使其能够深刻理解项目特有的规范和结构。这种“文档驱动开发”的模式,让开发者可以通过维护规范文档来指导 Copilot 生成高度一致且符合要求的初始代码。在短短15分钟内,一个功能可用的应用基础框架得以构建,证明了该功能在提升开发效率方面的巨大潜力。不过,此功能尚处于实验阶段,其未来发展将依赖于用户的反馈和贡献。

评审反馈

总体评价

总结内容整体质量较高,准确捕捉了视频演示的核心功能和亮点,但在细节描述和术语准确性上存在少量问题。

具体问题及建议

  1. 事实准确性:总结中"7 past"应为"7 passed",测试结果描述不准确
  2. 修改建议:修正为"7个测试通过"或"7 passed"

  3. 完整性:遗漏了演示者强调的"该功能仍处于实验阶段"这一重要信息

  4. 修改建议:在核心结论部分明确提及功能的实验性质

  5. 格式规范:部分技术术语拼写不一致(如"salize"/"Sequelize")

  6. 修改建议:统一使用正确的技术术语"Sequelize"

  7. 内容组织:测试运行部分描述稍显冗长

  8. 修改建议:精简测试失败和解决过程的描述,聚焦关键结果

  9. 语言表达:部分语句存在机器翻译痕迹(如"劫持Copilot聊天")

  10. 修改建议:改为更专业的表述"预置Copilot聊天指令"

优化方向

  1. 加强技术术语的准确性和一致性
  2. 精简操作过程的描述,突出功能价值而非操作细节
  3. 在关键结论处增加对功能局限性和实验性质的说明