Image Describer API 문서
2025-02-22
Posted byImage Describer API 문서
소개 및 사용 사례
Image Describer API를 사용하면 AI 기반 이미지 설명 기능을 애플리케이션에 통합할 수 있습니다. 당사의 API는 고급 AI 모델을 사용하여 이미지를 분석하고 자세한 설명을 생성합니다.
일반적인 사용 사례
- 이미지에 대한 자세한 설명 생성
- 이미지에서 텍스트 및 정보 추출
- 이미지 콘텐츠 및 컨텍스트 분석
- 창의적인 글쓰기를 위한 캐릭터 설명 생성
- 콘텐츠 관리를 위한 이미지 캡션 생성
API 키
API를 사용하려면 API 자격 증명(API 키 및 비밀 키)을 받아야 합니다. 대시보드에서 API 키를 관리할 수 있습니다.
API 엔드포인트
POST https://imagedescriber.online/api/openapi/describe-image
통합 가이드
요청 헤더
헤더 이름 | 필수 | 설명 |
---|---|---|
content-type | 예 | multipart/form-data 여야 합니다. |
appid | 예 | 대시보드에서 받은 API 키 |
timestamp | 예 | 현재 타임스탬프(밀리초) |
nonce | 예 | 요청 고유성을 위한 임의 UUID 문자열, 고유해야 하며 6~32자여야 합니다. 예: 4dc6gvrjg1 |
signature | 예 | 인증을 위한 HMAC-SHA256 서명(코드 예제 참조) |
요청 매개변수
매개변수 | 유형 | 필수 | 설명 |
---|---|---|---|
imageBase64Data | string | 예 | MIME 유형 접두사가 있는 Base64로 인코딩된 이미지 데이터(예: data:image/jpeg;base64,/9j/4AAQSkZJRgABAQE... ) |
prompt | string | 아니요 | 이미지 분석을 위한 사용자 지정 프롬프트 |
lang | string | 아니요 | 응답 언어(en/zh/de/es/fr/ja/ko) |
응답 형식
필드 | 유형 | 설명 |
---|---|---|
code | number | 응답 상태 코드. 200은 성공 |
data | object | 응답 데이터 객체, 코드가 200일 때 나타납니다. |
data.content | string | 이미지에 대해 생성된 설명 |
msg | string | 응답 메시지, 추가 정보 제공 |
succeed | boolean | 요청이 성공했는지 여부를 나타냅니다. |
응답 예시
{
"code": 200,
"data": {
"content": "마크다운 형식의 이미지에 대한 자세한 설명..."
},
"succeed": true,
"msg": "성공"
}
오류 코드
코드 | 메시지 | 설명 |
---|---|---|
200 | OK | 요청 성공 |
500 | SERVER_ERROR | 내부 서버 오류 |
10003 | INSUFFICIENT_CREDITS | 크레딧 부족 |
10004 | INVALID_PARAM | 잘못된 매개변수 |
10005 | HARMFUL_CONTENT | 유해 콘텐츠 감지됨 |
30001 | INVALID_API_KEY | 잘못된 API 키 |
30002 | INVALID_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]