Gemini ネイティブ
コンテンツの生成
Google Gemini API形式を使用してコンテンツを生成します
Gemini Models APIから返されるモデルを使用して、Geminiのリクエストおよびレスポンス形式を利用します。ProtoJSONのlowerCamelCase、および対応するprotoのsnake_caseフィールド名が使用可能です。サポートされているオプションのフィールドや値は、選択したモデルによって異なります。
パスパラメータ
モデル名(例: gemini-2.5-pro, gemini-3.5-flash)。
Query Parameters
APIキー(ヘッダー認証の代わりに使用)。
Authentication
Geminiエンドポイントは複数の認証方法をサポートしています:
?key=YOUR_API_KEYクエリパラメータx-goog-api-key: YOUR_API_KEYヘッダーAuthorization: Bearer YOUR_API_KEYヘッダー
リクエストボディ
parts およびオプションの role を含む会話コンテンツ。メディアパーツには inlineData / inline_data または fileData / file_data を使用します。TokenLabによって作成されたファイルおよびキャッシュIDは、その所有ワークスペース内でのみ使用可能です。
モデルに対するシステム指示。
temperature、topP、topK、maxOutputTokens、stopSequences、candidateCount、responseModalities、responseMimeType、responseSchema、thinkingConfig などの生成設定。対応するsnake_case名も使用可能です。サポートされている値や組み合わせはモデルによって異なります。
安全フィルターの設定。
上記で示されたすべてのlowerCamelCaseフィールドは、公式のprotoである snake_case 表記でも使用できます。例:system_instruction、generation_config、safety_settings、tool_config、cached_content、file_data.file_uri、inline_data.mime_type。
Supported Methods
Gemini互換APIには、モデルのリスト取得/詳細取得、generateContent、streamGenerateContent、countTokens、embedContent、batchEmbedContents が含まれます。Gemini InteractionsおよびLiveは利用できません。
Response
生成されたコンテンツの候補。
トークン使用量情報。
リクエスト
curl -X POST "https://api.tokenlab.sh/v1beta/models/gemini-2.5-pro:generateContent?key=sk-your-api-key" \
-H "Content-Type: application/json" \
-d '{
"contents": [
{
"parts": [{"text": "Hello, Gemini!"}]
}
],
"generationConfig": {
"temperature": 0.7,
"maxOutputTokens": 1024
}
}'Vision Input Example
Geminiのマルチモーダルリクエストでは、インラインバイトまたはURLベースのファイル参照を使用して、contents[].parts[] 内にメディアを配置します。
パブリックGeminiコントラクトでサポートされているメディアカテゴリ:
- image
- audio
- video
インラインメディアの場合は、inlineData または inline_data を使用し、Base64エンコードされたファイルバイトを渡します。
URLベースのメディアの場合は、fileData または file_data を使用し、公開されている https URLを渡します。
Video Input Example
{
"contents": [
{
"role": "user",
"parts": [
{ "text": "Please describe this video." },
{
"fileData": {
"mimeType": "video/mp4",
"fileUri": "https://example.com/demo.mp4"
}
}
]
}
]
}Audio Input Example
{
"contents": [
{
"role": "user",
"parts": [
{ "text": "Please describe this audio." },
{
"fileData": {
"mimeType": "audio/mpeg",
"fileUri": "https://example.com/demo.mp3"
}
}
]
}
]
}Image Input Example
インライン画像バイトを使用する場合:
{
"contents": [
{
"role": "user",
"parts": [
{ "text": "Please describe this image." },
{
"inlineData": {
"mimeType": "image/jpeg",
"data": "/9j/4AAQSkZJRgABAQ..."
}
}
]
}
]
}画像URLを使用する場合:
{
"contents": [
{
"role": "user",
"parts": [
{ "text": "Please describe this image." },
{
"fileData": {
"mimeType": "image/jpeg",
"fileUri": "https://example.com/demo.jpg"
}
}
]
}
]
}Audio Input Example
オーディオURLを使用する場合:
{
"contents": [
{
"role": "user",
"parts": [
{ "text": "Transcribe and summarize this audio." },
{
"file_data": {
"mime_type": "audio/mpeg",
"file_uri": "https://example.com/sample.mp3"
}
}
]
}
]
}Video Input Example
ビデオURLを使用する場合:
{
"contents": [
{
"role": "user",
"parts": [
{ "text": "Describe this video briefly." },
{
"fileData": {
"mimeType": "video/mp4",
"fileUri": "https://example.com/sample.mp4"
}
}
]
}
]
}レスポンス
{
"candidates": [
{
"content": {
"role": "model",
"parts": [
{"text": "Hello! How can I assist you today?"}
]
},
"finishReason": "STOP",
"safetyRatings": [
{"category": "HARM_CATEGORY_HARASSMENT", "probability": "NEGLIGIBLE"}
]
}
],
"usageMetadata": {
"promptTokenCount": 5,
"candidatesTokenCount": 10,
"totalTokenCount": 15
}
}Related interfaces
別のインターフェースを使用する前に、選択したモデルの現在のモデル詳細を確認してください。可用性やリクエストフィールドはモデルによって異なります。
| HTTP | API |
|---|---|
| POST | /v1beta/models/{model}:countTokens |
| POST | /v1beta/models/{model}:embedContent |
| POST | /v1beta/models/{model}:batchEmbedContents |
トークンカウントにはAPIキーが必要ですが、課金はされません。返される入力カウントは計画用の概算です。最終的な請求については、レスポンスの使用量および課金記録を参照してください。
countTokens: contents / generateContentRequest
embedContent: content, taskType, title, outputDimensionality
batchEmbedContents: requests
認証
BearerAuth APIキー認証。Dashboard > API > API KeysでAPIキーを作成または管理します。
場所: header
パスパラメータ
モデル名 (例: gemini-2.5-pro)
クエリパラメータ
APIキー (ヘッダー認証の代替)
ヘッダー
リクエストごとの配信ポリシー。APIキーおよびWorkspaceのデフォルト設定を上書きします。自動的にまず TokenLab Verified を試行し、出力、リクエストの受け入れ、または永続的なリソース作成の前に、一度だけ Official に切り替える場合があります。
指定できる値
- "auto"
- "verified"
- "official"
リクエストボディ
application/json
ネイティブGemini GenerateContentリクエスト。ProtoJSONのlowerCamelCaseと元のprotoのsnake_caseの両方が受け入れられ、保持されます(混在リクエストを含む)。1つのフィールドに対して両方の綴りが存在する場合、TokenLabはそれらをマージしたり、ローカルの優先順位を選択したりしません。不明なフィールドはベストエフォートで転送されます。
レスポンス
application/json
application/json
application/json
application/json
application/json
application/json