Delphi 中的 OpenAI、Anthropic 与 Gemini:你该选哪个 AI API?

· 组件

快速答案:sgcWebSockets 为每个主流 LLM 提供商都附带了一个原生组件 — TsgcHTTP_API_OpenAITsgcHTTP_API_AnthropicTsgcHTTP_API_Gemini,外加 Grok、Mistral、DeepSeek 以及仅限本地的 TsgcHTTP_API_Ollama。它们共享相同的"放下组件、设置密钥、调用一个方法"模式,所以下面的决定风险很低:选一个今天适合你用例的模型,日后只需几行代码就能切换提供商。

如果你正在为 Delphi 或 C++ Builder 应用添加 AI,第一个问题通常是"用哪个提供商?"OpenAI、Anthropic 和 Google 都通过 HTTP API 提供了功能强大的聊天模型。从 Delphi 来看,无论你选择哪一个,集成工作几乎完全相同,因为 sgcWebSockets 把每个提供商都封装成了形态一致的组件。这意味着真正的选择关乎模型的强项,而不是你要写或重写多少代码。

按用例给出的简短答案

把它当作一个起点,然后用你自己的提示词去验证。

如果你想要…从这个开始组件
最广泛的生态系统,以及内置的图像生成、转录和嵌入OpenAITsgcHTTP_API_OpenAI
严谨的长篇推理、大型文档和工具使用Anthropic ClaudeTsgcHTTP_API_Anthropic
与 Google Cloud 的紧密集成和多模态输入Google GeminiTsgcHTTP_API_Gemini
完全本地、离线、无需 API 密钥、数据永不离开本机Ollama(Llama、Mistral,…)TsgcHTTP_API_Ollama
低成本的替代方案或某个特定的开源模型DeepSeek、Mistral、GrokTsgcHTTP_API_DeepSeek · _Mistral · _Grok

每个在 Delphi 中是什么样子

模式每次都一样:创建组件、设置 API 密钥、调用一行式辅助方法快速得到结果,或者赋值 OnHTTPAPISSE 以逐 token 流式接收响应。

OpenAI

uses
  sgcHTTP_API_OpenAI;

var
  OpenAI: TsgcHTTP_API_OpenAI;
begin
  OpenAI := TsgcHTTP_API_OpenAI.Create(nil);
  OpenAI.OpenAIOptions.ApiKey := 'sk-...';

  Memo1.Lines.Text := OpenAI._CreateChatCompletion(
    'gpt-4o-mini', 'Hello, world.');
end;

Anthropic Claude

uses
  sgcHTTP_API_Anthropic;

var
  Anthropic: TsgcHTTP_API_Anthropic;
begin
  Anthropic := TsgcHTTP_API_Anthropic.Create(nil);
  Anthropic.AnthropicOptions.ApiKey := 'sk-ant-...';

  Memo1.Lines.Text := Anthropic._CreateMessage(
    'claude-3-5-sonnet-latest',
    'What are the benefits of WebSockets?',
    4096);
end;

Google Gemini

uses
  sgcHTTP_API_Gemini;

var
  Gemini: TsgcHTTP_API_Gemini;
begin
  Gemini := TsgcHTTP_API_Gemini.Create(nil);
  Gemini.GeminiOptions.ApiKey := 'YOUR_API_KEY';

  Memo1.Lines.Text := Gemini._CreateContent(
    'gemini-2.0-flash',
    'Summarise RFC 6455',
    4096);
end;

三个提供商、三个密钥、一套心智模型。流式处理同样统一 — 赋值 SSE 处理器并调用流式变体(OpenAI 用 _CreateChatCompletion 并设置 Stream := True,Anthropic 用 _CreateMessageStream,Gemini 用 _CreateContentStream):

procedure TForm1.HandleSSE(Sender: TObject;
  const aEvent, aData: string; var Cancel: Boolean);
begin
  Memo1.Lines.Add(aData);
end;

OpenAI:最广泛的工具箱

当你需要的不止是聊天时,OpenAI 是稳妥的默认选择。同一个 TsgcHTTP_API_OpenAI 组件涵盖了聊天补全、嵌入(_CreateEmbeddings)、图像生成(_CreateImage)、内容审核以及 Whisper 转录,所以单个依赖就能驱动一个聊天机器人、一个语义搜索功能和一个"描述这张图片"工具。如果你的路线图涉及多种 AI 能力,从这里入手意味着更少的活动部件。参见 OpenAI 组件页面Delphi 中的 OpenAI 教程

Anthropic Claude:推理与长上下文

当工作偏重阅读时,Claude 是一个强有力的选择:总结长篇文档、遵循多步骤指令,或可靠地使用工具。TsgcHTTP_API_Anthropic 组件暴露了消息、流式处理、视觉和文档输入以及工具使用,模型名称如 claude-3-5-sonnet-latest。完整讲解见 Anthropic Claude Delphi 教程Anthropic 组件页面

Google Gemini:多模态且原生于 Google

如果你已经身处 Google Cloud 的世界,或者需要多模态输入,Gemini 非常合适。TsgcHTTP_API_Gemini 既提供类型化的请求 API(用 CreateContent 配合 TsgcGeminiClass_Request_GenerateContent),也提供字符串一行式调用(_CreateContent),还支持流式处理。详情见 Gemini 组件页面Gemini Delphi 客户端文章

在本地运行:Ollama 与开源模型

当数据不能离开本机,或者你只是不想要按 token 计费的账单时,TsgcHTTP_API_Ollama 可以与本地 Ollama 服务器通信,无需 API 密钥 — 只需把 OllamaOptions.BaseUrl 指向 http://localhost:11434/api,就能在你自己的硬件上运行 Llama、Mistral 或其他开源模型。它保持着与云端组件相同的 _CreateMessage / _CreateMessageStream 形态。当你想要某个特定的托管模型时,还有专门的组件可用于 DeepSeekMistralGrok

功能对比

提供商组件一行式调用流式处理(OnHTTPAPISSE)本地运行
OpenAITsgcHTTP_API_OpenAI_CreateChatCompletion
AnthropicTsgcHTTP_API_Anthropic_CreateMessage
GeminiTsgcHTTP_API_Gemini_CreateContent
OllamaTsgcHTTP_API_Ollama_CreateMessage
DeepSeekTsgcHTTP_API_DeepSeek_CreateMessage

一套模式,多个提供商

由于每个组件都遵循相同的"组件加密钥加方法"设计,改变主意的成本很小。先用你手头有密钥的那个提供商做原型,把调用封装在你自己的函数后面,日后把 TsgcHTTP_API_OpenAI 换成 TsgcHTTP_API_Anthropic 只是一处局部修改,而不是重写。许多团队甚至同时接好两个提供商,并在它们之间做故障切换。在 AI & LLM 组件中心 浏览所有组件。

开始使用

所有这些都随 sgcWebSockets 一同发布。获取 免费试用版,放入你想先试的提供商对应的组件,几行代码就能跑通一次调用。

有问题、反馈或需要帮助做选择?联系我们 — 你会收到编写这些代码的人的回复。

相关内容