2
3

More than 1 year has passed since last update.

GitHub Copilotの概要

Last updated at Posted at 2023-07-19

サブライムコンサルティングの大塚です。
今回はGitHub Copilotの概要についてまとめてみました。

GitHub Copilotとは

GitHub Copilotは、AIを使用してプログラミングを支援してくれるツールです。自然言語で指示を出して、ソースコードを提案してくれます。

GitHub CopilotはChatGPT等で有名なOpenAIによって作成された生成的AIモデルCodexを使用しています。
CodexはGitHubをはじめ一般に公開されているソースコードや自然言語テキストを入力して事前に学習されたコーディングに特化したモデルです。
GitHub Copilotはクラウド上にあるCodexに対してユーザーから受け取った自然言語による指示を送信し、指示に従ったソースコードを受信して、ユーザーに提案します。

ただし、CodexGPT-3をベースとしており、少し古いモデルです。
Codex公式サイトでもDeprecated(非推奨)の扱いとなっています。
2023年3月にGitHub社から発表されたGitHub Copilot Xでは2023年7月時点でOpenAIによる最新の大規模言語モデル(LLM)であるGPT-4がベースとなっており、精度の向上も期待しています。

サポートされる開発環境

2023年7月時点において、公式サイトを確認すると以下の開発環境がサポートされています。
各開発環境用のプラグインが用意されており、それをインストールして、GitHub Copilotの機能を使用します。

  • JetBrains IDEs
  • Vim/Neovim
  • Visual Studio
  • Visual Studio Code

コメントによる指示

GitHub Copilotでは各言語のソースコードのコメントに自然言語で指示を記述すると、指示に従ったソースコードを提案してくれます。
以下はJetBrains社のIntelliJにGitHub Copilotプラグインをインストールして、Javaでソースコードを提案してもらう簡単な例となります。
github_demo.gif

基本的には、コメントで指示を記述して、Enterキーを押してしばらくするとソースコードが提案されます。
提案されたソースコードを採用する場合はTabキーを押して確定します。
想定したものと異なる場合は代替候補を表示することもできます。WindowsであればAlt+[もしくはAlt+]、MacであればOption+[もしくはOption+]を押すことで代替候補のソースコードの表示することができます。  

別タブで開いているソースコード

GitHub Copilotの大きな特徴として、IDEで別タブで開いているソースコードもインプットとすることが出来ます。
別タブでソースコードをインプットにする簡単な例を試してみます。

別タブに何を開かない場合

以下の動画はシステム日付を取得して文字列として返却するメソッドをGitHub Copilotに提案してもらった例となります。
旧来のjava.util.Dateを使用したソースコードを提案してくれました。

github_demo2.gif

別タブで参考となるソースコードを開いた場合

旧来のものではなく、Java8から導入されたタイムゾーン付きの日時を扱うjava.time.ZonedDateTimeを使用したい場合を想定します。

別タブでjava.time.ZonedDateTimeを使用したソースコードを開いた状態でGitHub Copilotに同様の指示を出すとZonedDateTimeを使用したソースコードを提案してくれます。

github_demo3.gif

なお、上記のような単純な例であれば、コメントで以下の通り追加の指示を与えれば、想定通りのソースコードを提案してくれることも多々あります。

    // システム日付を文字列として返却するメソッド
    // java.time.ZonedDateTimeを使用

参考情報

GitHub Copilotの情報はまだまだ少なく、日本語の書籍は2023年7月時点で一冊も出版されていません。英語の書籍は出版されていますが、かなり数が少ないです。

以下はGitHub Copilotを使い始めるにあたり参考となるサイトです。

GitHub Copilot に関するドキュメント
公式サイトの日本語版です。
必要最低限の情報が記載されており、一通り目を通すことをお勧めします。

GitHub Copilot documentation
公式サイトの英語版です。

AIネイティブ開発ガイド
上記サイトの冒頭の記述の引用です。

このドキュメントでは、GitHub Copilot などをつかった
AI ネイティブ開発におけるベストプラクティスを特定の形式でまとめて、
簡単に理解、評価、そしてあなたの状況に適用できるようにしています。

具体的な使い方等は記載されていませんが、考え方的な部分でとても参考になる情報がまとめられています。
それほどボリュームもないので、こちらも一通り目を通されることをお勧めします。

では、本記事は以上となります。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3