Back to Home

Documentation de l'API Image Describer

2025-02-22

Posted by

Documentation de l'API Image Describer

Introduction et cas d'utilisation

L'API Image Describer vous permet d'intégrer des fonctionnalités de description d'images basées sur l'IA dans vos applications. Notre API utilise des modèles d'IA avancés pour analyser les images et générer des descriptions détaillées.

Cas d'utilisation courants

  • Générer des descriptions détaillées pour les images
  • Extraire du texte et des informations des images
  • Analyser le contenu et le contexte des images
  • Créer des descriptions de personnages pour l'écriture créative
  • Générer des légendes d'images pour la gestion de contenu

Clés d'API

Pour utiliser notre API, vous devrez obtenir des informations d'identification d'API (clé d'API et secret). Vous pouvez gérer vos clés d'API dans le tableau de bord.

Gérer les clés d'API →

Point de terminaison de l'API

POST https://imagedescriber.online/api/openapi/describe-image

Guide d'intégration

En-têtes de requête

Nom de l'en-têteObligatoireDescription
content-typeOuiDoit être multipart/form-data
appidOuiVotre clé d'API obtenue à partir du tableau de bord
timestampOuiHorodatage actuel en millisecondes
nonceOuiChaîne UUID aléatoire pour l'unicité de la requête, doit être unique et comprise entre 6 et 32 caractères. Par exemple, 4dc6gvrjg1
signatureOuiSignature HMAC-SHA256 pour l'authentification (Voir les exemples de code)

Paramètres de requête

ParamètreTypeObligatoireDescription
imageBase64DatastringOuiDonnées d'image encodées en Base64 avec préfixe de type MIME (par exemple, data:image/jpeg;base64,/9j/4AAQSkZJRgABAQE...)
promptstringNonInvite personnalisée pour l'analyse d'images
langstringNonLangue de réponse (en/zh/de/es/fr/ja/ko)

Format de réponse

ChampTypeDescription
codenumberCode d'état de la réponse. 200 pour le succès
dataobjectObjet de données de réponse, présent lorsque le code est 200
data.contentstringLa description générée pour l'image
msgstringMessage de réponse, fournit des informations supplémentaires
succeedbooleanIndique si la requête a réussi

Exemple de réponse

{
    "code": 200,
    "data": {
        "content": "Description détaillée de l'image au format markdown..."
    },
    "succeed": true,
    "msg": "Succès"
}

Codes d'erreur

CodeMessageDescription
200OKRequête réussie
500SERVER_ERRORErreur interne du serveur
10003INSUFFICIENT_CREDITSCrédits insuffisants
10004INVALID_PARAMParamètres invalides
10005HARMFUL_CONTENTContenu nuisible détecté
30001INVALID_API_KEYClé d'API invalide
30002INVALID_SIGNATURESignature de requête invalide

Exemples de code

Exemple Next.js

import fs from 'fs';

// Get image base64 data: Server-side implementation
const buffer = await fs.readFileSync("/temp/test.jpg");
const base64Image = buffer.toString('base64');
const imageBase64Data = `data:image/jpeg;base64,${base64Image}`;

// Get image base64 data: Client-side implementation
const file:File = /* file from input or drop event */;
const arrayBuffer = await file.arrayBuffer();
const bytes = new Uint8Array(arrayBuffer);
const base64Image = btoa(String.fromCharCode.apply(null, bytes as any));
const imageBase64Data = `data:${file.type};base64,${base64Image}`;

// Request Body
const formData = new FormData();
formData.append('imageBase64Data', imageBase64Data);
formData.append('lang', 'en');
formData.append('prompt', 'Summarize the content of the picture in one sentence, then describe in detail what is in the picture, including objects, people, animals, and the atmosphere and mood of the picture');

// Signature
const appid = "app_1234567";
const secret = "sk_a8f3dbb3...";
const timestamp = Date.now().toString();
const nonce = crypto.randomBytes(4).toString('hex');

const signStr = buildSignString(appid, timestamp, nonce); // See subsequent code for function implementation
const sign = await sign(signStr, secret); // See subsequent code for function implementation

// Do Request
const response = await fetch('https://imagedescriber.online/api/openapi/describe-image', {
  method: 'POST',
  headers: {
      'appid': appid,
      'timestamp': timestamp,
      'nonce': nonce,
      'signature': sign
    },
    body: formData
});

const result = await response.json();
console.log(result);

function buildSignString(appId: string, timestamp: string, nonce: string): string {
  return [appId, timestamp, nonce].join('-');
}

async function sign(message: string, secret: string): Promise<string> {
  const encoder = new TextEncoder();
  const keyData = encoder.encode(secret);
  const messageData = encoder.encode(message);

  const key = await crypto.subtle.importKey(
    'raw',
    keyData,
    { name: 'HMAC', hash: 'SHA-256' },
    false,
    ['sign']
  );

  const signatureData = await crypto.subtle.sign(
    'HMAC',
    key,
    messageData
  );

  return btoa(String.fromCharCode.apply(null, Array.from(new Uint8Array(signatureData))));
}

Tarification

Les appels d'API consomment des crédits de votre compte. Vous pouvez acheter des crédits sur notre page de tarification.

Voir les tarifs →

Aide et support

Si vous avez des questions ou besoin d'assistance, n'hésitez pas à contacter notre équipe de support.

Email : [email protected]