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ément | Format compatible OpenAI (cette page) | API native Gemini (autres docs de cette section) |
|---|---|---|
| Chemins typiques | POST /v1/chat/completions, POST /v1/embeddings | POST /v1beta/models/{model}:generateContent, etc. |
| Corps de requête | Champs OpenAI : messages, model, stream | Champs Gemini : contents, generationConfig |
| Cas d’usage | Client OpenAI existant, passerelle multi-modèles, migration rapide | Fonctions propres à Gemini (thinkingConfig, paramètres Imagen, etc.) |
| Documentation | Cette page + section Chat | Pages 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
geminidepuis le catalogue dans le champmodel
SDK OpenAI (recommandé)
Pointez base_url du SDK officiel vers Fast-Token ; le reste est identique à OpenAI :
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)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é | Description | Référence |
|---|---|---|
| Création d’images Gemini | Générer ou éditer à partir de texte (et image de référence optionnelle) | Créer une image en chat (sans flux) |
| Chat | Dialogue multi-tours, avec ou sans flux | Sans flux, Avec flux |
| Chat — réflexion 1 | Dialogue avec sortie « réflexion » (variante 1) | Flux (extra_body.enable_thinking) |
| Chat — réflexion 2 | Dialogue avec sortie « réflexion » (variante 2) | Idem ; modèles selon le catalogue |
| Vision | Comprendre, décrire ou interroger une image | Vision (flux), sans flux |
| Chat + lecture de fichiers | Joindre des documents au dialogue | Voir « Fichiers et multimodal » ci-dessous |
| Embeddings texte | Texte vers vecteurs | Cré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
messagespour le multi-tours ;role:system/user/assistant(comme OpenAI) - Sans flux :
stream: falseou omettrestream; 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 :
{
"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).
{
"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
- Endpoint chat + modèles Gemini image pour texte→image et édition avec référence
- Décrivez le besoin en langage naturel dans
messages; référence :text+image_urldanscontent - Structure : Créer une image en chat (sans flux)
- Ratio et résolution : Génération d’images native
Chat + fichiers
Sous le format compatible, vous pouvez inclure documents, PDF, etc. (types MIME et limites selon le catalogue) :
- D’abord dans
messages[].contentselon les conventions multimodales OpenAI - Fichiers volumineux : Compréhension de documents native, puis intégration côté application
Embeddings
POST /v1/embeddings- Corps :
model+input(chaîne ou tableau), comme OpenAI Embeddings - Exemples : Créer des embeddings ; Objet embedding
- Options Gemini (
taskType,output_dimensionality, etc.) : Embeddings natifs
Compatible ou API native
| Besoin | Recommandation |
|---|---|
| Intégration rapide, SDK OpenAI / code existant | Format compatible OpenAI (cette page) |
Réflexion en flux, generationConfig, Google Search Grounding | API native (ex. Texte + réflexion (flux), Google Search) |
| Imagen, TTS, vidéo/audio | Sections API native |
| Chat + vision + images + embeddings avec client OpenAI | Le 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
- Démarrage rapide
- Guide API rapide
- Lister les modèles
- Autres pages — API REST native Gemini