【RStudio】RStudio に GitHub Copilot と chattr を取り込む

折角GitHubの設定を行ったので、この機会に「GitHub Copilot」をRStudioに導入し、ついでに、毎日ブラウザでお世話になっている「ChatGPT」もRStudioに入れてみることにしました。

「どっちかだけでいいんじゃないの?」

と、自己ツッコミした私⋯⋯まずは両方いれるメリットがあるかどうか調べてみました。

一応、GitHub Copilot と ChatGPT は両方ともAIによるコード記述サポートツールといえる点は共通だと思いますが、RStudioで使うにあたり、多少違いもあるようです。

双方の得手不得手は、こちらのサイトで詳しく比較されていました。▼

そして、両方入れる事で効率化が更に進む、とこちらのサイトで言っていたので、

とりあえず両方入れて試してみようと思います。

GitHub CopilotとChatGPTのざっくりとした違い

GitHub Copilot

Copilotは、GitHubのAIによるコーディングアシスタント。

色々と機能はあるけれど、最も重宝されている機能は、IDEで入力したコードを基に、次に必要なコードを自動で考えて提示してくれるところ。

OpenAIのGPT-4の自然言語予測モデルを使用している。

プロジェクトの初期段階から使用することで、関数や変数名、アルゴリズムを自動生成し、その人のコーディングスタイルに合わせた提案をしてくれるらしい。

機械学習を行うので、書いたコードから学習し、時間とともに精度が向上する。

これまでRに対応していなかったのだけれど、去年RStudioで使えるようになった。

その他の対応言語は下記。

  • Python
  • JavaScript
  • TypeScript
  • Ruby
  • Go
  • PHP
  • Swift
  • Kotlin
  • Rust
  • C#
  • C++
  • Java
  • HTML/CSS
  • SQL

GitHub Copilotはサブスクリプション制で 10ドル/月。

けれど、1回に限り、30日間無料で試す事ができる。

ChatGPT

ChatGPTは、OpenAIが開発した自然言語予測モデル。

その名が示すとおり、「チャット」のように対話ができ、欲しい情報を探して提示してくれる。

RStudioにもいくつかのChatGPTを使ったパッケージがある。

無料版(GPT-3.5)もあるけれど、有料版(GPT-4*)の方が俄然性能がよい。

有料版はサブスクリプション制で20ドル/月。

両者の共通点と相違点

詳細は下記参照▼

GitHub CopilotをRStudioで使うための手順

GitHub CopilotをRStudioに使うための手順は下記のとおり。

CopilotをRStudioで使うための手順
  1. Copilotをサブスクリプション
  2. 最新のRStudio Desktopをインストール
  3. Tools > Global Options > Copilotで、"Enable GitHub Copilot"
  4. GitHub Copilot Agentをインストールして、サインイン

Copilotをサブスクリプション

GitHub Copilotのサイトへ。

copolot-1

最初の30日間は無料トライアル。その後は10ドル/月(もしくは100ドル/年)のサブスクリプション。

copolot-2

インストラクションに沿って、個人の情報を入れていき、All set!

copolot-9

最新のRStudio Desktopをインストール

下記参照。

Tools > Global Options > Copilotで、"Enable GitHub Copilot"

RStudioで、「Tools」→「Global Options」。

copolot-5

「Copilot」で、「Enable GitHub Copilot」を選択。

copolot-6

GitHub Copilot Agentをインストールして、サインイン

GitHub Copilot Agentをインストールして、サインインする。

copolot-7

「Verification code」が表示されるので、コピーして、GitHub Copilotのサイトに戻り、入力。

copolot-10

これで、RStudioでGitHub Copilotを使う準備が整った。

copolot-8

Copilotを使ってみた!

設定が終了したらすぐに使えるようになる。

試しに、"tidyverse" etc.をインストールしようとすると、次に必要そうなコードをCopilotが自動で生成してくれた。

Copilotのsuggestionはグレーで表示され、それでOKだったら「Tab」キーを押す。すると、suggestionされたコードが挿入される。

How to use Copilot in RStudio

これは便利!

ChatGPTをRStudioで使うための手順

続いて、既にサブスク済みで、毎日のようにお世話になっている、「ChatGPT」もRStudioに入れてみる。

