Langsung ke konten utama
POST
/
v1beta
/
models
/
{model}
:
{operator}
from google import genai

client = genai.Client(
    api_key="<COMETAPI_KEY>",
    http_options={"api_version": "v1beta", "base_url": "https://api.cometapi.com"},
)

response = client.models.generate_content(
    model="gemini-2.5-flash",
    contents="Explain how AI works in a few words",
)

print(response.text)
{
  "candidates": [
    {
      "content": {
        "role": "<string>",
        "parts": [
          {
            "text": "<string>",
            "functionCall": {
              "name": "<string>",
              "args": {}
            },
            "inlineData": {
              "mimeType": "<string>",
              "data": "<string>"
            },
            "thought": true
          }
        ]
      },
      "finishReason": "STOP",
      "safetyRatings": [
        {
          "category": "<string>",
          "probability": "<string>",
          "blocked": true
        }
      ],
      "citationMetadata": {
        "citationSources": [
          {
            "startIndex": 123,
            "endIndex": 123,
            "uri": "<string>",
            "license": "<string>"
          }
        ]
      },
      "tokenCount": 123,
      "avgLogprobs": 123,
      "groundingMetadata": {
        "groundingChunks": [
          {
            "web": {
              "uri": "<string>",
              "title": "<string>"
            }
          }
        ],
        "groundingSupports": [
          {
            "groundingChunkIndices": [
              123
            ],
            "confidenceScores": [
              123
            ],
            "segment": {
              "startIndex": 123,
              "endIndex": 123,
              "text": "<string>"
            }
          }
        ],
        "webSearchQueries": [
          "<string>"
        ]
      },
      "index": 123
    }
  ],
  "promptFeedback": {
    "blockReason": "SAFETY",
    "safetyRatings": [
      {
        "category": "<string>",
        "probability": "<string>",
        "blocked": true
      }
    ]
  },
  "usageMetadata": {
    "promptTokenCount": 123,
    "candidatesTokenCount": 123,
    "totalTokenCount": 123,
    "trafficType": "<string>",
    "thoughtsTokenCount": 123,
    "promptTokensDetails": [
      {
        "modality": "<string>",
        "tokenCount": 123
      }
    ],
    "candidatesTokensDetails": [
      {
        "modality": "<string>",
        "tokenCount": 123
      }
    ]
  },
  "modelVersion": "<string>",
  "createTime": "<string>",
  "responseId": "<string>"
}

Ikhtisar

CometAPI mendukung format API native Gemini, memberi Anda akses penuh ke fitur-fitur khusus Gemini seperti kontrol thinking, grounding Google Search, modalitas pembuatan gambar native, dan lainnya. Gunakan endpoint ini saat Anda memerlukan kemampuan yang tidak tersedia melalui endpoint chat yang kompatibel dengan OpenAI.

Mulai Cepat

Ganti base URL dan API key di Gemini SDK atau klien HTTP mana pun:
PengaturanDefault GoogleCometAPI
Base URLgenerativelanguage.googleapis.comapi.cometapi.com
API Key$GEMINI_API_KEY$COMETAPI_KEY
Header x-goog-api-key maupun Authorization: Bearer didukung untuk autentikasi.

Thinking (Reasoning)

Model Gemini dapat melakukan reasoning internal sebelum menghasilkan respons. Metode kontrolnya bergantung pada generasi model.
Model Gemini 3 menggunakan thinkingLevel untuk mengontrol kedalaman reasoning. Level yang tersedia: MINIMAL, LOW, MEDIUM, HIGH.
curl "https://api.cometapi.com/v1beta/models/gemini-3.1-pro-preview:generateContent" \
  -H "Content-Type: application/json" \
  -H "x-goog-api-key: $COMETAPI_KEY" \
  -d '{
    "contents": [{"parts": [{"text": "Explain quantum physics simply."}]}],
    "generationConfig": {
      "thinkingConfig": {"thinkingLevel": "LOW"}
    }
  }'
Menggunakan thinkingLevel dengan model Gemini 2.5 (atau thinkingBudget dengan model Gemini 3) dapat menyebabkan error. Gunakan parameter yang benar untuk versi model Anda.

Streaming

Gunakan streamGenerateContent?alt=sse sebagai operator untuk menerima Server-Sent Events saat model menghasilkan konten. Setiap event SSE berisi baris data: dengan objek JSON GenerateContentResponse.
curl "https://api.cometapi.com/v1beta/models/gemini-2.5-flash:streamGenerateContent?alt=sse" \
  -H "Content-Type: application/json" \
  -H "x-goog-api-key: $COMETAPI_KEY" \
  --no-buffer \
  -d '{
    "contents": [{"parts": [{"text": "Write a short poem about the stars"}]}]
  }'

Instruksi Sistem

