Google Gemini AI

Google Gemini 멀티모달 AI 모델을 Delphi, C++ Builder 및 .NET 애플리케이션에 통합해 보세요. 콘텐츠 생성, 비전, 구조화 출력, 임베딩, 스트리밍을 사용할 수 있어요.

TsgcHTTP_API_Gemini

콘텐츠 생성, 비전, 구조화 출력, 토큰 카운팅, 임베딩을 위한 Google Gemini REST API 클라이언트예요.

컴포넌트 클래스

TsgcHTTP_API_Gemini

프로토콜

HTTPS 기반 Gemini REST API

플랫폼

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

내부 구성

콘텐츠 생성, 비전, 구조화 출력, 토큰 카운팅, 임베딩을 위한 타입 요청/응답 클래스에 더해 스트리밍과 안정성 제어 기능을 제공해요.

Messages

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을 반환하도록 해요.

토큰 카운팅

CountTokensTsgcGeminiClass_Request_CountTokens를 전송해 할당량 사용량을 추정하고 생성 전에 프롬프트를 잘라낼 수 있게 해요. 이 호출은 텍스트를 생성하지 않아요.

임베딩

EmbedContenttext-embedding-004 같은 임베딩 모델을 사용해 텍스트 조각에 대한 밀집 부동소수점 벡터를 생성하며, 시맨틱 검색과 검색 파이프라인에 활용할 수 있어요.

Models

_GetModels는 사용 가능한 모든 Gemini 모델을 나열하고, _GetModel은 특정 모델 식별자의 세부 정보를 조회하므로, 런타임에 기능을 확인할 수 있어요.

안정성 및 진단

CircuitBreaker는 반복적인 실패 이후 요청을 단락시켜요. ReadTimeoutTLSOptions는 HTTPS 계층을 조정해요. OnHTTPAPIException은 실패를 노출시키고, OnHTTPAPISSE는 서버 전송 이벤트를 스트리밍해요.

사양 및 참조 문서

이 컴포넌트가 구현하는 프로토콜의 공식 출처입니다.

문서 및 데모

컴포넌트 참조 문서로 바로 이동하고, 바로 실행 가능한 데모 프로젝트를 받고, 체험판을 다운로드해 보세요.

온라인 도움말 — Gemini 이 컴포넌트의 전체 속성, 메서드, 이벤트 참조 문서.
데모 프로젝트 — Demos\AI\Gemini 바로 실행 가능한 예제 프로젝트예요. sgcWebSockets 패키지에 포함되어 있어요 — 아래에서 체험판을 다운로드하세요.
사용자 설명서 (PDF) 라이브러리의 모든 컴포넌트를 다루는 종합 설명서.

Google Gemini를 통합할 준비가 되었나요?

무료 체험판을 다운로드하고 몇 분 안에 개발을 시작해 보세요.