最近話題の生成AIを用いたプログラミングの自動化(GitHub Copilot)について、効率よく使用するために必要な情報を紹介していきます。
目次[]
概要
GitHub Copilotは2021年にGitHub社からリリースされたAIベースのコーディングアシスタントサービスです。
Python、C言語、C++、C#、Java、JavaScriptなどの汎用言語(マイナー言語もある程度)をサポートし、Visual Studio Code、JetBrains IDEなどの人気のエディタで使用できます。GitHub Copilotは以下の機能を提供しています。
・コメントからのコード生成機能:ユーザが記述したコメントに対して、その内容に沿ったコードを生成する
・コードの自動補完機能:Visual Studio Codeなどのエディタのタブで開かれているファイルのコードやユーザが記述中のコード情報をもとに、次のコードを自動で補完する
はじめかた
利用料金
Individuals:1か月あたり10ドル、または1年あたり100ドル
Individualsのみ、一ヶ月間の無料お試しを使用することができます
学生の場合GitHub Educationを登録することで無料で利用することができます
Business:1か月あたり19ドル(1ユーザごと)
Enterprise:1か月あたり39ドル(1ユーザごと)
*2024/7/3現在
データの取り扱い
Individuals:ユーザがデータ収集を許可した場合に限り、「プロンプト」と「提案」のデータを保持する。(オフに変更可)
個別のユーザ向けのため、アクセス管理機能は提供されていません。
Business:機密情報保持のため「プロンプト」と「提案」のデータは保持されません。
管理者が各チユーザやチームへのアクセス許可を制御可能。
Enterprise:Businessより大規模な組織の利用に適した機能が追加されています。
インストール手順
GitHub Copilotのサインイン
GitHubにログインした状態で、右上のユーザアイコンをクリックし「Setting」から設定画面に移動します。その後、画面左側のメニューから「Copilot」を選択します。
今回ビジネスプランに申し込んだので、流れを簡単に説明します。
まず、個人利用かビジネス利用かを選択します。
ビジネスプランを選択し、組織内の利用者を全員or指定を選択します。
ユーザ1人につき19ドル加算されるので、ご注意ください
次に、ご利用のエディタを開きGitHub Copilotの拡張機能をインストールします。
拡張機能の導入
GitHub Copilot Chat
開発者が書いているコードやプロジェクトのコンテキストを理解し、適切な提案やアドバイスを提供するというものです。
開発者が質問をすることで、リアルタイムで回答やコード提案を行います。エラー内容やコードの改善点だけでなく、ライブラリの使用法などの広範囲かつ関連性の高い提案をしてくれます。
以下のように、PythonのコードをJavaに変換も可能に!
基本操作
コメントを利用したコード生成
プログラムファイルにコメントを入力し、Enterキーで改行すると、そのコメントに沿ったコードの提案を行い、Tabキーで採用します。
コードの自動補完
補完コードを採用する場合はTabキーを押します。この時表示されているコードはGitHub Copilotが生成した複数の補完コードのうちの1つです。Ctrl+
Enterキー(Command + Return)を押すことで補完候補のコードを一覧表示できます。
ifを入力するだけでif以降のコードが自動で補完されます。
GitHub Copilot を有効活用するために
関連するファイルをタブで開く
GitHub Copilotは作業者が編集しているファイルのコードやコメント、エディタの藪で開かれているファイルの情報を参照し、プロンプトを作成することでAIモデルから補完を受け取っています。
つまり、編集中のファイルだけでなく、関連するタブを開いておくことが重要になります。
ファイル・クラス・関数の説明を記述する
はじめに、ファイルのタイトルコメントや、クラス、関数のブロックコメントを記載することで、適切なコード補完がされやすくなります。
特に新プロジェクトでからファイから始める際には、GitHub Copilotは開発に関する情報を一切所持していないため、補完ができません。まずは、自分が生成したいものの大まかな目的や説明を記述してください。
シンプルかつ詳細なコメントをする
使用ライブラリやアルゴリズムが複数個ある場合はどれを用いるのかをはじめに定め、明示的にコメントしましょう。
コーディング規約に従ったスタイルでコードを書く
- 変数名や関数名は明確でわかりやすく
- 関数は短く分け、1関数に1タスク
- マジックナンバー(本人にしか意味や意図が伝わらない)を使用しない
具体的なアウトプット例を提示する
AIも人と同じように、実例を見るとより理解がしやすくなります。例えばデータ構造が不明確な場合には、具体的なデータを示すことで、より正確なコード補完をしやすくなります。
注意点
コード生成はすべてが正しいわけではないので、人の目での確認が必要です。
時々修正を加えることで、よりきれいなコードを補完してくれます。
まとめ
GitHub Copilotを用いることで、プログラマー1人1人にかかる負担を削減することができ、ヒューマンエラーによる時間削減やコーディングの手間を少なくしてくれることで効率化を図ることができます。また、ChatGPTとGitHub Copilotを組み合わせ、コードの計画、ビルド、テスト、実行といった一連の作業を自然言語処理で行うことができるGitHub Copilot Workspaceという開発プラットフォームが発表されました。ソフトウェア開発における、さらなるAI活用の進化が期待されます。
iCOM技研の取り組み
iCOM技研はSIer事業を展開しており、協働ロボットシステムの導入を行っています。弊社は、協働ロボットの販売からソフトウェア開発、ロボットスクールまで行っています。2024年からAI開発にも取り組んでいます。
協働ロボットに興味のある方は問い合わせフォームからご連絡ください。ワークサイズや重量、内容物などを教えていただき、お打ち合わせをさせていただきます。