Delphi OpenAI 客户端——ChatGPT、GPT-4、嵌入、Whisper

面向 OpenAI REST 和 Realtime API 的原生 Delphi 客户端。带 token 流式传输、函数调用和结构化输出的聊天补全;嵌入;Whisper 语音转文本;TTS;DALL-E 图像生成;带文件搜索的 Assistants v2;以及通过 WebSocket 的 GPT-4o Realtime 音频 API——全部来自单个 Pascal 组件。

一个组件中的完整 OpenAI 界面

过去从 Delphi 调用 ChatGPT API 意味着手工编写 HTTP 请求、JSON 序列化器、多部分上传器和 SSE 流解析器。现在只需放置一个组件。

Delphi OpenAI 客户端是您的 VCL / FMX 应用程序与 OpenAI 平台之间的桥梁:用于自然语言推理的 ChatGPT、用于语义搜索和 RAG 的嵌入、用于转录的 Whisper、用于语音输出的 TTS、用于图像生成的 DALL-E 以及用于低延迟语音代理的 Realtime API。sgcWebSockets 提供 TsgcHTTP_API_OpenAI,一个单一的非可视组件,使用 Pascal 习惯的属性、方法和事件包装每个公共端点。

由于该组件构建在与库其余部分相同的 HTTP/2 栈之上,您可以获得通过 Server-Sent Events 的 token 流式传输、带自动 JSON 模式封送的完整函数调用(现在称为"工具")、并行工具调用、结构化输出(受 JSON 模式约束的响应)、Assistants v2 线程/运行/消息生命周期、用于文件搜索的向量存储以及通过 WebSocket 的 GPT-4o Realtime API(带双向音频流)。同一组件可与 Azure OpenAI、Anthropic、Groq、Together、Mistral 和 DeepSeek 公开的 OpenAI 兼容端点以及本地 OpenAI 兼容服务器(Ollama、LM Studio、vLLM)通信。

组件类

TsgcHTTP_API_OpenAI

传输

HTTP/2 + SSE 流式传输 + WebSocket(Realtime)

平台

Windows、macOS、Linux、iOS、Android、.NET

兼容后端

OpenAI、Azure OpenAI、Ollama、DeepSeek、Groq、Together、Mistral、vLLM

每个 OpenAI 端点,均已包装

每个端点一个方法,强类型参数,用于流式响应的异步事件。

聊天补全

带完整消息数组支持的 ChatCompletions(),支持系统/用户/助手/工具角色、视觉(image_url 内容)、推理模型(o1、o3)和 JSON 模式结构化输出。

流式传输

StreamChatCompletions() 为每个 delta token 触发 OnChatCompletionStreamChunk——在您的 VCL 网格或 FMX 文本视图中实现打字机式 UX,无需 SSE 解析代码。

函数调用 / 工具

注册一个带 JSON 模式参数的工具列表;当模型调用某个工具时,您将收到带解析参数的 OnChatCompletionToolCall。将结果推回并恢复。

嵌入

text-embedding-3-small / -largeEmbeddings()——在您的 Pascal 数据上进行语义搜索、聚类和 RAG 的基础。

Whisper(STT)

AudioTranscription()AudioTranslation()——上传 WAV/MP3/M4A,获得带时间戳和词级置信度的转录或英文翻译。

TTS

AudioSpeech() 返回 MP3、Opus、AAC 或 FLAC 格式的合成语音——选择声音,流式播放结果。

DALL-E

带 DALL-E 2 / 3 和 gpt-image-1 的 ImageGeneration()ImageEdit()ImageVariation()。返回 URL 或 base64 编码的 PNG。

Assistants v2

线程、运行、消息、文件、向量存储和代码解释器——带运行流式事件,无需轮询。

Realtime API

带输入/输出音频缓冲区、语音活动检测、函数调用和 GPT-4o 延迟的双向 WebSocket——构建可自然打断的语音代理。

带函数工具的流式聊天

一个流式传输 token 并能在对话中调用 Delphi 函数的 ChatGPT 调用。

