Google Gemini AI

将 Google Gemini 多模态 AI 模型集成到您的 Delphi、C++ Builder 和 .NET 应用程序中,支持内容生成、视觉、结构化输出、嵌入和流式传输。

TsgcHTTP_API_Gemini

用于内容生成、视觉、结构化输出、令牌计数和嵌入的 Google Gemini REST API 客户端。

组件类

TsgcHTTP_API_Gemini

协议

Gemini REST API over HTTPS

平台

Windows, macOS, Linux, iOS, Android

版本

Enterprise(AI 附加模块)

拖入组件,设置几个属性,即可运行

在 GeminiOptions 中设置 API 密钥,然后构建 TsgcGeminiClass_Request_GenerateContent 并调用 CreateContent,或使用 _CreateContent 字符串辅助方法进行快速的单次提示。

uses
  sgcHTTP_API_Gemini;

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

  // Typed content-generation request
  Request := TsgcGeminiClass_Request_GenerateContent.Create;
  Request.Model := 'gemini-2.0-flash';
  Request.AddUserContent('What are the benefits of WebSockets?');
  Response := Gemini.CreateContent(Request);

  // Simple one-shot prompt via string helper
  Memo1.Lines.Text := Gemini._CreateContent(
    'gemini-2.0-flash',
    'Summarise RFC 6455',
    4096);

  // Streaming — handle OnHTTPAPISSE per delta
  Gemini.OnHTTPAPISSE := HandleSSE;
  Gemini._CreateContentStream(
    'gemini-2.0-flash',
    'Explain quantum entanglement',
    1024);
end;

procedure TForm1.HandleSSE(Sender: TObject;
  const aEvent, aData: string;
  var Cancel: Boolean);
begin
  Memo1.Lines.Add(aEvent + ': ' + aData);
end;
// uses: sgcHTTP_API_Gemini
TsgcHTTP_API_Gemini *Gemini = new TsgcHTTP_API_Gemini(this);
Gemini->GeminiOptions->ApiKey = "YOUR_API_KEY";

// Typed content-generation request
TsgcGeminiClass_Request_GenerateContent *Request =
  new TsgcGeminiClass_Request_GenerateContent();
Request->Model = "gemini-2.0-flash";
Request->AddUserContent("What are the benefits of WebSockets?");
TsgcGeminiClass_Response_GenerateContent *Response = Gemini->CreateContent(Request);

// Simple one-shot prompt via string helper
Memo1->Lines->Text = Gemini->_CreateContent(
  "gemini-2.0-flash",
  "Summarise RFC 6455",
  4096);

// Streaming — OnHTTPAPISSE fires per delta
Gemini->OnHTTPAPISSE = HandleSSE;
Gemini->_CreateContentStream(
  "gemini-2.0-flash",
  "Explain quantum entanglement",
  1024);
using esegece.sgcWebSockets;

var gemini = new TsgcHTTPAPI_Gemini();
gemini.GeminiOptions.ApiKey = "YOUR_API_KEY";

// Typed content-generation request
var request = new TsgcGeminiClass_Request_GenerateContent();
request.Model = "gemini-2.0-flash";
request.AddUserContent("What are the benefits of WebSockets?");
var response = gemini.CreateContent(request);

// Simple one-shot prompt via string helper
Console.WriteLine(gemini._CreateContent(
  "gemini-2.0-flash",
  "Summarise RFC 6455",
  4096));

// Streaming via Server-Sent Events
gemini.OnHTTPAPISSE += (sender, ev, data, cancel) => Console.Write(data);
gemini._CreateContentStream(
  "gemini-2.0-flash",
  "Explain quantum entanglement",
  1024);

功能详情

针对内容生成、视觉、结构化输出、令牌计数和嵌入的类型化请求/响应类,外加流式传输和可靠性控制。

消息

CreateContent 发送类型化的 TsgcGeminiClass_Request_GenerateContent 并返回解析后的响应。_CreateContent_CreateContentWithSystem_CreateContentStream 是用于快速提示和流式传输的 JSON 字符串快捷方式。

视觉

_CreateVisionContent 发送 base64 编码的图像和文本提示,支持 image/jpeg、image/png、image/gif 和 image/webp 媒体类型,实现多模态理解。

工具调用与函数调用

TsgcGeminiClass_Request_GenerateContent 添加函数声明和工具,使 Gemini 能够调用您的函数,并在同一生成请求中返回结构化工具调用。

结构化输出

_CreateContentJSON 将 JSON 模式应用到请求中,使模型返回与您预期输出格式相匹配的结构化 JSON。

令牌计数

CountTokens 发送 TsgcGeminiClass_Request_CountTokens 以估算配额使用量并在生成前截断提示。此调用不生成任何文本。

嵌入

EmbedContent 使用诸如 text-embedding-004 的嵌入模型为一段文本生成密集浮点向量,用于语义搜索和检索管道。

模型

_GetModels 列出所有可用的 Gemini 模型,_GetModel 检索特定模型标识符的详细信息,使您能够在运行时发现模型能力。

可靠性与诊断

CircuitBreaker 在反复失败后断路请求;ReadTimeoutTLSOptions 调整 HTTPS 层;OnHTTPAPIException 显示故障;OnHTTPAPISSE 流式传输服务端事件。

规范与参考

本组件所实现协议的权威参考来源。

文档与演示

直接访问组件参考文档,获取即用型演示项目,并下载试用版。

在线帮助 — Gemini 本组件的完整属性、方法和事件参考。
演示项目 — Demos\AI\Gemini 即用型示例项目,随 sgcWebSockets 包一起提供 — 请在下方下载试用版。
用户手册(PDF) 涵盖库中每个组件的综合手册。

准备好集成 Google Gemini 了吗?

下载免费试用版,几分钟内即可开始构建。