Gemini ネイティブ

コンテンツの生成

Google Gemini API形式を使用してコンテンツを生成します

POST
/v1beta/models/{model}:generateContent

Gemini Models API が返すモデルを選び、Gemini のリクエストとレスポンス形式を使用します。ProtoJSON lowerCamelCase と対応する proto snake_case のフィールド名を使用できます。任意フィールドと値の対応範囲は選択したモデルによって異なります。

パスパラメータ

modelstringpath必須

モデル名 (例: gemini-2.5-pro、gemini-3.5-flash)。

クエリパラメータ

keystringquery

APIキー(ヘッダー認証の代替)。

認証

Geminiエンドポイントは、複数の認証方法をサポートしています:

  • ?key=YOUR_API_KEY クエリパラメータ
  • x-goog-api-key: YOUR_API_KEY ヘッダー
  • Authorization: Bearer YOUR_API_KEY ヘッダー

リクエストボディ

contentsarray必須

parts と任意の role を含む会話内容です。メディアには inlineData / inline_data または fileData / file_data を使用します。TokenLab が作成した Files と Cache の ID は所有するワークスペース内でのみ使用できます。

systemInstructionobject

モデルへのシステム指示。

generationConfigobject

temperature、topP、topK、maxOutputTokens、stopSequences、candidateCount、responseModalities、responseMimeType、responseSchema、thinkingConfig などの生成設定です。対応する snake_case 名も使用できます。値と組み合わせの対応範囲はモデルによって異なります。

safetySettingsarray

セーフティフィルター設定。

レスポンス

candidatesarray

生成されたコンテンツの候補。

usageMetadataobject

トークン使用状況の情報。

リクエスト

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
    }
  }'

マルチモーダル入力例

Gemini のマルチモーダルリクエストでは、媒体を contents[].parts[] に入れ、インラインバイトまたは URL ベースのファイル参照のどちらかで渡します。

現在の公共 Gemini 契約でサポートしている媒体カテゴリ:

  • 画像
  • 音声
  • 動画

インライン媒体では inlineData または inline_data を使い、Base64 化したファイルバイトを渡します。

URL 媒体では fileData または file_data を使い、公開到達可能な https URL を渡します。

画像入力例

{
  "contents": [
    {
      "role": "user",
      "parts": [
        { "text": "この画像を説明してください。" },
        {
          "inlineData": {
            "mimeType": "image/jpeg",
            "data": "/9j/4AAQSkZJRgABAQ..."
          }
        }
      ]
    }
  ]
}

音声入力例

{
  "contents": [
    {
      "role": "user",
      "parts": [
        { "text": "この音声を文字起こしして要約してください。" },
        {
          "file_data": {
            "mime_type": "audio/mpeg",
            "file_uri": "https://example.com/sample.mp3"
          }
        }
      ]
    }
  ]
}

動画入力例

{
  "contents": [
    {
      "role": "user",
      "parts": [
        { "text": "この動画を簡潔に説明してください。" },
        {
          "fileData": {
            "mimeType": "video/mp4",
            "fileUri": "https://example.com/sample.mp4"
          }
        }
      ]
    }
  ]
}

レスポンス

Response
{
  "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
  }
}

動画入力の例

{
  "contents": [
    {
      "role": "user",
      "parts": [
        { "text": "Please describe this video." },
        {
          "fileData": {
            "mimeType": "video/mp4",
            "fileUri": "https://example.com/demo.mp4"
          }
        }
      ]
    }
  ]
}

音声入力の例

{
  "contents": [
    {
      "role": "user",
      "parts": [
        { "text": "Please describe this audio." },
        {
          "fileData": {
            "mimeType": "audio/mpeg",
            "fileUri": "https://example.com/demo.mp3"
          }
        }
      ]
    }
  ]
}

認証

BearerAuth
AuthorizationBearer <token>

APIキー認証。Dashboard > API > API KeysでAPIキーを作成または管理します。

場所: header

パスパラメータ

model*string

モデル名 (例: gemini-2.5-pro)

クエリパラメータ

key?string

APIキー (ヘッダー認証の代替)

ヘッダー

X-TokenLab-Delivery-Policy?string

リクエストごとの配信ポリシー。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