GitHub Copilot chatが解禁されたので使ってみての感想とChatGPTと比べてどうかの所感

GitHub Copilot chatのウェイティングリストが通過して本日使えるようになりました。
結構本日通っている方が多かったようです。

![スクリーンショット 2023-05-13 22.44.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36931/d91d309c-eea2-d6d4-db6a-06cadd96dd75.png)

アイコンがかわいいですね。
このかわいいアイコンと対話することになります。
使えるようになったので何ができるかを試してみました


# 準備

まだCopilot chatに関しては公式でも文献がおいておらず招待のメールを見ながら準備を進めるのですが必要なのは[VSCode Insiders](https://code.visualstudio.com/insiders/) と[GitHub Copilot Nightly](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot-nightly)になります。
またVSCode InsidersにGitHub Copilot拡張をいれるとNightlyと競合するようなのでその点が注意です。

# 使い方

コード上で右クリックを押すとCopilotメニューが追加されています。(Chatでない標準のCopilotだとこれはなかった）
![スクリーンショット 2023-05-13 11.49.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36931/bb01bed9-a27a-f8d1-970b-9ce3b53f7e67.png)

# 基本的にできること

![スクリーンショット 2023-05-13 12.37.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36931/a1e10502-6d90-b852-93d5-b8d98cfc806f.png)

/helpででてきます。
ただ愚直にコマンドを打つと英語で返答が返ってくるので、日本がいい場合は該当のコマンドを日本語で伝えるほうがよいかと思います。


# 問いかけ方法はコード上かチャット上の2通り

セッションの開始を押すと
質問ダイアログがコード上に現れるのでそこで質問するか、右下のチャットボタンを押すとChatGPTのようにチャット対話形式での問いかけができるようになります。

![スクリーンショット 2023-05-13 23.00.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36931/37a1f385-8794-66cb-563e-9bd042b45db8.png)

具体的なイメージがつくように動画をとってみました

## コード上での質問

![ezgif-5-c6b57f6052.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36931/204207bf-a332-4f6c-15da-92c403a6dd3b.gif)

選択したコードを説明してもらっています。コードを選択する意味はあまりないようで開いているコード全体を認識しているようです。
ここまでだと通常のCopilotと変わらないですね。



## チャット上での質問

![ezgif-5-9af167cdbd.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36931/a8b07ca7-2a26-0afa-740b-1e567f78c03e.gif)

チャット上では長文を打ち込めますので今までのCopilotとは違った問いかけができそうです。


# いろいろ試してわかったこと

## 既存コードを特定の指示にしたがった書き換えができる

![スクリーンショット 2023-05-13 11.53.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36931/301d4882-6a92-2e74-ed9d-c89c022007b5.png)

上記の例ではReactでサーバーへのAPI呼び出しをしているコードに対して「ローカルストレージでキャッシュしたいお」となげかければコードを修正してくれます。反映ボタンをおせば右の修正後のコードになります。


## コードの質問だけでなく技術的な質問ができる

![スクリーンショット 2023-05-13 12.01.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36931/48ef1caf-4ce4-f16d-75a1-33027002cabc.png)

## コードのファイル名のヒントやフォルダ構成を質問できる

![スクリーンショット 2023-05-13 12.08.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36931/83ec2c0d-7e0f-3657-0361-3b63293bc268.png)

## ファイルは作成してくれない

![スクリーンショット 2023-05-13 12.08.09のコピー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36931/97f7b2d0-c3ea-d30b-d7f3-13804666f58f.png)

これは残念な点ですね。ChatGPTに対する利点としてこれができればいいのですが。
どういったコードを書けばわかってたり最適なファイル名がわかっているのであればCopilotがコードファイルを作ってもらってよいはずです。ここは将来に期待。


## Copilot Chatが認識しているファイル群は開いている1ファイルのみ

![スクリーンショット 2023-05-13 12.38.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36931/84af3790-74b6-f7f1-347f-9f0f00c323a9.png)

![スクリーンショット 2023-05-13 13.12.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36931/af3c4e96-a665-13e6-dd20-2f1be278dc48.png)


これはReactのApp.jsを開いていたときの返答でいかにも全体を理解しているようですが実態的には1ファイルの内容しかわからないようです。CopilotはVSCodeがタブで開いているファイルは認識できた話ですがChatのほうはさらに認識範囲が狭いようです。
実際に試してもそんな印象はうけました。


## 問いかけの文字制限はない

![スクリーンショット 2023-05-13 12.39.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36931/79b1d7cd-ec58-852a-44c6-510a1ea6d3d4.png)

ここはChatGPT4に比べて優れている点かと思います。
いくらでも問いかけても良いのは安心できます。ただGPT4よりはかなり頭は悪く感じましたが・・。


## プロジェクト内関数の認識ができない、また記憶力が弱い

![スクリーンショット 2023-05-13 13.20.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36931/8a269f40-a543-508e-05ee-858dc331c3b0.png)

開いているファイルの別の同プロジェクトの関数を呼び出してコードを生成しようとしても外部のコードの認識ができないので変な解答になってしまいます。通常のCopilotよりも頭が弱い感じはしました。

## GPT2???


![スクリーンショット 2023-05-13 17.31.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36931/94e9c55d-a0cc-58a3-c283-7c3557c4102f.png)

詳細は不明。


# ChatGPT4と比べてみて


## メリット
- 通常のGitHub Copilotと同じくVSCode内だけで完結するので集中できる。ChatGPT+VScodeだとブラウザでコード出力してVSCodeに貼り付ける手間があった。
- 上記と同じだがChatGPTにコードを貼り付けて質問する手間がへるので楽。
- 文字制限、問いかけ制限がないので気軽に問い合わせができる。
- すくなくとも技術的な質問はCopilot内である程度完結する未来を感じた。


## デメリット
- あまり頭がよくない
- 会話の記憶力がよわい
- 認識できるコードの量に限界がある（というか狭すぎる）



## 結論

今開発補助として使うなら

ChatGPT4 > GitHub Copilot Chat => GitHub Copilot

と思いました。