LoginSignup
10
18

GitHub Copilot chatの始め方と使い方をまとめた

Posted at

はじめに

コードの補完や提案によって、コーディングをより迅速にしてくれるGitHub Copilotは1年前からあり、実際にご利用された方も多いと思います。ですが、今から約3か月前に発表されたGitHub Copilot chatは、まだ使ったことがないという方も多いのではないでしょうか。そこで、本記事ではCopilot chatが含まれるGitHub Copilot Xの説明や、Copilot chatの始め方と使い方をなるべく体系的にまとめました。これからCopilot chatを始める方の参考になれば幸いです。

環境

  • Windows11
    • バージョン:10.0.22621
  • Python
    • バージョン:3.11.3
  • Visual Studio Code
    • バージョン:1.79.0

VSCodeの開発版であるVisual Studio Code InsidersでないとCopilot chatが利用できないという情報がありましたが、通常のVSCodeでも使用できることを確認したため、本記事ではInsiders版は使用していません。

準備事項

前提として、GitHubアカウントを持ち、Copilotにも登録済みであるとします。まだ登録できていない方は、以下の記事を参考にしてCopilotの登録を済ませてください。

GitHub Copilot Xとは

image.png

2023/3/22に投稿された以下のGitHubの公式ブログには、GitHub Copilot Xについて以下のような記述が書かれていました。

Our R&D team at GitHub Next has been working to move past the editor and evolve GitHub Copilot into a readily accessible AI assistant throughout the entire development lifecycle. This is GitHub Copilot X—our vision for the future of AI-powered software development. We are not only adopting OpenAI’s new GPT-4 model, but are introducing chat and voice for Copilot, and bringing Copilot to pull requests, the command line, and docs to answer questions on your projects.

(日本語訳)
GitHub Nextの研究開発チームは、エディターを超えて、GitHub Copilotを開発ライフサイクル全体を通してすぐに利用できるAIアシスタントに進化させるために取り組んできました。これがGitHub Copilot Xであり、AIを活用したソフトウェア開発の未来に対する我々のビジョンです。OpenAIの新しいGPT-4モデルを採用するだけでなく、Copilotにチャットと音声を導入し、プルリクエスト、コマンドライン、ドキュメントにCopilotを導入して、あなたのプロジェクトに関する質問に答えていきます。

つまりGitHub Copilot Xとは、Copilot VoiceCopilot for pull requestsCopilot for CLICopilot docsなどの製品を含んだ、GPT-4によるGitHubのAIアシスタント製品群のことであると言えます。

GitHub Copilot XとGitHub Nextの関係性
GitHub Copilot Xと近い製品群として、GitHub Nextというものがあります。GitHub Nextは、GitHub Copilotを含んだ、GitHubによる次世代の開発体験を実現するためのプロジェクト群の総称であり、Copilotの他にもFlat DataVisualizing a Codebaseとなどの数多くのツールが含まれています。
https://githubnext.com/

GitHub Copilot chatとは

GitHub Copilot chatとは、GitHub Copilot Xの一部であり、AI技術を活用したコード補完ツールです。Copilot chatの機能、使い方、制限事項、上手な使用法について、GitHub Docsで載せられていたことを次にまとめます。

Copilot chatの機能

  • 入力処理
  • 言語モデル解析
  • レスポンス生成
  • 出力フォーマット

Copilot chatの使い方

  • ユニットテストケースの作成
  • コードの説明
  • コード修正の提案
  • コーディングの質問に対する回答

Copilot chatの制限事項

  • 範囲の限定性
  • バイアスの可能性
  • セキュリティリスク
  • 公開されているコードとの一致
  • 不正確なコード
  • 非コード化トピックに対する不正確な回答

Copilot chatの上手な使用法

  • トピックに沿ったプロンプトを使用
  • 安全なコーディングとコードレビューを慣行
  • フィードバックを提供
  • 最新情報を入手

GitHub Copilot chatの申し込み

まずはCopilot chatの申し込みを始めていきます。2023年6月現在、Copilot chatを使用するためには申請が必要となっています。申請はこちらのwaitlistに登録することでできます。

GitHub Copilotの有効なサブスクリプションがないと、以下の画面のようにCopilotのライセンスを取得する必要があるよ、と言われます。
image.png

GitHub Copilotのサブスクリプションが有効化されていると、「Join the waitlist」のボタンがある画面が表示されます。Copilot chatをどこで使う予定かを尋ねられたため、ここではVisual Studio Codeをチェックしました。
image.png

「Join the waitlist」を押すと、ベータ版のCopilot chatが使えるようになったよという画面が表示されました。
image.png

VSCodeでの拡張機能のインストール

Copilot chatの登録が終わったら、次は開発環境に拡張機能のインストールをしていきましょう。GitHub CopilotAndroid StudioJetBarinsのような様々なIDEと互換性がありますが、本記事ではVisual Studio Codeの拡張機能を使ってGitHub Copilotを使っていきます。

公式ドキュメントのクイックスタートを参考にしたい方は、以下のリンクをご覧ください。

必要な拡張機能のインストール

