AI Chat

TsgcAIChat 是面向七家大语言模型提供商的单一聊天客户端。设置 Provider,设置 API 密钥和模型,然后调用 Chat 即可。更换厂商只需一处赋值,其余代码保持不变。

TsgcAIChat

一个与提供商无关的聊天组件。它维护对话历史、构建各提供商专有的 JSON 请求体、驱动对应的 HTTP API 客户端,并把助手文本交还给您,可以一次性返回,也可以逐个令牌返回。

组件类

TsgcAIChat

用途

与提供商无关的 LLM 聊天

平台

Win32 和 Win64

sgcAI 是自包含的。该组件随 sgcAI 一同交付,并附带它所基于的 sgcWebSockets Core 运行时。

向模型提问

选择提供商,设置密钥和模型,然后调用 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.ChatOptions.MaxTokens := 4096;
  oChat.SystemMessage := 'You are a Delphi expert.';
  oChat.MaxHistoryMessages := 20;

  // Blocking call, returns the assistant text.
  vAnswer := oChat.Chat('How do I keep a WebSocket connection alive?');

  // Token by token, delivered on OnChatStream.
  oChat.OnChatStream := OnChatStreamHandler;
  oChat.ChatStream('Now explain it to a beginner.');
end;

procedure TForm1.OnChatStreamHandler(Sender: TObject;
  const aChunk: string; var Cancel: Boolean);
begin
  Memo1.Text := Memo1.Text + aChunk;
  Cancel := StopRequested;   // abort a long generation
end;
// includes: sgcAI.hpp, sgcAI_Chat.hpp

TsgcAIChat *oChat = new TsgcAIChat(NULL);
oChat->Provider = aicpOpenAI;
oChat->ChatOptions->ApiKey = "sk-...";
oChat->ChatOptions->Model  = "gpt-4o";
oChat->SystemMessage = "You are a Delphi expert.";

String vAnswer = oChat->Chat("How do I keep a WebSocket connection alive?");

// Local models: same code, no data leaves the machine.
oChat->Provider = aicpOllama;
oChat->ChatOptions->BaseUrl = "http://127.0.0.1:11434";
oChat->ChatOptions->Model   = "llama3";
vAnswer = oChat->Chat("Same question, local model.");

关键属性与方法

您最常使用的成员。

Provider

Provider 用于选择厂商:aicpOpenAI、aicpAnthropic、aicpGemini、aicpDeepSeek、aicpOllama、aicpGrok 或 aicpMistral。更改它会释放上一家提供商所缓存的客户端。

ChatOptions

ApiKey、Model、MaxTokens、Temperature、TopP 和 BaseUrl。把 Temperature 和 TopP 保持默认值,它们就不会出现在请求中,从而采用提供商的默认值。

对话

SystemMessage 为每一轮设定角色。MaxHistoryMessages 限制回放多少条历史消息,从而约束令牌成本。ClearHistory 和 GetHistory 用于重置和读取对话记录。

调用

Chat 阻塞并返回答案。ChatStream 通过 SSE 流式传输。ChatWithSystem 只为单轮覆盖系统提示词。在 Delphi 2010 及更高版本上,ChatAsync 返回一个 future。

事件

OnChatMessage 报告每条完成的消息及其角色。OnChatStream 送达每个数据块,并带有 Cancel 标志。OnChatError 暴露提供商和传输层错误。

文档与提取 2026.10 新增

ChatWithDocument 和 ChatWithDocumentBase64 会随消息发送一个 PDF 或图片,ChatWithAttachments 和 ChatJSONWithAttachments 则发送保存在 TsgcAIChatAttachments 列表中的多个文件。OpenAI、Anthropic 和 Gemini 原生读取 PDF,其他提供商接受图片。将聊天组件关联到 TsgcAIDocumentExtractor,即可把发票、收据和身份证件转换为按 schema 校验过的 JSON,并给出逐字段置信度。

本地模型

把 Provider 设为 aicpOllama 后,ChatOptions.BaseUrl 会把组件指向您自己的 Ollama 主机,因此提示词和答案永远不会离开本机。

规范与参考资料

该组件所用服务和协议的权威资料来源。

继续探索

在线帮助sgcAI 组件的完整 API 参考和使用指南。
所有 sgcAI 组件浏览全部 15 个组件的完整功能矩阵。
下载免费试用版用您自己的 API 密钥试用全部七家提供商。
价格Single、Team 和 Site 授权,均含完整源代码。
超值之选:All-AccesseSeGeCe 全部产品,含高级支持,每年 €1,059 起。
查看 All-Access 价格

准备好开始了吗?

下载免费试用版,几分钟就能把语言模型接到 Delphi 窗体背后。