
RAD Studio 13 の GetIt で提供される新しい SmartCore AI コンポーネントパックを利用することで、Delphi と C++Builder アプリケーションに AI サービスとの連携機能を簡単に組み込めます。
開発者はこれらの AI コンポーネントを既存アプリケーションと新規アプリケーションの両方に統合し、画像やその他のメディアの生成といったアプリ内コンテンツ作成のサポート、オンザフライ翻訳のためのアプリ内ローカリゼーションサポートの追加、データ分析のためのアプリ内スマートインサイトやパーソナライズされたレコメンデーションの提供、既存アプリケーションにインタラクティブ機能を追加するアプリ内チャットボットの構築など、多くの一般的な AI ユースケースに対応できます。
これは、Delphi と C++Builder アプリケーションからの AI プロバイダー(OpenAI、Claude、Gemini、Ollama を含む)の呼び出しを簡素化するモジュール式コンポーネント スイートです。
Table of Contents
概要
SmartCore AI コンポーネント機能は、将来に向けた基盤となる仕組みです。これは、エンバカデロ製品のユーザーやサードパーティベンダーが利用できる拡張可能なコアアーキテクチャであり、新しい AI エンジンや UI コントロールとの統合を可能にします。
SmartCore AI パッケージには以下が含まれます。
- 新しい接続コンポーネント:
FireDAC における「データベース接続」と同様の役割を果たします。特定の AI エンジンに依存しない共通コンポーネントで、ドライバを介して REST API を通じ、OpenAI・Claude・Gemini・Ollama などの AI エンジンと通信します。SmartCore AI エンジンは追加ドライバーを組み込むことができ、市場の進化に合わせてプロジェクトの機能を拡張できます。設定は わかりやすい接続ウィザードで管理できます。
- AI リクエストコンポーネントのセット:
テキスト・画像・構造化データなどの異なるデータタイプに対応。プロンプトを関連付けられるほか、UI コントロールに直接バインドして結果を表示できます。
SmartCore AI コンポーネント パックを使えば、既存アプリにも新規アプリにも AI を容易に組み込めます。 これにより、以下のような 幅広い AI 活用シナリオに対応できます。
- アプリ内でのコンテンツ生成(画像やメディアの生成)
- アプリ内での翻訳によるローカライズ対応
- データ分析におけるスマートインサイトやパーソナライズされた推奨の提供
- 既存アプリに対話機能を追加するチャットボットの実装
仮想メソッドをオーバーライドしたり、新しいドライバーコンポーネントを作成したりすることで、ドライバーを拡張できることにご注意ください。前述のとおり、これはオープンアーキテクチャであり、お客様、コミュニティメンバー、サードパーティのコンポーネントベンダーによって拡張され、急速に進化するAIテクノロジーのエコシステムに対応できるように構築されています。
インストールと導入
AI 接続コンポーネントの使用を開始するには、GetIt から SmartCore AI コンポーネント パックをダウンロードしてください。

