Google Gemini AI
将 Google Gemini 多模态 AI 模型集成到您的 Delphi、C++ Builder 和 .NET 应用程序中,支持内容生成、视觉、结构化输出、嵌入和流式传输。
将 Google Gemini 多模态 AI 模型集成到您的 Delphi、C++ Builder 和 .NET 应用程序中,支持内容生成、视觉、结构化输出、嵌入和流式传输。
用于内容生成、视觉、结构化输出、令牌计数和嵌入的 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 在反复失败后断路请求;ReadTimeout 和 TLSOptions 调整 HTTPS 层;OnHTTPAPIException 显示故障;OnHTTPAPISSE 流式传输服务端事件。
本组件所实现协议的权威参考来源。