Google Gemini AI

Integra i modelli IA multimodali Google Gemini nelle tue applicazioni Delphi, C++ Builder e .NET, con generazione di contenuti, vision, output strutturati, embeddings e streaming.

TsgcHTTP_API_Gemini

Client REST API Google Gemini per generazione di contenuti, vision, output strutturati, conteggio dei token ed embeddings.

Classe del componente

TsgcHTTP_API_Gemini

Protocollo

API REST Gemini su HTTPS

Piattaforme

Windows, macOS, Linux, iOS, Android

Edizione

Enterprise (add-on IA)

Trascina il componente, imposta qualche proprietà e parti

Imposta l'API key in GeminiOptions, poi costruisci un TsgcGeminiClass_Request_GenerateContent e chiama CreateContent, oppure usa l'helper basato su stringhe _CreateContent per un prompt one-shot veloce.

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

  // Richiesta tipizzata di generazione contenuti
  Request := TsgcGeminiClass_Request_GenerateContent.Create;
  Request.Model := 'gemini-2.0-flash';
  Request.AddUserContent('What are the benefits of WebSockets?');
  Response := Gemini.CreateContent(Request);

  // Prompt one-shot semplice tramite helper basato su stringhe
  Memo1.Lines.Text := Gemini._CreateContent(
    'gemini-2.0-flash',
    'Summarise RFC 6455',
    4096);

  // Streaming — gestisci OnHTTPAPISSE per ogni 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";

// Richiesta tipizzata di generazione contenuti
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);

// Prompt one-shot semplice tramite helper basato su stringhe
Memo1->Lines->Text = Gemini->_CreateContent(
  "gemini-2.0-flash",
  "Summarise RFC 6455",
  4096);

// Streaming — OnHTTPAPISSE viene chiamato per ogni 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";

// Richiesta tipizzata di generazione contenuti
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);

// Prompt one-shot semplice tramite helper basato su stringhe
Console.WriteLine(gemini._CreateContent(
  "gemini-2.0-flash",
  "Summarise RFC 6455",
  4096));

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

Cosa contiene

Classi tipizzate di request / response per generazione di contenuti, vision, output strutturati, conteggio dei token ed embeddings, oltre a controlli di streaming e affidabilità.

Messages

CreateContent invia un TsgcGeminiClass_Request_GenerateContent tipizzato e restituisce una risposta parsata. _CreateContent, _CreateContentWithSystem e _CreateContentStream sono shortcut basati su stringhe JSON per prompt rapidi e streaming.

Vision

_CreateVisionContent invia un'immagine codificata in base64 con un prompt testuale, supportando i media type image/jpeg, image/png, image/gif e image/webp per la comprensione multimodale.

Tool use e function calling

Aggiungi function declaration e tool a TsgcGeminiClass_Request_GenerateContent in modo che Gemini possa invocare le tue funzioni e restituire tool call strutturate all'interno della stessa richiesta di generazione.

Output strutturati

_CreateContentJSON applica uno schema JSON alla richiesta in modo che il modello restituisca JSON strutturato conforme al formato di output che ti aspetti.

Conteggio dei token

CountTokens invia un TsgcGeminiClass_Request_CountTokens per stimare l'uso della quota e troncare i prompt prima della generazione. Questa chiamata non produce alcun testo.

Embeddings

EmbedContent genera un vettore denso di valori in virgola mobile per un testo usando un modello di embedding come text-embedding-004, per pipeline di ricerca semantica e retrieval.

Models

_GetModels elenca tutti i modelli Gemini disponibili e _GetModel recupera i dettagli di uno specifico identificatore di modello, così puoi scoprire le funzionalità a runtime.

Affidabilità e diagnostica

CircuitBreaker interrompe le richieste dopo ripetuti fallimenti; ReadTimeout e TLSOptions regolano il layer HTTPS; OnHTTPAPIException emerge in caso di errori; OnHTTPAPISSE trasmette i server-sent event.

Specifiche e riferimenti

Fonti autorevoli per i protocolli implementati da questo componente.

Documentazione e demo

Vai al riferimento del componente, scarica il progetto demo pronto all'uso e prova la versione trial.

Guida online — Gemini Riferimento completo di proprietà, metodi ed eventi per questo componente.
Progetto demo — Demos\AI\Gemini Progetto di esempio pronto all'uso. Incluso nel pacchetto sgcWebSockets — scarica la versione di prova qui sotto.
Manuale utente (PDF) Manuale completo che copre tutti i componenti della libreria.

Pronto a integrare Google Gemini?

Scarica la versione di prova gratuita e inizia a sviluppare in pochi minuti.