AI 영수증 분석기 구축: GPT-4 Vision + Streamlit
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
인공지능
대상자
AI 및 웹 앱 개발자, 데이터 과학자
난이도: 중급 (Streamlit 및 OpenAI API 활용 경험이 필요)
핵심 요약
- GPT-4 Vision + Streamlit 활용으로 72시간 내 실용적인 영수증 분석 앱 개발
- JSON 형식 명시와 이미지 품질 평가를 통해 90%+ 정확도 달성
- 프론트엔드(
streamlit_app.py
) 및 AI 로직(processor.py
) 분리된 아키텍처 구현
섹션별 세부 요약
1. 개요 및 목표
- 문제 정의: 월말 영수증 수동 입력의 비효율성 해결
- 목표: 이미지 기반 구조화 데이터 추출 및 소비 분석
- 기술 스택: Streamlit, GPT-4 Vision, PIL, Streamlit Cloud
2. 핵심 코드 구조
analyze_receipt
함수:
- 이미지 품질 평가(check_image_quality
)
- GPT-4 Vision API 호출 및 JSON 형식 지시(prompt
)
- 예외 처리(json.JSONDecodeError
)
check_image_quality
함수:
- 해상도(800x600 이상), 파일 크기(100KB 이상), 세로 모드 권장 여부 평가
3. 프론트엔드 구현
- Streamlit UI:
- 파일 업로더(st.file_uploader
)
- 분석 결과 표시(st.write
, st.metric
)
- 세션 상태 활용(st.session_state
)
- 통계 표시:
- 총 영수증 수, 총 지출, 평균 지출 계산(get_stats
)
4. 배포 및 성능
- Streamlit Cloud 활용한 간단한 배포 프로세스
- GitHub에 푸시 → OPENAI_API_KEY
설정 → 배포
- 성능 지표:
- 명확한 이미지: 90%+ 정확도
- 품질 낮은 이미지: 60% 정확도
- 처리 시간: 3~7초
5. 핵심 학습 사항
- JSON 형식 명시가 일관된 출력을 보장
- 이미지 품질 평가가 정확도에 직접적 영향
- 예외 처리 및 사용자 피드백이 필수적
결론
- JSON 스키마 명시 및 이미지 품질 평가를 통해 높은 정확도 달성
- Streamlit의 간결한 UI와 GPT-4 Vision의 강력한 이미지 분석 조합이 핵심
- 미래 기능: CSV 내보내기, 카테고리 분류, 예산 경고, 모바일 앱 확장 권장