業務アプリケーションに組み込む AI アシスタント
ERP、CRM、エンジニアリングのアプリケーションに、画面上のデータについて質問に答えるアシスタントを追加できます。アシスタントはコードや表を含む回答をストリーミングし、アプリケーションのツールを呼び出して各呼び出しをカードとして表示します。ユーザーはいつでも回答を停止したり再生成したりできます。
- ストリーミング Markdown
- ツール呼び出しカード
- あらゆる AI プロバイダー
自社のアプリケーションの中に、チャットを組み込めます。sgcChat は AI アシスタントの回答を、Markdown、コードブロック、ツール呼び出しを含めて生成されるそばから表示し、プレゼンス、入力中表示、既読通知、リアクションでユーザー同士をつなぎます。同じコントロールが VCL、FireMonkey、WinForms、WPF、Avalonia で動作し、Markdown ビューアは単体でも利用できます。
Result.AI := TsgcChatAI.Create(Result);
Result.AI.Conversation := Result.Conversation;
Result.AI.AssistantUserId := 'bot';
Result.AI.SystemPrompt := 'You are a helpful assistant.';
Result.AI.Provider := Result.Provider;
// the panel sends, stops, regenerates and edits through the binding
Result.Panel.AI := Result.AI;AI チャットアプリケーションでおなじみの操作を備えた、あらゆる言語モデルとのチャットです。
AI アシスタント
AI の回答は小さな断片として届き、ユーザーは書かれていく途中から読みたいと考えます。TsgcChatAI は会話をプロバイダーに結び付け、履歴とシステムプロンプトを送信し、届いた断片を整形済みの Markdown としてすぐに表示します。プロバイダーはワーカースレッドで動作するため、ウィンドウは応答性を保ち、チャットパネルはすべての回答に対して停止、再生成、編集して再送信を提供します。
AI アシスタント
sgcChat は特定の AI ベンダーに縛られません。TsgcChatAIProvider_AIChat は sgcWebSockets の TsgcAIChat に接続し、OpenAI、Anthropic、Gemini、DeepSeek、Ollama、Grok、Mistral と通信します。TsgcChatAIProvider_UICore はすべての sgcUI 製品が共有する AI プロバイダー層を使用し、TsgcChatAIEventProvider を使うと、独自のバックエンドからのストリーミングをイベントで処理できます。
TsgcChatAIProvider_AIChat による sgcWebSockets の AI プロバイダーTsgcChatAIProvider_UICore による sgcUI の AI プロバイダー層OnStream イベントによる独自のバックエンドアプリケーションのユーザー同士が、自社のサーバー上で行うチャットです。
チームチャット
サポートデスク、現場チーム、社内ツールには、ユーザーが使い慣れたチャットが必要です。チャットビューは、投稿者ごとにメッセージをアバターと名前でまとめ、オンライン、離席中、取り込み中の状態と入力中のユーザーを表示し、各メッセージを送信済み、配信済み、既読として示します。ユーザーはメッセージへの返信やリアクション、自分のメッセージの編集や削除、添付ファイルの送信ができます。
チームチャット
チャットは特定のサーバーに依存しません。TsgcChatEventTransport は、すべてのメッセージ、入力状態の変化、既読通知、リアクションを、文書化された JSON フレームとしてコードに渡します。sgcWebSockets を使うと、TsgcChatTransport_WebSocket がクライアントを接続し、TsgcChatServer_WebSocket がチャンネル内のクライアント間でメッセージを中継し、各ユーザーのプレゼンスを管理して、後から参加したユーザーに直近のメッセージを送信します。
チャットの吹き出しを支えるエンジンで、単独のコントロールとしても利用できます。
Markdown ビューア
リリースノート、ヘルプテキスト、AI の回答は、Markdown で書かれることがよくあります。TsgcVCLMarkdownViewer と TsgcFMXMarkdownViewer は、見出し、強調、引用、リスト、タスクリスト、表、リンク、画像を表示し、Pascal、C#、C++、JavaScript、Python、JSON、SQL などのコードブロックをハイライトします。AppendMarkdown は届いたテキストを順次追加し、ユーザーはテキストやコードブロック全体を選択してコピーできます。
AppendMarkdown と Flush によるストリーミングOnLinkClick イベントテーマ、言語、支援技術、ウィンドウなしの出力に対応します。
外観と対応範囲
チャットは sgcUI のライト、ダーク、Fluent テーマに従うため、アプリケーションの他の部分となじみます。アラビア語やヘブライ語の会話は左右が反転し、自分のメッセージが左側に表示されます。コントロールのテキストは、英語、スペイン語、ドイツ語、フランス語、イタリア語、ポルトガル語 (ブラジル)、オランダ語、ポーランド語、トルコ語、日本語、韓国語、中国語に翻訳されています。
外観と対応範囲
Windows では、チャットビューがスクリーンリーダー向けのメッセージ一覧として公開され、各メッセージの投稿者と時刻を読み上げます。Markdown ビューアもテキストを公開します。会話モデル、Markdown ドキュメント、ビューは VCL や FireMonkey に依存しないため、サービスはウィンドウなしで、Linux64 でも、会話や Markdown ドキュメントを SVG や PNG にレンダリングできます。
ERP、CRM、エンジニアリングのアプリケーションに、画面上のデータについて質問に答えるアシスタントを追加できます。アシスタントはコードや表を含む回答をストリーミングし、アプリケーションのツールを呼び出して各呼び出しをカードとして表示します。ユーザーはいつでも回答を停止したり再生成したりできます。
サポートデスク、配車、フィールドサービスのアプリケーションでは、サードパーティのサービスを使わずに、ユーザー同士が会話できます。WebSocket の中継サーバーは自社のサービス内で動作し、クライアントはプレゼンス、入力中表示、既読通知、リアクションを表示します。
Markdown で書かれたリリースノート、ヘルプページ、メッセージを、アプリケーションの他の部分と同じ外観で表示します。ハイライトされたコードは、ワンクリックでコピーできます。
sgcWebSockets 経由で OpenAI を使って回答するか、独自のチームチャットサーバーを実行します。
TsgcChatAIProvider_AIChat は、TsgcChatAI バインディングを sgcWebSockets の TsgcAIChat に接続します。Provider を変更すると、Anthropic、Gemini、DeepSeek、Ollama、Grok、Mistral を利用できます。
uses
SysUtils, Classes,
// sgcWebSockets
sgcAI, sgcAI_Chat,
// sgc
sgcChat_AI, sgcChatWS_AI;
procedure UseOpenAI(aAI: TsgcChatAI; const aApiKey: string);
var
oChat: TsgcAIChat;
oProvider: TsgcChatAIProvider_AIChat;
begin
oChat := TsgcAIChat.Create(aAI.Owner);
oChat.Provider := aicpOpenAI;
oChat.ChatOptions.ApiKey := aApiKey;
oChat.ChatOptions.Model := 'gpt-4o-mini';
oProvider := TsgcChatAIProvider_AIChat.Create(aAI.Owner);
oProvider.Chat := oChat;
aAI.Model := oChat.ChatOptions.Model;
aAI.Provider := oProvider;
end;中継サーバーは、サービスまたはコンソールプログラムで動作します。各クライアントは TsgcChatTransport_WebSocket でチャンネルに接続します。
// the relay, in a service or a console program
function CreateRelay(aOwner: TComponent; aPort: Integer)
: TsgcChatServer_WebSocket;
var
oServer: TsgcWebSocketServer;
begin
oServer := TsgcWebSocketServer.Create(aOwner);
oServer.Port := aPort;
// the relay needs no main thread
oServer.NotifyEvents := neNoSync;
Result := TsgcChatServer_WebSocket.Create(aOwner);
Result.Server := oServer;
// the last 100 messages of every channel go to late joiners
Result.HistoryCount := 100;
oServer.Active := True;
end;.NET のコントロールも同じ名前を使用します。このフォームは TsgcWinFormsChatPanel をホストしています。WPF と Avalonia のパネルも同じように動作します。
FConversation = new TsgcChatConversation();
FConversation.Users.Add("me", "You");
FConversation.Users.Add("bot", "Assistant");
FConversation.CurrentUserId = "me";
FPanel = new TsgcWinFormsChatPanel();
FPanel.Dock = DockStyle.Fill;
FPanel.Conversation = FConversation;
FPanel.Title = "Assistant";
FPanel.HeaderUserId = "bot";
Controls.Add(FPanel);
FProvider = new TsgcChatAIEventProvider();
FProvider.OnStream += DoStream;
FAI = new TsgcChatAI();
FAI.Conversation = FConversation;
FAI.AssistantUserId = "bot";
FAI.SystemPrompt = "You are a helpful assistant.";
FAI.Provider = FProvider;
// the panel sends, stops, regenerates and edits through the binding
FPanel.AI = FAI;デモプロジェクトは、Delphi と C++ Builder 向け sgcUI 体験版と一緒にインストールされます。.NET のデモは、Registered 版の .NET ダウンロードに含まれています。以下の画像は、sgcChat のヘッドレス出力でレンダリングしたものです。
AI プロバイダーにバインドしたチャットパネルです。ストリーミング回答、停止、再生成、編集して再送信、ツール呼び出しカードに対応します。VCL と FireMonkey、および C++ Builder 版があります。
ダークの Fluent テーマで表示した同じ会話です。チャットは sgcUI のライト、ダーク、Fluent テーマに従います。
VCL クライアントと、sgcWebSockets 上のコンソール中継サーバーです。プレゼンス、入力中表示、既読通知、リアクション、返信、添付ファイルに対応します。
単体で動作する Markdown ビューアです。ストリーミング回答をシミュレートします。VCL と FireMonkey、および C++ Builder 版があります。
WinForms、WPF、Avalonia 向けの MarkdownViewer、AIAssistant、TeamChat と、TeamChatServer 中継サーバーです。
sgcChat は sgcUI Enterprise とAll-Access バンドルに含まれています。sgcUICore と sgcRichEdit が必要で、どちらも含まれており、インストーラーは sgcRichEdit と sgcPDF を一緒にインストールします。無料の Community 版はありません。
sgcUI Enterprise と sgcWebSockets を含む、eSeGeCe のすべての製品が利用できるため、sgcChat の AI プロバイダーと WebSocket ブリッジをそのまま使えます。
All-Access を見る →TsgcVCLChatPanel、TsgcVCLChatView、TsgcVCLChatInput、TsgcVCLMarkdownViewer。
TsgcFMXChatPanel、TsgcFMXChatView、TsgcFMXChatInput、TsgcFMXMarkdownViewer。
WinForms、WPF、Avalonia 向けの同じコントロール。TsgcWinFormsChatPanel、TsgcWpfChatPanel、TsgcAvaloniaChatPanel など。
プロバイダーを備えた TsgcChatAI、TsgcChatEventTransport、そして TsgcChatTransport_WebSocket と TsgcChatServer_WebSocket による sgcWebSockets ブリッジ。
| ターゲット | コンポーネント | バージョンとプラットフォーム |
|---|---|---|
| Delphi 7 から 13 | VCL コントロール、モデル、AI とトランスポートのユニット | Win32、および Delphi XE2 以降の Win64 |
| C++ Builder 2007 から 13 | 同じクラス | 生成された .hpp ヘッダーと静的ライブラリ |
| FireMonkey | TsgcFMXChatPanel とその他の FireMonkey コントロール | Delphi XE6 以降 |
| Linux64 | モデル、Markdown ドキュメント、ビュー、AI とトランスポートのコア、SVG と PNG 出力 | Delphi 10.2 以降、ヘッドレス |
| .NET コアライブラリ | esegece.sgcChat | .NET Standard 2.0、.NET Framework 4.7.2、.NET 6、8、9、10 |
| WinForms と WPF | TsgcWinFormsChatPanel、TsgcWpfChatPanel | Windows 上の .NET Framework 4.7.2、.NET 8、9、10 |
| Avalonia | TsgcAvaloniaChatPanel | .NET 8、9、10 |
sgcWebSockets を使う場合、TsgcChatAIProvider_AIChat は TsgcAIChat を使用し、OpenAI、Anthropic、Gemini、DeepSeek、Ollama、Grok、Mistral に対応します。使わない場合は、TsgcChatAIProvider_UICore 経由で sgcUI の AI プロバイダー層を使うか、TsgcChatAIEventProvider の OnStream イベントで任意のバックエンドからストリーミングしてください。
ブリッジを使う場合だけです。WebSocket トランスポートと中継サーバーには sgcWebSockets が必要で、TsgcChatAIProvider_AIChat には、その AI コンポーネント (Enterprise エディションまたは AI パック) が必要です。Markdown ビューア、チャットのコントロール、AI バインディング、イベントトランスポートは、sgcWebSockets なしで動作します。
ありません。sgcChat は sgcUI Enterprise と All-Access に含まれています。.NET パッケージは Registered 版のみで、nuget.org では公開されていません。sgcUI 体験版でお試しください。
はい。TsgcVCLMarkdownViewer と TsgcFMXMarkdownViewer は単独のコントロールです。Markdown を設定するとテキストを表示し、AppendMarkdown を呼び出すと、届いたテキストを順次追加できます。
フレームワーク非依存のユニットは、Delphi 10.2 以降の Linux64 でコンパイルできます。会話モデル、Markdown ドキュメント、ビュー、AI とトランスポートのコアで、SVG と PNG 出力に対応します。Linux 向けのコントロールはありません。
はい。sgcUI Enterprise のライセンスには、ソースコード一式と 1 年間のアップデートが含まれます。sgcUI の価格ページをご覧ください。
Delphi、C++ Builder、.NET 向けの sgcUI ヘルプです。
Delphi、C++ Builder、.NET。すべての sgcUI 製品を網羅しています。