Chat Completions
/v1/chat/completions — le point de terminaison de chat compatible avec OpenAI. Paramètres model, messages, stream, temperature. Diffusion SSE. Exemples de requêtes et de réponses en curl, Python (openai) et Node.
Le point de terminaison de chat compatible avec OpenAI. Fonctionne avec n’importe quel SDK OpenAI : il suffit de remplacer base_url par https://getvibeapi.com/v1.
Paramètres du corps de la requête
GetVibe met en œuvre un contrat Chat Completions compatible, et non une transmission identique octet par octet : il vérifie l’accès, résout l’identifiant de modèle public, applique les limites et peut normaliser les champs de requête pris en charge. Les réponses et les erreurs sont également normalisées et ne garantissent pas les champs ni les en-têtes propres au fournisseur en amont. Pour la plupart des tâches, les trois premiers — model, messages et stream — suffisent.
| Paramètre | Type | Description |
|---|---|---|
modelreq. | string | Un nom de modèle provenant du catalogue, par exemple gpt-6.1-sol ou claude-opus-5.5. |
messagesreq. | array | Tableau de messages { role, content }. Rôles : system, user, assistant. |
stream | boolean | true — diffusez la réponse via SSE. |
max_tokens | integer | Nombre maximal de tokens dans la réponse. Nous recommandons au moins 64 : avec une valeur trop faible (par exemple ≤ 16), le modèle peut atteindre la limite (finish_reason: length) avant le premier token visible et renvoyer une réponse vide. Si vous avez besoin d’un résultat court, demandez-le dans le prompt et gardez max_tokens avec une marge suffisante. |
temperature | number | Aléatoire de la sortie, de 0 à 2. Valeur par défaut : 1. |
| Paramètre | Type | Description |
|---|---|---|
top_p | numbermodel-dependent | Échantillonnage nucleus (0–1). Alternative à temperature ; il n’est pas recommandé de modifier les deux simultanément. |
top_k | numberClaude | Échantillonnage Top-K. Modèles Anthropic uniquement. |
seed | integerGPT | Épingle le résultat pour assurer la reproductibilité. Série GPT ; ignoré ailleurs. |
stop | string | arraymodel-dependent | Séquence d’arrêt : une chaîne ou une liste de 4 chaînes maximum. |
frequency_penalty | numberGPT · Claude | Pénalité appliquée aux tokens répétés en fonction de leur fréquence (-2 à 2). |
presence_penalty | numberGPT · Claude | Pénalité appliquée aux tokens déjà rencontrés (-2 à 2). |
logprobs | boolean— | Aucune route actuelle ne renvoie de log-probabilités : le paramètre est supprimé avant l’acheminement et signalé dans l’en-tête x-getvibe-warnings (param_dropped:logprobs) ; la requête n’est pas refusée. |
top_logprobs | integer— | Supprimé avec logprobs et signalé dans x-getvibe-warnings. |
logit_bias | objectGPT | ID de token → biais de logit (-100 à 100). |
user | stringmodel-dependent | Identifiant de l’utilisateur final (transmis en amont pour le suivi des limites de débit). |
response_format | objectGPT · Claude | Forcez la sortie au format JSON. En savoir plus → |
tools / tool_choice | array / stringGPT · Claude | Appels de fonctions. En savoir plus → |
Badges de la colonne « Support » : GPT — séries GPT uniquement, Claude — modèles Anthropic uniquement, GPT · Claude — les deux familles, dépend du modèle — consultez la documentation de ce modèle.
Prise en charge des paramètres selon la variante de route
Le même modèle peut être fourni par différentes routes (variantes :1, :2, …). Les routes diffèrent par leur prix, leur vitesse et l’ensemble des paramètres pris en charge.
| Paramètre | Type | Description |
|---|---|---|
Default variant (:1) | basic | Ensemble complet des paramètres OpenAI : temperature, top_p, seed, stop, penalties, logprobs, tools, response_format, streaming avec un bloc d’utilisation. |
Subscription variants (:2, :3…) | advanced | L’ensemble des paramètres correspond à celui de base, mais la route utilise une infrastructure différente. Certains paramètres peuvent ne pas être pris en charge ; nous le précisons dans la description de la variante. |
or-* variants | or-* | Achemine la requête via un agrégateur distinct. La prise en charge des paramètres dépend du fournisseur concerné. tool_choice: "required" et certains paramètres d’échantillonnage peuvent ne pas fonctionner. |
:1 (par défaut) ou vérifiez sa prise en charge dans la description de la variante sur la page Models.Exemple de requête
curl https://getvibeapi.com/v1/chat/completions \
-H "Authorization: Bearer $GETVIBE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6.1-sol",
"messages": [
{"role": "user", "content": "Hello! Who are you?"}
]
}'Exemple de réponse
{
"id": "chatcmpl-...",
"object": "chat.completion",
"model": "gpt-6.1-sol",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Hi! I'm an assistant available through GetVibe API."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 12,
"completion_tokens": 14,
"total_tokens": 26
}
}Diffusion en continu (SSE)
Avec "stream": true, la réponse est envoyée sous forme de flux d’événements Server-Sent Events : événements data: … contenant des deltas, qui se terminent par data: [DONE].
curl https://getvibeapi.com/v1/chat/completions \
-H "Authorization: Bearer $GETVIBE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6.1-sol",
"stream": true,
"messages": [{"role": "user", "content": "Count to three"}]
}'Dernier fragment avec l'utilisation
Le dernier fragment avant data: [DONE] contient un choices: [] vide et un champ usage avec les statistiques des tokens. Utilisez-le pour la facturation : ne faites pas la somme des deltas manuellement.
data: {"id":"chatcmpl-...","choices":[],"usage":{"prompt_tokens":42,"completion_tokens":87,"total_tokens":129},"model":"gpt-6.1-sol","object":"chat.completion.chunk"}
data: [DONE]Toute réponse sans flux dont le coût peut être estimé inclut l’en-tête de réponse x-pv-cost-rub. Par défaut, les corps des flux ne contiennent aucun pv_cost_rub ; envoyez x-pv-cost: 1 pour ajouter le coût à l’événement d’utilisation final de ce protocole. Il s’agit d’une estimation au mieux ; pour le débit réel, consultez l’historique des requêtes GET /v1/generations.
Compatibilité
Le point de terminaison est compatible avec les SDK OpenAI (Python, Node et autres), Codex CLI et Claude Code. Claude Code fonctionne via /v1/messages avec l’en-tête x-api-key : consultez Messages et Responses.