Smart CodeInsightの概要
Smart CodeInsight は、好みの AI エンジンと連携できるオープンアーキテクチャです。RAD Studio では、以下の機能を備えたカスタマイズ可能な UI 統合も提供しています。
- 基盤となるAIエンジンとToolsAPIによる拡張機能
- IDEとの統合機能:
- オンライン/オフラインのAIエンジンに対応
- オンライン:OpenAI、Gemini、Claude など
- オフライン:Ollama
Note: OllamaはMITライセンスで提供されているオープンソースのAIプラットフォームです。使用するモデルごとにライセンスが異なり、たとえばCodeLlamaには利用制限があります。Note: ToolsAPIに慣れている方は、独自のAIプラグインも作成可能です。詳しくは「Smart Insight向けのAI プラグインの作成と実装」ページをご覧ください。Note: RAD Studioは、これらのAIエンジン自体を提供しているわけではありません。利用には、各AIサービスの利用規約に同意し、APIキーを設定し、必要な課金が発生する場合があります。唯一の例外はOllamaで、ローカルや独自サーバーで無料利用が可能です。
設定オプション
RAD Studioでは、AI機能を細かく制御する設定が用意されています:
- AI機能そのものを全体的に有効/無効にする設定
- 最大4つまでのAIエンジンを個別に有効/無効にする設定
- エディタとチャット画面で使うAIを個別に選択可能
これらの設定は、IDEの「オプション」メニューから変更できます。詳しくは「Smart CodeInsightのオプション」ページをご覧ください。
また、セキュリティ面でも配慮されています:
- APIキーは暗号化された状態で保存されます
- オフライン利用のためにローカルエンジン(Ollamaなど)もサポートされています
エディタメニューのAIコマンド
エディタでコードを選択し、右クリックメニューからAIを使って次のような操作が行えます:
- 選択したコードの説明やコメントの自動生成
- バグの検出やコードの最適化
- 単体テストの生成や他言語への変換(例:C++→Delphi)
- 使われている型やクラスに必要なusesまたはヘッダの提案
AIが生成した結果は、エディタに自動でコメントとして追記されます。
利用可能なコマンド
Smart CodeInsight で利用可能なコマンドは以下の通りです。
- AI チャット: チャットビューを開く
- バグの検知: 選択したコード内の潜在的なバグを検出
- コードの説明: 選択したコードの説明.
- コードの追加: 選択したコードにコメントを追加
- コードの補完: 選択したコードの補完
- コードの最適化:選択したコードの最適化
- ユニットテストの追加: 選択したコードに対するユニットテストの追加
- アセンブラに変換: 選択したコードをアセンブリコードに変換
- Delphiに変換: 選択したコードを Delphi コードに変換(C++ またはアセンブリから)
- C++に変換: 選択したコードを C++ Builder コードに変換
- ヘッダーの検索(AI) (C++用) / ユニットの検索 (Delphi用): 選択したコードのクラスやデータ型に必要なユニットを uses ステートメントに追加
- エディタに結果を表示: 出力結果をエディタに送信
- チャットウィンドウに結果を表示:出力を AI チャットウィンドウに Markdown 形式で送信
AI チャットウィンドウ
AIチャットウィンドウは、IDE内に表示されるチャット形式のパネルです。 質問やリクエストを入力すると、選択したAIエンジンが応答してくれます。エンジンは毎回選ぶことも、デフォルト設定にしておくことも可能です。
このチャットウィンドウには、「質問メモ」として使える入力欄があり、簡単なコマンドラインのように操作できます。利用できる主なコマンドは以下の通りです:
chatgpt> + Enter
: 使用するAIエンジンを ChatGPT へ切り替える(有効な場合)gemini> + Enter
: 使用するAIエンジンを Gemini へ切り替える(有効な場合)claude> + Enter
: 使用するAIエンジンを Claude へ切り替える(有効な場合)ollama> + Enter
: 使用するAIエンジンを Ollama へ切り替える(有効な場合)clear> + Enter
: 回答欄の内容をクリアstop> + Enter
: 回答の生成を停止(「停止」ボタンをクリックしたのと同じ動作)Ctrl + Enter
: 回答の生成を開始(「開始」ボタンをクリックしたのと同じ動作)
通常の質問のほか、コードエディタ上の特定のコードに対して、質問や解説を依頼することもできます。以下のマクロを使うと、より正確に対象を指定できます:
- $COL: カーソルが現在ある列番号に展開されます。
- $ROW: カーソルが現在ある行番号に展開されます。
- $CURTOKEN: カーソルがある位置の単語に展開されます。変数名やメソッド名、識別子を指定したいときに便利です。
- $EDNAME: 現在アクティブなコードエディタのファイル名(フルパス付き)に展開されます。ファイルパスを明示する際に役立ちます。
- $SELECTION: 現在選択しているコードの部分に関する解説を表示します。
- $UNIT: 現在のユニット全体のコードに対する解説を表示します。
詳しい使い方や例については、「転送マクロ」ページをご参照ください。
関連情報