체인지로그새 기능

ChatGPT에 사진을 올려 물어볼 수 있어요

ChatGPT
푸어오버 커피 도구 사진과 함께 ChatGPT에 보낸 질문 “What is this, and where can I buy one?”, 그 아래 드리퍼와 키트 세 개를 판매처, 가격과 함께 추천한 ChatGPT 답변

API나 Playground에서 ChatGPT 질문에 사진을 최대 4장 올리고, ChatGPT가 사진을 보고 쓴 답변을 출처, 검색어와 함께 받아요.

받는 결과

  • payload.images: ChatGPT 태스크의 첫 질문과 함께 보내는 사진, 최대 4장. 공개된 이미지 URL이나 데이터 URL로 넣습니다.
  • 답변은 다른 ChatGPT 답변과 같은 필드로 받습니다. text, markdown, sources, searchQueries와 ChatGPT가 보여 준 상품, 장소가 담깁니다.
  • Playground에서는 입력창의 사진 버튼으로 ChatGPT 질문에 사진을 넣고, 입력창에 사진을 붙여넣거나 끌어다 놓아도 사진이 들어갑니다. 넣은 사진은 대화에서 내 메시지 위에 보입니다.
  • 같은 요청의 followUps는 같은 대화에서 사진을 두고 이어서 묻습니다.

동작 방식

사진은 새 ChatGPT 대화의 첫 질문과 함께, chatgpt.com의 사진 버튼으로 사진을 넣을 때와 같은 방식으로 보냅니다. ChatGPT는 사진을 보고, 질문에 필요하면 웹을 검색해 출처와 함께 답합니다. 아래 예시에서 ChatGPT는 사진 속 도구를 푸어오버 커피 세트로 알아보고 “where to buy ceramic pour over coffee dripper white Hario V60”을 검색한 뒤, HARIO USA의 HARIO V60 Ceramic Coffee Dripper($30.50), Kalita USA의 Kalita Style 102 Ceramic Coffee Dripper($20.00), Williams Sonoma의 HARIO V60 Coffee Pour Over Kit($56.95)를 추천했습니다.

사진은 ChatGPT에 묻기 전에 한 번 읽습니다. 데이터 URL은 디코드하고, URL은 공개된 호스트에서 내려받습니다. 장당 10MB까지, JPEG, PNG, WebP, GIF를 받습니다. 사진을 내려받거나 여는 데 실패하면 태스크는 BAD_PAYLOAD로 끝나고, 실패한 태스크는 무료입니다.

데이터 URL은 요청 본문에 함께 실리고 본문은 1 MiB까지 받으므로, 큰 사진은 URL로 보냅니다. Playground는 사진을 데이터 URL로 보내고 큰 사진은 줄여서, 메시지 하나에 사진 4장이 들어갑니다.

사진을 넣은 질문은 payload.country의 국가에서 묻고 followUps로 이어 갑니다. payload.location, HK나 CN으로 정한 country, continueFrom과 함께 보내면 400 VALIDATION_ERROR, include.html을 켜면 422 EVIDENCE_UNSUPPORTED입니다.

이렇게 활용하세요

  • 제품 사진을 보여 주며 어디서 살 수 있는지 묻고, ChatGPT가 추천하는 판매처와 가격에 우리 매장이 있는지 확인합니다.
  • 우리 제품이나 경쟁사 제품의 패키지 사진을 두고 묻고, ChatGPT가 어떤 브랜드로 알아보는지와 근거로 든 페이지를 읽습니다.
  • 메뉴판, 라벨, 우리 페이지의 캡처를 두고 묻고, ChatGPT가 읽어 낸 내용을 우리가 공개한 내용과 비교합니다.

시작하기

  1. 플레이그라운드를 열고 답변 엔진 탭에서 입력창의 엔진을 ChatGPT로 둡니다.
  2. 사진 버튼(사진 첨부)을 눌러 사진을 최대 4장 고릅니다. 입력창에 사진을 붙여넣거나 끌어다 놓아도 됩니다.
  3. 질문을 쓰고 보내기를 누릅니다. 내 메시지 위에 사진이 보이고, 답변이 출처와 함께 도착합니다.
  4. 답변을 cURL로 바꾸고 cURL 복사를 누르면, 사진까지 담긴 같은 요청을 터미널에서 실행할 수 있습니다.

요청 보내기

API 키를 Authorization 헤더에 넣어 요청을 보냅니다.

curl -X POST https://api.querying.ai/v1/async/task \
  -H "Authorization: Bearer $QUERYING_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "taskType": "CHATGPT",
    "payload": {
      "prompt": "What is this, and where can I buy one?",
      "country": "US",
      "images": ["https://querying.ai/changelog/chatgpt-photos-example.jpg"]
    }
  }'

요청 필드

