RAD Studio 12.2のリリースに関するブログで既にご紹介しておりますが「AI LLMをコーディングに活用することがますます一般的になり、これらのツールの品質も向上しています。このため、RAD Studio 12.2では、新たにAIプラグインのオープンアーキテクチャを導入され、3つのオンラインソリューション(OpenAI、GoogleのGemini、AnthropicのClaude)と1つのオフラインソリューション(Ollama)等をすぐに使用できる形式でサポートしています。」
本ブログでは、RAD StudioがAI分野に初めて参入し、初期サポートを提供していることを踏まえ、さらに将来的にサポートを拡大していくことを考慮して、さらに詳しい情報を提供します。現時点では、エンバカデロは独自の AI バックエンド ツールに直接投資していませんが、業界屈指のAIツールをIDEに直接統合し、お客様に直接ご利用いただけるよう注力しています。
RAD StudioのAIサポートは「Smart CodeInsight」と呼ばれ、IDE ToolsAPIの新しいインターフェースによって強化されたオープンアーキテクチャを基盤として実装されています。このAPIにより、開発者は追加のAIエンジンを統合したり、そのうちの1つに対してカスタムUIを作成したりすることができます。この点については、このブログの最後で説明いたします。APIの他にも、APIを基盤としたすぐに使える機能も提供しています。実際、IDEの統合機能として以下を提供しています。
- AIチャットウィンドウ
- AI操作を呼び出すためのエディタメニューコマンド
特定のプラグインに関しては、前述の通り、以下のすぐに利用可能なAPIのサポートを提供しています。
- OpenAI
- Gemini by Google
- Claude by Anthropic
- Ollama
RAD Studioでは、上記のサービスとの統合を提供していますが、統合には利用規約に同意し、ベンダーの1社からAPIキー(一般的に従量制契約で利用可能)を受け取り、RAD Studioの設定画面でこのAPIキーを入力する必要があります。API ベンダーのサイトで適切なアカウントを作成するのは難しい場合があります。これらのサイトでは、月額料金を支払ってサイトを利用するよう誘導される傾向がありますが、間違ったオファーに誤ってサインアップした方が複数いらっしゃいましたので、以下の 情報をご参考ください。
- Open AIはopenai.com/api/、価格についてはopenai.com/api/pricing/をご覧ください。
- Claudeはwww.anthropic.com/api、価格についてwww.anthropic.com/pricing#anthropic-apiをご覧ください。
- Geminiは、ai.google.dev/gemini-api/のWebページを参照してください。料金プランについては、ai.google.dev/pricingで確認できます(Googleは無料プランを提供していますが、有料プランとは異なり、プロンプトと送信したコードに基づいてトレーニングが行われることに注意してください)
アカウントと支払いに関して唯一の例外はOllamaで、Ollama はローカル (または任意のサーバー) にインストールでき、サービス料金を支払うことなくオフラインで使用できます。Ollama と Codellama の詳細については、ブログ記事の後半で説明します。
上記以外の一般的なAIソリューションについては、オープンなREST APIを提供しておらず、AIベンダーがカスタムIDE統合を構築する必要があるため、現時点では上記のAIベンダーのみとなります。ただ将来的に他の AI ベンダーもREST API を提供すれば、RAD Studioでもサポートする可能性がございます。
Table of Contents
開発者による完全なコントロール
エンバカデロでは、お客様に拡張された構成と完全なプライバシー管理をさまざまな方法で提供しています。
- LLMに興味がない、または信頼していない場合は、グローバル設定を1つ変更するだけでAI機能をすべてオフにすることができます。
- 4つのエンジンはそれぞれ有効または無効にすることができます(デフォルトでは有効になっていません)。
- 様々なUI要素(チャットとエディタメニュー)でデフォルトで使用するエンジンを選択することができます。
- APIキーは暗号化された形式で保存しています。
- ローカルのオフラインエンジンを使用するオプションも用意しています。
エンバカデロでは、弊社が選択したエンジンにリクエストを送信しているわけではありません。また弊社のサーバーを介してリクエストを仲介しているわけでもなく、料金を支払わなければならない特定のサービスを提供したりしていないことに注意してください。これはお客様が完全にコントロール可能なオープンアーキテクチャです。
Smart CodeInsightの設定
RAD StudioのAI統合は、[ツール] > [オプション]ダイアログの[エディタ] > [スマート支援機能]で設定できます。上述しましたが、次の設定が用意されています。
- 機能全体を有効にするための一般的なチェックボックス
- 各エンジンを有効にするためのチェックボックス
- 各UI要素のデフォルトエンジンを設定するための2つのコンボボックス
以下のダイアログボックスでご覧いただけるように、各エンジンにはそれぞれ異なる設定パラメータのセットを持つタブが用意されています。
API のBaseURL やその他の構成を含む、各エンジン向けの推奨構成オプションは、こちらの RAD Studio docWiki ページをご参照ください。
Smart CodeInsightのUI要素
RAD Studio 12.2では、IDEはAIツールを2つの異なる方法で表示します。カスタムプロンプトを入力する汎用チャットウィンドウと、現在選択されているソースコード上で特定の操作を呼び出すことができるエディタメニューです。
チャットウィンドウ
AIチャットウィンドウは、 IDEドッキング可能なフォームで、LLM チャット ウィンドウと同じように機能します。リクエストを入力し、エンジンを選択して(デフォルトのエンジンを使用する場合を除く)、情報を待ちます。以下は、Claude にテキスト ファイルを開くようにリクエストする簡単な例です。
このチャットウィンドウには、単純なコマンドラインのように機能する質問メモがあります。利用可能な特別なコマンドは以下の通りです。
有効になっているAIエンジンを、有効にした別のエンジンに切り替えます(チャット ページの下部にある選択ボックスを使用してエンジンを切り替えることもできます)。
[crayon-673f08cf7d54d285906487/]回答メモをクリアする、回答の生成を停止する(停止ボタンをクリックするのと同じ)、回答の生成を開始する(開始ボタンをクリックするのと同じ)等のそれぞのコマンドは以下の通りです。
[crayon-673f08cf7d559627934187/]エディタメニュー
エディタメニューには、エディタ上で選択したコードに対するいくつかのプリセット操作が用意されており、選択後に LLM エンジンによって返された結果がエディタ上にコメントとして追加されます。
これは、チャットリクエストでコードをコピーして、結果をエディターに貼り付けるよりも高速で、アプリケーションのソース コードの一部を送信して分析するという考え方です。
利用可能なコマンドは、以下のとおりです。
- AIチャット: チャットビューを開く
- バグの検知: 選択したコードの潜在的なバグを検知する
- コードの説明: 選択したコードを説明する
- コメントの追加: 選択したコードにコメントを追加する
- コードの補完: 選択したコードを補完する
- コードの最適化: 選択したコードを最適化する
- ユニットテストの追加: 選択したコードにユニットテストを追加する
- アセンブリに変換: 選択したコードをアセンブリコードに変換する
- Delphi に変換: 選択したコードをDelphiコード(C++またはアセンブリ言語から)に変換する
- C++に変換: 選択したコードを C++Builderコードに変換する
以下は、コードの説明の例です。
ToolsAPI を使用した Smart CodeInsight の機能拡張
エンバカデロでは、独自のAIプラグインを2つの方法で作成するための完全なサポートを提供しており、両方のシナリオに対応するデモを公式デモリポジトリに追加しました。ここでは詳細を説明しきれませんが、GitHub上のデモへのリンク(製品にも同梱されています)を2種類のプラグインについてご紹介します。
- 代替のAIベンダー実装のサポートを提供:github.com/Embarcadero/RADStudio12Demos/tree/main/Object%20Pascal/ToolsAPI/AIEngine%20Demos/CohereAI_Plugin
- 利用可能なプラグインの1つを使用するカスタムIDE機能を作成する:github.com/Embarcadero/RADStudio12Demos/tree/main/Object%20Pascal/ToolsAPI/AIEngine%20Demos/AI_Consumer_CodeSample
Ollamaに関する補足
3つのオンラインソリューションではアカウントを作成し、通常は利用料金を支払う必要がありますが、Ollamaのサポートも含まれています。詳細はollama.com/をご覧ください。GitHubリポジトリでご覧いただけるように、このエンジンはMITライセンスです。Ollamaはエンジンですが、実際のモデルが必要です。エンバカデロが推奨するのは、Metaによる開発者向けモデルであるCodellamaで、独自のライセンス契約と利用規約で提供されています。
このエンジンは通常、Docker経由でインストールされ、Windows Linux Subsystem (WLS)上でも問題なく動作します。一部の情報は、docwikiの「Configuring Ollama for Smart CodeInsight」のページで確認できます。公式のOllama Dockerリポジトリを使用してCodellamaをインストールすることもできますが、エンバカデロでは、すぐに使える構成のDockerイメージも提供しており、ダウンロードして実行するにはDockerコマンドを1つ実行するだけです。そしてエンジンをインストールしたローカルホストまたはマシンを指す URL で RAD Studio を構成するだけで、問題なく動作します。ローカルエンジンのパフォーマンスはハードウェアによって異なる可能性があり、オンラインソリューションよりも遅くなる場合がありますが、良い結果が得られます。
エンバカデロのすぐに使えるDockerの使用方法については、docwikiで説明されており、イメージは次のDockerリンクを参照ください。
hub.docker.com/r/radstudio/codellama
※プリインストールされたモデルを含む完全なイメージは4.26GBであることに注意してください。
CodeInsightでコードをスマートに!
IDEにLLMを統合することで、より速いコードの記述、スケルトンコードを作成して正確性をチェック、一般的な Web 検索よりも多くの情報の入手、参照しているコードの理解に役立ちますが、LLMにも間違いはあり、盲目的に信頼すべきではありません。コードに組み込む前に結果をよく確認するようにしてください。また、エンジンとソースを共有する際には、提案されたコードや自身のコードの知的財産権についても注意が必要です。エンバカデロが提供する有料ソリューションのインターフェースは、お客様のコードで学習されていませんが、詳細については提供内容によって異なります。必ず利用規約をお読みください。
これらのツールがさらに役立つ方法がすでにいくつか見えてきています。 今後の展開にご期待ください。ToolsAPI を使用してお客様のほうで拡張機能を作成し、それをコミュニティと共有したい場合は、エンバカデロへお知らせください。