はじめに
人によってはオフィスに行くことが少なくなった昨今、ハマった時にさっと質問できる人もおらず思ったより時間がかかってしまった、なんてことは誰にでもあるかと思います。ChatGPTを触り始めた時、こいつを相談相手にすると色々捗るぞと思いましたが、現状開発時には他のツールをまず使うようになったので今時点(2023/3/13)の私の体制を紹介します。
困った時の相談役、先生: Phind (The AI search engine for developers.)
The AI search engine for developers.
とある通り、開発者を意識して作られています。
開発中に使っていてChatGPTと比較してみて以下の違いがあると感じました。
- 質問に対する回答のサマリ+具体的なソースコードor手順という順番で回答してくれるのでわかりやすい
-
日本語でもレスが早い
- ChatGPTだと英語で入力した時と日本語の時とで、日本語はゆっくりな回答ですがこちらは日本語でも速いです
- 出典付きで結果が返るので内容の正誤を確認しやすい
-
人に共有しやすい
- 検索した後、URLのクエリパラメータの部分が、
search?cache=xxxxx
という形式に切り替わります。それを人に渡せば同じ回答結果をそのまま人に共有できます。コピペしなくて良いので楽です(cacheがいつexpireするかまでは未確認です) - 例(phindに遷移します)
- 検索した後、URLのクエリパラメータの部分が、
ChatGPTのように文脈を理解しているので、phindの回答にしたいして追加質問をしていくこともできます。
ペアプログラミング相手: GitHub Copilot
こちらは使ってみたことがある方も多いかと思います。ソースコードを書いていると記述内容をサジェストしてくれます。
例えば適当に.py
のファイルを作成し、
# publish messages to the broker
というコメントだけを自分で書いたところ、こちら↓のソースコードが生成されました。コメントだけ羅列して書いていくだけでプログラムが書けてしまったりします。(動作検証してません、import pika
してないのでこれだけではまず動きませんが)
def publish_message(message):
# connect to the broker
connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
channel = connection.channel()
# create a queue
channel.queue_declare(queue='hello')
# publish the message
channel.basic_publish(exchange='', routing_key='hello', body=message)
print(" [x] Sent %r" % message)
# close the connection
connection.close()
GitHub Copilotのセットアップ
一応セットアップ手順を載せます。ご興味のある方はどうぞ。
Github Copilotのサインアップ画面から登録を行います。10ドル/月かかりますが60日間のトライアル期間があります(2023/3/10時点)。
GitHub Copilot
住所やクレジットカードなどの情報を入れてサインアップが完了すると使用できる状態になります。
私は普段VSCodeを使っているのでここから使用します。
VSCodeを開いてGitHub Copilotをインストールするだけです。
インストールができたら、あとはファイルを開いて何かしら書き始めれば使えます。
地味に便利だったのか、単に英文を書いてみた時にも精度の高いサジェストしてくれることです。英語のメールを書くときなどにも便利です。
どう使っているのか
ChatGPTでもphindでも言えることですが、回答の内容にソースコードの記述が一部抜けているということが日常的に起きます。そういった際に抜けをGithub Copilotが補完してくれることが多いです。
ちょっとしたものを作るのであればphindで大枠のソースコードを生成させてしまい、細かい記述の抜け漏れはGithub Copilotで埋めて仕舞えば時間をかけずに結構色々作れてしまいます。
新しいフレームワークを触る時など使ったことのない技術を使う時も、まず動くものを作らせて、それをいじりながらチュートリアルやリファレンスを見て試すということができるので一人でやっていても理解を早めることができると思います。
ただ内容を理解せずに頼って作りすぎると作るの5分、デバッグ24時間
みたいなことになるのであくまでツールとしてですね。
ぼっち作業で行き詰まることがかなり減ったので私のようにリモートで一人でやっている人には心強い味方になると思います。