「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
ユニット †
- Introduction 3 min
- Mitigate AI risks 3 min
- Microsoft and GitHub's six principles of responsible AI 3 min
- 公平性: AI システムはすべての人を公平に扱う必要があります。
- 信頼性と安全性: AI システムは信頼性と安全性を備えて動作する必要があります。
- プライバシーとセキュリティ: AI システムは安全でプライバシーを尊重する必要があります。
- 包括性: AI システムはすべての人に力を与え、人々を関与させる必要があります。
- 透明性: AI システムは理解可能でなければなりません。
- 説明責任: 人々は AI システムに対して説明責任を負うべきです。
- Knowledge check 3 min
- Summary 3 min
※ AI-900と同じ内容
ユニット †
- GitHub Copilot, your AI pair programmer 2 min
- GitHub Copilot features
- Copilot for chat
- Copilot for pull requests
- Copilot for the CLI
- GitHub Copilot Enterprise
・GitHub Enterprise Cloud を通じて組織で利用
・GitHub Copilot Business+組織向けのパーソナライゼーション レイヤー(RAG的な)
- Interact with Copilot 2 min
- Inline suggestions
- Multiple suggestions
- Inline chat
- Copilot chat
- Command palette
- Comments to code
- Explanations
- Automated test generation
- Set up, configure, and troubleshoot GitHub Copilot 7 min
- VS Code で GitHub Copilot を構成する
- GitHub Copilot 用の VS Code 拡張機能を追加する
- VS Code で GitHub Copilot を有効または無効にする
- VS Code でインライン提案を有効または無効にする
- VS Code で GitHub Copilot のトラブルシューティングを行う
- Knowledge check 5 min
- Summary 1 min
Exercise †
https://github.com/skills/getting-started-with-github-copilot
ユニット †
- Prompt engineering foundations and best practices 7 min
- 迅速なエンジニアリングの原則
- Single(単一)
- Specific(具体的)
- Short(短い)
- Surround(囲う)
- 迅速なエンジニアリングのベストプラクティス
- 十分な明確さを提供する
- 詳細を十分に伝える
- 学習のための例を提供する
- アサートと反復
- Copilotがプロンプトから学習する方法
- Zero-shot learning
- One-shot learning
- Few-shot learning
- GitHub Copilot user prompt process flow 5 min
Copilot がユーザーのプロンプトからコード提案するまでのすべての手順
- 1. 安全な迅速な伝送とコンテキスト収集
エディタで開いているタブの周囲のコード、ファイル、コンテンツを考慮。
- 2. プロキシフィルター
プロンプトインジェクションなどのブロック
- 3. 毒性フィルタリング
生成内容に問題や個人データが入らないようにフィルタリング
- 5. 後処理と応答の検証
コード品質、一致する公開コード (オプション) のチェック
- 6. 提案の伝達とフィードバックループの開始
ユーザーのアクションに基づいて学習/改善
- GitHub Copilot コード提案のデータ処理
エディタのCopilot は、プロンプトを保持しない。
- GitHub Copilot チャットのデータ処理
- フォーマット:生成された応答を細心の注意を払ってフォーマット
- ユーザー エンゲージメント:チャット インターフェイスは会話履歴を維持
- データ保持:入出力からコンテキストを 28 日間保持
- GitHub Copilot Chat でサポートされているプロンプトの種類
- 直接的な質問:問題に関する具体的な質問
- コード関連のリクエスト:生成、変更、説明
- 自由形式の質問:概念を探ったりガイダンスを求めたり。
- コンテキスト プロンプト:カスタマイズされたサポートを求める。
- 限定されたコンテキストウィンドウ
- 4k トークンのコンテキスト ウィンドウで動作
- 通常、約 200-500 行のコードまたは最大数千のトークンの範囲
- プロンプトを作成するときはコンテキスト ウィンドウの制限に注意
- GitHub Copilot Large Language Models (LLMs) 4 min
- GitHub CopilotにおけるLLMによるコーディングに関する提案
- LoRA(フルファインチューニングより軽量な代替手段)の微調整
ユニット †
- Advanced GitHub Copilot features 2 min
- The basics
ゴースト テキストは無視するか、Tabキーを押して受け入れ。
- Chatting
左側のサイドバーにあるチャット アイコンで左ペインにインターフェイスが開く。
- Using inline chat
Windows ではCtrl+iでアクセス
- Slash commands
Command paletteと比較し、コーディング中に簡単かつ即座に利用できる
- Agents
@terminal、@workspace、@vscodeなどのコンテキストを使用して質問
- Exercise - Set up GitHub Copilot to work with Visual Studio Code 5 min
- Applied GitHub Copilot techniques 3 min
- 暗黙のプロンプト:inline chat+Slash commands
コマンドの後ろにプロンプトを入力しないコマンド(実際は、コードからプロンプトを推測
- Exercise - Update a web API with GitHub Copilot 5 min
Exercise †
https://github.com/codespaces/new/MicrosoftDocs/mslearn-advanced-copilot
ユニット †
- Code completion with GitHub Copilot 6 min
- サポート言語:Python、JavaScript、Java、TypeScript、Ruby、Go、C#、C++
- インテリセンス:自動提案、複数の提案パネル(Windows or Linux: Alt+] (next), Alt+[ (previous))
- 活用ポイント:メソッドの実装、命名規則、書式設定、コメント スタイル、デザイン パターン
- コメントを組み込んで提案を強化
- 自然言語で書かれたコメントからコンテキストを分析して理解
- 様々な種類のコメント:インライン、ブロック、TODOコメント、ドキュメンテーション文字列(API、Docstrings)
- コメント駆動型コード生成:関数実装、コード補完、変数命名、アルゴリズム選択
- 応答改善方法
- スコープ参照:ファイル参照(#file コマンド)、環境参照(@terminal、@workspace、@vscode)
- Slash commands:クエリの意図を素早く指定(生成:/generate、説明:/explain、文書化:/doc、修正:/fix、性能改善:/optimize、テスト生成:/tests)
- Slash commandsとスコープ参照と環境参照(Agents?)を組み合わせて使用できる。
- フィードバック共有
- 提案にマウス カーソルを合わせると、賛成ボタンと反対ボタンが表示される。
- 提案が役に立ったと評価、👍️、役に立たなかったと評価👎
- GitHub Copilot for the Command Line 5 min
- シェル用のGitHub Copilot(コマンド)
gh copilot xxx(ghcx)
- 設定オプション
- エイリアス設定: gh copilot explain → ghce、gh copilot suggest → ghcs
- フィードバック:提案を改善するためにユーザーからのフィードバックを奨励
- 組織設定:管理者は特定の機能へのアクセスを有効または無効に
- データ処理:使用状況データを保持して製品の改善に使用するかどうかを設定
ユニット †
- Explore GitHub Copilot plans and their associated management and customization features 5 min
- 管理ポリシー機能
- Free & Pro:パブリックコードフィルターのみ有り
- Business :GitHub Enterprise Cloud不要(カスタマイズ機能に関係)
- Enterprise:GitHub Enterprise Cloud必要(すべての機能をサポートする)
- カスタマイズ機能
- Free & Pro & Business:チャットで組織コード、組織KBをRAGる機能は無し
- Enterprise:すべての機能をサポート(GitHub Enterprise Cloudによる)
- 組織の料金プラン選択に重要な要素
- Business/Enterpriseは、より強力なプライバシー制御を提供
- Business/Enterpriseは、機密データを組織のプライバシー ポリシーに従って処理
- データの収集と保持:GitHub Copilotがプロンプトと提案を収集して保持するかどうかを選択
- IP補償とデータ プライバシーは、法的、セキュリティ、顧客の問題を回避するために重要
- Explore contractual protections in GitHub Copilot and disabling matching public code 5 min
- IP(知的財産)補償:Business/Enterprise プランでは提案が第三者のIP権利を侵害した場合、GitHub が法的責任を負う(一致する公開コード設定をブロックする設定が必要)
- 一致する公開コード設定をブロックする設定は、GitHubプロフィール[Your enterprises]/[Your organizations]→[settings]→[Copilot]→[提案]のアタリで設定できる。
- データ保護契約 (DPA):データ プライバシー規制への準拠を保証するために講じられる対策を概説した DPA を提供。
- GitHub Copilot トラスト センター:GitHub Copilot の仕組みに関する詳細な情報を提供。
- Manage content exclusions 7 min
- コンテンツ除外がコード提案に与える影響
- 当該ファイルではコード補完は利用できなくなる。
- 当該ファイルの内容は、他のファイルのコード補完の提案には反映されない。
- 当該影響を受けるファイルの内容は、GitHub Copilot Chat の応答には通知されない。
- コンテンツ除外の設定方法
- 組織のコンテンツ除外を設定する:一致する公開コード設定をブロックする設定と同じ場所
- リポジトリのコンテンツ除外を構成:リポジトリのsettings
- コンテンツ除外の制限
- IDEの制限:一部の統合開発環境 (IDE) ではコンテンツの除外が適用されない場合がある。
- セマンティック情報:除外されていないファイルから除外されたファイル情報を引き続き使用することがある。
- ポリシー範囲:コンテンツ除外設定は、コンテンツ除外を構成する組織のメンバーにのみ適用される。
- Troubleshoot common problems with GitHub Copilot 5 min
- コードの提案がありません
- インターネット接続を確認
- Copilot 拡張機能を更新
- IDEの互換性を確認
- コンテンツの除外を確認
- コンテンツの除外が期待どおりに機能しない
- 除外の遅延適用
- ポリシー範囲が不十分
- IDE固有の制限
- コードの提案が不十分
- 明確なコンテキストを提供
- Copilotコマンドの使用
- プロンプトの長さを調整
詳細 †
※ 以下、概要(GitHub Copilot の基礎 - AI ペア プログラマーの理解)との差分情報のみをポイント
ユニット †
- Examine AI tools from GitHub, OpenAI, and Microsoft 10 min
- Examine GitHub Copilot tools, benefits, and limitations 6 min
- 制限
- 限定された範囲:複雑なコード構造やあまり知られていない言語、設計、アーキテクチャは処理できない場合がある。
- 潜在的なバイアス:トレーニング データにバイアスが存在する場合、GitHub Copilot はバイアスを永続化する可能性がある。
- セキュリティリスク:慎重に使用しないと、機密情報や脆弱性が潜在的に公開される可能性がある。
- 公開コードと一致する:トレーニング セットのコードと一致するコードを生成する確率は低いが0ではない(ブロック機能あり)。
- 不正確なコード:意味的/構文的に正しくない無効なコードを生成する場合がある。
- コーディング以外のトピックに対する不正確な応答:コーディング以外の質問に答えるようには設計されていない。
- Examine the autocomplete features of the GitHub Copilot extension 10 min
- オートコンプリート(コード補完)の提案候補を生成
- 「int addInt(」と書くと、後続のメソッドのシグネチャと実装が色付きの構文強調表示なしで表示されるのでTabキーで受入、Escキーで拒否
- もう少し複雑な「int addPrimeNumbersInNumericList?(」と書いて試してみる。すると、定義のないisPrimeメソッドが使用されたコードが提案される。
- Tab キーで受入後、addPrimeNumbersInNumericList?メソッドの下に空白行を入力すると、GitHub Copilot はisPrime使用できるメソッドを提案する。
- オートコンプリート(コード補完)の提案候補を管理
- [承認]を選択して、提案を(完全に)承認(ショートカットは「Tab」)
- 「単語を受け入れる」を選択して、提案を部分的に受入(ショートカットは「Ctrl + >」)
- 「単語を受け入れる」の右側にある省略記号 (...) から「行を受け入れる」「ツールバーを常に表示」「補完パネルを開く」オプションを選択可
「行を受け入れる」:候補の行全体を受入、「常にツールバーを表示」:常にツールバーを表示、「補完パネルを開く」:[提案]タブで複数の候補を表示。
- 「<」/「>」を選択して代替候補を表示(ショートカットは、「Alt + [」/「Alt + ]」)
- コメントからコードの提案を生成する
- コメントを入力し始めると、GitHub Copilot はコメントと周囲のコードを使用し補完するオートコンプリートを提案。
// create a list of 100 random numbers between 1 and 1800
- コメントを書き続けると、GitHub Copilot はオートコンプリートの提案を更新。提案を受入準備ができたら「承認」を選択するか、Tab キーを押す。
List<int> numbers = new List<int>();
Random random new Random();
for (int i = 0; i < 100; i++)
{
numbers.Add(random.Next(1, 1000));
}
Int sum addPrimeNumbersInNumerictist(numbers);
- 提案タブを使用して複数の提案を表示
- 最初のオートコンプリートの提案に満足できない場合、タブを開き、より多くのオプションを表示し適切なものを選択できる。
- 「補完パネルを開く」:[補完パネルを開く]を選択(ショートカットは「Ctrl+Enter」)すると[提案]タブに最大10件の提案が表示される。
- 提案を受け入れるには例えば最初の「suggestion 1」の下の「Accept suggestion 1」ラベルを選択。提案を拒否するには、タブを閉じる。
- Examine the AI assistance features of the GitHub Copilot Chat extension 14 min
- GitHub Copilot Chat のユースケース
- コードの説明と文書化
- コーディングに関する質問への回答
- エラーや問題のコンテキストに基づいて解決策&スニペットを提案
- メソッドのシグネチャと本体に基づいて、ユニット テスト ケースの作成を支援
- 既存のコードベースの(品質、信頼性、性能、セキュリティについての)改善を提案
- Visual Studio Code での GitHub Copilot チャット
- チャット・ビュー(メニュー・バーにある[チャットを開く]から、もしくは「Ctrl+Alt+I」)
「in the selected code, what does sum represent?」などと選択中のコードに対して質問できる。
- インライン・チャット(コンテキスト・メニューの[Copilot]→[Editor Inline Chat]から、もしくは「Ctrl+I」)
・エディターにインラインのインターフェイスが表示され、そこで質問を Copilot に尋ねる。
・前述のnumbers生成コードを選択肢た状態で、インラインのインターフェイスを表示させ、
「Update this code to ensure that numbers doesn't include any duplicates」と問い合わせる。
・選択中のコードを更新する提案を「受入」「破棄」「再実行」から選択してコーディングを続行する。
- スマート・アクション(コンテキスト・メニューから選択)
・説明(Explain):選択したコードの自然言語による説明を生成。
・修正(Fix):選択したコードの修正を提案。
・レビューとコメント(Review and Comment):選択したコードのコード レビューを提供。
・ドキュメントの生成(Generate Docs):選択したコードのドキュメントを作成。
・テストの生成(Generate Tests):選択したコードの単体テストを作成。
・場合によって[レビューとコメント]→「修正」のようにスマート・アクションを繰り返して対応したりする。
- クイック・チャット(メニューからクイック・チャット、もしくは「Ctrl + Shift + Alt + L」)
- GitHub Copilot Chatでのプロンプト構築
・冒頭で使用する環境参照(@workspace、@vscode、@terminal)
・冒頭で使用するSlash commands(/clear、/new、/help、/doc、/explain、/tests、/fix、/newNotebook)
・環境参照とSlash commandsは組み合わせるときは「@workspace /explain: ...」のようにして使う
・プロンプト中でチャット変数(#editor、#selection、#file、#terminalSelection、#terminalLastCommand?)
- Knowledge check 10 min
- GitHub Copilot は開発者に提案を提供することでの生産性を向上させる AI ペア プログラマー。
- オートコンプリートには受入、破棄、代替の3つのオプションがあり、タブで他の複数の提案を表示できる。
- 環境参照(@workspace、@vscode、@terminal)でコンテキストを強化するコンテンツを見つけ易くする。チャット変数はコンテンツをポイント。
- テストコード生成:✗「ユーザーの個人的なコーディング スタイルに基づいて」◯「エディター内のコードまたは選択されたコードに基づいて」
- 言語サポートは既定で全て有効で、plaintext、markdownは無効:{ "": true, "plaintext": false, "markdown": false, "scminput": false }
Exercise †
- Exercise - Install GitHub Copilot extensions for Visual Studio Code 6 min
- GitHub Copilotサブスクリプションを設定
- 個人の GitHub アカウントを使用して、GitHub Copilot Pro のサブスクリプションを設定
(月間/年間/30日間の、2,000回のコード自動補完と50件のチャット/月の無料トライアル サブスクリプション)
- 教育者、学生、および選ばれたオープンソースのメンテナーは、Copilot Pro を無料で受け取ることができる。
- GitHub アカウントが組織を通じてライセンスされている場合は、組織の所有者によってサブスクリプションに割り当てられる。
- Visual Studio Code 用の GitHub Copilot 拡張機能を設定
- Visual Studio Codeと、GitHub Copilot、GitHub Copilot Chat 拡張機能をインストール
- Visual Studio Code から GitHub にサインイン(Visual Studio Codeの認証アカウントと異なる場合)
- Exercise - Configure GitHub Copilot extensions for Visual Studio Code 10 min
- GitHub Copilotを有効または無効にする
- Visual Studio Code で、拡張機能ビューを開く
- インストールされている拡張機能のリストで、GitHub Copilotを見つける。
- GitHub Copilot 拡張機能の歯車アイコンから有効化と無効化のオプションを表示して選択
- Visual Studio Code で GitHub Copilot と Copilot Chat を構成
- 拡張機能の設定にアクセスする方法
・Manageアイコンを使用して、Visual Studio Code の設定タブを開き、拡張機能を選択し、Copilotを選択。
・GitHub Copilot ステータス アイコンを使用して GitHub Copilot ステータス メニューにアクセスし、[設定の編集]を選択。
- GitHub Copilot拡張機能の設定を構成
・利用可能な設定のリストを確認し「拡張機能」ラベルの下で、最初の Copilot 拡張機能を選択。
・GitHub Copilot の設定には次のオプションが含まれる(自動補完を有効にする。指定した言語の Copilot 補完を有効または無効にする。)
・「拡張機能」ラベルの下で、2 番目の Copilot 拡張機能を選択。
・GitHub Copilot Chat の設定には、プレビューと実験的なオプションが含まれ必要に応じ、エクスペリエンスをカスタマイズする。
- GitHub.com で GitHub Copilot 設定を構成
・個人アカウント、組織アカウントを通じて管理できる。
・サブスクリプション管理、プロンプトと提案の保持の構成、パブリック コードに一致する提案の許可またはブロック
- GitHub Copilot のキーボードショートカット
・Visual Studio Code でデフォルトのキーボード ショートカットを使用できる。
・キーボード ショートカット エディターで特定のコマンド毎にショートカットを再バインドできる。
ユニット †
- Examine the "document" and "explain" features of GitHub Copilot Chat 7 min
- Visual Studio Code で GitHub Copilot Chat にアクセスする
チャット・ビュー:、インライン・チャット、スマート アクション、クイック・チャット
- GitHub Copilot Chat を使用して説明を生成する
プロンプト作成には、環境参照、Slash commands、チャット変数などを組み合わせて使用できる。
- チャット・ビュー:@workspace /explain Explain this project
- チャット・ビュー:@workspace /explain Explain the dependencies of this project
- チャット・ビュー:@workspace /explain #file:program.cs Explain how this file is used in the project
- インライン・チャット:/explain #selection Explain how this method works
- インライン・チャット:/explain Explain this code block
- チャット・ビューよりインライン・チャットの方がスコープが狭い事が多いので、環境参照ではなく選択されたコードを使用している感じか。
- GitHub Copilot Chat を使用してドキュメントを生成する
- インラインド・キュメントを生成する
・GitHub Copilot Chat
・インライン・チャットに/docコマンドを入力
・Generate Docsスマート・アクションを使用して選択したコードを説明
- GitHub Copilot Chat の出力を確認して修正する。
・出力の正確性と完全性を確認
・プロンプト(コードや質問)と一致していることを確認
・エラーや不正確な部分を修正し、コードの動作と目的が正確に反映されるようにする。
・出力に追加情報またはコンテキストを追加して、より包括的なドキュメントを提供する。
- Review the "code documentation" solution 8 min
- Knowledge check 8 min
- Summary 3 min
Exercise †
- Exercise - Generate code explanations using GitHub Copilot Chat 17 min
- Visual Studio Code環境でサンプルアプリを準備する
- リンクからサンプル アプリを含むSampleApps?.zipファイルをダウンロード
- Visual Studio Code でSampleApps?フォルダのAPL2007M2Sample1フォルダーを開く
- ワークスペースとプロジェクトファイルの説明
- Visual Studio Code の上部メニューバーで、[チャットを開く]を選択する。
- 次のコマンドを使用してプロジェクトの説明を依頼:@workspace Explain this project
- チャット ビューで応答を確認、下部でフォローアップの質問を提案している。
- MainWindow?.xaml.csを開き次のコマンドを使用してファイルの説明を依頼:@workspace /explain #file:MainWindow?.xaml.cs
- チャット ビューで応答を確認、下部でフォローアップの質問を提案している。
- 選択されたコードの説明
- MainWindow?.xaml.csファイルがエディターで開いていることを確認
- 下にスクロールしてSumPageSizesAsync?()メソッドを見つける。
- コード行を選択し、「説明」スマート アクションを使用して説明を生成。
- チャット ビューで応答を確認、説明に含まれる詳細レベルに注目。
- エラーの説明
- MainWindow?.xaml.csファイルがエディターで開いていることを確認
- 下にスクロールしてSumPageSizesAsync?()メソッドを見つける。
- マウスカーソルを上に移動するdownloadTasksとエラーメッセージが表示される。
- エラーを含むコード行を選択し「Ctrl+I」でインライン チャットを開き、次のプロンプトを入力:/explain why is the selection causing an error
- チャット ビューで応答を確認、エラーに関する情報と修正方法(キーワードawaitを追加)の提案が含まれている。
- GitHub Copilot Chat が提供する説明を使用して、コード内のエラーを修正、ファイルへの変更を保存する。
- Exercise - Generate project documentation by using GitHub Copilot Chat 8 min
- Exercise - Generate inline code documentation by using GitHub Copilot Chat 9 min
- Exercise – Complete the "code documentation" challenge 15 min
ユニット †
- Introduction 3 min
- Examine the code development features of GitHub Copilot 8 min
- Examine GitHub Copilot best practices 8 min
- Exercise - Create code by using code line completions 14 min
- Exercise - Create code by using GitHub Copilot Inline Chat 18 min
- Exercise - Complete the create new code challenge 16 min
- Review the create new code solution 8 min
- Exercise - Complete the code logic challenge 16 min
- Review the code logic solution 8 min
- Exercise - Convert code from one programming language to another 8 min
- Knowledge check 8 min
- Summary 3 min
Exercise †
ユニット †
- Introduction 3 min
- Examine the unit testing tools and environment 8 min
- Exercise - Create unit tests by using GitHub Copilot Chat 12 min
- Exercise - Create unit tests for specific conditions by using GitHub Copilot 8 min
- Exercise - Complete the "create unit tests" challenge 12 min
- Review the "create unit tests" solution 7 min
- Knowledge check 7 min
- Summary 3 min
Exercise †
ユニット †
- Introduction 3 min
- Examine GitHub Copilot support for code improvements 6 min
- Exercise - Improve code quality by using GitHub Copilot Chat 16 min
- Exercise - Improve code reliability and performance by using GitHub Copilot Chat 16 min
- Exercise - Improve code security by using GitHub Copilot Chat 15 min
- Exercise - Complete the "app improvement" challenge 20 min
- Review the "app improvement" solution 8 min
- Knowledge check 8 min
- Summary 3 min
Exercise †
ユニット †
- Introduction 2 min
- Prepare the development environment 6 min
- Exercise - Analyze and document code using GitHub Copilot tools 20 min
- Exercise - Develop code features using GitHub Copilot tools 20 min
- Exercise - Develop unit tests using GitHub Copilot tools 20 min
- Exercise - Refactor and improve code sections using GitHub Copilot tools 15 min
- Knowledge check 5 min
- Summary 2 min
Exercise †