uses
  sgcHTTP_API_OpenAI, sgcHTTP_API_OpenAI_Types;

var
  OpenAI: TsgcHTTP_API_OpenAI;
  oChat:  TsgcHTTPOpenAIChatCompletionRequest;
  oTool:  TsgcHTTPOpenAITool;
begin
  OpenAI := TsgcHTTP_API_OpenAI.Create(nil);
  OpenAI.ApiKey := 'sk-...';
  OpenAI.OnChatCompletionStreamChunk := DoChunk;
  OpenAI.OnChatCompletionToolCall    := DoToolCall;

  oChat := TsgcHTTPOpenAIChatCompletionRequest.Create;
  try
    oChat.Model := 'gpt-4o';
    oChat.Messages.AddSystem('You are a Delphi assistant.');
    oChat.Messages.AddUser('What is the weather in Madrid?');

    oTool := oChat.Tools.AddFunction('get_weather',
      'Return current weather for a city.');
    oTool.Parameters
      .AddString('city', 'City name', True);

    OpenAI.StreamChatCompletions(oChat);
  finally
    oChat.Free;
  end;
end;

procedure TForm1.DoChunk(Sender: TObject;
  const aChunk: TsgcHTTPOpenAIChatCompletionStreamChunk);
begin
  Memo1.Text := Memo1.Text + aChunk.Content;
end;

procedure TForm1.DoToolCall(Sender: TObject;
  const aToolCall: TsgcHTTPOpenAIChatCompletionToolCall);
var
  vCity, vJSON: string;
begin
  if aToolCall.FunctionName = 'get_weather' then
  begin
    vCity := aToolCall.Arguments.S['city'];
    vJSON := MyWeatherLookup(vCity);  // your own Delphi code
    OpenAI.SubmitToolOutput(aToolCall.Id, vJSON);
  end;
end;

通过 WebSocket 的 GPT-4o 语音代理

OpenAI Realtime API 是一个 WebSocket 端点,接受输入音频帧流并发出输出音频帧流——亚秒级延迟、原生 barge-in(用户开始说话时模型停止说话)、服务器端语音活动检测以及与 REST API 相同的工具调用界面。sgcWebSockets 使用 TsgcHTTP_API_OpenAI_Realtime 包装它,为每个服务器消息(OnSessionUpdatedOnConversationItemCreatedOnInputAudioBufferSpeechStartedOnResponseAudioDelta 等)提供类型化事件,因此您可以将其直接接入 TBass、TMediaPlayer 或任何音频队列。

同一组件,多种后端

Azure OpenAI

Endpoint 设置为您的 Azure 资源 URL,将 ApiKey 设置为资源密钥——部署 ID 替代模型名称。

Ollama / LM Studio

Endpoint 指向 http://localhost:11434/v1——同一组件驱动本地 Llama、Mistral、Qwen 和 Phi 模型。

DeepSeek、Groq、Together、Mistral

所有这些都公开 OpenAI 兼容端点;只有基础 URL 和 API 密钥发生变化。

vLLM、SGLang、llama.cpp 服务器

带 OpenAI 兼容 REST 的自托管推理服务器——流式 SSE 路径在字节级别完全相同。

深入资源

OpenAI 组件参考

TsgcHTTP_API_OpenAI 的完整属性/方法/事件参考。

AI / LLM 中心

Anthropic Claude、Google Gemini、Mistral、Ollama、Pinecone、MCP、RAG。

博客:OpenAI Realtime API

分步语音代理演练。

博客:函数调用

让模型调用您的 Delphi 代码的模式。

博客:构建 AI 驱动的 Delphi 应用

使用 ChatGPT + 嵌入的端到端应用架构。

博客:Delphi 中的 Assistants v2

线程、运行、文件搜索、代码解释器。

今天就在您的 Delphi 应用中发布 AI 功能

下载试用版——OpenAI 演示随附即可编译的聊天、流式传输、工具、Whisper、TTS 和 DALL-E 示例。