IDEにChatGPTを統合、「この関数のテストコードはどこ?」「XXXを実装するならどう書けばいい?」など、AIでコードと対話できる「qqbot」登場
テキストから高度なイラストを生成する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.
— Dan Robinson (@danlovesproofs) January 3, 2023
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
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.
— Dan Robinson (@danlovesproofs) January 3, 2023
"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
デバッグにも有用で、下記のツイートではユーザーが「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.
— Dan Robinson (@danlovesproofs) January 3, 2023
Code isn't going anywhere, but we'll interact with it as more of a personalized entity, not a collection of text files.
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.
— Dan Robinson (@danlovesproofs) January 3, 2023
These platforms are getting crazy good and it's getting so, so easy to build things.
あわせて読みたい
「State of JavaScript 2022」公開。利用率1位のフロントエンドライブラリはReact、レンダリングはNext.js、テストはJestなど、4万人のエンジニアが回答
≪前の記事
Rust言語を推進する「Rust Foundation」がフルタイムのエンジニアを2名募集中。年収10万ドルから15万ドル