Documentation de l'API Image Describer
2025-02-22
Posted byDocumentation 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.
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ête | Obligatoire | Description |
---|---|---|
content-type | Oui | Doit être multipart/form-data |
appid | Oui | Votre clé d'API obtenue à partir du tableau de bord |
timestamp | Oui | Horodatage actuel en millisecondes |
nonce | Oui | Chaî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 |
signature | Oui | Signature HMAC-SHA256 pour l'authentification (Voir les exemples de code) |
Paramètres de requête
Paramètre | Type | Obligatoire | Description |
---|---|---|---|
imageBase64Data | string | Oui | Données d'image encodées en Base64 avec préfixe de type MIME (par exemple, data:image/jpeg;base64,/9j/4AAQSkZJRgABAQE... ) |
prompt | string | Non | Invite personnalisée pour l'analyse d'images |
lang | string | Non | Langue de réponse (en/zh/de/es/fr/ja/ko) |
Format de réponse
Champ | Type | Description |
---|---|---|
code | number | Code d'état de la réponse. 200 pour le succès |
data | object | Objet de données de réponse, présent lorsque le code est 200 |
data.content | string | La description générée pour l'image |
msg | string | Message de réponse, fournit des informations supplémentaires |
succeed | boolean | Indique 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
Code | Message | Description |
---|---|---|
200 | OK | Requête réussie |
500 | SERVER_ERROR | Erreur interne du serveur |
10003 | INSUFFICIENT_CREDITS | Crédits insuffisants |
10004 | INVALID_PARAM | Paramètres invalides |
10005 | HARMFUL_CONTENT | Contenu nuisible détecté |
30001 | INVALID_API_KEY | Clé d'API invalide |
30002 | INVALID_SIGNATURE | Signature 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.
Aide et support
Si vous avez des questions ou besoin d'assistance, n'hésitez pas à contacter notre équipe de support.
Email : [email protected]