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

Documentation de l'API de Complétion de Chat (Chat Completions)

Cette interface est utilisée pour fournir un prompt (invite), et le modèle retournera un ou plusieurs résultats de complétion prédits. Vous pouvez générer du texte basé sur l'historique de la conversation et contrôler le niveau d'aléatoire, la longueur et le format du processus de génération.

  • Nom de l'interface : Lister les modèles / Complétion de Chat
  • Méthode de requête : GET (Remarque : selon la définition des données fournies)
  • URL de la requête : https://api.codingplanx.ai/v1/models
  • Statut : Publié (Released)

1. Paramètres de Requête

1.1 Paramètres d'En-tête (Header)

Nom du paramètreRequisTypeValeur d'exempleDescription
Content-TypeOuiStringapplication/jsonFormat du corps de la requête
AcceptOuiStringapplication/jsonFormat de la réponse de l'API
AuthorizationNonStringBearer {{YOUR_API_KEY}}Clé API utilisée pour l'authentification

1.2 Paramètres du Corps (Body)

Bien que définie à l'origine comme GET, selon la logique métier, les paramètres suivants sont généralement transmis via un corps (Body) JSON.

Nom du paramètreTypeRequisValeur par défautDescription
modelstringOui-L'ID du modèle à utiliser. Par exemple : gpt-3.5-turbo.
messagesarrayOui-Liste des messages composant la conversation jusqu'à présent. Chaque message contient un role et un content.
temperaturenumberNon1Température d'échantillonnage, comprise entre 0 et 2. Une valeur plus élevée rend la sortie plus aléatoire.
top_pnumberNon1Échantillonnage par noyau (nucleus sampling). 0.1 signifie que seuls les jetons (tokens) constituant les 10 % de la masse de probabilité supérieure sont pris en compte.
nintegerNon1Nombre de choix de complétion de chat à générer pour chaque entrée.
streambooleanNonfalseSi le streaming est activé. Si défini sur true, des deltas de messages partiels seront envoyés (SSE).
stopstring/arrayNonnullSéquence(s) d'arrêt. Le modèle cessera de générer des jetons lorsqu'il rencontrera ces caractères.
max_tokensintegerNoninfLe nombre maximum de jetons (tokens) à générer.
presence_penaltynumberNon0Un nombre entre -2.0 et 2.0. Les valeurs positives augmentent la probabilité que le modèle aborde de nouveaux sujets.
frequency_penaltynumberNon0Un nombre entre -2.0 et 2.0. Les valeurs positives diminuent la probabilité que le modèle répète les mêmes lignes.
logit_biasobjectNonnullModifie la probabilité que des jetons spécifiques apparaissent dans la complétion.
userstringNon-Identifiant unique représentant l'utilisateur final, utile pour surveiller les abus.
response_formatobjectNon-Spécifie le format de sortie du modèle, par exemple { "type": "json_object" } pour activer le mode JSON.
toolsarrayNon-Liste des outils (comme des fonctions) que le modèle peut appeler.
tool_choiceobjectNonautoContrôle quelle fonction le modèle va appeler.

2. Paramètres de Réponse

Nom du paramètreTypeDescription
idstringIdentifiant unique de la requête.
objectstringType d'objet, généralement chat.completion.
createdintegerHorodatage (en secondes) de la création de la requête.
choicesarrayListe contenant les résultats de la complétion.
├─ indexintegerL'index de ce choix dans la liste.
├─ messageobjectLe message spécifique généré par le modèle.
│ ├─ rolestringLe rôle, généralement assistant.
│ └─ contentstringLe contenu textuel du message.
└─ finish_reasonstringRaison de l'arrêt, comme stop (arrêt normal) ou length (longueur maximale atteinte).
usageobjectStatistiques d'utilisation des jetons (tokens).
├─ prompt_tokensintegerNombre de jetons consommés par l'entrée (prompt).
├─ completion_tokensintegerNombre de jetons générés en sortie.
└─ total_tokensintegerNombre total de jetons consommés.

3. Exemples de Requête

Exemple de requête réussie

curl --location --request GET 'https://api.codingplanx.ai/v1/models' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer VOTRE_CLE_API' \
--data '{
  "model": "gpt-3.5-turbo",
  "messages": [
    {
      "role": "user",
      "content": "Hello there, how may I assist you today?"
    }
  ],
  "temperature": 1,
  "top_p": 1,
  "n": 1,
  "stream": false,
  "user": "user-1234"
}'

Exemple de réponse réussie

{
    "id": "chatcmpl-123",
    "object": "chat.completion",
    "created": 1677652288,
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": "\r
\r
Hello there, how may I assist you today?"
            },
            "finish_reason": "stop"
        }
    ],
    "usage": {
        "prompt_tokens": 9,
        "completion_tokens": 12,
        "total_tokens": 21
    }
}

4. FAQ (Foire Aux Questions)

Q : Pourquoi la documentation indique-t-elle la méthode GET, alors que cela ressemble à une requête POST ? R : Dans la spécification standard d'OpenAI, la création de complétions utilise généralement la méthode POST. Cependant, selon les métadonnées fournies, cette interface est définie comme GET. Veuillez vérifier la configuration réelle du côté serveur lors de l'appel de l'API. Si GET ne fonctionne pas, essayez d'utiliser POST.

Q : Comment dois-je choisir entre temperature et top_p ? R : Nous recommandons de n'ajuster qu'un seul des deux. Si vous souhaitez des réponses plus précises et déterministes, diminuez la temperature (par exemple, 0.2) ; si vous souhaitez des réponses plus diversifiées et créatives, vous pouvez l'augmenter.

Q : Comment activer le mode JSON ? R : Vous devez définir { "type": "json_object" } dans le paramètre response_format, et informer explicitement le modèle dans les messages (via un message Système ou Utilisateur) que la sortie doit être au format JSON. Sinon, le modèle risque de produire une erreur d'analyse ou de générer des espaces infinis.

Q : Que sont la presence_penalty et la frequency_penalty ? R :

  • presence_penalty (Pénalité de présence) : Se concentre sur la pénalisation des sujets qui sont déjà apparus, encourageant ainsi le modèle à aborder de nouveaux sujets.
  • frequency_penalty (Pénalité de fréquence) : Se concentre sur la pénalisation du vocabulaire répété, empêchant le modèle de répéter les mêmes phrases dans un court laps de temps.

Q : Comment fonctionne la sortie en continu (stream: true) ? R : Une fois le streaming activé, l'API renvoie les données progressivement via les Server-Sent Events (SSE). Chaque bloc de données est une chaîne JSON commençant par data: , et le flux se termine par data: [DONE]. Ceci est très utile pour l'affichage en temps réel lors de la génération de textes longs.