Google Gemini AI
Google Gemini のマルチモーダル AI モデルを Delphi、C++ Builder、.NET アプリケーションに統合します。コンテンツ生成、ビジョン、構造化出力、Embeddings、ストリーミングに対応します。
Google Gemini のマルチモーダル AI モデルを Delphi、C++ Builder、.NET アプリケーションに統合します。コンテンツ生成、ビジョン、構造化出力、Embeddings、ストリーミングに対応します。
コンテンツ生成、ビジョン、構造化出力、トークンカウント、Embeddings に対応した 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';
// 型付きのコンテンツ生成リクエスト
Request := TsgcGeminiClass_Request_GenerateContent.Create;
Request.Model := 'gemini-2.0-flash';
Request.AddUserContent('What are the benefits of WebSockets?');
Response := Gemini.CreateContent(Request);
// 文字列ヘルパーによるシンプルな単発プロンプト
Memo1.Lines.Text := Gemini._CreateContent(
'gemini-2.0-flash',
'Summarise RFC 6455',
4096);
// ストリーミング — デルタごとに OnHTTPAPISSE を処理
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";
// 型付きのコンテンツ生成リクエスト
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);
// 文字列ヘルパーによるシンプルな単発プロンプト
Memo1->Lines->Text = Gemini->_CreateContent(
"gemini-2.0-flash",
"Summarise RFC 6455",
4096);
// ストリーミング — OnHTTPAPISSE がデルタごとに発火
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";
// 型付きのコンテンツ生成リクエスト
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);
// 文字列ヘルパーによるシンプルな単発プロンプト
Console.WriteLine(gemini._CreateContent(
"gemini-2.0-flash",
"Summarise RFC 6455",
4096));
// Server-Sent Events 経由のストリーミング
gemini.OnHTTPAPISSE += (sender, ev, data, cancel) => Console.Write(data);
gemini._CreateContentStream(
"gemini-2.0-flash",
"Explain quantum entanglement",
1024);
コンテンツ生成、ビジョン、構造化出力、トークンカウント、Embeddings の型付きリクエスト/レスポンスクラスに加え、ストリーミングと信頼性の制御を提供します。
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は Server-Sent Events をストリーミングします。
本コンポーネントが実装するプロトコルの正式な情報源です。