Zum Hauptinhalt springen
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-3-flash-preview", 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>"
}
CometAPI unterstützt das native Gemini-API-Format und gibt Ihnen vollen Zugriff auf Gemini-spezifische Funktionen wie Thinking-Steuerung, Google Search Grounding, native Bildgenerierungsmodalitäten und mehr. Verwenden Sie diesen Endpunkt, wenn Sie Fähigkeiten benötigen, die über den OpenAI-kompatiblen Chat-Endpunkt nicht verfügbar sind.
Sowohl x-goog-api-key als auch Authorization: Bearer-Header werden für die Authentifizierung unterstützt.

Schnellstart

Um ein beliebiges Gemini SDK oder einen HTTP-Client mit CometAPI zu verwenden, ersetzen Sie die Basis-URL und den API-Schlüssel:
SettingGoogle-StandardCometAPI
Basis-URLgenerativelanguage.googleapis.comapi.cometapi.com
API-Schlüssel$GEMINI_API_KEY$COMETAPI_KEY

Thinking konfigurieren (Reasoning)

Gemini-Modelle können internes Reasoning ausführen, bevor sie eine Antwort generieren. Die Steuerungsmethode hängt von der Modellgeneration ab.
Gemini-3-Modelle verwenden thinkingLevel, um die Reasoning-Tiefe zu steuern. Verfügbare Stufen: MINIMAL, LOW, MEDIUM, HIGH.Verwenden Sie gemini-3-flash-preview als Standard-Beispielmodell, sofern Sie nicht ausdrücklich eine andere Gemini-3-Variante benötigen.
curl "https://api.cometapi.com/v1beta/models/gemini-3-flash-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"}
    }
  }'
Die Verwendung von thinkingLevel mit Gemini-2.5-Modellen (oder von thinkingBudget mit Gemini-3-Modellen) kann Fehler verursachen. Verwenden Sie den korrekten Parameter für Ihre Modellversion.

Responses streamen

Um Server-Sent Events zu empfangen, während das Modell Inhalte generiert, verwenden Sie streamGenerateContent?alt=sse als Operator. Jedes SSE-Ereignis enthält eine data:-Zeile mit einem JSON-Objekt vom Typ GenerateContentResponse.
curl "https://api.cometapi.com/v1beta/models/gemini-3-flash-preview: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"}]}]
  }'

Systemanweisungen festlegen

Um das Verhalten des Modells über die gesamte Konversation hinweg zu steuern, verwenden Sie systemInstruction:
curl "https://api.cometapi.com/v1beta/models/gemini-3-flash-preview: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-Ausgabe anfordern

Um eine strukturierte JSON-Ausgabe zu erzwingen, setzen Sie responseMimeType. Optional können Sie responseSchema für eine strikte Schema-Validierung angeben:
curl "https://api.cometapi.com/v1beta/models/gemini-3-flash-preview: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"
    }
  }'

Mit Google Search Grounding verwenden

Um die Websuche in Echtzeit zu aktivieren, fügen Sie ein googleSearch-Tool hinzu:
curl "https://api.cometapi.com/v1beta/models/gemini-3-flash-preview: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": {}}]
  }'
Die Antwort enthält groundingMetadata mit Quell-URLs und Konfidenzwerten.

Antwortbeispiel

Eine typische Antwort vom Gemini-Endpunkt von 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-3-flash-preview",
  "createTime": "2026-03-25T04:21:43.756483Z",
  "responseId": "CeynaY3LDtvG4_UP0qaCuQY"
}
Das Feld thoughtsTokenCount in usageMetadata zeigt, wie viele Tokens das Modell für internes Reasoning aufgewendet hat, auch wenn die Thinking-Ausgabe nicht in der Antwort enthalten ist.

Vergleich mit dem OpenAI-kompatiblen Endpunkt

FunktionGemini Native (/v1beta/models/...)OpenAI-Compatible (/v1/chat/completions)
Thinking-SteuerungthinkingConfig mit thinkingLevel / thinkingBudgetNicht verfügbar
Google Search Groundingtools: [\{"google_search": \{\}\}]Nicht verfügbar
Google Maps Groundingtools: [\{"googleMaps": \{\}\}]Nicht verfügbar
Bildgenerierungs-ModalitätresponseModalities: ["IMAGE"]Nicht verfügbar
Auth-Headerx-goog-api-key oder BearerNur Bearer
AntwortformatGemini-nativ (candidates, parts)OpenAI-Format (choices, message)

Autorisierungen

x-goog-api-key
string
header
erforderlich

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

Pfadparameter

model
string
erforderlich

Gemini model ID. Example: gemini-3-flash-preview, gemini-2.5-pro. See the Models page for current options.

operator
enum<string>
erforderlich

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

Verfügbare Optionen:
generateContent,
streamGenerateContent?alt=sse

Body

application/json
contents
object[]
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.

Antwort

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.