手早い答え: sgcWebSockets は主要な LLM プロバイダーごとにネイティブコンポーネントを用意しています — TsgcHTTP_API_OpenAI、TsgcHTTP_API_Anthropic、TsgcHTTP_API_Gemini に加えて、Grok、Mistral、DeepSeek、そしてローカル専用の TsgcHTTP_API_Ollama です。これらは「コンポーネントを置く、キーを設定する、メソッドを 1 つ呼ぶ」という同じパターンを共有しているため、以下の判断はリスクが低いものです。今日のユースケースに合うモデルを選び、後からわずか数行のコードでプロバイダーを切り替えられます。
Delphi または C++ Builder アプリケーションに AI を追加するなら、最初の疑問はたいてい「どのプロバイダーを使うか?」です。OpenAI、Anthropic、Google はいずれも HTTP API の背後に有能なチャットモデルを提供しています。Delphi からの統合作業は、どれを選んでもほぼ同じです。sgcWebSockets が各プロバイダーを同じ形のコンポーネントでラップしているからです。つまり本当の選択は、どれだけコードを書いたり書き直したりするかではなく、モデルの強みについてのものなのです。
ユースケース別の手短な答え
これを出発点として使い、ご自身のプロンプトに対して検証してください。
| こうしたいなら… | まずこれから | コンポーネント |
|---|---|---|
| 最も幅広いエコシステムと、組み込みの画像生成・文字起こし・埋め込み | OpenAI | TsgcHTTP_API_OpenAI |
| 丁寧な長文推論、大きなドキュメント、ツール利用 | Anthropic Claude | TsgcHTTP_API_Anthropic |
| Google Cloud との緊密な統合とマルチモーダル入力 | Google Gemini | TsgcHTTP_API_Gemini |
| 完全にローカル、オフライン、API キー不要、データがマシンの外に出ない | Ollama(Llama、Mistral、…) | TsgcHTTP_API_Ollama |
| 低コストの代替手段や特定のオープンモデル | DeepSeek、Mistral、Grok | TsgcHTTP_API_DeepSeek · _Mistral · _Grok |
Delphi での各プロバイダーの見え方
パターンは毎回同じです。コンポーネントを作成し、API キーを設定し、手早い結果を得るためのワンライナーヘルパーを呼び出すか、レスポンスをトークンごとにストリーミングするために OnHTTPAPISSE を割り当てます。
OpenAI
uses
sgcHTTP_API_OpenAI;
var
OpenAI: TsgcHTTP_API_OpenAI;
begin
OpenAI := TsgcHTTP_API_OpenAI.Create(nil);
OpenAI.OpenAIOptions.ApiKey := 'sk-...';
Memo1.Lines.Text := OpenAI._CreateChatCompletion(
'gpt-4o-mini', 'Hello, world.');
end;
Anthropic Claude
uses
sgcHTTP_API_Anthropic;
var
Anthropic: TsgcHTTP_API_Anthropic;
begin
Anthropic := TsgcHTTP_API_Anthropic.Create(nil);
Anthropic.AnthropicOptions.ApiKey := 'sk-ant-...';
Memo1.Lines.Text := Anthropic._CreateMessage(
'claude-3-5-sonnet-latest',
'What are the benefits of WebSockets?',
4096);
end;
Google Gemini
uses
sgcHTTP_API_Gemini;
var
Gemini: TsgcHTTP_API_Gemini;
begin
Gemini := TsgcHTTP_API_Gemini.Create(nil);
Gemini.GeminiOptions.ApiKey := 'YOUR_API_KEY';
Memo1.Lines.Text := Gemini._CreateContent(
'gemini-2.0-flash',
'Summarise RFC 6455',
4096);
end;
3 つのプロバイダー、3 つのキー、1 つの考え方。ストリーミングも同じくらい統一されています — SSE ハンドラを割り当て、ストリーミング版を呼び出します(OpenAI では Stream := True を指定した _CreateChatCompletion、Anthropic では _CreateMessageStream、Gemini では _CreateContentStream):
procedure TForm1.HandleSSE(Sender: TObject;
const aEvent, aData: string; var Cancel: Boolean);
begin
Memo1.Lines.Add(aData);
end;
OpenAI:最も幅広いツールボックス
OpenAI は、チャット以上のものが欲しいときの安全なデフォルトです。同じ TsgcHTTP_API_OpenAI コンポーネントが、チャット補完、埋め込み(_CreateEmbeddings)、画像生成(_CreateImage)、モデレーション、Whisper による文字起こしをカバーするため、単一の依存関係でチャットボット、セマンティック検索機能、「この画像を説明する」ツールを動かせます。ロードマップが複数の AI 機能に触れるなら、ここから始めることで可動部品が少なくて済みます。OpenAI コンポーネントのページとDelphi での OpenAI チュートリアルをご覧ください。
Anthropic Claude:推論と長いコンテキスト
Claude は、作業が読み込み中心のときに有力な選択肢です。長いドキュメントの要約、複数ステップの指示の遂行、ツールの確実な利用などです。TsgcHTTP_API_Anthropic コンポーネントは、メッセージ、ストリーミング、ビジョンとドキュメント入力、ツール利用を公開しており、claude-3-5-sonnet-latest のようなモデル名を使います。詳しい手順はAnthropic Claude の Delphi チュートリアルとAnthropic コンポーネントのページにあります。
Google Gemini:マルチモーダルで Google ネイティブ
Gemini は、すでに Google Cloud の世界にいる場合や、マルチモーダル入力が必要な場合によく合います。TsgcHTTP_API_Gemini は、型付きリクエスト API(TsgcGeminiClass_Request_GenerateContent を使う CreateContent)と文字列のワンライナー(_CreateContent)の両方に加えて、ストリーミングを提供します。詳細はGemini コンポーネントのページとGemini Delphi クライアントの記事にあります。
ローカルで実行する:Ollama とオープンモデル
データがマシンの外に出てはいけない場合や、単にトークン課金を避けたい場合、TsgcHTTP_API_Ollama は API キーなしでローカルの Ollama サーバーと通信します — OllamaOptions.BaseUrl を http://localhost:11434/api に向けるだけで、Llama、Mistral などのオープンモデルを自分のハードウェア上で実行できます。クラウドコンポーネントと同じ _CreateMessage / _CreateMessageStream の形を保っています。特定のホスト型モデルを使いたいときのために、DeepSeek、Mistral、Grok 専用のコンポーネントもあります。
機能比較
| プロバイダー | コンポーネント | ワンラインの呼び出し | ストリーミング(OnHTTPAPISSE) | ローカル実行 |
|---|---|---|---|---|
| OpenAI | TsgcHTTP_API_OpenAI | _CreateChatCompletion | はい | いいえ |
| Anthropic | TsgcHTTP_API_Anthropic | _CreateMessage | はい | いいえ |
| Gemini | TsgcHTTP_API_Gemini | _CreateContent | はい | いいえ |
| Ollama | TsgcHTTP_API_Ollama | _CreateMessage | はい | はい |
| DeepSeek | TsgcHTTP_API_DeepSeek | _CreateMessage | はい | いいえ |
1 つのパターン、多くのプロバイダー
すべてのコンポーネントが「コンポーネント+キー+メソッド」という同じ設計に従っているため、考えを変えるコストは小さくて済みます。キーを持っているいずれかのプロバイダーで試作し、その呼び出しを自前の関数の背後にラップしておけば、後で TsgcHTTP_API_OpenAI を TsgcHTTP_API_Anthropic に入れ替えるのは、書き直しではなく局所的な編集で済みます。多くのチームは 2 つのプロバイダーを配線したままにして、それらの間でフェイルオーバーすることさえあります。すべてはAI & LLM コンポーネントのハブでご覧いただけます。
はじめに
これらはすべて sgcWebSockets に同梱されています。無料トライアルを入手し、まず試したいプロバイダーのコンポーネントを配置すれば、数行で動く呼び出しができあがります。
質問、フィードバック、選択のお手伝いが必要ですか?お問い合わせください — コードを書いた本人から返信が届きます。
