AIコードの意図

AIコードの意図 (Intention of AI code)

任意のモダンなIDEには、コードのコンテキストに基づいてあらかじめ定義されたアクションを実行するためのコードインテンションが含まれています。たとえば、for文の場合、whileに変換逆順ストリームを使用など、複数のインテンションがあります。インテンションの使用は非常に便利であり、クイックなリファクタリングやコードの操作が可能です。

インテンションは開発が非常に困難であるため、通常はIDEのベンダーによってハードコードされ、IDEと一緒に提供されます。一部のIDEでは独自のインテンションを開発することも可能ですが、IDEプラットフォームの良好な知識、多くのコードの記述、インテンションを展開するためのプラグインの開発などが必要です。

しかし、ハードコードされたインテンションは陳腐化する可能性があります。今日では、例えばChatGPTなどのLLMに、コード上でいくつかのアクションを実行するよう依頼することが非常に簡単です。コードの断片と適切なプロンプトを提供するだけです。たとえば、次のループをChatGPTにループの方向を逆にするというプロンプトで提供すると、同様のハードコードされたインテンションを使用した場合と同じ結果が得られます。

そのため、AIインテンションを導入するべきだと考えられます。AIインテンションは、基本的には特定のコンテキストにバインドされた名前付きのAIプロンプトです。コンテキストはファイル、クラス、文、特定のメソッドなどが対象となります。IDEは正しいコンテキストを提供し、正しいプロンプトを使用してLLMに依頼し、結果を取得して解析し、コードに反映する責任を持ちます。

AIインテンションを持つことの利点は以下の通りです:

  1. ほとんどのリファクタリングはプレーンな言語を使用して行うことができます。プロンプトは、よく知られたAPI(例えばJavaのPrintStream.println(String))の場合はformatを使用して置換のように単純なものであるか、より少なく知られたAPIの場合はより複雑なものになるかもしれません。
  2. AIインテンションをハードコードする必要はありません。
  3. AIインテンションを配布するためにプラグインを作成する必要はありません。
  4. AIインテンションは簡単にユーザーが設定できます。
  5. 繰り返しのアクティビティには特にチャットインターフェースを使用する必要はありません。
  6. チャットインターフェースを使用する場合と比べて、LLMトークンの通信量を減らすことでコストを節約できます。

もう一つのクールなオプションは、AIインテンションをAPIに直接組み込むことです。このような宣言型のAIインテンションは、クラス、フィールド、またはメソッドごとにどのインテンションが利用可能であり、どのプロンプトを使用して特定のインテンションを実行するかをIDEに指示します。このような宣言型のAIインテンションは、フレームワークやライブラリの作者によって提供されることがあり、それによりこれらのインテンションはサポートしているすべての開発者にすぐに利用可能となります。

たとえば、次のアノテーションは、連結された文字列を取るprintln(String)呼び出しをフォーマットと引数リストを取るprintln(String, Object...)呼び出しに置換するformatを使用して置換というAIインテンションを指定します。

このようなインテンションを呼び出しに適用すると、次のような結果が得られます:

宣言型のAIインテンションの使用は、非推奨のAPIの取り扱いを大幅に改善することができます。各非推奨メソッドにはいくつかのAIインテンションを含めることで、将来のリファクタリングをスキップする必要がなくなります。ドキュメントや手動のコーディングを見ながらではなく、1クリックでコードを最新のものに更新できます。

私はAIインテンションがIDEとLLMの統合の未来であると信じています。そのため、近い将来、多くのIDEにAIインテンションが登場することを期待しています。

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

AIニュース

なぜ便利なソフトウェアを書くのはいつも難しいのか

「歴史は、長く有益なソフトウェアを書くことがいかに困難かを教えてくれますそれはコードとはほとんど関係がありませんので...

機械学習

「ひとつのAIモデルで全てのオーディオタスクをこなせるのか?UniAudioに出会ってください:新しいユニバーサルオーディオ生成システム」

生成AIの重要な側面の1つは音声生成です。近年、生成AIの人気の高まりにより、音声制作における多様で新興のニーズがますます...

データサイエンス

「Apache CassandraとApache Pulsarを使用した製品推薦エンジンの構築」

仮説上の請負業者がApache PulsarとApache Cassandraを使用してAIの加速化を行った方法この記事ではAI/MLへの道のりの重要な...

データサイエンス

「ウェブポータル開発を加速させる8つの戦略」

この記事では、ウェブポータルの開発者が直面する頻繁な問題について探求します:品質を損なうことなく、開発プロセスを加速...

人工知能

LLM SaaSのためのFastAPIテンプレート パート1 — Authとファイルのアップロード

最近、FastAPIはPythonバックエンド開発者コミュニティで注目を集めていますそのシンプルさ、非同期性、ネイティブのSwagger ...

データサイエンス

「オープンソースLLMの完全ガイド」

この包括的なガイドを使って、オープンソースの大規模言語モデル(LLM)の世界を開放し、プロジェクトで共同AIの力を活用して...