Invitez des amis et gagnez des tokens gratuits !En savoir plus

Créer une complétion de chat (Non-streaming)

Ce point de terminaison (endpoint) est utilisé pour fournir une invite (Prompt) au modèle, qui retourne ensuite un ou plusieurs résultats de complétion prédits. L'interface non-streaming renvoie le résultat en une seule fois après la génération de la réponse complète.

  • URL de l'API : https://api.codingplanx.ai/v1/chat/completions
  • Méthode HTTP : POST
  • Type de contenu : application/json

Paramètres de la Requête

En-têtes (Headers)

Nom du paramètreTypeRequisExemple de valeurDescription
Content-TypestringOuiapplication/jsonFormat du corps de la requête
AcceptstringOuiapplication/jsonFormat du corps de la réponse
AuthorizationstringNonBearer {{YOUR_API_KEY}}Jeton (token) d'authentification

Corps de la Requête (Body)

Nom du paramètreTypeRequisValeur par défautDescription
modelstringOui-ID du modèle à utiliser (ex. gpt-4o, gpt-3.5-turbo).
messagesarrayOui-Liste des messages de la conversation. Chaque objet contient role (system/user/assistant) et content.
temperaturenumberNon1Température d'échantillonnage (0-2). Plus la valeur est élevée, plus le texte est aléatoire ; plus elle est basse, plus il est déterministe.
top_pnumberNon1Échantillonnage par noyau (Nucleus sampling). Ne considère que les tokens constituant la masse de probabilité top_p. Il est recommandé de modifier soit ce paramètre, soit temperature, mais pas les deux.
nintegerNon1Nombre de choix de complétion à générer pour chaque message d'entrée.
streambooleanNonfalseActiver le streaming. Ici, il doit être défini sur false.
stopstring/arrayNonnullSéquence(s) (jusqu'à 4) où l'API s'arrêtera de générer des tokens supplémentaires.
max_tokensintegerNoninfLe nombre maximum de tokens à générer, limité par la longueur de contexte du modèle.
presence_penaltynumberNon0Entre -2.0 et 2.0. Des valeurs positives augmentent la probabilité que le modèle aborde de nouveaux sujets.
frequency_penaltynumberNon0Entre -2.0 et 2.0. Des valeurs positives réduisent la probabilité que le modèle répète les mêmes mots.
logit_biasobjectNonnullModifie la probabilité d'apparition de tokens spécifiques dans la complétion.
userstringNon-Identifiant unique de l'utilisateur final, utile pour surveiller et détecter les abus.
response_formatobjectNon-Spécifie le format de sortie, ex : { "type": "json_object" } pour activer le mode JSON.
toolsarrayNon-Liste des outils que le modèle peut appeler (actuellement, seules les fonctions "function" sont prises en charge).
tool_choicestring/objNonautoContrôle quel outil est appelé par le modèle (none/auto/fonction spécifique).

Paramètres de Réponse

Corps de la Réponse (Response Body)

Nom du paramètreTypeDescription
idstringIdentifiant unique de cette requête.
objectstringType d'objet, toujours chat.completion.
createdintegerHorodatage Unix (en secondes).
choicesarrayListe des résultats de complétion.
├─ indexintegerL'index de ce résultat dans la liste.
├─ messageobjectLe contenu du message généré par le modèle.
│ ├─ rolestringLe rôle, généralement assistant.
│ └─ contentstringLe contenu textuel spécifique du message.
└─ finish_reasonstringRaison de l'arrêt (ex. stop, length, tool_calls).
usageobjectStatistiques d'utilisation des tokens.
├─ prompt_tokensintegerNombre de tokens consommés par l'invite (prompt).
├─ completion_tokensintegerNombre de tokens générés pour la réponse.
└─ total_tokensintegerNombre total de tokens consommés.

Exemples

Exemple de Requête (cURL)

curl --location --request POST 'https://api.codingplanx.ai/v1/chat/completions' \
--header 'Authorization: Bearer VOTRE_API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
  "model": "gpt-4o",
  "messages": [
    {
      "role": "user",
      "content": "Bonjour, présentez-vous s'\''il vous plaît."
    }
  ],
  "max_tokens": 1000
}'

Exemple de Réponse

{
    "id": "chatcmpl-123",
    "object": "chat.completion",
    "created": 1677652288,
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": "Bonjour ! Je suis l'assistant IA fourni par CodingPlanX, ravi de vous aider."
            },
            "finish_reason": "stop"
        }
    ],
    "usage": {
        "prompt_tokens": 15,
        "completion_tokens": 25,
        "total_tokens": 40
    }
}

FAQ (Foire Aux Questions)

Q1 : Comment activer le mode JSON ? R1 : Définissez "response_format": { "type": "json_object" } dans le corps de la requête. Attention : Lorsque vous utilisez le mode JSON, vous devez explicitement demander au modèle de générer du JSON dans le message system ou user. Dans le cas contraire, le modèle pourrait générer un espace blanc infini.

Q2 : Comment choisir entre temperature et top_p ? R2 : Nous recommandons généralement de ne modifier qu'un seul des deux. Si vous souhaitez que le modèle soit plus créatif, vous pouvez augmenter temperature (ex. 0.8) ; si vous avez besoin de réponses plus rigoureuses et constantes, vous pouvez la réduire (ex. 0.2).

Q3 : Pourquoi le paramètre finish_reason est-il length ? R3 : Cela signifie que la réponse générée a été tronquée parce qu'elle a atteint la limite de max_tokens que vous avez définie, ou qu'elle a dépassé la longueur de contexte maximale du modèle.

Q4 : Qu'est-ce qu'un Token ? R4 : Le token est l'unité de base du traitement de texte par le modèle. Pour le chinois, un caractère équivaut à environ 1 à 2 tokens (pour le français, un mot représente généralement 1 à 1,5 token). La facturation de l'API et les limites de contexte sont basées sur le nombre de tokens.

Q5 : Quelle est la différence entre presence_penalty et frequency_penalty ? R5 : presence_penalty se concentre sur l'"introduction de nouveaux sujets", pénalisant un mot dès qu'il est apparu ; frequency_penalty se concentre sur la "fréquence de répétition", pénalisant un mot proportionnellement au nombre de fois où il apparaît.

Q6 : Comment puis-je obtenir un effet de génération de texte en temps réel ? R6 : Veuillez définir le paramètre stream sur true. Notez que le format de réponse en streaming est différent de celui documenté ici (non-streaming) et s'appuie sur la technologie Server-Sent Events (SSE).