IDEにChatGPTを統合、「この関数のテストコードはどこ?」「XXXを実装するならどう書けばいい?」など、AIでコードと対話できる「qqbot」登場
今回は「IDEにChatGPTを統合、「この関数のテストコードはどこ?」「XXXを実装するならどう書けばいい?」など、AIでコードと対話できる「qqbot」登場」についてご紹介します。
関連ワード (人間、効率、向上等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
テキストから高度なイラストを生成するAIや、人間と自然な対話を可能にするAIが最近話題になっています。
この人間と自然な会話をするAIチャットの代表的なサービスであるChatGPTの派生サービス(Variant of ChatGPT)をVisual Studio CodeなどのIDEに統合し、開発中のコードについて「この関数のテストコードはどこ?」などと対話できる「qqbot」が登場しました。
開発したのはDan Robinson氏。
Introducing qqbot, a variant of ChatGPT that lives in your IDE.
The cool thing about qqbot is that it knows your codebase.
You can ask it questions like:
– Where is xyz implemented?
– Where are the tests for this function?
– If I want to implement xyz, where do I start? pic.twitter.com/OF3EoA2ix4— Dan Robinson (@danlovesproofs) January 3, 2023
qqbotにより「XYZが実装されているコードの場所はどこ?」「この関数のテストコードはどこ?」「機能XYZを実装するとしたら、どう書けばいい?」などと人間が質問すると、まるでコードやIDEと対話しているようにチャットで返事をしてくれます。
特に大規模なコードベースを操作するときに有用とのこと。
qqbot can help you navigate a large codebase. pic.twitter.com/XbNrHACDHv
— Dan Robinson (@danlovesproofs) January 3, 2023
上記のツイートの画像下部にある「QQBOT」ペインでは、ユーザーからの「このコードベースでPostgresのコネクションプーリングをしているところはどこ?」という質問に、AIが回答しているところが以下のように表示されています。
user: Where is the postgres connection pooling handled in this codebase?
qqbot: The postgres connection pooling is handled in the /Users/drob/qqbot/server/lib/db.ts file. The pool object is instantiated on line 11 with the PG_CONNECTION_STRING environment variable, and runQuery function is used to send queries to the pool.
また下記のツイートでは、runQueryのテストコードのサンプルを要求したところ、2種類のテストコードがチャットAIによって作成され、どちらも有効だったと説明されています。
qqbot can draft code for you.
"Write me an example test for runQuery in lib/db.ts" –> two tests I hadn't thought to write, both of which work! pic.twitter.com/youOHV2eYp
— Dan Robinson (@danlovesproofs) January 3, 2023
デバッグにも有用で、下記のツイートではユーザーが「I’mgetting errors in the logs about postrres connection timeout. Where can I increase the timeout?」(ログにPostgresコネクションタイムアウトのエラーがあったのだが、どこにタイムアウトを増加させるところがあるかな?)と質問したところ。
qqbot can help you debug. pic.twitter.com/IuKJc96NSX
— Dan Robinson (@danlovesproofs) January 3, 2023
1枚目の画面は、次のようにコードの場所をチャットで回答しています。
2枚目の画面では、そのコードの場所のようです。
qqbot開発者のDan Robinson氏は、「IDEはコードベースを知るべきであり、これからのIDE体験は、コードベースに対応したガイドによるハイコンテクストな対話へと進化していくだろう」としています。
This is where code is headed. Your IDE should "know" your codebase, and the IDE experience will evolve towards guided, high context interaction with it.
Code isn't going anywhere, but we'll interact with it as more of a personalized entity, not a collection of text files.
— Dan Robinson (@danlovesproofs) January 3, 2023
AIがプログラミングを支援するサービスとしてはGitHubのCopilotが先行してサービスを提供しています。GitHubがコードエディタの中でコードをサジェストしてくれるのに対し、このqqbotのようにプログラマが開発中の大規模なコードベースを解析して理解し、プログラマが知りたいことや調べたいことをチャットで教えてくれるというのもまた、GitHub Copilotとは異なるアプローチでAIを用いてプログラミングの効率を大幅に向上させてくれそうなサービスに見えます。
qqbotは現在トライアルの申し込みを受付中です。
Signup form here, if you're interested in trying it out. https://t.co/TNbbT7aGYl
— Dan Robinson (@danlovesproofs) January 3, 2023
ちなみにqqbotは、DigitalOcean、Neon、Pinecone、OpenAIを用いているとのこと。DigitalOceanはクラウドサービス、OpenAIはChatGPTのベースとなるAIサービスです。NeonはおそらくRustでNode.jsアプリを記述するためのフレームワーク、Pineconeはベクトルデータのためのデータベースのようです。
qqbot is running on DigitalOcean, Neon, Pinecone, and of course OpenAI.
These platforms are getting crazy good and it's getting so, so easy to build things.
— Dan Robinson (@danlovesproofs) January 3, 2023