Documentación de la API de Image Describer
2025-02-22
Posted byDocumentación de la API de Image Describer
Introducción y casos de uso
La API de Image Describer le permite integrar capacidades de descripción de imágenes impulsadas por IA en sus aplicaciones. Nuestra API utiliza modelos avanzados de IA para analizar imágenes y generar descripciones detalladas.
Casos de uso comunes
- Generar descripciones detalladas para imágenes
- Extraer texto e información de imágenes
- Analizar el contenido y el contexto de la imagen
- Crear descripciones de personajes para escritura creativa
- Generar subtítulos de imágenes para la gestión de contenido
Claves de API
Para utilizar nuestra API, deberá obtener credenciales de API (clave de API y secreto). Puede administrar sus claves de API en el panel de control.
Endpoint de la API
POST https://imagedescriber.online/api/openapi/describe-image
Guía de integración
Encabezados de solicitud
Nombre del encabezado | Obligatorio | Descripción |
---|---|---|
content-type | Sí | Debe ser multipart/form-data |
appid | Sí | Su clave de API obtenida del panel de control |
timestamp | Sí | Marca de tiempo actual en milisegundos |
nonce | Sí | Cadena UUID aleatoria para la unicidad de la solicitud, debe ser única y tener entre 6 y 32 caracteres. Por ejemplo, 4dc6gvrjg1 |
signature | Sí | Firma HMAC-SHA256 para la autenticación (Ver ejemplos de código) |
Parámetros de solicitud
Parámetro | Tipo | Obligatorio | Descripción |
---|---|---|---|
imageBase64Data | string | Sí | Datos de imagen codificados en Base64 con prefijo de tipo MIME (por ejemplo, data:image/jpeg;base64,/9j/4AAQSkZJRgABAQE... ) |
prompt | string | No | Solicitud personalizada para el análisis de imágenes |
lang | string | No | Idioma de respuesta (en/zh/de/es/fr/ja/ko) |
Formato de respuesta
Campo | Tipo | Descripción |
---|---|---|
code | number | Código de estado de la respuesta. 200 para el éxito |
data | object | Objeto de datos de respuesta, presente cuando el código es 200 |
data.content | string | La descripción generada para la imagen |
msg | string | Mensaje de respuesta, proporciona información adicional |
succeed | boolean | Indica si la solicitud se realizó correctamente |
Ejemplo de respuesta
{
"code": 200,
"data": {
"content": "Descripción detallada de la imagen en formato markdown..."
},
"succeed": true,
"msg": "Éxito"
}
Códigos de error
Código | Mensaje | Descripción |
---|---|---|
200 | OK | Solicitud exitosa |
500 | SERVER_ERROR | Error interno del servidor |
10003 | INSUFFICIENT_CREDITS | Créditos insuficientes |
10004 | INVALID_PARAM | Parámetros inválidos |
10005 | HARMFUL_CONTENT | Contenido dañino detectado |
30001 | INVALID_API_KEY | Clave de API inválida |
30002 | INVALID_SIGNATURE | Firma de solicitud inválida |
Ejemplos de código
Ejemplo de 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))));
}
Precios
Las llamadas a la API consumen créditos de su cuenta. Puede comprar créditos en nuestra página de precios.
Ayuda y soporte
Si tiene alguna pregunta o necesita ayuda, no dude en ponerse en contacto con nuestro equipo de soporte.
Correo electrónico: [email protected]