Gemini native

Buat Konten

Menghasilkan konten menggunakan format Google Gemini API

POST
/v1beta/models/{model}:generateContent

Gunakan format permintaan dan respons Gemini dengan model yang dikembalikan Gemini Models API. Nama field ProtoJSON lowerCamelCase dan proto snake_case yang sesuai diterima. Field opsional dan nilai yang didukung bergantung pada model yang dipilih.

Parameter Path

modelstringpathwajib

Nama model (misalnya, gemini-2.5-pro, gemini-3.5-flash).

Parameter Query

keystringquery

API key (alternatif untuk autentikasi header).

Autentikasi

Endpoint Gemini mendukung beberapa metode autentikasi:

  • ?key=YOUR_API_KEY parameter query
  • x-goog-api-key: YOUR_API_KEY header
  • Authorization: Bearer YOUR_API_KEY header

Isi Permintaan

contentsarraywajib

Konten percakapan dengan parts dan role opsional. Media menggunakan inlineData / inline_data atau fileData / file_data. ID Files dan Cache yang dibuat TokenLab hanya dapat digunakan dalam Workspace pemiliknya.

systemInstructionobject

Instruksi sistem untuk model.

generationConfigobject

Pengaturan generasi seperti temperature, topP, topK, maxOutputTokens, stopSequences, candidateCount, responseModalities, responseMimeType, responseSchema, dan thinkingConfig. Nama snake_case yang sesuai juga diterima. Nilai dan kombinasi bergantung pada model.

safetySettingsarray

Pengaturan filter keamanan.

Respons

candidatesarray

Kandidat konten yang dihasilkan.

usageMetadataobject

Informasi penggunaan token.

Permintaan

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

Contoh input multimodal

Untuk permintaan multimodal Gemini, letakkan media di dalam contents[].parts[] dengan menggunakan byte inline atau referensi file berbasis URL.

Kategori media yang saat ini didukung dalam detail model Gemini:

  • gambar
  • audio
  • video

Untuk media inline, gunakan inlineData atau inline_data dan kirim byte file yang sudah di-encode Base64.

Untuk media berbasis URL, gunakan fileData atau file_data dan kirim URL publik https.

Contoh input gambar

{
  "contents": [
    {
      "role": "user",
      "parts": [
        { "text": "Tolong jelaskan gambar ini." },
        {
          "inlineData": {
            "mimeType": "image/jpeg",
            "data": "/9j/4AAQSkZJRgABAQ..."
          }
        }
      ]
    }
  ]
}

Contoh input audio

{
  "contents": [
    {
      "role": "user",
      "parts": [
        { "text": "Tolong transkripsikan dan ringkas audio ini." },
        {
          "file_data": {
            "mime_type": "audio/mpeg",
            "file_uri": "https://example.com/sample.mp3"
          }
        }
      ]
    }
  ]
}

Contoh input video

{
  "contents": [
    {
      "role": "user",
      "parts": [
        { "text": "Tolong jelaskan video ini secara singkat." },
        {
          "fileData": {
            "mimeType": "video/mp4",
            "fileUri": "https://example.com/sample.mp4"
          }
        }
      ]
    }
  ]
}

Respons

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

Contoh Input Video

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

Contoh Input Audio

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

Otorisasi

BearerAuth
AuthorizationBearer <token>

Autentikasi API Key. Buat atau kelola API key di Dashboard > API > API Keys.

Lokasi: header

Parameter path

model*string

Nama model (contoh: gemini-2.5-pro)

Parameter query

key?string

Kunci API (alternatif untuk autentikasi header)

Header

X-TokenLab-Delivery-Policy?string

Kebijakan Pengiriman per-permintaan. Menggantikan default API key dan Workspace. Secara otomatis mencoba TokenLab Verified terlebih dahulu dan dapat beralih satu kali ke Official saja sebelum output, penerimaan permintaan, atau pembuatan sumber daya persisten.

Nilai yang tersedia

  • "auto"
  • "verified"
  • "official"

Body permintaan

application/json

Permintaan GenerateContent Gemini asli. Nama ProtoJSON lowerCamelCase dan proto snake_case asli keduanya diterima dan dipertahankan, termasuk permintaan campuran. Jika kedua ejaan dari satu bidang ada, TokenLab tidak menggabungkannya atau memilih prioritas lokal. Bidang yang tidak diketahui diteruskan berdasarkan upaya terbaik.

Respons

application/json

application/json

application/json

application/json

application/json

application/json