コンテキストでCopilotを活用する

GitHub Copilot を使ったソフトウェア開発

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

コンテキストの重要性

GitHub Copilot を使ったソフトウェア開発

コンテキストの重要性

GitHub Copilot を使ったソフトウェア開発
GitHub Copilot を使ったソフトウェア開発

#codebase 変数

$$

#codebase: プロジェクト全体でセマンティック検索を実行

プロンプト例:

ユーザー認証はどのように処理されていますか? #codebase

結果:

  • 🔍 コードベース全体をスキャン
  • 💻 関連するロジック、関数呼び出し、設定を回答に含める
GitHub Copilot を使ったソフトウェア開発

CopilotがコードベースをどのようにAIで理解するか

インデックスの種類:

  • ローカルインデックス: マシン上に保存
  • リモートインデックス: GitHubにホストされたリポジトリ用
GitHub Copilot を使ったソフトウェア開発

インデックスの種類を確認する

GitHub Copilot を使ったソフトウェア開発

インデックスの種類を確認する

GitHub Copilot を使ったソフトウェア開発

#changes 変数

$$

#changes: 最新のソース管理の変更を参照

プロンプト例:

これらの変更でログインフローが壊れますか? #changes

使用タイミング:

  • 💾 コードの変更を評価するとき
GitHub Copilot を使ったソフトウェア開発

#selection 変数

$$

#selection: ハイライトされたコードブロックを参照

プロンプト例:

このコードをリファクタリングしてください。 #selection

使用タイミング:

  • 🔧 簡単な編集をするとき
  • 📝 対象を絞ったプロンプトを作成するとき
GitHub Copilot を使ったソフトウェア開発

#fetch 変数

  • ドキュメント 📚、APIリファレンス 💻、ブログ記事 📰

$$

#fetch: Webページの内容を取得

プロンプト例:

このドキュメントを要約してください #fetch https://example.com/docs

結果:

  • 🌐 Webページを取得してコンテキストとして利用
GitHub Copilot を使ったソフトウェア開発

#files 変数

$$

#files: 特定のファイルをプロンプトに添付

プロンプト例:

このファイルのエラー処理を確認してください。 #files:utils/data_loader.py

結果:

  • 🔍 指定ファイルの内容を解析
  • 📄 プロンプトのコンテキストに含める
GitHub Copilot を使ったソフトウェア開発

その他のチャット変数とツール

$$

Variable/tool Description
#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 を使ったソフトウェア開発

練習しましょう!

GitHub Copilot を使ったソフトウェア開発

Preparing Video For Download...