sgcChat 功能矩阵
sgcChat 的全部功能,按任务分组。sgcChat 属于 sgcUI Enterprise 和 All-Access,每个许可证都包含所有功能,没有 Community 版本。
sgcChat 的全部功能,按任务分组。sgcChat 属于 sgcUI Enterprise 和 All-Access,每个许可证都包含所有功能,没有 Community 版本。
4 个控件
6 项功能
6 项功能
6 项功能
6 项功能
4 项功能
SVG 和 PNG
Delphi、C++ Builder 和 .NET
| 控件 | 详情 |
|---|---|
| 聊天面板 | TsgcVCLChatPanel and TsgcFMXChatPanel 把带有标题、头像和在线状态的页眉、聊天视图和聊天输入框组合在一起。为助手设置 AI,或为团队聊天设置 Transport,面板即通过它发送、停止、重新生成、编辑、删除和做出表情回应。 |
| 聊天视图 | TsgcVCLChatView and TsgcFMXChatView 把 TsgcChatConversation 显示为消息气泡。 |
| 聊天输入框 | TsgcVCLChatInput and TsgcFMXChatInput:多行输入框,带有附件按钮和发送按钮,在答案流式生成期间发送按钮会变成停止按钮。 |
| Markdown 查看器 | TsgcVCLMarkdownViewer and TsgcFMXMarkdownViewer 可单独显示 Markdown,无需会话。 |
| 功能 | 详情 |
|---|---|
| Markdown | 标题、强调、行内代码、引用、嵌套列表、任务列表、链接、图片和表格,由 sgcRichEdit 的 Markdown 引擎解析。 |
| 代码块 | 为 Pascal、C#、C++、C、JavaScript、TypeScript、Python、JSON、SQL、XML、HTML 和 Bash 提供语法高亮,每个代码块都带有复制按钮。 |
| 流式显示 | AppendMarkdown 在文本到达时追加内容,Flush 立即显示待处理的文本。尚未闭合的代码块或表格会随着增长而显示。 |
| 选择和剪贴板 | 可用鼠标或键盘选择,用 Ctrl+C 复制,上下文菜单提供复制和全选。 |
| 链接和图片 | OnLinkClick 事件决定链接打开什么内容;OnGetImage 事件提供图片。 |
| 主题 | 文本、链接、代码块和引用的颜色来自 sgcUI 主题。 |
| 功能 | 详情 |
|---|---|
| 消息气泡 | 自己的消息在一侧,其他人的消息在另一侧,带有头像、作者名称、时间、状态对勾和日期分隔线。同一作者的连续消息会被归为一组。 |
| 选项 | ShowAvatars, ShowTimestamps, ShowStatus, GroupMessages, ShowDateSeparators 和 BubbleMaxWidthPercent。 |
| 消息操作 | 复制、回复、编辑、重新生成和删除,通过 OnMessageAction 事件报告。 |
| 大型会话 | 仅测量可见的消息,并缓存每条消息的布局,因此很长的会话也能流畅滚动。 |
| 滚动 | 答案流式生成时视图停留在底部,除非用户已向上滚动;此时会出现一个提示标签,告知有新消息到达。 |
| 输入 | Enter 发送,Shift+Enter 换行,可配置。待发送的附件以标签显示,输入框为空时显示占位文本。 |
| 功能 | 详情 |
|---|---|
| AI 绑定 | TsgcChatAI 把会话连接到提供程序,提供 SystemPrompt, Model, MaxHistory 以及 OnBeforeSend、OnAnswer、OnError 和 OnToolCall 事件。 |
| 流式显示 | 提供程序运行在工作线程中;答案的每一段都在主线程中以格式化的 Markdown 显示。 |
| 停止、重新生成、编辑后重发 | Stop 结束正在生成的答案,Regenerate 重新提问,EditAndResend 修改问题并从该处重新提问。 |
| 工具调用 | 工具调用卡片显示工具名称、参数、结果,以及运行中、已完成或出错状态;用户可展开和折叠每张卡片。 |
| 提供程序 | 基于 sgcWebSockets 的 TsgcAIChat(OpenAI、Anthropic、Gemini、DeepSeek、Ollama、Grok 和 Mistral)的 TsgcChatAIProvider_AIChat,基于 sgcUI AI 提供程序层的 TsgcChatAIProvider_UICore,以及用于您自己后端的 TsgcChatAIEventProvider。 |
| 历史记录 | SaveToJSON、LoadFromJSON、SaveToFile 和 LoadFromFile 可在多次会话之间保留会话内容。 |
| 功能 | 详情 |
|---|---|
| 用户和头像 | 每位用户都有名称、首字母或头像图片,以及一种颜色。 |
| 在线状态 | 在线、离开、忙碌和离线,显示为头像上和面板页眉中的圆点。 |
| 正在输入 | 带有用户名称的正在输入提示;停止发送输入状态变化的用户,会在 TypingTimeout 之后被清除。 |
| 已读回执 | 发送中、已发送、已送达、已读和失败状态,在群组会话中还显示有多少用户已读某条消息。 |
| 表情回应和回复 | 表情符号回应,每个表情符号带有计数,以及引用原始消息的回复。 |
| 附件、编辑和删除 | 图片缩略图和文件标签,已编辑的消息会标记为已编辑,以及已删除的消息。 |
| 功能 | 详情 |
|---|---|
| 事件传输层 | TsgcChatEventTransport 把消息、输入状态变化、回执、表情回应、在线状态、编辑和删除交给您的代码,适用于任意后端。 |
| 传输格式 | 每个事件对应一个有文档说明的 JSON 帧,支持确认、重试和重复检测;变更在主线程中应用到会话。 |
| WebSocket 客户端 | TsgcChatTransport_WebSocket 通过 sgcWebSockets 的 TsgcWebSocketClient 把会话连接到频道。 |
| 转发服务器 | TsgcChatServer_WebSocket 通过 TsgcWebSocketServer 在同一频道的客户端之间转发消息,维护每位用户的在线状态,并把最近的消息发送给之后加入的用户。 |
| 功能 | 详情 |
|---|---|
| 主题 | sgcUI 的浅色、深色和 Fluent 主题,与其他 sgcUI 产品共享。 |
| 从右到左 | 阿拉伯语和希伯来语的会话会镜像显示,自己的消息位于左侧。 |
| 本地化 | 控件文本提供 12 种语言:英语、西班牙语、德语、法语、意大利语、葡萄牙语(巴西)、荷兰语、波兰语、土耳其语、日语、韩语和中文。 |
| 无障碍访问 | 在 Windows 上,UI Automation 把聊天视图公开为带有作者和时间的消息列表,把 Markdown 查看器公开为带文本的文档,把输入框公开为编辑框。 |
| 功能 | 详情 |
|---|---|
| 无需窗口 | TsgcChatMarkdownDocument 和 TsgcChatViewCore 无需 VCL 或 FireMonkey 即可排版并绘制 Markdown 文档或会话。 |
| SVG 和 PNG | 在 sgcUI 的 SVG 画布或光栅画布上绘制,并保存为 SVG 或 PNG 文件。sgcChat 产品页面上的图片就是这样制作的。 |
| Linux64 | 与框架无关的单元可从 Delphi 10.2 起编译为 Linux64。 |
| 目标 | 组件 | 版本 |
|---|---|---|
| VCL | TsgcVCLChatPanel, TsgcVCLChatView, TsgcVCLChatInput, TsgcVCLMarkdownViewer | Delphi 7 至 13,C++ Builder 2007 至 13 |
| FireMonkey | TsgcFMXChatPanel, TsgcFMXChatView, TsgcFMXChatInput, TsgcFMXMarkdownViewer | Delphi 和 C++ Builder XE6 及更高版本 |
| Linux64 | 模型、Markdown 文档、视图、AI 和传输层核心、SVG 和 PNG 输出 | Delphi 10.2 及更高版本 |
| sgcWebSockets 桥接 | TsgcChatAIProvider_AIChat, TsgcChatTransport_WebSocket, TsgcChatServer_WebSocket | sgcWebSockets 支持的所有 Delphi 版本 |
| WinForms | TsgcWinFormsChatPanel 及其他 WinForms 控件 | Windows 上的 .NET Framework 4.7.2、.NET 8、9 和 10 |
| WPF | TsgcWpfChatPanel 及其他 WPF 控件 | Windows 上的 .NET Framework 4.7.2、.NET 8、9 和 10 |
| Avalonia | TsgcAvaloniaChatPanel 及其他 Avalonia 控件 | .NET 8、9 和 10 |
C# 移植版,类名和成员名与 Delphi 版相同。这些包仅限 Registered 用户,不在 nuget.org 上发布。
| 包 | 版本 | 内容 |
|---|---|---|
esegece.sgcChat | Registered | 会话模型、Markdown 文档、视图和输入框核心、AI 绑定、传输层和 SVG 输出 |
esegece.sgcChat.Rendering | Registered | 控件的渲染层和 PNG 输出 |
esegece.sgcChat.WinForms | Registered | Windows Forms 控件 |
esegece.sgcChat.Wpf | Registered | WPF 控件 |
esegece.sgcChat.Avalonia | Registered | Avalonia 控件 |
esegece.sgcChat.sgcWebSockets | Registered | 基于 sgcWebSockets .NET 的 AI 提供程序、WebSocket 传输层和转发服务器 |
sgcChat 的文档包含在 sgcUI 帮助中,每种开发环境各有一个版本。