📖 배경
현재 Instagram 게시글(/p/...)은 caption 기반 텍스트만으로 장소 후보를 추출하고 있습니다.
하지만 맛집/장소 정보가 caption이 아니라 게시글 이미지 carousel 안에 포함된 경우, 기존 흐름에서는 Qwen 추출 결과가 비거나 장소 후보를 찾지 못하는 문제가 있습니다.
🎯 목표
Instagram 게시글에서 caption-only 추출이 실패했을 때, 게시글 이미지를 크롤링하고 OCR로 텍스트를 추출한 뒤 기존 Qwen/Kakao 파이프라인으로 장소 후보를 추출할 수 있게 합니다.
🛠️ 구현 내용
⚠️ 고려사항
- Instagram DOM/JSON payload 구조는 변경될 수 있어, live opt-in 테스트로 주기적 확인이 필요합니다.
- 이미지 OCR fallback은 caption-only 추출 실패 시에만 실행해 불필요한 크롤링/HF 비용을 줄입니다.
✅ 완료 조건
- Instagram 게시글에서 caption-only Qwen 추출 결과가 없을 때 이미지 OCR fallback이 실행된다.
- OCR 결과가 caption과 함께 augmented content로 구성되어 기존 Qwen 장소 추출에 사용된다.
- 추출된 장소 후보가 기존 Kakao 검색 로직으로 enrich된다.
- 관련 단위 테스트가 통과한다.
- 제공된 Instagram 게시글 URL에 대해 live opt-in 테스트에서 이미지 OCR fallback과 장소 추출이 동작함을 확인한다.
📖 배경
현재 Instagram 게시글(
/p/...)은 caption 기반 텍스트만으로 장소 후보를 추출하고 있습니다.하지만 맛집/장소 정보가 caption이 아니라 게시글 이미지 carousel 안에 포함된 경우, 기존 흐름에서는 Qwen 추출 결과가 비거나 장소 후보를 찾지 못하는 문제가 있습니다.
🎯 목표
Instagram 게시글에서 caption-only 추출이 실패했을 때, 게시글 이미지를 크롤링하고 OCR로 텍스트를 추출한 뒤 기존 Qwen/Kakao 파이프라인으로 장소 후보를 추출할 수 있게 합니다.
🛠️ 구현 내용
Instagram 게시글 이미지 carousel URL 수집 로직 추가
HF OCR client 추가
HFExtractionClient와 분리된HFOCRClient추가Processor fallback 연결
places가 비어 있으면 Instagram post에 한해 이미지 OCR fallback 실행caption + OCR textaugmented content를 생성해 Qwen 추출 재실행content_text로 저장raw_metadata.instagram.ocr_fallback에 image count, OCR text count, timeout/error 정보 기록테스트 추가
✅ 완료 조건