sgcAI 機能一覧
sgcAI でできることすべてを、SGC AI パレットページの 15 コンポーネントに対応付けて示します。1 つのコンポーネントで 7 つのモデルプロバイダーとチャットし、Model Context Protocol サーバーをホストまたは利用し、自社データをベクトルとしてインデックス化して、その全体を音声で操作できます。すべてのライセンスに完全なソースコードが付属します。各コンポーネントをクリックすると、プロパティ、イベント、サンプルを掲載した個別ページに移動します。
sgcAI でできることすべてを、SGC AI パレットページの 15 コンポーネントに対応付けて示します。1 つのコンポーネントで 7 つのモデルプロバイダーとチャットし、Model Context Protocol サーバーをホストまたは利用し、自社データをベクトルとしてインデックス化して、その全体を音声で操作できます。すべてのライセンスに完全なソースコードが付属します。各コンポーネントをクリックすると、プロパティ、イベント、サンプルを掲載した個別ページに移動します。
sgcAI は単体で完結しています。以下の表に挙げた機能はすべて 1 つのパッケージに含まれ、コンポーネントの土台となる sgcWebSockets Core ランタイムも同梱されています。購入すべき基本ライセンスはありません。
sgcAI は Windows 向けの製品です。AI パッケージは MSWINDOWS のみでコンパイルされるため、パレット上の 15 コンポーネントのうち 13 は Win32 と Win64 に登録されており、macOS、Linux、iOS、Android 向けにはビルドできません。
例外は Model Context Protocol の 2 つのコンポーネント、TsgcWSAPIServer_MCP と TsgcWSAPIClient_MCP です。これらにはプラットフォームの制限がなく、sgc の HTTP スタックが動作する環境であればどこでも動作します。詳しくは下のプラットフォームと言語をご覧ください。
7 プロバイダー、4 コンポーネント
クライアントとサーバー
自社データを使った RAG
システム、Google、Amazon
MCI と Wave
Windows Win32 と Win64、MCP の 2 コンポーネントはマルチプラットフォーム
すべて SGC AI という 1 つのパレットページに登録されます。
| コンポーネント | クラス | カテゴリ | 説明 |
|---|---|---|---|
| AI チャット | TsgcAIChat | チャット | OpenAI、Anthropic、Gemini、DeepSeek、Ollama、Grok、Mistral に対応する単一のチャットクライアントです。 |
| OpenAI ChatBot | TsgcAIOpenAIChatBot | チャット | 音声チャットボット。録音し、Whisper で文字起こしし、回答を生成して読み上げます。 |
| OpenAI Translator | TsgcAIOpenAITranslator | チャット | 音声を入力し、英語の音声として出力する翻訳です。 |
| OpenAI Assistant | TsgcAIOpenAIAssistant | チャット | Assistants API。スレッド、ラン、File Search、Code Interpreter、関数呼び出しに対応します。 |
| MCP サーバー | TsgcWSAPIServer_MCP | MCP | ツール、プロンプト、リソースを HTTP または HTTP Streamable で公開します。 |
| MCP クライアント | TsgcWSAPIClient_MCP | MCP | HTTP、HTTP Streamable、stdio 経由で任意の MCP サーバーを利用します。 |
| OpenAI Embeddings | TsgcAIOpenAIEmbeddings | ベクトル | テキストやファイルから埋め込みを生成し、最も近い一致を検索します。 |
| ベクトルデータベース(ファイル) | TsgcAIDatabaseVectorFile | ベクトル | ローカルファイルに保存するベクトルストア。サーバーもアカウントも不要です。 |
| ベクトルデータベース(Pinecone) | TsgcAIDatabaseVectorPinecone | ベクトル | Pinecone REST API を利用したマネージドのベクトルインデックスです。 |
| テキスト読み上げ(システム) | TsgcTextToSpeechSystem | 音声 | マシンにインストール済みのエンジンで読み上げます。キーは不要です。 |
| テキスト読み上げ(Google) | TsgcTextToSpeechGoogle | 音声 | サービスアカウント認証を使う Google Cloud Text-to-Speech です。 |
| テキスト読み上げ(Amazon) | TsgcTextToSpeechAmazon | 音声 | 署名付き AWS リクエストと SSML に対応した Amazon Polly です。 |
| オーディオレコーダー(MCI) | TsgcAudioRecorderMCI | オーディオ | 無音検出付きで、マイク音声を WAV ファイルに録音します。 |
| オーディオレコーダー(Wave) | TsgcAudioRecorderWave | オーディオ | サンプル形式を完全に制御できるストリーミング方式のマイク録音です。 |
| オーディオプレーヤー(MCI) | TsgcAudioPlayerMCI | オーディオ | 実際の再生終了通知を備えた再生機能です。 |
1 つの Provider プロパティで 7 つのプロバイダーに接続でき、音声やエージェントの用途向けに OpenAI コンポーネントが 3 つ用意されています。
| 機能 | コンポーネント | 備考 |
|---|---|---|
| OpenAI | TsgcAIChat | Provider := aicpOpenAI。Chat Completions API 経由の GPT モデルです。 |
| Anthropic | TsgcAIChat | Provider := aicpAnthropic。Messages API 経由の Claude モデルです。 |
| Google Gemini | TsgcAIChat | Provider := aicpGemini。 |
| DeepSeek | TsgcAIChat | Provider := aicpDeepSeek。deepseek-chat と deepseek-reasoner に対応します。 |
| Ollama(ローカルモデル) | TsgcAIChat | Provider := aicpOllama。ChatOptions.BaseUrl で自前のホストを指定でき、データがマシンの外に出ることはありません。 |
| xAI Grok | TsgcAIChat | Provider := aicpGrok。 |
| Mistral | TsgcAIChat | Provider := aicpMistral。 |
| ブロッキング呼び出し | TsgcAIChat | Chat(aMessage) がアシスタントのテキストを返します。 |
| ストリーミング | TsgcAIChat | ChatStream と OnChatStream。後者は生成の途中で中断できる Cancel フラグを備えています。 |
| 非同期 | TsgcAIChat | ChatAsync は Delphi 2010 以降で future を返します。 |
| システムプロンプト | TsgcAIChat | 毎ターン適用する SystemMessage、または 1 ターンだけの ChatWithSystem を使います。 |
| 履歴の上限 | TsgcAIChat | MaxHistoryMessages が再送するコンテキストを制限します。ClearHistory と GetHistory で履歴を管理します。 |
| サンプリングの制御 | TsgcAIChat | MaxTokens、Temperature、TopP。後ろの 2 つを未設定のままにするとプロバイダーの既定値が適用されます。 |
| 音声認識 | TsgcAIOpenAIChatBot、TsgcAIOpenAITranslator | Whisper による文字起こしと翻訳。利用前にテキストを確認できるイベントがあります。 |
| 検索拡張による回答 | TsgcAIOpenAIChatBot | Embeddings コンポーネントを接続すると、モデル呼び出しの前に取得したコンテキストが追加されます。 |
| アシスタント、スレッド、ラン | TsgcAIOpenAIAssistant | CreateAssistant、CreateThread、CreateMessageText、CreateRun、CreateRunAndWait。 |
| File Search と Code Interpreter | TsgcAIOpenAIAssistant | AssistantOptions.Tools と、自社ドキュメントを追加する UploadVectorStoreFile を使います。 |
| 関数呼び出し | TsgcAIOpenAIAssistant | Tools.Functions と OnFunctionCall イベントを使います。 |
AI クライアントがツール、プロンプト、リソースに到達するために使うプロトコルの、両側を提供します。
| 機能 | クライアント | サーバー | 備考 |
|---|---|---|---|
| HTTP JSON-RPC トランスポート | aimcptrHttp | TransportOptions.Http | リクエスト 1 回にレスポンス 1 回で、接続は閉じられます。 |
| HTTP Streamable トランスポート | aimcptrHttpStreamable | TransportOptions.HttpStreamable | キープアライブと SSE ストリーム。通知とサーバー発のリクエストはこれを通じて配信されます。 |
| stdio トランスポート | aimcptrStdio | 独立した stdio ホスト | クライアントがローカルのサブプロセスを起動します。サーバー側の stdio は、パレットコンポーネントではなく専用のホストクラスが提供します。 |
| ハンドシェイク | Initialize | OnMCPInitialize | 機能のネゴシエーションとセッション ID の割り当てを行います。 |
| セッション | Session、HeartBeat | OnMCPSessionNew、OnMCPSessionEnd、SessionTimeout | アイドルセッションはサーバー側で期限切れになります。クライアントは定期的な ping で維持できます。 |
| ツール | ListTools、RequestTool | Tools、OnMCPRequestTool | 一覧表示と呼び出しを行います。サーバーはイベントを発生させ、そこで自分のコードが処理します。 |
| プロンプト | ListPrompts、RequestPrompt | Prompts、OnMCPRequestPrompt | ツールと同じパターンです。 |
| リソース | ListResources、RequestResource、ListResourceTemplates | Resources、ResourceTemplates、OnMCPRequestResource | 一覧系はページング用のカーソルを受け付けます。 |
| リソースのサブスクリプション | SubscribeResource、UnsubscribeResource | SendNotificationResourcesUpdated | リソースを追跡し、変更時に通知を受け取れます。 |
| list-changed 通知 | 受信 | SendNotificationToolsListChanged と、プロンプトおよびリソースの同等メソッド | ストリーミングのトランスポートが必要です。 |
| ルート | OnMCPListRoots | RequestRootsList | サーバーが、利用可能なファイルシステムのルートをクライアントに問い合わせます。 |
| サンプリング | OnMCPSamplingCreateMessage | RequestSamplingCreateMessage | サーバーがクライアント側のモデルに補完を要求します。 |
| エリシテーション | OnMCPElicitationCreate | RequestElicitationCreate | サーバーがクライアント経由でユーザーに入力を求めます。 |
| 補完 | Complete | 対応済み | ツールとプロンプトの引数値を補完します。 |
| ログ | SetLoggingLevel | SendLogMessage | クライアントが指定したレベルで構造化ログメッセージを扱います。 |
| 認証 | API キー、カスタムヘッダー、OAuth 2.0 | API キー、カスタムヘッダー、OAuth 2.0 | 両側とも MCPOptions.AuthenticationOptions で設定します。 |
| 認可サーバーを内蔵 | — | ✓ | RFC 8414 と RFC 9728 に沿った、動的クライアント登録、同意画面、PKCE、リフレッシュトークンに対応します。 |
| Origin の検証 | — | HttpStreamable.ValidateOrigin | セッションを、作成時の Origin ヘッダーに固定します。 |
自社ドキュメントをベクトルに変換し、ローカルまたはマネージドのインデックスに保存して、質問ごとにコンテキストを取得します。
| 機能 | ファイルストア | Pinecone | 備考 |
|---|---|---|---|
| 埋め込みの生成 | ✓ | ✓ | TsgcAIOpenAIEmbeddings.CreateEmbeddings と CreateEmbeddingsFromFile。 |
| チャンク分割 | ✓ | ✓ | EmbeddingsOptions.ChunkSize。既定値は 4096 文字です。 |
| 埋め込みモデル | ✓ | ✓ | EmbeddingsOptions.Model。既定値は text-embedding-3-small です。 |
| バッチ upsert | クローズ時に書き込み | 1 回の REST upsert | どちらのストアでも BeginAddData、AddData、EndAddData を使います。 |
| 最近傍クエリ | QueryData | QueryData | 最も近いベクトルに対応する保存済みの元テキストを返します。 |
| プロンプト用のコンテキスト取得 | ✓ | ✓ | GetEmbedding(aInput, aParams) がクエリを埋め込みに変換し、最も一致したものを返します。 |
| 進捗と中断 | ✓ | ✓ | OnCreateEmbeddingsStart、継続フラグ付きの OnCreateEmbeddingsProgress、OnCreateEmbeddingsStop。 |
| チャンクごとのフック | ✓ | ✓ | OnBeforeCreateEmbedding でリクエストを却下でき、OnAfterCreateEmbedding がリクエストとレスポンスを通知します。 |
| オフラインでの動作 | ✓ | — | ファイルストアはクエリ時にネットワークを必要としません。埋め込みの生成では引き続きプロバイダーを呼び出します。 |
| 複数マシンでの共有 | — | ✓ | Pinecone のインデックスは、あるアプリケーションが書き込み、別のアプリケーションが読み取れます。 |
| 設定 | VectorFileOptions.InputFilename、VectorFilename | PineconeOptions、PineconeIndexOptions | ファイル 2 つ、または API キーとインデックス、プロジェクト ID です。 |
| id の制御 | OnBeginAddData | OnBeginAddData | 開始 id と id ラベルを設定すれば、複数の取り込みで 1 つのストアを共有できます。 |
3 つとも同じインターフェースを共有しているため、チャットボット、翻訳、アシスタントはいずれも受け入れます。
| 機能 | システム | Amazon | |
|---|---|---|---|
| 文字列の読み上げ | TextToSpeech | TextToSpeech | TextToSpeech |
| 認証情報の要否 | 不要 | サービスアカウントの JSON | AWS のアクセスキーとシークレット |
| ネットワークの要否 | 不要 | 必要 | 必要 |
| 文字数あたりの費用 | なし | プロバイダーの料金 | プロバイダーの料金 |
| 音声の選択 | マシンの音声設定 | Language、VoiceId、Gender | Engine、VoiceId |
| 出力形式 | 直接再生 | AudioEncoding、FileName | OutputFormat、FileName |
| SSML | — | — | TextType |
| オーディオプレーヤーの要否 | 不要 | 必要(AudioPlayer) | 必要(AudioPlayer) |
| 認証の処理 | — | 署名付き JWT とキャッシュされたアクセストークン | AWS Signature Version 4 |
| 開始・終了イベント | ✓ | ✓ | ✓ |
特性の異なる 2 つのレコーダーと、音声対話のループを閉じるプレーヤーです。
| 機能 | レコーダー(MCI) | レコーダー(Wave) | プレーヤー(MCI) |
|---|---|---|---|
| 使用する Windows API | MCI | waveIn | MCI |
| 出力 | WAV ファイル | ライブストリーム | ファイルを再生 |
| サンプル形式の制御 | 固定(22050 Hz、16 ビットモノラル) | SampleRate、Channels、BitsPerSample | — |
| 無音検出 | MCIOptions.LevelMin、StopAfter | WaveOptions.LevelMin、StopAfter、WaitForAudio | — |
| 手動と自動 | RecorderOptions.Mode: camoManual または camoAuto | Start と Stop | Play |
| 複数インスタンス | ✓(コンポーネントごとに固有の MCI エイリアス) | ✓ | ✓ |
| 再生終了の通知 | — | — | ✓(タイマーではなく実際の MCI 通知) |
| 音声コンポーネントでの利用 | 既定のレコーダー | ストリーミング用途 | クラウド音声コンポーネントの出力先 |
サポート範囲を正確に示します。
| 項目 | 内容 |
|---|---|
| オペレーティングシステム | Windows のみです。SGC_AI は MSWINDOWS でのみ定義されており、SGC AI パレットの登録全体を制御しています。AI コンポーネントに macOS、Linux、iOS、Android 向けのビルドはなく、唯一の例外が下の MCP の 2 コンポーネントです。 |
| Delphi | Delphi 7 から RAD Studio 13 Florence まで。VCL と FireMonkey に対応し、Win32 と Win64 が対象です。 |
| C++ Builder | C++ Builder 10.1 Berlin から C++ Builder 13 まで。生成されたヘッダー経由で利用し、Win32 と Win64 が対象です。 |
| AI パレットのコンポーネント | 15 コンポーネントのうち 13 が [ComponentPlatforms(pidWin32 or pidWin64)] と宣言されています。チャット、エージェント、埋め込み、ベクトル、音声、オーディオの各コンポーネントは Win32 と Win64 のみです。 |
| MCP コンポーネント | 例外です。TsgcWSAPIServer_MCP と TsgcWSAPIClient_MCP は [ComponentPlatforms(0)] と宣言されているためプラットフォームの制限がなく、sgc の HTTP スタックが動作する環境であれば、Windows、macOS、Linux、iOS、Android のいずれでも動作します。 |
| 同梱ランタイム | sgcWebSockets Core ランタイムが含まれるため、HTTP クライアントスタック、JSON レイヤー、MCP サーバー API の背後にある HTTP サーバーに別途ライセンスは不要です。 |
| TLS | すべてのプロバイダー呼び出しで、sgcWebSockets の設定に従い OpenSSL または SChannel を使用します。 |
| ソースコード | すべての有償プランに完全な Object Pascal ソースが付属します。 |
| 再配布 | ビルドしたバイナリはロイヤリティフリーで、座席単位やサーバー単位のランタイム料金はありません。 |