diff --git a/app/workers/marker_worker.py b/app/workers/marker_worker.py index 05ff158..3d7fc66 100644 --- a/app/workers/marker_worker.py +++ b/app/workers/marker_worker.py @@ -44,8 +44,9 @@ MAX_PAGES = 200 # 소형 1-shot 경로 /convert max_page # LargeDoc split (PR-DocSrv-LargeDoc-Split-Markdown-1, plan brisk-paging-quokka.md): # >SPLIT_THRESHOLD_PAGES PDF 는 통째 skip 대신 BATCH_PAGES 윈도우로 page-range 분할 변환. -# 각 batch /convert 호출 < MARKER_TIMEOUT 보장 + queue 폭주 회피. 권위 검색본(섹션 chunks)은 -# commit 4 에서 document_chunks(source_type=marker_section) 에 적재 (본 commit 3 미포함). +# 각 batch /convert 호출 < MARKER_TIMEOUT 보장 + queue 폭주 회피. 목적 = md_content(Markdown +# 렌더링) 복구. 검색 인덱스는 기존 document_chunks(extracted_text window chunks)가 담당 +# (commit 4 marker_section 적재는 이중 적재 회피로 드롭 — 별 PR retrieval 비교 후보). SPLIT_THRESHOLD_PAGES = int(os.getenv("MARKER_SPLIT_THRESHOLD_PAGES", "120")) BATCH_PAGES = int(os.getenv("MARKER_BATCH_PAGES", "40")) MAX_SPLIT_PAGES = int(os.getenv("MARKER_MAX_SPLIT_PAGES", "5000")) # 초과 = skipped_too_large 안전상태 @@ -377,9 +378,9 @@ async def _process_split( """대형 PDF page-range 분할 변환. BATCH_PAGES 윈도우로 순차 /convert (각 호출 < MARKER_TIMEOUT). batch 단위로 - 이미지 persist + ref rewrite 후 stitch. md_content = head+manifest (full blob 미저장, - canonical 검색본 = document_chunks, commit 4). 결과: 전부 성공=success / 일부=partial / - 전부 실패=failed. + 이미지 persist + ref rewrite 후 stitch. md_content = head+manifest (full blob 미저장). + 검색 인덱스는 기존 document_chunks(extracted_text window)가 담당 (marker_section 적재 + = commit 4 드롭). 결과: 전부 성공=success / 일부=partial / 전부 실패=failed. invariant: page numbering = 1-based inclusive (batch1: 1..BATCH_PAGES, ...). marker slug(`_page_0_*`) 는 batch 마다 재시작 → batch 별 rewrite 후 stitch (충돌 회피). @@ -547,7 +548,7 @@ def _split_manifest( {"start_page": f["start_page"], "end_page": f["end_page"], "error": f["error"]} for f in failed ], - "canonical_storage": "document_chunks(source_type=marker_section)", + "search_index": "document_chunks(legacy/extracted_text window chunks)", } @@ -561,7 +562,8 @@ def _build_large_md_content(head: str, manifest: dict[str, Any]) -> str: f"failed={failed_n} -->\n" f"> 📄 **대형 문서 분할 변환** — 총 {manifest['total_pages']}p · " f"{manifest['batch_count']} batch (batch_pages={manifest['batch_pages']}) · 상태 **{badge}**\n" - f"> 권위 검색본 = `document_chunks` (source_type=marker_section). 아래는 head preview.\n\n" + f"> 검색 인덱스 = 기존 `document_chunks` long_pdf/extracted_text window chunks. " + f"아래는 Markdown 렌더링 preview.\n\n" ) return header + head