taskTypestring필수
실행할 엔진입니다. CHATGPT, GOOGLE 같은 값을 넣습니다.
payload.promptstring필수
사용자가 채팅에 입력하듯 쓴 질문입니다. 최대 100,000자.
payload.imagesarray
첫 질문과 함께 보내는 사진 1~4장. 공개된 http(s) URL이나 data:image/…;base64, 데이터 URL로 넣습니다. JPEG, PNG, WebP, GIF, 장당 10MB까지. followUps는 같은 사진을 두고 이어서 묻습니다. CHATGPT에서 씁니다.
payload.countrystring
질문할 시장의 두 글자 국가 코드입니다. US, KR, JP 등. 기본값 US.
payload.followUpsarray
첫 답변 뒤 같은 ChatGPT 대화에서 이어 갈 차례, 최대 4개. 항목마다 질문을 보내는 {"prompt": "…"}이거나, 앞 답변에 있는 양식의 버튼을 누르는 {"select": {…}}입니다. CHATGPT에서 씁니다.
webhook.urlstring
서버의 HTTPS 주소입니다. 태스크가 끝나는 즉시 결과를 이 주소로 보냅니다.

응답

완료된 태스크는 이런 형태입니다. 길이를 줄여 보여 드립니다.

JSON
{
  "success": true,
  "task": {
    "id": "d4f322bc-4d27-4800-a6b4-f0cb9f66f4b0",
    "taskType": "CHATGPT",
    "status": "COMPLETED",
    "createdAt": "2026-10-28T04:56:48.117Z"
  },
  "credits": { "creditsToCharge": 1, "creditsCharged": 1 },
  "response": {
    "text": "This is a **pour-over coffee brewing setup**. The white ceramic cone is a coffee dripper, and the glass pot underneath is a carafe. …\n\n## Where to buy a similar setup\n\n…\n\n**1. HARIO V60 Ceramic Coffee Dripper**\n\n## $30.50\n\nHARIO USA\n\nA classic white ceramic cone with spiral ridges, very similar to the one pictured. …",
    "sources": [
      {
        "position": 1,
        "url": "https://www.hario-usa.com/products/v60-coffee-pour-over-02-ceramic-kit",
        "label": "V60 Ceramic Pour Over Coffee Set – Hario USA",
        "attribution": "hario-usa.com"
      }
    ],
    "searchQueries": [
      "where to buy ceramic pour over coffee dripper white Hario V60"
    ],
    "model": "gpt-6"
  }
}
task.statusstring
QUEUED, PROCESSING을 거쳐 답변과 함께 COMPLETED로, 또는 error와 함께 FAILED로 끝납니다.
credits.creditsChargedinteger
끝난 태스크에 청구된 크레딧입니다. 실패한 태스크는 0입니다.
response.textstring
답변 평문입니다.
response.sourcesarray
답변이 인용한 페이지입니다. 엔진이 보여 준 순서대로 position, url, label이 담깁니다.
response.searchQueriesarray
엔진이 답을 쓰려고 실행한 웹 검색어입니다.

결과 받기

요청하면 status가 QUEUED인 태스크가 바로 돌아옵니다. status가 COMPLETED나 FAILED가 될 때까지 GET /v1/async/task/{id}로 조회하거나, webhook.url을 넣어 같은 task, credits, response를 서버로 받으세요. 결과는 태스크가 끝난 뒤 24시간 동안 조회됩니다.

curl https://api.querying.ai/v1/async/task/$TASK_ID \
  -H "Authorization: Bearer $QUERYING_API_KEY"

오류

VALIDATION_ERRORHTTP 400
payload.images를 CHATGPT가 아닌 엔진에 보냈거나, 비어 있거나, 사진이 4장을 넘거나, http(s) URL이나 이미지 데이터 URL이 아닌 값이 있거나, payload.location, HK나 CN으로 정한 country, continueFrom과 함께 보냈습니다. details에 해당 필드가 나옵니다.
EVIDENCE_UNSUPPORTEDHTTP 422
payload.images를 넣은 질문에 include.html을 켰습니다.
PAYLOAD_TOO_LARGEHTTP 413
본문이 1 MiB를 넘었습니다. 배치는 8 MiB까지 받습니다.
MISSING_API_KEYHTTP 401
Authorization 헤더가 빠졌거나, 키가 잘못됐거나 만료 또는 폐기됐습니다.
INSUFFICIENT_CREDITSHTTP 402
잔액이 태스크 가격보다 적습니다. 크레딧을 충전하거나 플랜을 올린 뒤 다시 보내세요.

요금

답변 하나에 1크레딧으로, 사진이 있어도 ChatGPT 태스크와 같습니다. 이어 묻는 답변은 하나에 1크레딧씩 더해집니다. BAD_PAYLOAD로 끝난 태스크는 무료입니다.

다른 업데이트

새 소식을 받아보세요

제품 업데이트를 이메일로 보내드립니다.

RSS 구독