
Embarcadero は、バージョン 12.2 で RAD Studio IDE に初の統合 AI ソリューションを導入しました。Smart CodeInsight と呼ばれるこのテクノロジーは、オンラインとオフラインのさまざまな LLM エンジンと対話する機能を提供するだけでなく、特定の OpenTools API インターフェイスにより他の AI エンジンのドライバーをインストールすることもできます。使用可能なエンジンは次のとおりです。
- OpenAI
- Ollama (オフライン)
- Gemini
- Claude
RAD Studio IDE から LLM を呼び出すには、主に 2 つの方法があります。汎用チャット ウィンドウを使用する方法と、エディタ内の特定のコマンドを使用する方法です。これらのコマンドでは、プロンプトの一部として選択したソース コードを操作 (および AI に渡すことが) できます。
AI エンジンに Smart CodeInsight の動作を質問するのは良いアイデアだと思いましたが、その応答は、Delphi LSP エンジンについての説明が中心という実に興味深い、しかし奇妙なものでした。昨年 9 月のこのブログ投稿をご覧ください。RAD Studio IDEで「AI LLM」と「Smart CodeInsight」を使用する.
Table of Contents
新しいチャットウィンドウ
すでに述べたように RAD Studio 12.3 Athens提供開始のお知らせ 12.3 では Smart CodeInsight にいくつかの機能強化が加えられています。最も注目すべきは、チャットでプレーンテキストではなく Markdown がサポートされ表示されることです。これにより、下の画像に示すように、はるかに読みやすい回答が提供されます。
Smart CodeInsight チャット ウィンドウのその他の変更点は、エディタまたはユニットで現在選択されているテキストをコピーするための 2 つの新しいボタン (ペインの下部) の存在です。手動でコピーして貼り付ける代わりに、ボタンを使用して「直接貼り付け」を行うことができます。
さらに、リクエストに特別なマクロを使用できます。リクエストを入力して $ を追加すると、エディタで現在選択されているテキスト( $selection) やエディタでアクティブなユニットのコード全体の($Unit) など、使用可能なシンボルのリストが表示されます。
回答は、現在のエディタの選択に基づいて、チャット ウィンドウに再度表示されます。フォーム変数の宣言部を選択し、AI エンジンのプロンプトから処理された結果は次のとおりです。
新しいエディタ コマンド: ユニットの検索/ヘッダーの検索
IDE で AI エクスペリエンスが改善されたもう 1 つの領域はエディタです。使用可能なコマンドは 2 つの方法で拡張されました。まず、新しい [ユニットの検索/ヘッダーの検索] オプション (Delphi または C++ 用) があり、特定の型またはシンボルを宣言するユニット (コードをコンパイルするために uses ステートメントに追加する必要があるユニット) を見つけるのに役立ちます。未定義のシンボルを含む次のコードを入力しているとします。
「TInifile」を選択し、「ユニットの検索」 コマンドを発行すると、エディタに次の出力が表示されます。
必要なことは、コメントに追加されたユニットの名前 (Sytem.IniFiles) を取得し、それを現在のユニットの uses ステートメントに貼り付けることだけです。 これは実際のプロジェクト コードに基づくものではなく、AI がトレーニングされたコード内で一般的に参照されるユニットに対してのみ機能しますが、コア Delphi RTL データ型に対しては非常に信頼できると思います。
エディタとチャット
エディタのもう 1 つの変更点は、上記の例のように、エディタ内のコメントではなく、Markdown 対応チャットに Ai リクエストの結果を送信できることです。これは、エディタの Smart CodeInsight メニューのオプションで設定できます。次に例を示します。
この機能を有効にすると、エディタでコードを選択してコマンドを発行できるようになります。(バグ検知の例):
利用可能なモデル
12.3 で Smart CodeInsight に追加された最後の新機能は、[ツール オプション] ダイアログ ボックスの機能構成に関係しています。AI サービス (URL と資格情報を使用) を構成すると、モデル名を入力する代わりに、要求に応じて入力されるドロップダウン リストから、特定のサービスで使用可能なモデルの 1 つを選択できます。モデルは時間の経過とともに継続的に追加されますが、修正リストを提供できないため、これは重要です。新しいバージョンを出荷した日に、古いリストは廃止されます。 (ちなみに、新しいモデルはより良い結果をもたらす可能性があるが、呼び出しコストも高くなる可能性があります。). OpenAI の場合、この機能は次のようになります。
要約
要約すると、Smart CodeInsight アーキテクチャは複数の目標を提供します。すべてがオプションで、デフォルトで無効になっています。複数のプロバイダーを利用できるようにして、有効にするプロバイダーを 1 つ以上選択できるようにしています。プライバシーを最大限に高めるために、ローカルにインストールされたオフライン ソリューションが含まれています。このリリースでは、エディタとチャット ウィンドウの統合が改善され、チャットで Markdown 表示が有効になりました。私たちはこの分野を継続的に追跡し、この機能を強化して、お客様の IP とプライバシーを最大限に尊重し、特定のベンダーを強制するのではなく、お客様の要望により AI エンジンを選択できるようにします。