Google Gemini AI

Intègre les modèles IA multimodaux Google Gemini dans tes applications Delphi, C++ Builder et .NET, avec génération de contenu, vision, sorties structurées, embeddings et streaming.

TsgcHTTP_API_Gemini

Client REST API Google Gemini pour la génération de contenu, la vision, les sorties structurées, le comptage de tokens et les embeddings.

Classe du composant

TsgcHTTP_API_Gemini

Protocole

API REST Gemini sur HTTPS

Plateformes

Windows, macOS, Linux, iOS, Android

Édition

Enterprise (module IA)

Pose le composant, configure quelques propriétés, c'est parti

Configure la clé API dans GeminiOptions, puis construis un TsgcGeminiClass_Request_GenerateContent et appelle CreateContent, ou utilise le helper string _CreateContent pour un prompt rapide en une seule fois.

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

Sous le capot

Classes de requête / réponse typées pour la génération de contenu, la vision, les sorties structurées, le comptage de tokens et les embeddings, plus les contrôles de streaming et de fiabilité.

Messages

CreateContent envoie un TsgcGeminiClass_Request_GenerateContent typé et renvoie une réponse analysée. _CreateContent, _CreateContentWithSystem et _CreateContentStream sont des raccourcis JSON-string pour les prompts rapides et le streaming.

Vision

_CreateVisionContent envoie une image encodée en base64 avec un prompt texte, en prenant en charge les types de médias image/jpeg, image/png, image/gif et image/webp pour la compréhension multimodale.

Tool use et function calling

Ajoute des déclarations de fonctions et des outils à TsgcGeminiClass_Request_GenerateContent pour que Gemini puisse invoquer tes fonctions et renvoyer des appels d'outils structurés dans la même requête de génération.

Sorties structurées

_CreateContentJSON applique un schéma JSON à la requête afin que le modèle renvoie un JSON structuré correspondant au format de sortie attendu.

Comptage de tokens

CountTokens envoie un TsgcGeminiClass_Request_CountTokens pour estimer l'utilisation du quota et tronquer les prompts avant la génération. Aucun texte n'est produit par cet appel.

Embeddings

EmbedContent génère un vecteur dense en virgule flottante pour un fragment de texte à l'aide d'un modèle d'embedding tel que text-embedding-004, pour la recherche sémantique et les pipelines de récupération.

Modèles

_GetModels liste tous les modèles Gemini disponibles et _GetModel récupère les détails d'un identifiant de modèle spécifique, ce qui te permet de découvrir les capacités à l'exécution.

Fiabilité et diagnostics

CircuitBreaker court-circuite les requêtes après des échecs répétés ; ReadTimeout et TLSOptions ajustent la couche HTTPS ; OnHTTPAPIException remonte les échecs ; OnHTTPAPISSE diffuse les server-sent events.

Spécifications et références

Sources de référence pour les protocoles implémentés par ce composant.

Documentation et démos

Lien direct vers la référence du composant, projet de démo prêt à l'emploi et téléchargement de l'essai.

Aide en ligne — Gemini Référence complète des propriétés, méthodes et événements de ce composant.
Projet de démo — Demos\AI\Gemini Projet d'exemple prêt à l'emploi. Livré dans le package sgcWebSockets — télécharge l'essai ci-dessous.
Manuel utilisateur (PDF) Manuel complet couvrant tous les composants de la bibliothèque.

Prêt à intégrer Google Gemini ?

Télécharge l'essai gratuit et commence à construire en quelques minutes.