Skip to content

AI_API설계

ehdwo0427 edited this page Aug 4, 2025 · 2 revisions

상위 문서로 이동 : AI Wiki

API의 엔드포인트 목록과 기능 설명


Endpoint Method 설명
/classify POST 전달받은 이미지가 desk 사진이면 처리 완료 후 콜백 요청
/healthcheck GET 서버 상태를 확인 (GCP 이용하므로 check가 필요하다고 판단됨)
/info GET 사용 중인 모델 정보 및 설정 반환 (서버 버전, 해상도 등)
/generated POST 백엔드 요청

흐름도

[1] 백엔드 ──▶ POST /classify ──▶ AI 서버
                     └── classify image
                     └── if True:
                           └── 응답 True ──▶ 백엔드
                           └── img2txt
                           └── txt2img
                           └── 백엔드 request /generated
                     └── elif False:
                           └── 응답 False ──▶ 백엔드

classify - POST 입⋅출력 예시

/classify 입력 예시

{
  "initial_image_url": "https://bucket.s3.amazonaws.com/images/12.png",
}

1. initial_image_url

type : string

S3에 저장된 원본 이미지의 URL

/classify 응답 예시

True인 경우

{
  "initial_image_url": "https://bucket.s3.amazonaws.com/images/12.png",
  "classify": true
}

1. initial_image_url

type : string
S3에 저장된 원본 이미지의 URL

2. classify

type : boolean
해당 이미지가 desk 이미지 인지 판단여부

/generated - POST (Callback to Backend)

{
  "initial_image_url": "https://bucket.s3.amazonaws.com/images/12.png",
  "processed_image_url": "https://bucket.s3.amazonaws.com/images/123.png",
  "products": [
    {
      "keyword": "마우스",
      "details": [
        {
          "title": "앱코 무소음 무선 마우스",
          "price": "21990",
          "mall": "네이버",
          "link": "https://search.shopping.naver.com/...",
          "image": "https://.../.jpg",
          "main_category": "마우스",
          "sub_category": "유선마우스"
        },
        {
          ...
        }
      ]
    },
    {
      "keyword": "추천 아이템명",
      "details": [
        {
          "title": "DeskProduct - name",
          "price": "DeskProduct - price",
          "mall": "DeskProduct - purchase_place",
          "link": "DeskProduct - purchase_url",
          "image": "DeskProduct - iamge_url",
          "main_category": "ProductMainCategory - name",
          "sub_category": "ProductSubCategory - name"
        },
        {
          ...
        }
      ]
    },
    {
      ...
    }
  ]
}

1. initial_image_url

type : string
S3에 저장된 원본 이미지의 URL

2. processed_image_url

type : string
AI모델을 이용한 합성된 이미지

3. products

type : list
추천된 아이템 검색 키워드, 아이템에 대한 세부정보 포함

  • keyword: 추천된 아이템 검색 키워드
    type: VARCHAR(255)
  • details: 추천된 아이템 세부정보
    type: list
    • title: 쇼핑몰 내의 상품 이름
      type: VARCHAR(255)
    • price: 상품 가격
      type: INT
    • mall: 쇼핑몰 이름(쇼핑몰이 없으면 네이버로 return)
      type: VARCHAR(255)
    • link: 상품 판매 페이지 링크
      type: VARCHAR(255)
    • image: 상품 대표이미지 url
      type: VARCHAR(255)
    • main_category: 상품의 상위 카테고리(ex. 마우스, 키보드)
      type: VARCHAR(255)
    • sub_category: 상품의 하위 카테고리(ex. 무선마우스, 기계식키보드)
      type: VARCHAR(255)

False인 경우

{
  "initial_image_url": "https://bucket.s3.amazonaws.com/images/12.png",
  "classify": false
}

1. initial_image_url

type : string
S3에 저장된 원본 이미지의 URL

2. classify

type : boolean
해당 이미지가 desk 이미지 인지 판단여부

오류 처리 방안 및 예외 사항

400(필수 필드 누락)

{ 
  "error": "Missing 'initial_image_url'"
}

422(url 형식 오류)

{
  "error": "Invalid S3 URL format"
}

500(내부 처리 오류)

{
  "error": "Failed to process generated image"
}

기타 엔드 포인트

/healthcheck - GET

  • GCP 등 클라우드 환경에서 서버의 정상 동작을 체크하기 위한 엔드포인트

/info - GET

  • 현재 AI 서버에 적용된 모델 이름, 버전, 이미지 해상도, 가중치 크기 등을 반환

Woody's AI Backend Engineering Log


💼 About

Deepvisions | AI Engineer 2026.03 ~ 재직중


🚀 Projects (최신순)

CCTV 자전거 경로 & 공회전 탐지 — 한동대학교 리빙랩

2026.05 ~ | @ Deepvisions 캠퍼스 CCTV 4대 · 자전거 OCR + 차량 공회전 다중 신호

야생동물 탐지 — RPi 엣지 배포

2026.04 ~ | @ Deepvisions 포도밭 침입 탐지 (5종 multi-class · 라즈베리파이 4 실시간)

포도밭 병해충 탐지 및 수확량 예측

2026.03 ~ | @ Deepvisions 드론 이미지 기반 객체 탐지 + GSD calibration + 수확량 예측


📦 종료된 프로젝트

OnTheTop

2025.03 ~ 2025.08 | 카카오테크부트캠프 | ✅ 종료 AI 기반 데스크테리어 추천 서비스


AI Notes


About

Clone this wiki locally