Delphi、C++ Builder 和 .NET sgcUI 的一部分

sgcChat,适用于 Delphi、C++ Builder 和 .NET 的 AI 助手与团队聊天控件

在您自己的应用程序中加入聊天功能。sgcChat 会在 AI 助手的答案流式到达时即时显示,支持 Markdown、代码块和工具调用,并通过在线状态、正在输入、已读回执和表情回应把用户彼此连接起来。同样的控件可运行在 VCL、FireMonkey、WinForms、WPF 和 Avalonia 上,Markdown 查看器也可以单独使用。

流式回答的 AI 助手基于 WebSocket 的团队聊天VCL、FMX、WinForms、WPF 和 Avalonia包含在 sgcUI Enterprise 中
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 助手

流式回答、停止和重新生成

AI 的答案是一小段一小段到达的,用户希望在答案生成的同时就能阅读。TsgcChatAI 把会话绑定到提供程序,发送历史记录和系统提示词,并在每一段到达时立即以格式化的 Markdown 显示。提供程序运行在工作线程中,窗口因此保持响应,聊天面板还为每条答案提供停止、重新生成以及编辑后重发。

  • 答案生成时以流式 Markdown 显示,并带有插入符
  • 通过消息操作停止、重新生成,以及编辑后重发
  • 工具调用卡片显示工具名称、参数、结果,以及运行中、已完成或出错状态
  • 会话历史记录可保存为 JSON 并从 JSON 加载

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 事件使用您自己的后端

团队聊天

应用程序用户之间的聊天,运行在您自己的服务器上。

团队聊天

在线状态、正在输入、回执和表情回应

服务台、现场团队和内部工具需要一种用户本来就会用的聊天。聊天视图会把每位作者的消息归在一起,并显示头像和名称,显示谁在线、离开或忙碌,显示谁正在输入,并把每条消息标记为已发送、已送达或已读。用户可以回复消息、对消息做出表情回应、编辑或删除自己的消息,以及发送附件。

  • 带首字母或图片的头像,以及在线状态圆点
  • 正在输入提示和已读回执,群组会话同样支持
  • 表情回应、回复、已编辑和已删除的消息
  • 附件,带图片缩略图和文件标签

团队聊天

适用于任意后端的传输层,以及 WebSocket 桥接

聊天不依赖于某一台服务器。TsgcChatEventTransport 会把每条消息、输入状态变化、回执和表情回应以有文档说明的 JSON 帧交给您的代码。借助 sgcWebSockets,TsgcChatTransport_WebSocket 负责连接客户端,TsgcChatServer_WebSocket 则在同一频道的客户端之间转发消息,维护每位用户的在线状态,并把最近的消息发送给之后加入的用户。

  • 事件传输层,采用 JSON 传输格式,对接您自己的后端
  • 基于 sgcWebSockets 构建的 WebSocket 客户端和转发服务器
  • 消息在主线程中投递,支持确认和重试

Markdown 查看器

聊天气泡背后的引擎,也可作为独立控件使用。

Markdown 查看器

带代码块和复制按钮的 Markdown

发行说明、帮助文本和 AI 答案通常用 Markdown 编写。TsgcVCLMarkdownViewer 和 TsgcFMXMarkdownViewer 可显示标题、强调、引用、列表、任务列表、表格、链接和图片,并为 Pascal、C#、C++、JavaScript、Python、JSON、SQL 等语言的代码块做语法高亮。AppendMarkdown 会在文本到达时追加内容,用户可以选择并复制文本或整个代码块。

  • 带语法高亮和复制按钮的代码块
  • 任务列表、表格、引用和图片
  • 通过 AppendMarkdown 和 Flush 实现流式显示
  • 选择、Ctrl+C 以及 OnLinkClick 事件

外观与覆盖范围

主题、语言、辅助技术,以及无需窗口的输出。

外观与覆盖范围

主题、从右到左和 12 种语言

聊天遵循 sgcUI 的浅色、深色和 Fluent 主题,因此与应用程序的其余部分保持一致。阿拉伯语或希伯来语的会话会镜像显示,自己的消息位于左侧。控件文本已翻译为英语、西班牙语、德语、法语、意大利语、葡萄牙语(巴西)、荷兰语、波兰语、土耳其语、日语、韩语和中文。

  • 浅色、深色和 Fluent 主题
  • 从右到左的会话
  • 控件文本提供 12 种语言

外观与覆盖范围

无障碍访问和无界面输出

在 Windows 上,聊天视图对屏幕阅读器呈现为消息列表,包含每条消息的作者和时间,Markdown 查看器也会公开其文本。会话模型、Markdown 文档和视图不依赖 VCL 或 FireMonkey,因此服务可以无需窗口地把会话或 Markdown 文档渲染为 SVG 或 PNG,在 Linux64 上同样如此。

  • 聊天视图、Markdown 查看器和输入框均支持 UI Automation
  • 会话或 Markdown 文档的 SVG 和 PNG 输出
  • 与框架无关的单元,可用于 Windows,以及 Delphi 10.2 起的 Linux64

谁在用 sgcChat 构建应用

业务应用中的 AI 助手

ERP、CRM 和工程类应用加入一个助手,回答有关屏幕上数据的问题。助手以流式方式给出带代码和表格的答案,调用您应用程序的工具并把每次调用显示为一张卡片,用户可随时停止或重新生成答案。

  • 流式 Markdown
  • 工具调用卡片
  • 任意 AI 提供程序
运行 AIAssistant 演示

