Thème
Langue

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.

POSThttps://getvibeapi.com/v1/chat/completions

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.

Basic — fonctionne sur tous les modèles
ParamètreTypeDescription
modelreq.stringUn nom de modèle provenant du catalogue, par exemple gpt-6.1-sol ou claude-opus-5.5.
messagesreq.arrayTableau de messages { role, content }. Rôles : system, user, assistant.
streambooleantrue — diffusez la réponse via SSE.
max_tokensintegerNombre 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.
temperaturenumberAléatoire de la sortie, de 0 à 2. Valeur par défaut : 1.
Avancé — la prise en charge dépend du modèle
ParamètreTypeDescription
top_pnumbermodel-dependentÉchantillonnage nucleus (0–1). Alternative à temperature ; il n’est pas recommandé de modifier les deux simultanément.
top_knumberClaudeÉchantillonnage Top-K. Modèles Anthropic uniquement.
seedintegerGPTÉpingle le résultat pour assurer la reproductibilité. Série GPT ; ignoré ailleurs.
stopstring | arraymodel-dependentSéquence d’arrêt : une chaîne ou une liste de 4 chaînes maximum.
frequency_penaltynumberGPT · ClaudePénalité appliquée aux tokens répétés en fonction de leur fréquence (-2 à 2).
presence_penaltynumberGPT · ClaudePénalité appliquée aux tokens déjà rencontrés (-2 à 2).
logprobsboolean—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_logprobsinteger—Supprimé avec logprobs et signalé dans x-getvibe-warnings.
logit_biasobjectGPTID de token → biais de logit (-100 à 100).
userstringmodel-dependentIdentifiant de l’utilisateur final (transmis en amont pour le suivi des limites de débit).
response_formatobjectGPT · ClaudeForcez la sortie au format JSON. En savoir plus →
tools / tool_choicearray / stringGPT · ClaudeAppels 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.

Comparaison des variantes de route
ParamètreTypeDescription
Default variant (:1)basicEnsemble 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…)advancedL’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-* variantsor-*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.
Un paramètre inconnu est ignoré par le fournisseur ou renvoie une erreur 400. Si un paramètre est important, utilisez la variante :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.

API Chat Completions de GetVibe — exemples Python et curl | GetVibe API