Skip to content

Gemini — format compatible OpenAI

Fast-Token permet d’appeler les modèles Google Gemini via le protocole API OpenAI. Si vous utilisez déjà le SDK OpenAI ou /v1/chat/completions, il suffit en général de modifier base_url et model pour brancher Gemini, sans réécrire vers l’API native Gemini.

Cette page est une guide d’utilisation du format compatible. Pour les corps de requête, les champs de réponse et le débogage en ligne, voir la documentation ChatGPT et les liens du tableau ci-dessous.

Deux modes d’intégration

ÉlémentFormat compatible OpenAI (cette page)API native Gemini (autres docs de cette section)
Chemins typiquesPOST /v1/chat/completions, POST /v1/embeddingsPOST /v1beta/models/{model}:generateContent, etc.
Corps de requêteChamps OpenAI : messages, model, streamChamps Gemini : contents, generationConfig
Cas d’usageClient OpenAI existant, passerelle multi-modèles, migration rapideFonctions propres à Gemini (thinkingConfig, paramètres Imagen, etc.)
DocumentationCette page + section ChatPages API sous Chat, Images, Fichiers, etc.

Les deux modes partagent la même clé API et la même URL de passerelle. La facturation suit le modèle dans le catalogue de modèles.

Configuration

Passerelle et authentification

  • Base URL : https://fast-token.com/v1 (comme Démarrage rapide)
  • Auth : en-tête Authorization: Bearer <Fast-Token_API_KEY>
  • Nom du modèle : copiez un ID contenant gemini depuis le catalogue dans le champ model

SDK OpenAI (recommandé)

Pointez base_url du SDK officiel vers Fast-Token ; le reste est identique à OpenAI :

python
from openai import OpenAI

client = OpenAI(
    base_url="https://fast-token.com/v1",
    api_key="<Fast-Token_API_KEY>",
)

completion = client.chat.completions.create(
    model="gemini-2.5-pro",  # 以模型广场为准
    messages=[
        {"role": "user", "content": "用一句话介绍你自己"},
    ],
)
print(completion.choices[0].message.content)
javascript
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://fast-token.com/v1",
  apiKey: "<Fast-Token_API_KEY>",
});

const completion = await client.chat.completions.create({
  model: "gemini-2.5-pro",
  messages: [{ role: "user", content: "用一句话介绍你自己" }],
});
console.log(completion.choices[0].message.content);

Pour le streaming, définissez stream: true. Voir Créer une complétion de chat (flux).

Vue d’ensemble des capacités « chat compatible »

Tout ce qui suit passe par les chemins compatibles OpenAI, souvent regroupés sous « format chat compatible » dans la console ou Apifox. En pratique, c’est souvent le même POST /v1/chat/completions (embeddings : POST /v1/embeddings), différencié par le modèle et la structure des messages.

CapacitéDescriptionRéférence
Création d’images GeminiGénérer ou éditer à partir de texte (et image de référence optionnelle)Créer une image en chat (sans flux)
ChatDialogue multi-tours, avec ou sans fluxSans flux, Avec flux
Chat — réflexion 1Dialogue avec sortie « réflexion » (variante 1)Flux (extra_body.enable_thinking)
Chat — réflexion 2Dialogue avec sortie « réflexion » (variante 2)Idem ; modèles selon le catalogue
VisionComprendre, décrire ou interroger une imageVision (flux), sans flux
Chat + lecture de fichiersJoindre des documents au dialogueVoir « Fichiers et multimodal » ci-dessous
Embeddings texteTexte vers vecteursCréer des embeddings

Choix du modèle

L’ID de modèle pour chaque scénario est dans le catalogue. Essayez les modèles Gemini indiqués pour chat, vision, génération d’image ou embeddings ; en cas d’erreur « modèle introuvable » ou capacité non supportée, choisissez une autre entrée Gemini du même scénario.

Points par scénario

Chat standard

  • Point de terminaison : POST /v1/chat/completions
  • Tableau messages pour le multi-tours ; role : system / user / assistant (comme OpenAI)
  • Sans flux : stream: false ou omettre stream ; avec flux : stream: true
  • Paramètres courants (temperature, max_tokens, top_p, etc.) comme OpenAI ; voir Créer une complétion (sans flux)

Mode réflexion (1 / 2)

Certaines modèles « thinking » exposent la réflexion en flux via un champ d’extension :

json
{
  "model": "gemini-2.5-pro",
  "messages": [{ "role": "user", "content": "解释相对论的核心思想" }],
  "stream": true,
  "extra_body": {
    "enable_thinking": true
  }
}
  • Réflexion 1 et 2 correspondent à des modèles ou routes différents sur la passerelle ; testez les modèles marqués « thinking » dans le catalogue
  • Pour un contrôle complet de thinkingConfig, utilisez l’API native Gemini

Vision

Dans un message user, tableau multimodal dans content : text + image_url (URL ou Base64).

json
{
  "model": "gemini-2.5-pro",
  "messages": [
    {
      "role": "user",
      "content": [
        { "type": "text", "text": "这张图里有什么?" },
        {
          "type": "image_url",
          "image_url": { "url": "https://example.com/photo.jpg" }
        }
      ]
    }
  ],
  "stream": true
}

Base64 : Vision en chat (flux) Base64. Paramètres natifs : Compréhension d’images.

Création d’images

Chat + fichiers

Sous le format compatible, vous pouvez inclure documents, PDF, etc. (types MIME et limites selon le catalogue) :

  1. D’abord dans messages[].content selon les conventions multimodales OpenAI
  2. Fichiers volumineux : Compréhension de documents native, puis intégration côté application

Embeddings

Compatible ou API native

BesoinRecommandation
Intégration rapide, SDK OpenAI / code existantFormat compatible OpenAI (cette page)
Réflexion en flux, generationConfig, Google Search GroundingAPI native (ex. Texte + réflexion (flux), Google Search)
Imagen, TTS, vidéo/audioSections API native
Chat + vision + images + embeddings avec client OpenAILe format compatible couvre l’essentiel

FAQ

Q : Pourquoi ce n’est pas identique à la doc OpenAI ?
R : La couche de compatibilité aligne requête/réponse sur OpenAI ; Gemini exécute en dessous. Certains paramètres OpenAI peuvent être ignorés.

Q : Que mettre dans model ?
R : L’ID complet du catalogue (souvent avec gemini), pas d’abréviation.

Q : Format du flux ?
R : SSE, lignes data: {...} et data: [DONE] ; voir Objet chunk de complétion.

Q : JSON de réponse complet ?
R : Objet de complétion de chat.

Pour aller plus loin