Back to Home

Image Describer API 문서

2025-02-22

Posted by

Image Describer API 문서

소개 및 사용 사례

Image Describer API를 사용하면 AI 기반 이미지 설명 기능을 애플리케이션에 통합할 수 있습니다. 당사의 API는 고급 AI 모델을 사용하여 이미지를 분석하고 자세한 설명을 생성합니다.

일반적인 사용 사례

  • 이미지에 대한 자세한 설명 생성
  • 이미지에서 텍스트 및 정보 추출
  • 이미지 콘텐츠 및 컨텍스트 분석
  • 창의적인 글쓰기를 위한 캐릭터 설명 생성
  • 콘텐츠 관리를 위한 이미지 캡션 생성

API 키

API를 사용하려면 API 자격 증명(API 키 및 비밀 키)을 받아야 합니다. 대시보드에서 API 키를 관리할 수 있습니다.

API 키 관리 →

API 엔드포인트

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

통합 가이드

요청 헤더

헤더 이름필수설명
content-typemultipart/form-data여야 합니다.
appid대시보드에서 받은 API 키
timestamp현재 타임스탬프(밀리초)
nonce요청 고유성을 위한 임의 UUID 문자열, 고유해야 하며 6~32자여야 합니다. 예: 4dc6gvrjg1
signature인증을 위한 HMAC-SHA256 서명(코드 예제 참조)

요청 매개변수

매개변수유형필수설명
imageBase64DatastringMIME 유형 접두사가 있는 Base64로 인코딩된 이미지 데이터(예: data:image/jpeg;base64,/9j/4AAQSkZJRgABAQE...)
promptstring아니요이미지 분석을 위한 사용자 지정 프롬프트
langstring아니요응답 언어(en/zh/de/es/fr/ja/ko)

응답 형식

필드유형설명
codenumber응답 상태 코드. 200은 성공
dataobject응답 데이터 객체, 코드가 200일 때 나타납니다.
data.contentstring이미지에 대해 생성된 설명
msgstring응답 메시지, 추가 정보 제공
succeedboolean요청이 성공했는지 여부를 나타냅니다.

응답 예시

{
    "code": 200,
    "data": {
        "content": "마크다운 형식의 이미지에 대한 자세한 설명..."
    },
    "succeed": true,
    "msg": "성공"
}

오류 코드

코드메시지설명
200OK요청 성공
500SERVER_ERROR내부 서버 오류
10003INSUFFICIENT_CREDITS크레딧 부족
10004INVALID_PARAM잘못된 매개변수
10005HARMFUL_CONTENT유해 콘텐츠 감지됨
30001INVALID_API_KEY잘못된 API 키
30002INVALID_SIGNATURE잘못된 요청 서명

코드 예제

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))));
}

가격

API 호출은 계정의 크레딧을 소모합니다. 가격 페이지에서 크레딧을 구매할 수 있습니다.

가격 보기 →

도움말 및 지원

질문이 있거나 도움이 필요하면 지원 팀에 문의하세요.

이메일: [email protected]