AI チャットコンポーネント — sgcAI | eSeGeCe

AI チャット

TsgcAIChat は、7 つの大規模言語モデルプロバイダーに対応した単一のチャットクライアントです。Provider を設定し、API キーとモデルを指定して Chat を呼び出すだけです。ベンダーの変更は代入 1 行で済み、それ以外のコードはそのまま使えます。

TsgcAIChat

プロバイダーに依存しないチャットコンポーネントです。会話履歴を保持し、プロバイダー固有の JSON ボディを構築し、対応する HTTP API クライアントを駆動して、アシスタントのテキストを 1 回の呼び出しで、あるいはトークン単位で返します。

コンポーネントクラス

TsgcAIChat

用途

プロバイダー中立な LLM チャット

プラットフォーム

Win32 および Win64

sgcAI は単体で完結しています。このコンポーネントは、土台となる sgcWebSockets Core ランタイムとともに sgcAI に同梱されているため、基本ライセンスを購入する必要はありません。

モデルに質問する

プロバイダーを選び、キーとモデルを設定して Chat を呼び出します。ストリーミング版と非同期版も同じ設定を使います。

uses
  sgcAI, sgcAI_Chat;

var
  oChat: TsgcAIChat;
  vAnswer: string;
begin
  oChat := TsgcAIChat.Create(nil);
  oChat.Provider := aicpAnthropic;
  oChat.ChatOptions.ApiKey    := 'sk-ant-...';
  oChat.ChatOptions.Model     := 'claude-sonnet-4-5';
  oChat.ChatOptions.MaxTokens := 4096;
  oChat.SystemMessage := 'You are a Delphi expert.';
  oChat.MaxHistoryMessages := 20;

  // Blocking call, returns the assistant text.
  vAnswer := oChat.Chat('How do I keep a WebSocket connection alive?');

  // Token by token, delivered on OnChatStream.
  oChat.OnChatStream := OnChatStreamHandler;
  oChat.ChatStream('Now explain it to a beginner.');
end;

procedure TForm1.OnChatStreamHandler(Sender: TObject;
  const aChunk: string; var Cancel: Boolean);
begin
  Memo1.Text := Memo1.Text + aChunk;
  Cancel := StopRequested;   // abort a long generation
end;
// includes: sgcAI.hpp, sgcAI_Chat.hpp

TsgcAIChat *oChat = new TsgcAIChat(NULL);
oChat->Provider = aicpOpenAI;
oChat->ChatOptions->ApiKey = "sk-...";
oChat->ChatOptions->Model  = "gpt-4o";
oChat->SystemMessage = "You are a Delphi expert.";

String vAnswer = oChat->Chat("How do I keep a WebSocket connection alive?");

// Local models: same code, no data leaves the machine.
oChat->Provider = aicpOllama;
oChat->ChatOptions->BaseUrl = "http://127.0.0.1:11434";
oChat->ChatOptions->Model   = "llama3";
vAnswer = oChat->Chat("Same question, local model.");

主なプロパティとメソッド

最もよく使うメンバーです。

Provider

Provider でベンダーを選択します。aicpOpenAIaicpAnthropicaicpGeminiaicpDeepSeekaicpOllamaaicpGrokaicpMistral が指定できます。変更すると、以前のプロバイダー用にキャッシュされていたクライアントは解放されます。

ChatOptions

ApiKeyModelMaxTokensTemperatureTopPBaseUrl を設定します。TemperatureTopP を既定値のままにするとリクエストから省略されるため、プロバイダー側の既定値が適用されます。

会話

SystemMessage は毎ターンのペルソナを設定します。MaxHistoryMessages は再送する過去メッセージの数を制限し、トークンコストを抑えます。ClearHistoryGetHistory で履歴のリセットと読み出しを行います。

呼び出し

Chat はブロッキングで応答を返します。ChatStream は SSE 経由でストリーミングします。ChatWithSystem は 1 ターンだけシステムプロンプトを上書きします。ChatAsync は Delphi 2010 以降で future を返します。

イベント

OnChatMessage は完了した各メッセージをそのロールとともに通知します。OnChatStream はすべてのチャンクを配信し、Cancel フラグを備えています。OnChatError はプロバイダーおよびトランスポートのエラーを通知します。

ローカルモデル

ProvideraicpOllama に設定すると、ChatOptions.BaseUrl でコンポーネントを自前の Ollama ホストに向けられるため、プロンプトと応答がマシンの外に出ることはありません。

仕様と参考資料

このコンポーネントが利用するサービスとプロトコルの一次情報です。

さらに詳しく

オンラインヘルプsgcAI コンポーネントの完全な API リファレンスと利用ガイドです。
sgcAI の全コンポーネント15 コンポーネントすべての機能一覧を確認できます。
無料体験版をダウンロード自分の API キーで 7 つのプロバイダーすべてを試せます。
価格Single、Team、Site の各ライセンス。完全なソースコード付き、基本製品は不要です。
最もお得な選択: All-AccesseSeGeCe の全製品にプレミアムサポートが付いて、年間 €1,059 からご利用いただけます。
All-Access の価格を見る

はじめてみませんか

無料体験版をダウンロードすれば、数分で Delphi のフォームの裏側に言語モデルを組み込めます。