运行在您自己服务器上的团队聊天

服务台、调度和现场服务类应用让用户无需第三方服务即可相互交流。WebSocket 转发服务运行在您自己的服务中,客户端显示在线状态、正在输入、已读回执和表情回应。

  • WebSocket 转发服务器
  • 在线状态和回执
  • 附件
运行 TeamChat 演示

桌面应用中的 Markdown 内容

以 Markdown 编写的发行说明、帮助页面和消息,以与应用程序其余部分相同的外观显示,其中的高亮代码用户一键即可复制。

  • Markdown 查看器
  • 代码高亮
  • 主题
运行 MarkdownViewer 演示

将聊天连接到 AI 提供程序

通过 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;

运行 sgcChat 演示

演示项目随适用于 Delphi 和 C++ Builder 的 sgcUI 试用版一同安装。.NET 演示随 Registered 版 .NET 下载包提供。下方图片由 sgcChat 的无界面输出渲染。

带有工具调用卡片和高亮 Pascal 代码块的 AI 助手会话

AIAssistant

绑定到 AI 提供程序的聊天面板:流式回答、停止、重新生成、编辑后重发以及工具调用卡片。提供 VCL 和 FireMonkey 版本,以及 C++ Builder 版本。

深色 Fluent 主题下的同一个 AI 助手会话

深色主题

深色 Fluent 主题下的同一个会话。聊天遵循 sgcUI 的浅色、深色和 Fluent 主题。

带有头像、在线状态、表情回应、已读回执和正在输入提示的团队聊天

TeamChat 和 TeamChatServer

基于 sgcWebSockets 的 VCL 客户端和控制台转发服务器:在线状态、正在输入、已读回执、表情回应、回复和附件。

带有标题、列表、引用、表格和代码块的 Markdown 查看器

MarkdownViewer

单独使用的 Markdown 查看器,带有模拟的流式回答。提供 VCL 和 FireMonkey 版本,以及 C++ Builder 版本。

深色 Fluent 主题下的 Markdown 查看器

.NET 演示

适用于 WinForms、WPF 和 Avalonia 的 MarkdownViewer、AIAssistant 和 TeamChat,以及 TeamChatServer 转发服务器。

sgcChat 包含在哪些版本中

sgcChat 包含在 sgcUI Enterprise 和 All-Access 套装中。它依赖 sgcUICore 和 sgcRichEdit,二者均已包含,安装程序会随之一并安装 sgcRichEdit 和 sgcPDF。没有免费的 Community 版。

sgcUI Enterprise

包含所有 sgcUI 产品,其中有 sgcChat、sgcRichEdit 和 sgcPDF,起价 €699。

查看 Enterprise →

All-Access

包含 eSeGeCe 的所有产品,其中有 sgcUI Enterprise 和 sgcWebSockets,因此 sgcChat 的 AI 提供程序和 WebSocket 桥接开箱即用。

查看 All-Access →

支持的框架与平台

sgcChat 中的组件

VCL

TsgcVCLChatPanel、TsgcVCLChatView、TsgcVCLChatInput 和 TsgcVCLMarkdownViewer。

FireMonkey

TsgcFMXChatPanel、TsgcFMXChatView、TsgcFMXChatInput 和 TsgcFMXMarkdownViewer。

.NET

适用于 WinForms、WPF 和 Avalonia 的同款控件,例如 TsgcWinFormsChatPanel、TsgcWpfChatPanel 和 TsgcAvaloniaChatPanel。

AI 与传输层

TsgcChatAI 及其提供程序、TsgcChatEventTransport,以及带有 TsgcChatTransport_WebSocket 和 TsgcChatServer_WebSocket 的 sgcWebSockets 桥接。

目标组件版本和平台
Delphi 7 至 13VCL 控件、模型、AI 和传输层单元Win32,以及 Delphi XE2 起的 Win64
C++ Builder 2007 至 13相同的类生成的 .hpp 头文件和静态库
FireMonkeyTsgcFMXChatPanel 及其他 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 和 WPFTsgcWinFormsChatPanel, TsgcWpfChatPanelWindows 上的 .NET Framework 4.7.2、.NET 8、9 和 10
AvaloniaTsgcAvaloniaChatPanel.NET 8、9 和 10

常见问题解答

使用 sgcWebSockets 时,TsgcChatAIProvider_AIChat 使用 TsgcAIChat,它支持 OpenAI、Anthropic、Gemini、DeepSeek、Ollama、Grok 和 Mistral。不使用 sgcWebSockets 时,可通过 TsgcChatAIProvider_UICore 使用 sgcUI 的 AI 提供程序层,或者在 TsgcChatAIEventProvider 的 OnStream 事件中从任意后端进行流式传输。

仅桥接部分需要。WebSocket 传输层和转发服务器需要 sgcWebSockets,TsgcChatAIProvider_AIChat 需要其 AI 组件(Enterprise 版或 AI 包)。Markdown 查看器、聊天控件、AI 绑定和事件传输层无需它即可工作。

没有。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 价格页面。

sgcChat 帮助

在线帮助

sgcUI 帮助:Delphi、C++ Builder 和 .NET.

PDF 手册

Delphi、C++ Builder 和 .NET,涵盖所有 sgcUI 产品。

3,000+开发者
20+年
761+组件
30+API 集成
5平台
30 天退款保证不满意?可在购买后 30 天内申请全额退款。 查看退款政策

立即试用 sgcChat

sgcUI 试用版包含 sgcChat、sgcRichEdit 和所有其他 sgcUI 产品。