Back to Home

Documentación de la API de Image Describer

2025-02-22

Posted by

Documentació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.

Administrar claves de API →

Endpoint de la API

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

Guía de integración

Encabezados de solicitud

Nombre del encabezadoObligatorioDescripción
content-typeDebe ser multipart/form-data
appidSu clave de API obtenida del panel de control
timestampMarca de tiempo actual en milisegundos
nonceCadena UUID aleatoria para la unicidad de la solicitud, debe ser única y tener entre 6 y 32 caracteres. Por ejemplo, 4dc6gvrjg1
signatureFirma HMAC-SHA256 para la autenticación (Ver ejemplos de código)

Parámetros de solicitud

ParámetroTipoObligatorioDescripción
imageBase64DatastringDatos de imagen codificados en Base64 con prefijo de tipo MIME (por ejemplo, data:image/jpeg;base64,/9j/4AAQSkZJRgABAQE...)
promptstringNoSolicitud personalizada para el análisis de imágenes
langstringNoIdioma de respuesta (en/zh/de/es/fr/ja/ko)

Formato de respuesta

CampoTipoDescripción
codenumberCódigo de estado de la respuesta. 200 para el éxito
dataobjectObjeto de datos de respuesta, presente cuando el código es 200
data.contentstringLa descripción generada para la imagen
msgstringMensaje de respuesta, proporciona información adicional
succeedbooleanIndica 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ódigoMensajeDescripción
200OKSolicitud exitosa
500SERVER_ERRORError interno del servidor
10003INSUFFICIENT_CREDITSCréditos insuficientes
10004INVALID_PARAMParámetros inválidos
10005HARMFUL_CONTENTContenido dañino detectado
30001INVALID_API_KEYClave de API inválida
30002INVALID_SIGNATUREFirma 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.

Ver 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]