Prismatic API/Docs/Gemini generateContent
Documentation

Gemini generateContent

POST /v1/models/{model}:generateContent et POST /v1beta/models/{model}:generateContent exposent une API publique compatible Gemini pour les clients qui envoient déjà des payloads contents et generationConfig.

À utiliser quand

  • Ton app ou SDK parle déjà le format Gemini generateContent.
  • Tu veux envoyer contents avec des parts au lieu de messages OpenAI ou Anthropic.
  • Tu as besoin de generationConfig, du mode JSON ou des schémas de réponse style Gemini.

Endpoints

POST/v1/models/{model}:generateContent
Gemini generateContent v1

Génération non-streaming compatible Gemini. Le segment {model} est l’ID modèle public Prismatic.

POST/v1beta/models/{model}:generateContent
Gemini generateContent v1beta

Génération non-streaming compatible Gemini en version beta pour les clients qui ciblent la surface Gemini v1beta.

POST/v1/models/{model}:streamGenerateContent
Gemini streamGenerateContent v1

Streaming SSE compatible Gemini. Ne mets pas stream: true sur generateContent; utilise cet endpoint à la place.

POST/v1beta/models/{model}:streamGenerateContent
Gemini streamGenerateContent v1beta

Streaming SSE compatible Gemini en version beta pour les clients qui ciblent la surface Gemini v1beta.

Exemples de code

curl https://api.prismaticapi.com/v1/models/claude-sonnet-4-6:generateContent \
  -H "x-goog-api-key: $PRISMATIC_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [
      {
        "role": "user",
        "parts": [
          { "text": "Write a one-line launch announcement." }
        ]
      }
    ],
    "generationConfig": {
      "maxOutputTokens": 120,
      "temperature": 0.2
    }
  }'
curl -N https://api.prismaticapi.com/v1beta/models/claude-sonnet-4-6:streamGenerateContent \
  -H "x-goog-api-key: $PRISMATIC_API_KEY" \
  -H "Accept: text/event-stream" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [
      {
        "role": "user",
        "parts": [
          { "text": "Stream a three-step deployment checklist." }
        ]
      }
    ],
    "generationConfig": {
      "maxOutputTokens": 240
    }
  }'
curl https://api.prismaticapi.com/v1/models/claude-sonnet-4-6:generateContent \
  -H "Authorization: Bearer $PRISMATIC_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [
      {
        "role": "user",
        "parts": [
          { "text": "Return a JSON object with an answer and confidence." }
        ]
      }
    ],
    "generationConfig": {
      "responseMimeType": "application/json",
      "responseSchema": {
        "type": "object",
        "properties": {
          "answer": { "type": "string" },
          "confidence": { "type": "number" }
        },
        "required": ["answer", "confidence"]
      }
    }
  }'

Paramètres

  • Segment de chemin {model} (requis) — ID modèle public retourné par GET /v1/models.
  • contents (array, requis) — Tours de conversation avec role et parts Gemini.
  • generationConfig (object, optionnel) — Supporte des champs comme maxOutputTokens, temperature, topP, stopSequences, responseMimeType, responseSchema et _responseJsonSchema quand la route provider sélectionnée les supporte.
  • stream: true n’est pas valide sur generateContent; appelle streamGenerateContent pour le streaming.

Authentification

  • Les routes Gemini acceptent Authorization: Bearer pa_YOUR_KEY.
  • Elles acceptent aussi x-api-key: pa_YOUR_KEY et x-goog-api-key: pa_YOUR_KEY pour les clients style Gemini.
  • Utilise ta clé API client Prismatic ; n’expose jamais les clés provider upstream.

Streaming

  • streamGenerateContent retourne des server-sent events avec des chunks data: {GenerateContentResponse}.
  • Les clients doivent consommer le stream jusqu’à la fin pour capturer l’usage final nécessaire au billing.
  • Les chunks finaux incluent usageMetadata style Gemini quand l’usage upstream est disponible.

Mode JSON et structured outputs

  • Définis generationConfig.responseMimeType sur application/json pour le mode JSON.
  • Utilise generationConfig.responseSchema ou _responseJsonSchema pour les structured outputs.
  • Prismatic valide les schémas avant le routage upstream ; un champ listé dans required doit aussi exister dans properties.
  • Les schémas invalides retournent invalid_response_format_schema; les routes provider incompatibles retournent unsupported_response_format avant tout appel upstream.

Notes de routage

  • Les routes provider Gemini natives reçoivent directement le payload Gemini.
  • Les providers compatibles OpenAI ou Anthropic ne peuvent être utilisés que si la requête Gemini est transposable.
  • Les requêtes qui exigent des fonctionnalités Gemini natives sans route provider compatible retournent unsupported_gemini_feature.