Google Gemini AI

Zintegruj multimodalne modele AI Google Gemini z aplikacjami Delphi, C++ Builder i .NET, z generowaniem treści, wizją, wyjściami strukturalnymi, embeddingami i strumieniowaniem.

TsgcHTTP_API_Gemini

Klient REST API Google Gemini do generowania treści, wizji, wyjść strukturalnych, zliczania tokenów i embeddingów.

Klasa komponentu

TsgcHTTP_API_Gemini

Protokół

Gemini REST API przez HTTPS

Platformy

Windows, macOS, Linux, iOS, Android

Edycja

Enterprise (dodatek AI)

Upuść komponent, ustaw kilka właściwości, gotowe

Ustaw klucz API w GeminiOptions, a następnie zbuduj TsgcGeminiClass_Request_GenerateContent i wywołaj CreateContent, albo użyj skrótu na łańcuchu _CreateContent dla szybkiego, jednorazowego promptu.

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

Co jest w środku

Typowane klasy żądania / odpowiedzi dla generowania treści, wizji, wyjść strukturalnych, zliczania tokenów i embeddingów, a także sterowanie strumieniowaniem i niezawodnością.

Messages

CreateContent wysyła typowane TsgcGeminiClass_Request_GenerateContent i zwraca sparsowaną odpowiedź. _CreateContent, _CreateContentWithSystem i _CreateContentStream to skróty operujące na łańcuchach JSON do szybkich promptów i strumieniowania.

Wizja

_CreateVisionContent wysyła obraz zakodowany w base64 wraz z promptem tekstowym, obsługując typy mediów image/jpeg, image/png, image/gif i image/webp dla rozumienia multimodalnego.

Wywołania narzędzi i funkcji

Dodaj deklaracje funkcji i narzędzia do TsgcGeminiClass_Request_GenerateContent, aby Gemini mógł wywoływać Twoje funkcje i zwracać strukturalne wywołania narzędzi w ramach tego samego żądania generowania.

Wyjścia strukturalne

_CreateContentJSON stosuje schemat JSON do żądania, dzięki czemu model zwraca strukturalny JSON zgodny z oczekiwanym formatem wyjścia.

Zliczanie tokenów

CountTokens wysyła TsgcGeminiClass_Request_CountTokens, aby oszacować zużycie limitu i przyciąć prompty przed generowaniem. To wywołanie nie produkuje żadnego tekstu.

Embeddings

EmbedContent generuje gęsty wektor zmiennoprzecinkowy dla fragmentu tekstu przy użyciu modelu embeddingowego, takiego jak text-embedding-004, na potrzeby wyszukiwania semantycznego i pipeline'ów wyszukiwania.

Modele

_GetModels wymienia każdy dostępny model Gemini, a _GetModel pobiera szczegóły dla konkretnego identyfikatora modelu, dzięki czemu możesz wykrywać możliwości w czasie działania.

Niezawodność i diagnostyka

CircuitBreaker krótkozwiera żądania po powtarzających się niepowodzeniach; ReadTimeout i TLSOptions dostrajają warstwę HTTPS; OnHTTPAPIException ujawnia błędy; OnHTTPAPISSE strumieniuje zdarzenia Server-Sent Events.

Specyfikacje i źródła

Autorytatywne źródła protokołów implementowanych przez ten komponent.

Dokumentacja i wersje demo

Deep-link do dokumentacji komponentu, gotowy do uruchomienia projekt demonstracyjny i pobranie wersji próbnej.

Pomoc online — Gemini Pełna dokumentacja właściwości, metod i zdarzeń tego komponentu.
Projekt demonstracyjny — Demos\AI\Gemini Gotowy do uruchomienia projekt przykładowy. Dostarczany wewnątrz pakietu sgcWebSockets — pobierz wersję próbną poniżej.
Podręcznik użytkownika (PDF) Kompleksowy podręcznik obejmujący każdy komponent biblioteki.

Gotowy zintegrować Google Gemini?

Pobierz bezpłatną wersję próbną i zacznij budować w kilka minut.