Création de Chat avec Génération d'Images (Non-streaming)
Cette interface permet d'envoyer un prompt (contenant du texte ou des images) au modèle, qui renverra une ou plusieurs réponses générées. Cette API est particulièrement adaptée aux modèles prenant en charge les entrées multimodales (telles que le traitement d'images, l'embellissement, et la création basée sur la reconnaissance d'images), comme gpt-4o-image-vip.
Informations sur l'API
- URL de l'API:
https://api.codingplanx.ai/v1/chat/completions - Méthode de requête:
POST - Type de contenu:
application/json - Type de réponse:
application/json
En-têtes (Headers)
| Nom du paramètre | Requis | Type | Valeur d'exemple | Description |
|---|---|---|---|---|
| Content-Type | Oui | String | application/json | Format du corps de la requête |
| Accept | Oui | String | application/json | Format de réponse attendu |
| Authorization | Non | String | Bearer {{YOUR_API_KEY}} | Clé d'API utilisée pour l'authentification |
Paramètres de Requête (Body)
Le corps de la requête est un objet JSON contenant les champs suivants :
| Nom du paramètre | Type | Requis | Valeur par défaut | Description |
|---|---|---|---|---|
| model | String | Oui | - | ID du modèle à utiliser. Par exemple : gpt-4o-image-vip. |
| messages | Array | Oui | - | Liste des messages de la conversation. Chaque objet contient un role (user/assistant/system) et un content. Le content peut être une chaîne de caractères ou un tableau d'objets contenant le type et l'URL de l'image. |
| tools | Array | Oui | - | Liste des outils que le modèle peut appeler. Actuellement, seules les fonctions sont prises en charge. |
| tool_choice | Object | Oui | none | Contrôle quelle fonction le modèle doit appeler. none (ne pas appeler), auto (sélection automatique). |
| temperature | Number | Non | 1 | Température d'échantillonnage (0-2). Plus elle est élevée, plus le résultat est aléatoire ; plus elle est basse, plus il est concentré. |
| top_p | Number | Non | 1 | Échantillonnage par noyau (Nucleus sampling). Ne prend en compte que les jetons (tokens) constituant la masse de probabilité supérieure à P. Il est recommandé de modifier soit temperature soit top_p, mais pas les deux. |
| n | Integer | Non | 1 | Nombre de choix de complétion de chat à générer pour chaque entrée. |
| stream | Boolean | Non | false | Indique si le mode streaming est activé. Cette API est actuellement définie comme non-streaming. |
| max_tokens | Integer | Non | inf | Nombre maximum de jetons à générer. |
| stop | String/Array | Non | null | Séquence(s) d'arrêt. L'API cessera de générer des jetons supplémentaires. |
| presence_penalty | Number | Non | 0 | Entre -2.0 et 2.0. Pénalise les jetons déjà présents, augmentant la probabilité pour le modèle de parler de nouveaux sujets. |
| frequency_penalty | Number | Non | 0 | Entre -2.0 et 2.0. Pénalise les jetons répétés en fonction de leur fréquence d'apparition. |
| response_format | Object | Non | - | Spécifie le format de sortie, par exemple { "type": "json_object" } pour activer le mode JSON. |
| user | String | Non | - | Identifiant unique représentant l'utilisateur final, utilisé pour surveiller les abus. |
| seen | Integer | Non | - | (Version Bêta) Spécifie la valeur d'une graine (seed) pour s'efforcer d'obtenir un échantillonnage déterministe. |
Paramètres de Réponse
| Nom du paramètre | Type | Description |
|---|---|---|
| id | String | Identifiant unique de la requête. |
| object | String | Type d'objet, toujours chat.completion. |
| created | Integer | Horodatage Unix (en secondes). |
| choices | Array | Contient les options de réponse générées. |
| └ index | Integer | Indice (index) de l'option. |
| └ message | Object | Objet de message contenant le role et le content. |
| └ finish_reason | String | Raison de l'arrêt (ex: stop, length). |
| usage | Object | Utilisation des jetons (tokens). |
| └ prompt_tokens | Integer | Nombre de jetons consommés par le prompt. |
| └ completion_tokens | Integer | Nombre de jetons consommés par la complétion. |
| └ total_tokens | Integer | Consommation totale de jetons. |
Exemples
Exemple de Requête (Embellissement / Création d'image)
{
"model": "gpt-4o-image-vip",
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "Embellis cette image et ajoute le texte 'J'aime la Chine' (我爱中国), avec un ratio de [4:3] "},
{
"type": "image_url",
"image_url": {
"url": "https://lsky.zhongzhuan.chat/i/2024/10/17/6711068a14527.png"
}
}
]
}
],
"tools": [],
"tool_choice": "none"
}
Exemple de Réponse
{
"id": "chatcmpl-123",
"object": "chat.completion",
"created": 1677652288,
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "D'accord, l'image a été traitée avec succès. Vous pouvez voir le résultat généré ci-dessous : [Lien/Description de l'image]"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 9,
"completion_tokens": 12,
"total_tokens": 21
}
}
FAQs (Foire Aux Questions)
Q : Pourquoi la requête échoue-t-elle lors de l'utilisation de response_format: { "type": "json_object" } ?
R : Lors de l'utilisation du mode JSON, vous devez explicitement demander au modèle de générer du JSON dans messages (par exemple : ajouter "Veuillez répondre au format JSON" dans le prompt système). Sinon, le modèle risque de générer une boucle infinie ou une erreur en produisant du contenu non-JSON.
Q : Comment garantir que les résultats générés sont cohérents à chaque requête ?
R : Bien que les modèles d'IA aient une part d'aléatoire, vous pouvez essayer de définir le paramètre seen (seed) et maintenir la temperature à 0. Surveillez également le champ system_fingerprint dans la réponse pour vérifier si l'environnement backend a changé.
Q : Quelle est la valeur appropriée pour max_tokens ?
R : Cela dépend de votre cas d'utilisation. Pour une brève description d'image, 100 à 300 jetons suffisent ; si une analyse détaillée ou une création de texte long est nécessaire, il est recommandé de définir la valeur à 1000 ou plus. Attention, la somme des jetons d'entrée (images incluses) et de sortie ne doit pas dépasser la limite de contexte du modèle.
Q : Comment gérer l'entrée des images ?
R : Dans le content des messages, utilisez type: "image_url". Actuellement, il est recommandé d'utiliser des liens d'images HTTPS accessibles publiquement sur Internet.
Q : Les paramètres tools et tool_choice sont-ils obligatoires ?
R : Selon la définition de cette API, ces deux champs sont marqués comme obligatoires. Si vous n'avez pas besoin d'appeler d'outil spécifique, veuillez définir tools comme un tableau vide [] et tool_choice sur "none".