与模型对话,或者让模型开口回应
TsgcAIChat 是统一的客户端。设置 Provider,设置 ChatOptions.ApiKey 和 ChatOptions.Model,然后调用 Chat。令牌流通过 OnChatStream 到达,并带有 Cancel 标志;在 Delphi 2010 及更高版本上,ChatAsync 返回一个 future,因此 UI 线程永远不会阻塞。另外三个组件封装了完整的对话回路,包括语音回路。
十五个面板组件,把大语言模型、Model Context Protocol、嵌入向量、向量搜索和语音直接带入您的 Windows 应用程序。一个聊天组件通过单个属性即可接入七家提供商。sgcAI 是一款独立产品,它已内置所基于的 sgcWebSockets Core 运行时,因此无需购买基础授权。
sgcAI 需要您准备什么,以及它在哪里运行。两个答案都很简短。
与 eSeGeCe 的其他附加组件不同,它并不依附于某个基础产品。组件所需的一切都已内置在 sgcAI 中:sgcWebSockets Core 运行时、HTTP 客户端栈、JSON 层,以及 MCP 服务器 API 背后的 HTTP 服务器。一个 SKU,一个安装程序,无需再购买任何东西。
AI 包仅在 MSWINDOWS 下编译,因此面板上 15 个组件中有 13 个只为 Win32 和 Win64 注册。它们无法为 macOS、Linux、iOS 或 Android 构建。
两个 Model Context Protocol 组件 TsgcWSAPIServer_MCP 和 TsgcWSAPIClient_MCP 是例外。它们没有平台限制,只要 sgc HTTP 栈能运行的地方就能运行,包括 macOS、Linux、iOS 和 Android。查看完整平台对照表。
每个组件都是编译后的 Object Pascal,带有设计期属性和事件。您在对象查看器中设置 API 密钥,然后处理响应事件即可。没有 Python 桥接,没有脚本宿主,也没有外部进程。
TsgcAIChat 是统一的客户端。设置 Provider,设置 ChatOptions.ApiKey 和 ChatOptions.Model,然后调用 Chat。令牌流通过 OnChatStream 到达,并带有 Cancel 标志;在 Delphi 2010 及更高版本上,ChatAsync 返回一个 future,因此 UI 线程永远不会阻塞。另外三个组件封装了完整的对话回路,包括语音回路。
用 TsgcWSAPIServer_MCP 把您自己的工具、提示词和资源发布给任何支持 MCP 的客户端,包括会话、通知和服务器发起的请求。用 TsgcWSAPIClient_MCP 通过 HTTP、HTTP Streamable 或 stdio 使用他人的服务器,并以 API 密钥、自定义头部或 OAuth2 进行身份验证。这两个组件没有平台限制,因此只要 sgc HTTP 栈能编译的地方,它们就能编译。
TsgcAIOpenAIEmbeddings 把文本或整个文件转换成向量,在整批处理过程中触发进度事件,并写入分配给 Database 的任意存储。产品自带两种后端:通过 TsgcAIDatabaseVectorFile 使用的本地文件,无需服务器、无需账户、也不需要网络往返;以及通过 TsgcAIDatabaseVectorPinecone 使用的托管索引。查询最近邻,再把结果作为上下文回送给模型。
通过 Windows 的 MCI 或 Wave API 采集麦克风,用 Whisper 转写,把文本发送给模型,再把答案朗读出来。三种可互换的语音引擎共用同一个接口:机器上已安装的引擎,它既不需要 API 密钥也不需要网络,另外还有 Google Cloud Text-to-Speech 和 Amazon Polly。聊天机器人、翻译器和助手组件已经为您接好了整条回路。
Provider 属性这并不是七个组件,而是 TsgcAIChatProvider 的七个取值,因此更换厂商只需改动一处赋值,别的什么都不用动。相同的 Chat、ChatStream 和 ChatAsync 调用、相同的历史处理方式和相同的事件适用于所有厂商。
aicpOpenAI
通过 Chat Completions API 使用 GPT 模型。
aicpAnthropic
通过 Messages API 使用 Claude 模型,流式传输和历史处理方式与其他厂商完全一致。
aicpGemini
通过 Google Generative Language API 使用 Gemini 模型。
aicpDeepSeek
deepseek-chat 和 deepseek-reasoner。
aicpOllama
本地模型。把 ChatOptions.BaseUrl 指向您的 Ollama 主机,数据就不会离开本机。
aicpGrok
通过 xAI API 使用 Grok 模型。
aicpMistral
通过 Mistral API 使用 Mistral 模型。
选择一家提供商,设置密钥和模型,然后调用 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.SystemMessage := 'You are a Delphi expert. Answer in one paragraph.';
vAnswer := oChat.Chat('How do I keep a WebSocket connection alive?');
// Same code, different vendor: one property and one key.
oChat.Provider := aicpOpenAI;
oChat.ChatOptions.ApiKey := 'sk-...';
oChat.ChatOptions.Model := 'gpt-4o';
vAnswer := oChat.Chat('Same question, different model.');
end;
// includes: sgcAI.hpp, sgcAI_Chat.hpp
TsgcAIChat *oChat = new TsgcAIChat(NULL);
oChat->Provider = aicpAnthropic;
oChat->ChatOptions->ApiKey = "sk-ant-...";
oChat->ChatOptions->Model = "claude-sonnet-4-5";
oChat->SystemMessage = "You are a Delphi expert. Answer in one paragraph.";
String vAnswer = oChat->Chat("How do I keep a WebSocket connection alive?");
// Same code, different vendor: one property and one key.
oChat->Provider = aicpOpenAI;
oChat->ChatOptions->ApiKey = "sk-...";
oChat->ChatOptions->Model = "gpt-4o";
vAnswer = oChat->Chat("Same question, different model.");
uses
sgcAI, sgcAI_MCP_Classes, sgcAI_MCP_Types;
var
oMCP: TsgcWSAPIClient_MCP;
begin
oMCP := TsgcWSAPIClient_MCP.Create(nil);
// Remote server over streamable HTTP.
oMCP.MCPOptions.Transport := aimcptrHttpStreamable;
oMCP.MCPOptions.HttpOptions.URL := 'https://mcp.example.com/mcp';
oMCP.MCPOptions.ClientInfo.Name := 'sgc-mcp-client';
oMCP.MCPOptions.ClientInfo.Version := '1.0.0';
oMCP.OnMCPListTools := MCPListTools;
oMCP.OnMCPResponseTool := MCPToolResponse;
oMCP.Initialize;
oMCP.ListTools;
oMCP.RequestTool('GetTemperature', vArguments); // vArguments: IsgcJSON
end;
// Or spawn a local MCP server as a subprocess instead:
oMCP.MCPOptions.Transport := aimcptrStdio;
oMCP.MCPOptions.StdioOptions.Command := 'C:\tools\my-mcp-server.exe';
oMCP.MCPOptions.StdioOptions.Arguments := '--stdio';
令牌通过 OnChatStream 到达,并带有 Cancel 标志,因此长时间的生成过程可以中途停止。
在 Delphi 2010 及更高版本上,ChatAsync 返回一个 future,因此模型调用期间主线程始终保持响应。
SystemMessage 一次性设定角色,MaxHistoryMessages 限制每轮回放的对话记录量,从而让令牌成本保持可预测。
请求通过 sgc HTTP 客户端从您的应用程序直接发往厂商端点。路径中不存在任何 eSeGeCe 中转服务。
AI 包在 sgcVer.inc 中受 MSWINDOWS 控制。正是这一个定义决定了下表的内容,因此在规划移动端或 Linux 构建之前请先读一读。
TsgcWSAPIServer_MCP 和 TsgcWSAPIClient_MCP,没有平台限制
sgcAI 单独授权,单个开发者起价 €149。所有授权均包含完整源代码、1 年更新,以及 50% 到 70% 的续订折扣:续订 1 个包为 50%,2 个包为 60%,3 个及以上为 70%。sgcAI 和 sgcMQ 各算作一个包。
€149
提供 Single、Team 和 Site 授权。
把 sgcAI 与我们其他的 Delphi、C++ Builder 和 .NET 组件库搭配使用。