Passer au contenu principal
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>"
}

Vue d’ensemble

CometAPI prend en charge le format d’API natif Gemini, vous donnant un accès complet aux fonctionnalités spécifiques à Gemini comme le contrôle du raisonnement, l’ancrage Google Search, les modalités natives de génération d’images, et plus encore. Utilisez cet endpoint lorsque vous avez besoin de capacités non disponibles via l’endpoint de chat compatible OpenAI.

Démarrage rapide

Remplacez l’URL de base et la clé API dans n’importe quel SDK Gemini ou client HTTP :
ParamètreValeur par défaut GoogleCometAPI
URL de basegenerativelanguage.googleapis.comapi.cometapi.com
Clé API$GEMINI_API_KEY$COMETAPI_KEY
Les en-têtes x-goog-api-key et Authorization: Bearer sont tous deux pris en charge pour l’authentification.

Thinking (Reasoning)

Les modèles Gemini peuvent effectuer un raisonnement interne avant de générer une réponse. La méthode de contrôle dépend de la génération du modèle.
Les modèles Gemini 3 utilisent thinkingLevel pour contrôler la profondeur du raisonnement. Niveaux disponibles : 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"}
    }
  }'
L’utilisation de thinkingLevel avec les modèles Gemini 2.5 (ou de thinkingBudget avec les modèles Gemini 3) peut provoquer des erreurs. Utilisez le bon paramètre pour la version de votre modèle.

Streaming

Utilisez streamGenerateContent?alt=sse comme opérateur pour recevoir des événements Server-Sent Events pendant que le modèle génère du contenu. Chaque événement SSE contient une ligne data: avec un objet 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"}]}]
  }'

Instructions système

Guidez le comportement du modèle sur l’ensemble de la conversation avec 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."}]
    }
  }'

Mode JSON

Forcez une sortie JSON structurée avec responseMimeType. Fournissez éventuellement un responseSchema pour une validation stricte du schéma :
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"
    }
  }'

Activez la recherche web en temps réel en ajoutant un outil 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": {}}]
  }'
La réponse inclut groundingMetadata avec les URL des sources et les scores de confiance.

Exemple de réponse

Une réponse typique du endpoint Gemini de 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"
}
Le champ thoughtsTokenCount dans usageMetadata indique combien de tokens le modèle a consacrés à son raisonnement interne, même lorsque la sortie de réflexion n’est pas incluse dans la réponse.

Principales différences avec le endpoint compatible OpenAI

FonctionnalitéGemini natif (/v1beta/models/...)Compatible OpenAI (/v1/chat/completions)
Contrôle de la réflexionthinkingConfig avec thinkingLevel / thinkingBudgetNon disponible
Ancrage Google Searchtools: [\{"google_search": \{\}\}]Non disponible
Ancrage Google Mapstools: [\{"googleMaps": \{\}\}]Non disponible
Modalité de génération d’imageresponseModalities: ["IMAGE"]Non disponible
En-tête d’authentificationx-goog-api-key ou BearerBearer uniquement
Format de réponseFormat natif Gemini (candidates, parts)Format OpenAI (choices, message)

Autorisations

x-goog-api-key
string
header
requis

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

Paramètres de chemin

model
string
requis

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

Exemple:

"gemini-2.5-flash"

operator
enum<string>
requis

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

Options disponibles:
generateContent,
streamGenerateContent?alt=sse
Exemple:

"generateContent"

Corps

application/json
contents
object[]
requis

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.

Réponse

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.