手軽に始めるAIコーディング!GitHub Copilotのススメ

こんにちは、コバヤシです。
前回に引き続き、今度は注目のGitHub Copilotに挑戦してみたいと思います。

GitHub Copilotとは

GitHub Copilotは、GitHubとOpenAIが共同で開発したGPT技術を利用したコード補完ツールです。2021年から提供されており、開発者がGitHub上でソースコードを入力する際に、リアルタイムでコードの提案や自動補完を行います。これにより、コードの品質向上や効率的な開発が可能になります。
Copilotは、入力されたコードの内容を理解し、関連したコードの提案を行う能力があり、関数名や変数名を入力すると、それに応じた適切なコードを生成したり、APIの使い方を提案したりします。
「Visual Studio Code」や「JetBrains IDE」での利用がサポートされていて、GitHub Copilot拡張機能をインストールすることで簡単に利用できます。

GitHub Copilotは有料のサブスクリプションサービスで、個人向けは1 か月あたり 10 ドル、ビジネス向けは1 か月あたり 19 ドルが課金されます。

github.com

インストール

今回はMacのPHPStormで試していきたいと思います。

PHPStormの「Preferences」から「プラグイン」を選択。Copilotでプラグインを検索して「GitHub Copilot」プラグインをインストールします。

インストールしたら、「ツール」の「GitHub Copilot」から「Login to Github」を選択して連携を行います。
※予めGithubでCopilotの利用登録をしておいた方が良いかもしれません。

連携が完了したら、準備は完了です。

試してみる

まずは、関数名からサジェストを試してみます。
function sum まで入力したところサジェストが行われました。内容も問題が無いようです。 タブを押して決定します.

次はプロンプトも記述して、1〜10までの合計値を返す関数を作成してみます。 「1〜10までの合計を求める」とプロンプトを書いてfunction sumまで書くとサジェストされました。

1〜10までの合計値ではなくて、1〜引数で与えた値までの合計値を求める計算式となっています。
引数はいらないので function sum()と入力を進めたところ求めていた内容になりました。

もうちょっと複雑なことをしてみます。 csvファイルを読み込んでjsonで出力する関数を作成します。

何となく良さそうですが、区切り文字がタブになっているのでプロンプトに追加します。

区切り文字がカンマになりましたが、今度はエスケープがなぜかダブルクォートになっています。 これもプロンプトに追加します。

エスケープも直ったのですが、先程までは値が無かったヘッダに値が入っています。
というか先程までと変数名やらが変わっています。。
多少おかしなところは手直しすれば良いので、サジェストとしては十分といったところでしょうか。
プロンプトの書き方で、精度も向上するはずです。

まとめ

確かに、まだ完璧ではありませんが、適切なプロンプトの書き方を心がけることで、より求めるソースコードがサジェストされる可能性が高まります。サポートとしては十分で、開発の手助けになることは間違いありません。
手軽にAIの手助けを受けることが出来るので導入を検討しても良いかなと思います。

ただ、懸念する点があります。AIが返すプログラムの正確性を判断するためには、プログラマ自身の技術力が重要な要素となります。しかし、Copilotを過度に利用することで、開発者が自らコードを書く機会が減少し、技術習得の妨げになることがあります。
技術力が向上しないままCopilotに頼り続けると、結果的に正確な判断ができなくなる可能性が出てくると思います。Copilotを適切に活用しつつ、自分自身でコードを書く機会を持ち、技術力を継続的に向上させることが重要ですね。
AIにサポートしてもらいつつ自身の技術を磨くというのが良い使い方なのではないでしょうか。