GitHub Copilotとは?AIで開発・コーディング支援!概要や使い方を解説

GitHub Copilotとは

アメリカのGitHubは、ソフトウェアの開発を支援するAIとしてGitHub Copilotを提供しています。初回のリリースは2022年8月のWebサービスではありますが、ビジネス利用が認められたり新しいものが公開されたりしたことで、改めて注目を集めているものです。今回はGitHub Copilotとはどのようなサービスであり、AIで開発やコーディングがどのように支援されるかを解説します。また、具体的な使い方についても理解していきましょう。

公式URL:https://github.com/features/copilot

GitHub CopilotはAIがコード生成を支援

GitHub CopilotはAIがコード生成を支援

GitHub CopilotはAIの力を活用し、ソースコードの生成を支援してくれるサービスです。各種開発やコーディングについてAIが学習していて、その実績をもとに適切なソースコードが提案されます。何かしらコードを書き始めるか、コード化したい内容を文章にすることで、GitHub Copilotがそれを検知する仕組みです。

GitHubとOpenAIが共同でGitHub Copilotを開発していて、OpenAIの提供する大規模な機械学習モデルを利用しています。OpenAIの機械学習モデルは、各種プログラミング言語について学習していますが、GitHub Copilotはさらに多くのパラメーターから、学習していると考えて良いでしょう。

また、GitHub Copilotは多くのプログラミング言語やフレームワークに対応していることが特徴です。対応しているプログラミング言語であれば、関数や一般的なコーディング手法に沿ったコードスニペットの生成に対応できます。特定のプログラミング言語に対応した「提案ツール」のようなものは今までもありましたが、GitHub CopilotはAIを活用し、複数のプログラミングをまとめて解決できるのです。

GPT-4搭載のGitHub Copilot Xも登場

GPT-4搭載のGitHub Copilot Xも登場

GitHubはAIの開発を継続的に続けていて、新しいサービスの提供にも力を入れています。2023年3月22日にはGitHub Copilotの最新版がリリースされて、こちらは「GitHub Copilot X」と命名されています。OpenAIが提供する機械学習モデルの中でもGPT-4が搭載されていて、今までのようにエディタに追加するものに加えて、以下のサービスが開発される予定です。

  • Copilot Voice
  • Copilot for CLI
  • Copilot for Pull Requests
  • Copilot for Docs
  • Copilot Chat

GitHub Copilotを音声で操作できるようにするものや、コマンドラインから操作できるようにするものが追加されます。また、プルリクエストにGitHub Copilotを組み込むための機能も追加予定です。これにより、GitHub Copilotが支援したソースコードを、より簡単にGitHubなどへアップロードできます。

また、チャット形式コーディングを支援する機能も開発されていて、こちらはVS Codeに組み込んで利用できる見込みです。GPT-4ベースのチャット機能が支援してくれるため、高品質なサポートが期待できます。GPT-4はChatGPTのモデルとして非常に注目されているため、GitHub Copilotでの利用も安心です。

なお、GitHub Copilotには「GitHub Next」と呼ばれるプロジェクトも存在しています。こちらは、GitHub CopilotのようにAIを活用したコーディング支援に限らず、GitHub全体の未来について検討するプロジェクトです。GitHub Copilotは含まれていますが、それ以外にもテストの自動化やコードのブラッシュアップツールなど、いくつものプロジェクトが進められています。GitHub Copilot XはGitHubの未来を築き上げるひとつのサービスなのです。

GitHub Copilotの料金プラン

GitHub Copilotの料金プラン

GitHub Copilotには2種類のプランが設けられています。

  • Copilot for Individuals
  • Copilot for Business

基本的に、個人で利用する場合は月額10ドルのCopilot for Individualsで十分です。開発やコーディングに必要な機能が搭載されているため、導入することで効率よくアプリケーションを開発できます。年間払いにすることで、月額料金が下がるため、必要に応じて年間払いを選択しても良いでしょう。

また、法人など大人数で利用する場合は月額19ドルのCopilot for Businessを利用します。こちらは、Copilot for Individualsで提供されている機能に加えて、企業の運用ポリシーなどを適用できるものです。セキュリティやプライバシー保護の考え方に、独自のルールがあるならば、これらを適用させることが可能です。

GitHub Copilotへの登録方法

GitHub Copilotへ登録するためには、GitHub Copilotの公式サイトから手続きしなければなりません。初回はフリートライアルが設けられているため、今回はこちらを紹介します。

GitHub Copilotの申し込みページ

GitHubへのログインが求められる場合には、指示に従ってログインしてください。もし、GitHubのアカウントを有していないならば、このタイミングで作成する必要があります。毎月の支払いか年間の支払いにするかの選択肢が表示されるため、都合の良いものを選択しましょう。

GitHub Copilotのプラン

支払い情報に関する画面が表示されるため、指示に従って必要な情報を入力します。なお、GitHubでプロジェクトへの寄付などをしていれば、自動的に支払い情報が表示されるかもしれません。支払い情報が自動入力されている場合は、過去に何かしら支払っているのだと認識しましょう。

GitHub Copilotの申し込み確認

最後に、ソースコードをGitHubが活用することに同意するかどうか問われるため、自分の意志を表明しましょう。

ソースコードの権利についての確認

登録完了の画面が表示されれば完了です。

なお、GitHub Copilotは30日間のフリートライアルが設けられて、その後は自動的に課金されます。GitHub Copilotに登録している限りは、自動的に更新されてしまうため、利用を取りやめたい場合には解約手続きをしましょう。

GitHub Copilotの導入方法

GitHub Copilotの導入方法

