用上下文引导 Copilot

使用 GitHub Copilot 进行软件开发

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

上下文的重要性

使用 GitHub Copilot 进行软件开发

上下文的重要性

使用 GitHub Copilot 进行软件开发
使用 GitHub Copilot 进行软件开发

#codebase 变量

$$

#codebase:在整个项目中执行语义代码搜索

示例提示:

用户认证是如何处理的? #codebase

结果:

  • 🔍 扫描整个代码库
  • 💻 在回答中包含相关逻辑、函数调用或配置
使用 GitHub Copilot 进行软件开发

Copilot 如何理解你的代码库

索引类型:

  • 本地索引: 存储在本机
  • 远程索引: 适用于托管在 GitHub 的仓库
使用 GitHub Copilot 进行软件开发

检查索引类型

使用 GitHub Copilot 进行软件开发

检查索引类型

使用 GitHub Copilot 进行软件开发

#changes 变量

$$

#changes:引用最近的源码控制变更

示例提示:

这些更改会破坏登录流程吗? #changes

适用场景:

  • 💾 评估代码修改
使用 GitHub Copilot 进行软件开发

#selection 变量

$$

#selection:引用高亮的代码块

示例提示:

能重构这个吗? #selection

适用场景:

  • 🔧 进行快速编辑
  • 📝 创建定向提示
使用 GitHub Copilot 进行软件开发

#fetch 变量

  • 文档 📚、API 参考 💻、博文 📰

$$

#fetch:拉取网页内容

示例提示:

请帮我总结这份文档 #fetch https://example.com/docs

结果:

  • 🌐 获取网页并将其用作上下文
使用 GitHub Copilot 进行软件开发

#files 变量

$$

#files:将指定文件附加到提示

示例提示:

你能检查此文件的错误处理问题吗? #files:utils/data_loader.py

结果:

  • 🔍 分析所引用文件的内容
  • 📄 将其作为提示上下文的一部分
使用 GitHub Copilot 进行软件开发

其他聊天变量与工具

$$

变量/工具 描述
#search 启用在当前工作区内搜索文件。
#testFailure 获取单元测试失败信息。用于运行与诊断测试。
#problems 将"问题"面板中的工作区问题添加为上下文。用于修复或调试代码。
#terminalLastCommand 获取上次运行的终端命令及其输出。
#githubRepo 在 GitHub 仓库中执行代码搜索。
1 https://code.visualstudio.com/docs/copilot/reference/copilot-vscode-features#_chat-tools
使用 GitHub Copilot 进行软件开发
使用 GitHub Copilot 进行软件开发

构建渐进式聊天交互

单个复杂提示:

添加带认证、持久化、会话、错误处理和连接池的 PostgreSQL 集成

渐进式复杂度流程:

  1. 添加数据库持久化的最佳方法是什么? #codebase
  2. 按建议实现数据库连接
  3. 帮我设计 Task 和 User 类的架构
  4. 现在加入会话管理和基础错误处理
  5. ...
使用 GitHub Copilot 进行软件开发

开启新聊天以清除上下文

使用 GitHub Copilot 进行软件开发

开启新聊天以清除上下文

使用 GitHub Copilot 进行软件开发

使用 GitHub Copilot 进行软件开发

Passons à la pratique !

使用 GitHub Copilot 进行软件开发

Preparing Video For Download...