今回は、以下のExtensionsをインストールします。

  • GitHub Copilot
    • AI駆動のコード補完ツール
    • OpenAIのGPT-3.5 Turboを利用
  • (GitHub Copilot Nightly)
    • GitHub Copilotの最新バージョン
  • GitHub Copilot Chat
    • AIがコードに関する質問を回答
    • OpenAIのGPT-4を利用

GitHub Copilotのインストール

まずは、Visual Studio CodeのExtensionsで"GitHub Copilot"と入力してGitHub Copilotをインストールしましょう。
image.png
GitHub Copilotは安定版なので、最新版を使いたい人は、GitHub Copilot Nightlyを代わりにインストールしましょう。
image.png

GitHub CopilotGitHub Copilot chatの両方をインストールしてしまった場合、一方をアンインストールする必要があります。
image.png

インストール後、「Sign in to GitHub」ダイアログが表示されるので、GitHubにサインインしましょう。
image.png

GitHub Copilot chatのインストール

GitHub Copilot chatの拡張機能もインストールしましょう。
image.png

Copiot chatの使い方

VSCodeに拡張機能をインストールしたら、ここからは実際にCopilot chatを使っていきましょう。Copilot chatの使用方法は以下の2種類があります。

  • コード内での使用
  • チャット内での使用

コード内での使用方法

1つ目に、コード内で使用する方法が挙げられます。Copilotに質問したい該当箇所のソースコードを選択して右クリックを押した後、Copilot>Start Code Chatを選択します。
image.png
選択するとコード内で質問ダイアログが表示されるので、Copilotに質問を問いかけることができます。
image.png

チャット内での使用方法

2つ目に、チャット内で使用する方法が挙げられます。GitHub Copilot chatの拡張機能をインストールした後は、VSCodeのアクティビティバーに追加されているチャットのアイコン(次のスクリーンショットの赤い四角)、をクリックします。
image.png
クリックすると、サイドバーにGitHub Copilotのチャット画面が表示されます。サイドバーの下部にダイアログが表示されるので、コード内の場合と同様にCopilotに質問を問いかけることができます。

image.png

Copilot chatのコマンド一覧と実行例

Copilot chatには、いくつかのコマンドが用意されています。ここからはコマンドの説明と実行例を紹介していきます。

/vscode

VS Codeに関する質問ができます。

実行例

image.png
質問通りの回答を得ることができました。

/tests

選択されたコードのユニットテストを生成してくれます。

Pythonのサンプルコード
x = "Hello, world!"
print(x)

実行例

image.png
以下の3つのユニットテストを生成してくれました。

  • test_x_is_string: 変数xが文字列であることをテスト
  • test_x_is_hello_world: 変数xが "Hello, world!"という文字列と等しいかどうかをテスト
  • test_print_output: 関数print_xが文字列"Hello, world!"を標準出力に出力することをテスト

/fix

選択されたコードの問題点の修正を提案してくれます。

Pythonのサンプルコード
x = "Hello, world!"
print(y)

上のサンプルコードは、print(x)とすべきところをprint(y)としているため、間違いを含んだコードになります。

実行例①

image.png
「yが定義されていません。修正するためにyとxで置き換えてください」とコードの問題点と解決策を正確に指摘してくれました。また、正しいコードも出力してくれました。

実行例②

image.png
/fixの後に引数として渡しても、同様の回答を得ることができました。

/explain

選択されたコードがどのように動作するかを説明してくれます。

Pythonのサンプルコード
x = "Hello, world!"
print(x)

実行例①

image.png
コマンド通り、コードの解説をしてくれました。

実行例②

image.png
/explainコマンドの後に引数としてコードを渡した場合でもコードの解説をしてくれました。可読性を高めるために、コメントを追加したコードも出力してくれました。

/ext

VS Code拡張開発について説明してくれます。

実行例

image.png
GitHub Copilot Nightlyの概要とインストール方法を説明してくれました。

/help

GitHub Copilotに関する一般的なヘルプを表示してくれます。

実行例

image.png
Copilot chatの概要や、使用可能なコマンドなどを出力してくれました。

Copilot chatの日本語による実行例

ここまでは、Copilot chatは英語で回答してくれましたが、英語が苦手な方にとっては読むのが大変です。質問の言語と同じ言語で回答してくれる特性を利用して、日本語での質問をしてみることにしましょう。

コマンドの代用

コマンドを使用せず、日本語で質問しても同様の回答が得られるかを実験しました。以下の実験より、Copilot chatで用意されているコマンドを敢えて使用する必要はないと感じました。

/explainの代わり

image.png
コードの説明を日本語してもらうことができました。

/fixの代わり

image.png
日本語でバグの内容を教えてくれました。

GitHub Copilot chatを使った所感

  • コマンドを使う必要はなさそう
  • 日本語の精度は高い
  • 質問の自由度は高く、回答も正確

おわりに

本記事では、GitHub Copilot Xに含まれるGitHub Copilot chatの始め方を使い方をまとめました。実際にCopilot chatを使ってみた感想として、VSCodeの一画面でリサーチから、コーディング、テストまで完結するCopilot chatは慣れると生産性を大幅に高めてくれる可能性があると感じました。可能な限り公式ドキュメントの内容からの情報をまとめていますが、間違い等があれば教えていただけると幸いです。

10
18
1

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
10
18