GitHub Copilotを試してみた ~導入編~

2023.03.19

こんにちは、CX事業本部 Delivery部の若槻です。

現在、GitHub Copilotの検証を行っており、今回はVS Code(Visual Studio Code)へのCopilotの導入までを試したので共有します。

GitHub Copilotとは

GitHub Copilotは、GitHubOpenAIが共同で開発(OpenAI Codexを利用)したAI駆動のコード補完ツールです。Copilotは、OpenAIのGPT-3.5 Turboという大規模な機械学習モデルを利用しています。このツールは、開発者がコードを書く際に、自動的にコードの推薦や補完を副操縦士(copilot)のように提案することで、コーディングの効率性と速度を向上させることを目的としています。

GitHub Copilotは、様々なプログラミング言語やフレームワークに対応しており、関数の定義や一般的なコーディングタスクに対するコードスニペットを生成できます。また、独自のコメントを使って、開発者が目的を指定することで、Copilotがその目的に沿ったコードを生成(Comment to Code)することも可能です。

GitHub Copilotは、Visual Studio Codeなどの一部の統合開発環境(IDE)で利用できます。(ただし、Copilotが生成するコードは完璧ではないため、開発者は提案されたコードを注意深く確認し、必要に応じて修正を行う必要があります。)

GitHub Copilotのプラン

GitHub Copilotには次の2つのプランがあります。

  • Copilot for Individuals
  • Copilot for Business

Copilot for Businessを利用すると、Copilot for Individualsで利用可能なすべての機能に加えて、企業や組織のニーズに対応したデータ管理ポリシーや利用規約をOrganization単位で適用し、企業向けのデータセキュリティやプライバシー要件に対応させることが可能となります。

導入してみた

GitHub Copilotを利用可能であるか確認

まず自身のGitHubユーザーアカウントがGitHub Copilotを利用可能である確認します。

[Settings > Code, planning, and automation > Copilot]から確認可能です。

You get access to GitHub Copilot from your organization, xxxxxxxx, and cannot modify these settings.

私のユーザーアカウントは所属しているOrganizationによりアクセス権限が付与され、利用可能となっていますね。

この画面は https://github.com/settings/copilot からもアクセスできます。

VS Codeに導入

Visual Studio Codeに導入してみます。Extensionが提供されているので利用します。前提としてアクセス権限が付与されたGitHubアカウントでVS Codeにサインインしている必要があります。

いくつか通知が表示されています。

Inline suggestion settings changed. The current window needs to be reloaded for CodeWhisperer to use these changes.

インライン候補(Inline Suggestion)設定が自動で有効化されたのに伴いウィンドウのリロードが必要とのことなので、後ほどリロードします。

The organization xxxxxxxx has granted you access to GitHub Copilot.

OrganizationからGitHub Copilotへのアクセス権限が付与された旨の通知です。

またインスントール後は下部パネルにCopilotのアイコンが表示されるようになりました。

動作確認として機能を少し試してみます。

// 現在時刻を返すとコメントを記入すると、その後に続く関数名now()と処理内容return new Date();が自動で提案され、適用することができています。すごい。

Copilotの有効化/無効化を設定

アイコンをクリック(もしくは通知をクリック)すると、Copilotを「グローバルに無効化」および「現在編集中のファイルの言語に対して無効化」するかどうか確認されます。

またSettings(Github › Copilot › Inline Suggest)からインライン候補機能を個別に設定することもできます。Extensionの導入時に有効化されたのはこの設定となります。

GitHub Copilot Labs

GitHub Copilotの実験的(experimental)機能が利用できるGitHub Copilot Labsというものもあります。

こちらもVS Codeにインスントールして利用するものですが、使ってみた内容が紹介されている下記エントリを見る限りボタン1つで関数への型の追加、デバック用のコードを追加(変数値のコンソール出力)、コメント追加などをやってくれるようです。すごいですね。追ってこちらも試します。

おわりに

GitHub Copilotを導入してみました。

まだ触り始めですがニュルニュルとコードがサジェストされる体験はなかなかすごいです。引き続き触ってみます。ChatGPTが爆発的に利用され始めているいま、同じくGPTが利用されているGitHub Copilotにも今後注目が一気に集まることが予想されるので、皆さんも触ってみてください。

参考

以上