この記事は新野淳一氏のブログ「Publickey」に掲載された「IDEにChatGPTを統合、「この関数のテストコードはどこ?」「XXXを実装するならどう書けばいい?」など、AIでコードと対話できる「qqbot」登場」(2023年1月11日掲載)を、ITmedia NEWS編集部で一部編集し、転載したものです。
テキストから高度なイラストを生成するAIや、人間と自然な対話を可能にするAIが最近話題になっています。
この人間と自然な会話をするAIチャットの代表的なサービスである「ChatGPT」の派生サービス(Variant of ChatGPT)を「Visual Studio Code」などのIDEに統合し、開発中のコードについて「この関数のテストコードはどこ?」などと対話できる「qqbot」が登場しました。
開発したのはDan Robinson氏。
qqbotにより「XYZが実装されているコードの場所はどこ?」「この関数のテストコードはどこ?」「機能XYZを実装するとしたら、どう書けばいい?」などと人間が質問すると、まるでコードやIDEと対話しているようにチャットで返事をしてくれます。
特に大規模なコードベースを操作するときに有用とのこと。
上記のツイートの画像下部にある「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によって作成され、どちらも有効だったと説明されています。
デバッグにも有用で、下記のツイートではユーザーが「I'mgetting errors in the logs about postrres connection timeout. Where can I increase the timeout?」(ログにPostgresコネクションタイムアウトのエラーがあったのだが、どこにタイムアウトを増加させるところがあるかな?)と質問したところ。
1枚目の画面は、次のようにコードの場所をチャットで回答しています。
2枚目の画面では、そのコードの場所のようです。
qqbot開発者のDan Robinson氏は、「IDEはコードベースを知るべきであり、これからのIDE体験は、コードベースに対応したガイドによるハイコンテクストな対話へと進化していくだろう」としています。
AIがプログラミングを支援するサービスとしては米GitHubの「Copilot」が先行してサービスを提供しています。GitHubがコードエディタの中でコードをサジェストしてくれるのに対し、このqqbotのようにプログラマが開発中の大規模なコードベースを解析して理解し、プログラマが知りたいことや調べたいことをチャットで教えてくれるというのもまた、GitHub Copilotとは異なるアプローチでAIを用いてプログラミングの効率を大幅に向上させてくれそうなサービスに見えます。
qqbotは現在トライアルの申し込みを受付中です。
ちなみにqqbotは、DigitalOcean、Neon、Pinecone、OpenAIを用いているとのこと。DigitalOceanはクラウドサービス、OpenAIはChatGPTのベースとなるAIサービスです。NeonはおそらくRustでNode.jsアプリを記述するためのフレームワーク、Pineconeはベクトルデータのためのデータベースのようです。
Copyright © ITmedia, Inc. All Rights Reserved.
Special
PR