Python で GitHub Copilot を使用する
前のユニットでは、Copilot を設定する方法を示し、開発者がコードを書き始める時間を短縮する方法について説明しました。
このユニットでは、Copilot が既存のプロジェクトや、より複雑なタスクを支援する方法について説明します。
GitHub Copilot を使用した開発
多くの場合、プロジェクトをビルドするときに、コードが最新で、かつ更新されていることを継続的に確認する必要があります。 また、発生したバグを修正したり、機能性と使いやすさを向上するために、新しい機能を追加したりする必要がある場合があります。 GitHub Copilot と GitHub Copilot Chat (コード関連の質問や回答をやり取りするための対話型チャット インターフェイス) を使用して更新する方法をいくつか見てみましょう。
プロンプト エンジニアリング
GitHub Copilot は、入力時にコードを提案してくれますが、プロンプトを作成して有用な提案を作成することもできます。 入力であるプロンプトは、コードの生成に役立つ命令またはガイドラインのコレクションです。 プロンプトは、Copilot から特定の応答を生成するのに役立ちます。 GitHub Copilot Chat を使用している場合、プロンプトは、Copilot にコードを自動生成させたり、Copilot が自動補完するコードを記述させたりするためのコメントや入力として機能することができます。
Copilot からの出力の品質は、プロンプトをどれだけうまく作成できるかによって決まります。 効果的なプロンプトを設計することは、目的の成果を確実に達成するために重要です。
たとえば、次のプロンプトについて考えてみましょう。
# Create an API endpoint
プロンプトはあいまいで漠然としているため、GitHub Copilot の結果がニーズに合っていない場合があります。 たとえば、あなたが知らないフレームワークを使用するコードや、あなたが認識していないデータを必要とするエンドポイントを提案する可能性があります。
次に、このプロンプトについて考えてみましょう。
# Create an API endpoint using the FastAPI framework that accepts a JSON payload in a POST request
プロンプトは具体的で明確であり、これにより GitHub Copilot はタスクの目標とスコープを理解できます。 コメントやコードを使用して Copilot にコンテキストと例を提供することができますが、GitHub Copilot Chat のチャット オプションを使用してプロンプトを強化することもできます。 適切なプロンプトであれば、モデルは確実に高品質な出力を出力します。
GitHub Copilot を使用したベスト プラクティス
Copilot は生産性を高めますが、品質を確保するにはいくつかの適切なプラクティスが必要です。 Copilot を使用する場合のベスト プラクティスは次のとおりです。
プロンプトをシンプルにして、作業を進めながらより複雑なコンポーネントを追加します。 次に例を示します。
create an HTML form with a text field and button
次に、より具体的な提案を得るプロンプトについて詳しく説明します。
Add an event listen to the button to send a POST request to /generate endpoint and display response in a div with id "result"
提案を切り替えます。 これは、Ctrl+Enter (Mac の場合は Cmd+Enter) を使用して実行できます。 Copilot からさまざまな提案を受け取り、最適な出力を選択できます。 GitHub Copilot Chat を使用する場合は、必要に応じて、チャット入力を使用してプロンプトを追加し、出力を操作できます。
求める結果が得られない場合は、プロンプトを書き直すか、Copilot がオートコンプリートするようにコードの記述を開始します。
Note
GitHub Copilot は、テキスト エディターで開いているファイルを追加のコンテキストとして使用します。 これは、記述しているプロンプトやコードに加えて有用な情報を提供するため、便利です。 GitHub Copilot が他のファイルに基づいて提案を提供する必要がある場合は、それらを開くか、GitHub Copilot Chat を使用している場合はプロンプトで @workspace を使用できます。