fix(search): correct large-doc manifest wording after commit 4 drop
PR-DocSrv-LargeDoc-Split-Markdown-1 follow-up (plan brisk-paging-quokka.md). commit 4(marker_section→document_chunks) 드롭으로, split md_content/manifest 의 「권위 검색본 = document_chunks (source_type=marker_section)」 문구가 실제와 불일치. 실제 = 검색 인덱스는 기존 document_chunks(extracted_text long_pdf window chunks), marker_section chunk 부재, md_content 는 Markdown 렌더링 preview. - _build_large_md_content 헤더: 「검색 인덱스 = 기존 document_chunks long_pdf/ extracted_text window chunks. 아래는 Markdown 렌더링 preview.」 - _split_manifest: canonical_storage(marker_section) → search_index(legacy/extracted_text) - 상수 주석 + _process_split docstring: commit 4 드롭/이중적재 회피 반영 뷰어에 없는 source_type 으로 디버깅 오도 방지. 이미 처리된 5 docs 의 md_content 는 즉시 재처리 X — 자연 reprocess 시 갱신(사용자 결정). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user