ニュース

AIによるコーディング支援機能「GitHub Copilot」強化、ソフトウェア開発のさまざまな場面に対応

 米GitHubは22日(米国時間)、AIによるコーディング支援機能「GitHub Copilot」について、コードの提案機能以外に広げた一連の機能強化を発表した。

 今回の発表により、AIによる開発支援が、ソフトウェア開発のさまざまな場面に対応するようになる。一部の機能ではOpenAIの最新の「GPT-4」も採用されている。

 GitHubではこれらをR&D部門のGitHub Nextの中で開発しており、こうしたAIを活用したソフトウェア開発のビジョンを「GitHub Copilot X」と呼んでいる。

Copilot chat、Copilot voice:ChatGPT風のチャットインターフェイスや音声による指示

 Copilot chatは、コードエディター上にChatGPT風のチャットインターフェイスを表示し、AIに質問したりAIに助けてもらったりできる機能だ。Visual Studio Code(VSCode)またはVisual Studioで利用できる。

 チャットインターフェイスから次のようなことができる。

  • プログラミングについて自然言語で質問する
  • コードエディター上のコードのバグ修正の助けを求めて、修正されたコードを教わる
  • コードエディター上のコードからユニットテスト(単体テスト)を生成する
  • コードエディター上のコードについて説明を求める
  • コードエディター上のコードを改善してもらう

 Copilot chatは、GitHubユーザーがテクニカルプレビューに登録して利用できる。

プログラミングについて自然言語で質問する
コードのバグ修正の助けを求めて、修正されたコードを教わる
コードについて説明を求める
より読みやすくしたコードとその説明を教えてもらう

 また、Copilot chatには、音声による指定でコードを書く機能「Copilot voice」も加わるという。GitHub Universe 2022などのデモでは「Hey GitHub!」と呼ばれていた機能が改名したものだ。

 デモによると、音声によるチャット風の対話で「go to line 7(7行目に移動)」「plot the cosign of each x point(xの各点のコサインをグラフにする)」「display the plot(グラフを表示)」「run the code(コードを実行)」と指示をしていくと、そのようなコードを書いて実行してくれる。

Copilot for pull requests:プルリクエストの説明を自動生成

 「Copilot for pull requests」は、GitHubのプルリクエスト(変更の提案)のときに、説明文を自動生成してくれる機能だ。これにはGPT-4が使われている。

 説明文中に「copilot:summary」「copilot:walkthrough」のようなタグを入れると、それぞれの部分に、変更の概要と、変更コードの内容の説明が生成される。

 Copilot for pull requestsは、テクノロジープレビューとして各リポジトリに追加される。

プルリクエストの説明文にタグを入れる
変更の概要や説明が生成される

 現在開発している機能としては、説明文を書いている途中で、Copilotがコードに対して行うのと同様に、続く文章をコードの内容をもとに提案してくれる機能もテスト中だという。さらに、プルリクエストのテストが足りないときにそのことを警告してテストを提案する機能も準備中となっている。

説明文を提案してくれる機能

Copilot for docs:チャット風にドキュメントに問い合わせ

 Copilot for docsは、ソフトウェアに関するドキュメントに対して、知りたいことをチャット形式で質問することで答えを得られる。これにはGPT-4が使われている。

 まずは対象のドキュメントとして、JavaScriptライブラリ「React」の公式ドキュメント、Microsoftのクラウド「Azure」のドキュメント、Web標準に関するドキュメント「MDN Web Docs」から開始する。

 Copilot for docsは、GitHubユーザーの待機リストへの登録受付を開始した。

ドキュメントに対してチャット形式で質問
答えが返ってくる

Copilot CLI

 Copilot CLI(Copilot for the command line interface)は、自然言語によってAIに助けを求める機能を、Unix系OSのコマンドラインにも広げるものだ。これによって、コマンドやコマンドラインオプションがうろ覚えなときや、特にサブコマンドやオプションが複雑なgitコマンドなどについて、自然言語で指定して実行できる。

 例えば「??」コマンドを使って「?? list ts files」を実行すると、findコマンドで*.tsファイルを表示するコマンドなどを生成したり、さらに絞り込みの指示をしたりして実行できる。

 また、「git?」コマンドを使って「git? delete a branch」とすると、複雑なgitのコマンド体系の中から、その操作を実行するgitのコマンドを生成して実行してくれる。

 同様に「gh?」コマンドを使って、GitHubクライアントのghコマンドを自然言語から実行することもできる。

 Copilot CLIは、2月にGitHubユーザーの待機リストへの登録受付を開始している。

自然言語からコマンドを生成して実行