Arahkan perilaku model di seluruh percakapan dengan systemInstruction:
curl "https://api.cometapi.com/v1beta/models/gemini-2.5-flash:generateContent" \
  -H "Content-Type: application/json" \
  -H "x-goog-api-key: $COMETAPI_KEY" \
  -d '{
    "contents": [{"parts": [{"text": "What is 2+2?"}]}],
    "systemInstruction": {
      "parts": [{"text": "You are a math tutor. Always show your work."}]
    }
  }'

JSON Mode

Paksa output JSON terstruktur dengan responseMimeType. Secara opsional, berikan responseSchema untuk validasi skema yang ketat:
curl "https://api.cometapi.com/v1beta/models/gemini-2.5-flash:generateContent" \
  -H "Content-Type: application/json" \
  -H "x-goog-api-key: $COMETAPI_KEY" \
  -d '{
    "contents": [{"parts": [{"text": "List 3 planets with their distances from the sun"}]}],
    "generationConfig": {
      "responseMimeType": "application/json"
    }
  }'

Google Search Grounding

Aktifkan pencarian web real-time dengan menambahkan tool googleSearch:
curl "https://api.cometapi.com/v1beta/models/gemini-2.5-flash:generateContent" \
  -H "Content-Type: application/json" \
  -H "x-goog-api-key: $COMETAPI_KEY" \
  -d '{
    "contents": [{"parts": [{"text": "Who won the euro 2024?"}]}],
    "tools": [{"google_search": {}}]
  }'
Respons mencakup groundingMetadata dengan URL sumber dan skor kepercayaan.

Contoh Respons

Respons umum dari endpoint Gemini milik CometAPI:
{
  "candidates": [
    {
      "content": {
        "role": "model",
        "parts": [{"text": "Hello"}]
      },
      "finishReason": "STOP",
      "avgLogprobs": -0.0023
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 5,
    "candidatesTokenCount": 1,
    "totalTokenCount": 30,
    "trafficType": "ON_DEMAND",
    "thoughtsTokenCount": 24,
    "promptTokensDetails": [{"modality": "TEXT", "tokenCount": 5}],
    "candidatesTokensDetails": [{"modality": "TEXT", "tokenCount": 1}]
  },
  "modelVersion": "gemini-2.5-flash",
  "createTime": "2026-03-25T04:21:43.756483Z",
  "responseId": "CeynaY3LDtvG4_UP0qaCuQY"
}
Field thoughtsTokenCount dalam usageMetadata menunjukkan berapa banyak token yang digunakan model untuk penalaran internal, bahkan ketika output pemikiran tidak disertakan dalam respons.

Perbedaan Utama dari Endpoint yang Kompatibel dengan OpenAI

FeatureGemini Native (/v1beta/models/...)OpenAI-Compatible (/v1/chat/completions)
Kontrol thinkingthinkingConfig dengan thinkingLevel / thinkingBudgetTidak tersedia
Google Search groundingtools: [\{"google_search": \{\}\}]Tidak tersedia
Google Maps groundingtools: [\{"googleMaps": \{\}\}]Tidak tersedia
Modalitas pembuatan gambarresponseModalities: ["IMAGE"]Tidak tersedia
Header authx-goog-api-key atau BearerHanya Bearer
Format responsNative Gemini (candidates, parts)Format OpenAI (choices, message)

Otorisasi

x-goog-api-key
string
header
wajib

Your CometAPI key passed via the x-goog-api-key header. Bearer token authentication (Authorization: Bearer <key>) is also supported.

Parameter Path

model
string
wajib

The Gemini model ID to use. See the Models page for current Gemini model IDs.

Contoh:

"gemini-2.5-flash"

operator
enum<string>
wajib

The operation to perform. Use generateContent for synchronous responses, or streamGenerateContent?alt=sse for Server-Sent Events streaming.

Opsi yang tersedia:
generateContent,
streamGenerateContent?alt=sse
Contoh:

"generateContent"

Body

application/json
contents
object[]
wajib

The conversation history and current input. For single-turn queries, provide a single item. For multi-turn conversations, include all previous turns.

systemInstruction
object

System instructions that guide the model's behavior across the entire conversation. Text only.

tools
object[]

Tools the model may use to generate responses. Supports function declarations, Google Search, Google Maps, and code execution.

toolConfig
object

Configuration for tool usage, such as function calling mode.

safetySettings
object[]

Safety filter settings. Override default thresholds for specific harm categories.

generationConfig
object

Configuration for model generation behavior including temperature, output length, and response format.

cachedContent
string

The name of cached content to use as context. Format: cachedContents/{id}. See the Gemini context caching documentation for details.

Respons

200 - application/json

Successful response. For streaming requests, the response is a stream of SSE events, each containing a GenerateContentResponse JSON object prefixed with data:.

candidates
object[]

The generated response candidates.

promptFeedback
object

Feedback on the prompt, including safety blocking information.

usageMetadata
object

Token usage statistics for the request.

modelVersion
string

The model version that generated this response.

createTime
string

The timestamp when this response was created (ISO 8601 format).

responseId
string

Unique identifier for this response.