Google Gemini AI
Google Gemini 멀티모달 AI 모델을 Delphi, C++ Builder 및 .NET 애플리케이션에 통합해 보세요. 콘텐츠 생성, 비전, 구조화 출력, 임베딩, 스트리밍을 사용할 수 있어요.
Google Gemini 멀티모달 AI 모델을 Delphi, C++ Builder 및 .NET 애플리케이션에 통합해 보세요. 콘텐츠 생성, 비전, 구조화 출력, 임베딩, 스트리밍을 사용할 수 있어요.
콘텐츠 생성, 비전, 구조화 출력, 토큰 카운팅, 임베딩을 위한 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);
콘텐츠 생성, 비전, 구조화 출력, 토큰 카운팅, 임베딩을 위한 타입 요청/응답 클래스에 더해 스트리밍과 안정성 제어 기능을 제공해요.
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을 반환하도록 해요.
CountTokens는 TsgcGeminiClass_Request_CountTokens를 전송해 할당량 사용량을 추정하고 생성 전에 프롬프트를 잘라낼 수 있게 해요. 이 호출은 텍스트를 생성하지 않아요.
EmbedContent는 text-embedding-004 같은 임베딩 모델을 사용해 텍스트 조각에 대한 밀집 부동소수점 벡터를 생성하며, 시맨틱 검색과 검색 파이프라인에 활용할 수 있어요.
_GetModels는 사용 가능한 모든 Gemini 모델을 나열하고, _GetModel은 특정 모델 식별자의 세부 정보를 조회하므로, 런타임에 기능을 확인할 수 있어요.
CircuitBreaker는 반복적인 실패 이후 요청을 단락시켜요. ReadTimeout과 TLSOptions는 HTTPS 계층을 조정해요. OnHTTPAPIException은 실패를 노출시키고, OnHTTPAPISSE는 서버 전송 이벤트를 스트리밍해요.
이 컴포넌트가 구현하는 프로토콜의 공식 출처입니다.