Google Gemini AI

Integre os modelos de IA multimodal Google Gemini em aplicativos Delphi, C++ Builder e .NET, com geração de conteúdo, visão, saídas estruturadas, embeddings e streaming.

TsgcHTTP_API_Gemini

Cliente da API REST do Google Gemini para geração de conteúdo, visão, saídas estruturadas, contagem de tokens e embeddings.

Classe do componente

TsgcHTTP_API_Gemini

Protocolo

Gemini REST API over HTTPS

Plataformas

Windows, macOS, Linux, iOS, Android

Edição

Enterprise (add-on de IA)

Solte o componente, defina algumas propriedades, pronto

Defina a chave de API em GeminiOptions, então construa uma TsgcGeminiClass_Request_GenerateContent e chame CreateContent, ou use o auxiliar de string _CreateContent para um prompt rápido e único.

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);

O que tem por dentro

Classes tipadas de requisição / resposta para geração de conteúdo, visão, saídas estruturadas, contagem de tokens e embeddings, além de controles de streaming e confiabilidade.

Messages

CreateContent envia uma TsgcGeminiClass_Request_GenerateContent tipada e retorna uma resposta já parseada. _CreateContent, _CreateContentWithSystem e _CreateContentStream são atalhos em string JSON para prompts rápidos e streaming.

Visão

_CreateVisionContent envia uma imagem em base64 com um prompt de texto, com suporte aos tipos de mídia image/jpeg, image/png, image/gif e image/webp para compreensão multimodal.

Uso de ferramentas e function calling

Adicione declarações de função e ferramentas à TsgcGeminiClass_Request_GenerateContent para que o Gemini possa invocar suas funções e retornar chamadas de ferramenta estruturadas dentro da mesma requisição de geração.

Saídas estruturadas

_CreateContentJSON aplica um JSON schema à requisição para que o modelo retorne JSON estruturado correspondente ao formato de saída esperado.

Contagem de tokens

CountTokens envia uma TsgcGeminiClass_Request_CountTokens para estimar o uso da cota e truncar prompts antes da geração. Nenhum texto é produzido por esta chamada.

Embeddings

EmbedContent gera um vetor denso de ponto flutuante para um trecho de texto usando um modelo de embedding como text-embedding-004, para pipelines de busca semântica e recuperação.

Models

_GetModels lista todos os modelos Gemini disponíveis e _GetModel recupera os detalhes de um identificador de modelo específico, para que você descubra os recursos em tempo de execução.

Confiabilidade e diagnóstico

CircuitBreaker interrompe requisições após falhas repetidas; ReadTimeout e TLSOptions ajustam a camada HTTPS; OnHTTPAPIException expõe falhas; OnHTTPAPISSE transmite server-sent events.

Especificações e referências

Fontes autoritativas dos protocolos que este componente implementa.

Documentação e demos

Acesse direto a referência do componente, baixe o projeto de demonstração pronto para rodar e baixe a versão de avaliação.

Ajuda online — Gemini Referência completa de propriedades, métodos e eventos deste componente.
Projeto de demonstração — Demos\AI\Gemini Projeto de exemplo pronto para rodar. Acompanha o pacote sgcWebSockets — baixe a versão de avaliação abaixo.
Manual do usuário (PDF) Manual abrangente cobrindo todos os componentes da biblioteca.

Pronto para integrar o Google Gemini?

Baixe a versão de avaliação gratuita e comece a desenvolver em poucos minutos.