※ GitHub Copilotのアップデートで状況が変わる可能性がありますのでご注意ください。記事作成の元となったページを内容毎に記載しておりますので、参考にしてください。
扱うデータの内容
GitHub Copilotはコード片を含めたプロンプトをLLMへ送信することで、コードや提案を生成します。
このとき、IDEで開いているすべてのファイルから現在開いているファイルのカーソルの周りのコードと一致するコード片を探し、プロンプトへ追加することで、現在のIDEの情報を扱います。
プロンプトに含まれる情報は、リポジトリのURLやファイルパスなども含まれ、プロジェクトのコンテキストに関わるさまざまな要素が含まれることがあります。
GitHub CopilotはLLMを使用してコードや提案を生成するため、LLMが扱えるトークンの制限が適用されます。
GitHub Copilotが一度に扱える情報は8kトークンまでとなっています。
詳細を知りたい場合は以下のページを参照してください。
データの流れ
IDEのGitHub Copilot拡張機能は以下の流れで認証を行います。
- IDEからGitHub.comへ問い合わせ
- 認証及びライセンス確認
- GitHub Copilot用のトークンを取得
- IDEからAzure上のGitHub Copilotサーバへ問い合わせ
- 文脈(プロンプト)送信
- 提案を作成
- 提案を作成後、プロンプトを破棄
- 提案を受信
Azure上のGitHub Copilotサーバは、GitHub.comとは隔離されており、GitHub.comへデータが送信されることはない。
データのフィルタリング
GitHub Copilotが提案の前後に行うデータへの処理は以下のとおりです。
- プロンプト送信時
- 認証
- 感情分析
- 提案返却時
- セキュリティフィルター
- 感情分析
- 二重検知OSSフィルター