Complétions de chat

Générez des complétions de chat à partir d'une liste de messages — le point d'accès principal pour la génération de texte avec tous les modèles pris en charge.

POST/v1/chat/completions

Générez une complétion de chat à partir d'une liste de messages. C'est le point d'accès principal pour la génération de texte avec tous les modèles pris en charge.

Les tableaux de paramètres ci-dessous répertorient les champs communs partagés par tous les modèles. Chaque modèle peut prendre en charge des paramètres supplémentaires qui lui sont propres (par ex. entrée vision, appel d'outils, mode JSON). Pour la liste exhaustive des paramètres acceptés par un modèle donné, ouvrez sa page de détails sur Modèles et basculez vers l'onglet API — la référence des paramètres y est générée à partir des capacités déclarées du modèle.

Corps de la requête

ParamètreTypeRequisDescription
modelstringOuiID du modèle (par ex. « gpt-4o-mini », « claude-sonnet-4-6 »)
messagesarrayOuiTableau d'objets message. Chacun possède un role (system, user ou assistant) et un content qui est soit une simple chaîne, soit un tableau de blocs de contenu (text, image_url, document_url). system définit le comportement de l'IA ; user est votre message ; assistant est une réponse antérieure de l'IA.
temperaturenumberNonContrôle l'aléatoire. 0 = déterministe/ciblé, 1 = équilibré (par défaut), 2 = très créatif/aléatoire.
max_tokensintegerNonNombre maximal de tokens à générer
streambooleanNonDiffuse la réponse en SSE. Par défaut : false
top_pnumberNonParamètre d'échantillonnage par noyau (0–1)
stopstring | string[]NonJusqu'à 4 séquences d'arrêt. Le modèle cesse de générer dès qu'il en rencontre une.
frequency_penaltynumberNon-2.0 à 2.0. Les valeurs positives pénalisent les tokens répétés. Par défaut : 0
presence_penaltynumberNon-2.0 à 2.0. Les valeurs positives orientent le modèle vers de nouveaux sujets. Par défaut : 0
seedintegerNonGraine de reproductibilité. La même graine + les mêmes paramètres renvoient une sortie similaire (au mieux).
response_formatobjectNon{ type: "json_object" } ou { type: "json_schema", json_schema: ... } pour une sortie structurée. La prise en charge varie selon le modèle — voir l'onglet API du modèle.
toolsarrayNonDéfinitions de fonctions que le modèle peut appeler. Associé à tool_choice. Disponible uniquement sur les modèles compatibles avec les outils.

Entrée PDF. Joignez un PDF à un message user en passant un bloc de contenu avec { type: "document_url", document_url: { url: ... } }. Jusqu'à 5 PDF par requête. Seuls les modèles avec supportsDocuments: true acceptent ce bloc — actuellement claude-opus-4-7, claude-sonnet-4-6, claude-haiku-4-5-20251001, gpt-4.1 et gpt-4.1-mini.

Exemple de requête

import Tchavi from '@tchavi/sdk';

const client = new Tchavi({ apiKey: 'YOUR_API_KEY' });

const response = await client.chat.completions.create({
  model: 'gpt-4o-mini',
  messages: [
    { role: 'system', content: 'Tu es un assistant utile.' },
    { role: 'user', content: 'Quelle est la capitale du Bénin ?' },
  ],
  temperature: 0.7,
});

console.log(response.choices[0].message.content);
console.log('Crédits utilisés :', response.tchavi.credits_used);

Exemple de réponse

JSON
{
  "id": "chatcmpl-abc123",
  "object": "chat.completion",
  "created": 1711234567,
  "model": "gpt-4o-mini",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "La capitale du Bénin est Porto-Novo."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 24,
    "completion_tokens": 12,
    "total_tokens": 36
  },
  "tchavi": {
    "credits_used": 2,
    "credits_remaining": 498,
    "model_tier": "budget"
  }
}

Streaming

Définissez stream: true pour recevoir la réponse token par token sous forme de Server-Sent Events (SSE). Cela vous permet d'afficher le texte au fur et à mesure de son arrivée plutôt que d'attendre la réponse complète.

import Tchavi from '@tchavi/sdk';

const client = new Tchavi({ apiKey: process.env.TCHAVI_API_KEY });

const stream = await client.chat.completions.create({
  model: 'gpt-4o-mini',
  messages: [{ role: 'user', content: 'Raconte-moi une courte histoire.' }],
  stream: true,
});

for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content ?? '');
}

Sur cette page