ChatGPTのパッケージはいくつかあるみたいだけど、ここでは一番推薦されていた「chattr」を使ってみる。

chattrがオススメな理由いろいろ

  • RStudioで作成されたので互換性がよい。
  • Chat boxにReference付き便利な情報を送ってくれる。
  • ChatGPT以外のソースからの情報を取得することもできる。

 

そして、ChatGPTをRStudioに入れる手順は下記のとおり。

ChatGPTをRStudioで使うための手順
  1. (Optional)ChatGPTをサブスクリプション
  2. GitHubからchattrパッケージをインストール
  3. OpenAIのAPI keyを取得
    • OpenAI APIへサインイン
    • Personal > View API keys > Create a new secret key
  4. chattr_app() functionでチャットスタート

(Optional)ChatGPTをサブスクリプション

※GPT3.5は無料で使えるけど、断然4oの方が賢いので、サブスクリプションしたほうが良いと思う。

GitHubからchattrパッケージをインストール

スクリプトに下記を入れて実行。

install.packages("remotes")
library(remotes)

remotes::install_github("mlverse/chattr")
library(chattr)

下記のように聞かれる。

output
> remotes::install_github("mlverse/chattr")
Using GitHub PAT from the git credential store.
Downloading GitHub repo mlverse/chattr@HEAD
These packages have more recent versions available.
It is recommended to update all of them.
Which would you like to update?

1: All
2: CRAN packages only
3: None
4: curl (5.2.3 -> 6.0.1) [CRAN]

Enter one or more numbers, or an empty line to skip updates:

コンソールの「Enter one or more numbers, or an empty line to skip updates:」の後ろに「1」を入れて「Enter」。

OpenAIのAPI keyを取得

OpenAI APIへサインイン。

「Personal」→「View API keys」→「Create a new secret key」。

chatGPT-2

2FA用の電話番号を入れ、

chatGPT-3

届いたコードを入力。

chatGPT-4

secret keyの名前を適当につけて、「Create secret key」。

chatGPT-5

「secret key」が作成されるので、コピー。

chatGPT-6

RStudioに登録

RStudioに戻り、スクリプトに下記を入れて実行。

Sys.setenv(OPENAI_API_KEY="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")

何も変化がないけど、鍵が登録され、ChatGPTをRStudioで使う準備が整った。

chatter_app()で開始

いよいよchatter_app()と入れて、「chattr」を使ってみる。

chattr_app()

最初に下記のように聞かれる。

output
── chattr - Available models
Select the number of the model you would like to use:
1: OpenAI - GitHub Copilot Chat - gpt-4 (copilot)
2: OpenAI - Chat Completions - gpt-3.5-turbo (gpt35)
3: OpenAI - Chat Completions - gpt-4 (gpt4)
4: OpenAI - Chat Completions - gpt-4o (gpt4o)
Selection:

「1: OpenaAI - GitHub Copilot chat -gpt-4 (copilot)」を選択(「Selection: 」の後ろに「1」を入れて「Enter」)。

すべての設定が整ったら、右下の「Viewer」のタブにChatGPTとチャットするためのボックスが現れる。

chatGPT-7

chattrを使ってみた!

実際に使ってみた様子がこちら。

一度API keyを登録したら、次回からは"shiny"と"chattr"をインストールし、chattr_app()を実行するだけで使える。

chattr

chattr boxに質問を入れて「Shift + Enter」。もしくはchattr boxの隣にある「Submit」ボタンを押すと、質問が下にコピーされ、回答が返ってくる。

suggestionされたコードをコピーしてスクリプトに貼り付けたり、「Tab」キーで挿入することもできる。

これも便利!

まとめと感想

今回、GitHub CopilotとchattrをRStudioに入れてみました。

今のところ、両方ともかなり重宝しています。

どちらか一つと言われたら、Copilotの方が便利かもなーと思います。

こちらのクセを読んで、高い確率でほしいコードを補完してくれるので、かなりの時短になります。

また私の場合、ChatGPTを別ブラウザを立ち上げておくことにそこまで抵抗がない、というのも一因かもしれません。

でも電車や出張先など、ラップトップ一つで作業するときには、やっぱりchattrの利便性を実感することになるんじゃないかなー、と思いました。