AI Chat 组件 — sgcAI | eSeGeCe

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 用于选择厂商:aicpOpenAIaicpAnthropicaicpGeminiaicpDeepSeekaicpOllamaaicpGrokaicpMistral。更改它会释放上一家提供商所缓存的客户端。

ChatOptions

ApiKeyModelMaxTokensTemperatureTopPBaseUrl。把 TemperatureTopP 保持默认值,它们就不会出现在请求中,从而采用提供商的默认值。

对话

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

调用

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

事件

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

本地模型

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

规范与参考资料

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

继续探索

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

准备好开始了吗?

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