以下は、Smart AI コンポーネント パックによってインストールされるコンポーネントの一覧です。
関連デモのセットは、 RAD Studio 13.0 デモリポジトリ で公開されます。具体的には、SmartCore AI コンポーネントのデモは github.com/Embarcadero/RADStudio13Demos/tree/main/Object%20Pascal/SmartCoreAI にあります。これらは現在の 13.0 デモのインストールには含まれていませんが、製品と一緒にデモをインストールしている場合は、通常の方法でインストールフォルダー内から git 経由で直接取得して更新できます。
パッケージをインストールしたら、以下の手順に従って開始してください。
TAIConnection
をドロップし、ドライバーと 1 つ以上のリクエストコンポーネントを割り当てます。- 接続ウィザードを使用してパラメーターを編集およびテストします(
TAIConnection
をダブルクリックします)。 - または、API キー、モデル、BaseURL などのパラメーターを手動で設定します。
- この時点で、他のコンポーネントの使用を開始できます。
詳細については、DocWiki の https://docwiki.embarcadero.com/RADStudio/en/SmartCore_AI_Component_Pack(英語) 、SmartCore AI コンポーネントパック(日本語) をご覧ください。DocWiki ページには、デモとそのスコープの一覧も掲載されています。このブログ記事の残りの部分では、最初のデモを作成する手順を段階的に説明します。
初めての SmartCore AI デモを構築するためのビジュアル ステップバイステップ ガイド
-
- まずは新しい Delphi VCL アプリケーションを作成しましょう(C++ アプリケーションや FireMonkey アプリケーションも作成可能です)。
- 次に、AI 接続コンポーネント(TAIConnection)を追加します。
- AI 接続エディタを開きます(TAIConnection ダブルクリックまたは右クリックからConnection Editor …):
- 上部のコンボボックスでドライバーを選択すると、AI接続エディタが起動し、パラメーターが自動的に入力されます。
- フィールドにAPI キーを追加します。 Ollama を除き、使用する LLM ベンダーから提供されたAPI キーが必要です。
- BaseURL(事前入力済み)と API キーを追加したら、「Model」フィールドに移動し、利用可能なドロップダウンから、プロバイダーに応じて利用可能なモデルのいずれかを選択します。
- 「Test Connection」ボタンをクリックして、設定が正しいことを確認します。
- 「OK」をクリックして AI 接続エディターを閉じます。コンポーネントエディターは、選択した AI ドライバーに対応するドライバーコンポーネントをデザイナーに自動的に追加します。
- 次に UI を作成します。フォームにメモコントロールとボタンを配置するだけの簡単な作業で十分です。
- 次に
AIChatRequest
コンポーネントを配置し、接続に関連付けます。 - ボタンイベントハンドラーで、次のようにテキストリクエストを呼び出します。
1AIChatRequest1.Chat ('Where is Florence?');
- レスポンスの準備が整うと、イベントがトリガーされます。
AIChatRequest
コンポーネントでは様々なイベントを処理できますが、最もシンプルな方法は、次のようなイベントハンドラーを使ってOnResponse
イベントを処理することです。1234procedure TForm27.AIChatRequest1Response(Sender: TObject; const Text: string);beginMemo1.Lines.Add (Text);end; - LLM にテキストリクエストを送信するクライアントが動作するために必要なのはこれだけです!
- 次に、グラフィックリクエストを処理したい場合があります。この場合、コードは少し複雑になります。まず、デザイナーに
AIImageRequest
コンポーネントを配置します。Image コントロールとボタンをもう 1 つ追加します。デザイナー内のフォームは、おおよそ以下のようになります(この例では、画像とチャットの2つのページを持つ PageControl も追加しました)。 - LLM に画像をクエリするには、リクエストを実行する前に、リクエストコード内で、LLM プロバイダーに応じてリクエストオブジェクトをコード内で構成する必要があります。次のようなものを使用できます:
12345678var ReqOpenAI := TAIOpenAIImageGenerationRequest.Create;AIImageRequest1.APIRequestObject := ReqOpenAI;ReqOpenAI.Prompt := '<your prompt here>';ReqOpenAI.Size := '1024x1024';ReqOpenAI.Quality := 'standard';ReqOpenAI.ResponseFormat := 'png';ReqOpenAI.Model := 'dall-e-3';AIImageRequest1.Execute;
- 同様に、完了時にイベントがトリガーされ、ストリームから画像を読み取って Image コントロールに読み込むことができます (この場合は VCL アプリケーションですが、FireMonkey でも同様です)。
12345678910111213141516171819202122232425procedure TForm27.AIImageRequest1Success(Sender: TObject;const Images: TArray<SmartCoreAI.Types.IAIImageGenerationResult>;FullResponse: string);beginif Length(Images) > 0 thenbeginif Assigned(Images[0].ImageStream) thenbeginImage1.Picture.LoadFromStream(Images[0].ImageStream);endelse if not Images[0].ImageURL.IsEmpty thenbeginvar LStream := TAIUtil.DownloadImage(Images[0].ImageURL);tryif Assigned(LStream) thenbeginImage1.Picture.LoadFromStream(LStream);end;finallyif Assigned(LStream) thenLStream.Free;end;end;end;end;
- 「フィレンツェでDelphiの箱を運ぶレオナルド・ダ・ヴィンチ」という画像をリクエストした結果がこれです。あまり良い画像ではありませんが、もっと酷い画像を何度も試したあとに、この画像にたどりつきました!
(dall-e-3によって生成された画像)
SmartCore AI コンポーネントで、アプリケーションへの強力な AI 機能の導入が簡単になります
これは、RAD Studio を使った AI アプリケーション構築を支援する取り組みの始まりに過ぎません。これらのコンポーネントは、このブログ記事で紹介しているよりもはるかに強力です。また、提供中のデモでは、SmartCore AI の機能を簡単に使い始めることができます。デモでは、テキストと画像に加えて、AIレスポンスの3つ目の非常に便利なカテゴリーであるJSON構造化データも実演しています。
SmartCore AIコンポーネントパックの詳細については、今後のブログ記事やウェビナーでご紹介していきますので、どうぞお楽しみに。今すぐお試しいただけます。
より詳細な情報は、DocWikiの記事を参照してください:SmartCore AI コンポーネントパック
Design. Code. Compile. Deploy.
Start Free Trial Upgrade Today
Free Delphi Community Edition Free C++Builder Community Edition