Firebase Storage에 업로드된 이미지 파일에서 Upstage AI를 사용하여 자재 비용 정보를 자동으로 추출합니다.
기본 정보
| 항목 |
값 |
| URL |
https://asia-northeast3-construction24-test.cloudfunctions.net/material_document_extraction |
| Method |
POST |
| 인증 |
Firebase ID Token 필요 |
| 권한 |
해당 회사의 멤버 |
요청
Body
| 필드 |
타입 |
필수 |
설명 |
검증 |
| token |
string |
O |
Firebase ID Token |
- |
| company_id |
string |
O |
회사 ID |
- |
| site_id |
string |
O |
현장 ID |
- |
| img_path |
string |
O |
Firebase Storage 이미지 경로 |
특정 경로 형식 필요 |
img_path 경로 형식
companies/{companyId}/sites/{siteId}/material_supplier/{supplierId}/document_extraction/{imageId}/{fileName}
요청 예시
{
"token": "eyJhbGci...",
"company_id": "abc123",
"site_id": "site456",
"img_path": "companies/abc123/sites/site456/material_supplier/supplier789/document_extraction/img001/invoice.jpg"
}
응답
성공 (200)
{
"message": "문서 정보 추출 완료",
"data": {
"items": [
{
"name": "시멘트",
"quantity": 100,
"unit_price": 10000,
"supply_amount": 909091,
"tax": 90909,
"total": 1000000
}
],
"total_amount": 1000000,
"supplier_info": {
"name": "대한건자재",
"registration_number": "123-45-67890"
}
}
}
실패
| 코드 |
message |
원인 |
| 402 |
"AI 크레딧이 부족합니다. (잔액: {balance}, 필요: {cost})" |
AI 크레딧 잔액 부족 (CREDIT_001) |
| 500 |
"해당 회사의 멤버가 아닙니다." |
요청자가 해당 회사의 멤버가 아닌 경우 |
| 500 |
"이미지 경로 형식이 올바르지 않습니다." |
경로 형식이 맞지 않는 경우 |
| 500 |
"이미지 경로는 'companies/'로 시작해야 합니다." |
경로 구조 오류 |
| 500 |
"이미지 경로의 회사 ID가 요청의 회사 ID와 일치하지 않습니다." |
경로와 요청 불일치 |
| 500 |
"이미지 경로의 현장 ID가 요청의 현장 ID와 일치하지 않습니다." |
경로와 요청 불일치 |
| 500 |
"이미지 파일이 존재하지 않습니다." |
파일이 없는 경우 |
참고
- Upstage AI의 문서 정보 추출 API를 사용합니다.
- 이미지는 먼저 Firebase Storage에 업로드되어 있어야 합니다.
- 서명된 URL(10분 만료)을 생성하여 Upstage AI에 전달합니다.
- 추출된 데이터는 [[set_material_cost_data]] API를 통해 저장할 수 있습니다.
- 관련 API: [[set_material_cost_data]], [[get_material_upload_token]]
AI 크레딧
- 이 API는 호출 시 3,000 크레딧이 차감됩니다.
- 회사별로 초기 100,000 크레딧이 제공됩니다.
- 크레딧 잔액이 부족하면
CREDIT_001 에러(HTTP 402)가 반환됩니다.
- 크레딧은 API 성공 시에만 차감됩니다.