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

Création de Chat avec Reconnaissance d'Image (Non-streamé)

Cette interface (API) est utilisée pour envoyer des prompts contenant du texte et des images au modèle, et obtenir un résultat de complétion de chat généré en une seule fois. Le modèle renverra une description détaillée ou une réponse basée sur le contexte fourni et le contenu de l'image.

  • Point d'accès (Endpoint) : https://api.codingplanx.ai/v1/chat/completions
  • Méthode de la requête : POST
  • Statut : Publié (Released)

En-têtes de Requête (Headers)

ParamètreRequisTypeExempleDescription
Content-TypeOuiStringapplication/jsonFormat du corps de la requête.
AcceptOuiStringapplication/jsonFormat du corps de la réponse.
AuthorizationNonStringBearer {{YOUR_API_KEY}}Clé API utilisée pour l'authentification.

Corps de la Requête (Request Body)

ParamètreRequisTypePar défautDescription
modelOuiString-ID du modèle à utiliser (ex. gpt-4o).
messagesOuiArray-Liste des messages de la conversation. Pour la reconnaissance d'image, content doit être un tableau d'objets.
temperatureNonNumber1Température d'échantillonnage (0 à 2). Plus elle est élevée, plus le résultat est aléatoire ; plus elle est basse, plus il est déterministe.
top_pNonNumber1Probabilité d'échantillonnage de noyau (Nucleus sampling). Il est recommandé d'ajuster soit top_p, soit temperature, mais pas les deux.
max_tokensNonIntegerinfNombre maximum de Tokens à générer.
nNonInteger1Nombre de réponses alternatives à générer pour chaque entrée.
streamNonBooleanfalseSi la sortie doit être en streaming (flux). Fixé à false pour cette interface.
stopNonString/ArraynullSéquence(s) d'arrêt de génération. Supporte jusqu'à 4 séquences.
presence_penaltyNonNumber0Pénalité de présence (-2.0 à 2.0). Augmente la probabilité d'aborder de nouveaux sujets.
frequency_penaltyNonNumber0Pénalité de fréquence (-2.0 à 2.0). Réduit la probabilité de répéter les mêmes expressions.
response_formatNonObject-Spécifie le format de sortie, ex. { "type": "json_object" } pour activer le mode JSON.
userNonString-Identifiant unique de l'utilisateur final.
toolsNonArray-Liste des outils que le modèle peut appeler (actuellement, seules les function sont supportées).
tool_choiceNonObject-Contrôle le comportement d'appel d'outil du modèle (none / auto / fonction spécifique).

Structure de l'objet de Reconnaissance d'Image messages (Content Array)

Lors d'une requête de reconnaissance d'image (Vision), messages.content doit contenir la structure suivante :

  • type : "text" ou "image_url"
  • text : Lorsque le type est text, insérez la question textuelle.
  • image_url : Lorsque le type est image_url, insérez l'objet { "url": "URL_de_l_image" }.

Exemple de Requête (Example)

{
    "model": "gpt-4o",
    "messages": [
      {
        "role": "system",
        "content": "You are a helpful assistant."
      },
      {
            "role": "user",
            "content": [
                {
                    "type": "text", 
                    "text": "Que contient cette image ? Veuillez la décrire en détail."
                },
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://lsky.zhongzhuan.chat/i/2024/10/17/6711068a14527.png"
                    }
                }
            ]
        }
    ]
}

Paramètres de Réponse (Response Body)

ParamètreTypeDescription
idStringIdentifiant unique de la requête.
objectStringType d'objet, toujours chat.completion.
createdIntegerHorodatage Unix (en secondes).
choicesArrayTableau contenant les différentes options générées.
└ indexIntegerIndice de l'option.
└ messageObjectObjet message renvoyé par le modèle (contenant role et content).
└ finish_reasonStringRaison de l'arrêt de la génération (ex. stop, length).
usageObjectStatistiques d'utilisation des Tokens.
└ prompt_tokensIntegerNombre de Tokens consommés par le prompt (la requête).
└ completion_tokensIntegerNombre de Tokens consommés par le résultat (la génération).
└ total_tokensIntegerNombre total de Tokens consommés.

Exemple de Réponse (Response)

{
    "id": "chatcmpl-123",
    "object": "chat.completion",
    "created": 1677652288,
    "choices": [
        {
            "index": 0,
            "message": {
                "role": "assistant",
                "content": "Cette image montre un bureau bien rangé avec un ordinateur portable, une tasse de café et une plante succulente."
            },
            "finish_reason": "stop"
        }
    ],
    "usage": {
        "prompt_tokens": 120,
        "completion_tokens": 45,
        "total_tokens": 165
    }
}

Foire Aux Questions (FAQs)

Q : Quels modèles prennent en charge la fonctionnalité de reconnaissance d'image ? R : Actuellement, les principaux modèles multimodaux supportés sont gpt-4o, gpt-4-turbo et gpt-4-vision-preview. Assurez-vous de renseigner le bon ID dans le champ model.

Q : Quels formats d'image sont pris en charge ? R : Les formats d'image courants sont pris en charge, tels que PNG, JPEG, WEBP, ainsi que les GIF non animés.

Q : Y a-t-il des restrictions d'accès pour les liens d'images ? R : L'URL de l'image fournie doit être accessible publiquement. Si l'image se trouve sur un stockage cloud privé, veuillez d'abord générer un lien d'accès temporaire signé ou convertir l'image en encodage Base64 avant de l'envoyer (Remarque : le format Base64 doit suivre la structure data:image/jpeg;base64,...).

Q : Comment la reconnaissance d'image est-elle facturée ? R : Les images sont converties en Tokens pour la facturation en fonction de leur résolution et de leur niveau de détail. Généralement, les images en basse résolution consomment une petite quantité fixe de Tokens, tandis que les images en haute résolution sont calculées en fonction du nombre de segments de 512x512 générés.

Q : Que faire si je souhaite une sortie en streaming (effet machine à écrire) ? R : Veuillez définir le paramètre stream sur true dans votre requête. Notez cependant que cette documentation d'API décrit le comportement non-streamé. Le format des données pour un retour en streaming deviendra des Server-Sent Events (SSE).

Q : Pourquoi l'API a-t-elle renvoyé "finish_reason": "length" ? R : Cela indique que la réponse générée a atteint la limite max_tokens que vous avez définie, ou a dépassé la limite de la fenêtre de contexte du modèle, ce qui a entraîné la troncature du contenu.