GitHub Copilotは自由なツールに導入できるのではなく、現時点では以下のソフトウェアに導入できます。

  • Visual Studio
  • Neovim
  • VS Code
  • JetBrains IDEs

日本で特に利用されているツールとしては、VS Codoが挙げられるでしょう。今回はこちらを例にGitHub Copilotを導入する方法を解説します。なお、VS Codeについては導入が完了していることが前提です。

VS Codeを起動して、拡張機能からGitHub Copilotをインストールします。まずは「GitHub Copilot」で検索しましょう。

VS Codeでの検索

インストールボタンをクリックするとインストールが進み、GitHubへのログインを求められます。

VS Codeでのインストール

指示に従ってログインしましょう。ブラウザでログインしているならば、その情報を利用して簡単にログインできるようになっています。特に成功したかどうかの表示は無いため、VS Codeでエラーなどが表示されていなければ、問題なく導入できたと考えられます。

なお、事前にGitHub Copilotへの登録を済ませていなければ、この作業を進められず登録を促されてしまいます。もし、登録を忘れてGitHub Copilotを導入しようとしたならば、上記で解説した「GitHub Copilotへの登録方法」の手順をまずは実施してください。

GitHub CopilotをVS Codeに拡張機能としてインストールを試す

上記でGitHub Copilotの導入が完了しているため、実際にインストールされた拡張機能を試してみます。上記のインストールが完了した段階で、自動的に拡張機能は有効化されているため、早速、開発を進めていきましょう。

関数名からの提案

今回はGitHub Copilotの公式ドキュメントを参考に、JavaScriptのファイルを作成してどのようなコーディング支援を受けられるのか確認してみます。「test.js」というファイルを作成しました。

VS Codeでテストファイルの作成

続いては、公式ドキュメントで紹介されている例を参考に「calculateDaysBetweenDates」という関数を作成してみましょう。VS Codeの画面上で以下のとおり入力します。

VS Codeでテスト関数の作成

こちらの関数は日本語に訳すと「日付間の計算日数」です。つまり、2つの日付から、どの程度の差があるのかを計算します。GitHub Copilotはこのような関数の名称を読み取り、以下のとおりソースコードの例を示してくれます。

GitHub Copilotによるソースコードの生成

グレーで表示されている部分が、GitHub Copilotが検討した結果として生成されたソースコードです。「Tab」キーを押すことで、この提案が受け入れられます。

GitHub Copilotが生成したコードの反映

グレーからカラフルな表示に切り替わったならば、AIの提案を受け入れたソースコードの生成が完了です。AIに支援してもらうことで、プログラミングに必要な時間を大幅に短縮できます。

なお、AIの提案に満足できないならば、別の提案を生成してもらうことも可能です。「Ctrl+Enter」キーを押して、異なる候補を確認しておきましょう。

GitHub Copilotによる異なる候補の表示

生成された提案の中で適切なものがあれば、「Accept Solution」をクリックします。先程まで表示されていたソースコードの代わりに、選択したソースコードが表示される仕組みです。

コメントからの提案

関数名ではなく、コメントに実装してもらいたいことを入力すると、それを元にしたコーディング支援を実現してくれます。

GitHub Copilotによるコメントからの提案

良い関数名を思いつけないと、GitHub Copilotが適切にコーディングを支援してくれない可能性があります。ただ、こちらのようにコメントからの提案にも対応しているため、日本語や英語で説明できればソースコードを生成してもらうことが可能です。

コメントから生成されたソースコードについても「Tab」キーを押すことで内容を確定できます。また、別の候補を表示してもらうことも可能であるため、上記の解説と同じように操作してみましょう。

必要に応じて有効化・無効化する

必要に応じて有効化・無効化

基本的に、GitHub Copilotを導入するとすべてのプログラミング作業についてこれが適用されます。ただ、人によっては「このプロジェクトではGitHub Copilotが必要ない」ということもあるでしょう。その場合、GitHub Copilotの有効化と無効化を選択できます。

利用しているツールによって操作は異なりますが、VS Codeの場合は画面右下に適用するかどうかのポップアップが表示されることがあります。こちらから停止を選択することで、無効化が可能です。有効化する際は、同様にポップアップが表示された際に有効化します。

提示された候補がベストとは限らないため注意

GitHub Copilotは開発やコーディング作業など、各種実装を手助けしてくれる重要なツールです。アルゴリズムが思いつかないときでも、GitHub Copilotに任せると考えてもらえます。これからはAIがコーティングをサポートする時代となるでしょう。

ただ、目的が達成できていても、ソースコードが最適であるとは限りません。インプットとアウトプットの条件を満たしているだけで、アルゴリズムに問題が隠されているかもしれません。例えば、ループの設計が適切ではないために、処理時間が長くなることが考えられます。

基本的に、生成されたソースコードは実行できる状態です。ただ、その内容を吟味する「リファクタリング」も必要となってきます。簡単なアルゴリズムならばあまり意識する必要がないですが、複雑なアルゴリズムでは、よく吟味しておきましょう。

まとめ

GitHubとOpenAIが連携して開発するGitHub Copilotを紹介しました。ChatGPTなどを提供するOpenAIのモデルを活用してプログラミングをサポートしてくれるものです。これからはAIを活用した開発が増えるでしょう。すでに、大手企業ではGitHub Copilotを導入した開発やコーディングが進められています。

提案や生成の機能があり、非常に便利なツールではありますが、常に最適なコーディングとは限りません。冗長なアルゴリズムが提示される場合もあります。そのため、GitHub Copilotを中心に開発し、必要に応じてリファクタリングを取り入れましょう。