Files
AI/ontology_platform/docs/phases/PHASE_INDEX.md
2026-05-22 20:16:28 +09:00

5.4 KiB

PHASE INDEX - Semantic Page Classification Layer

작성일: 2026-05-22

범위: ontology_platformcrawler_platform.app.core.crawler.page_classifier 및 page classification과 직접 연결된 crawler/extractor 흐름.

기준 문서:

  • README.md
  • docs/PHASE_PLANNING.md
  • ontology_platform/README.md
  • ontology_platform/docs/semantic_page_classification_codex_spec.md

핵심 원칙:

  • 기존 엔진을 폐기하거나 대규모로 교체하지 않는다.
  • 기존 classify_page(...) -> str 호출부가 깨지지 않도록 legacy compatibility를 유지한다.
  • 기존 ProductPage, CategoryPage, SearchPage, BoardPage, BrandStoryPage, UnknownPage 문자열은 alias 또는 compatibility mapping으로 유지한다.
  • URL substring 중심 if-return 확장이 아니라 signal extraction -> evidence scoring -> classification result -> analyze strategy -> LLM policy 구조로 확장한다.
  • protected page는 안전하게 skip하고, UnknownPage는 evidence와 confidence를 남긴다.
  • pytest 또는 현재 프로젝트 테스트 명령으로 회귀 검증한다.

PHASE 1. 현재 흐름 기준선 고정 및 영향 범위 정리 FILE: ./26_05_22_semantic_page_classification/phase_01_001_current_flow_boundary.md

  1. page_classifier.py의 현재 public API와 legacy page_type 문자열 목록 고정 [완료]
  2. should_analyze_page() 호출부와 crawler의 classify_page() 호출 위치 문서화 [완료]
  3. Extractor/HybridExtractor에서 page_type과 LLM skip 정책이 연결되는 흐름 정리 [완료]
  4. 기존 page_type 문자열을 기대하는 테스트, config, adapter, ontology rule 경로 목록화 [완료]

PHASE 2. Taxonomy와 Classification Result 모델 추가 FILE: ./26_05_22_semantic_page_classification/phase_02_001_taxonomy_result_model.md

  1. PageDomain/PageArchetype/PageType/EntityType/ActionIntent/GraphRole/AnalyzeStrategy/LLMPolicy 상수 또는 enum 추가 [완료]
  2. EvidenceItem, PageClassificationResult dataclass 추가 [완료]
  3. legacy alias 및 normalize helper 추가 [완료]
  4. 기존 classify_page() 문자열 반환 호환을 유지하면서 semantic result API 추가 [완료]

PHASE 3. Raw Snapshot 및 Signal Extraction 레이어 추가 FILE: ./26_05_22_semantic_page_classification/phase_03_001_signal_extraction_layer.md

  1. RawPageSnapshotPageSignals 모델 추가 [완료]
  2. JSON-LD, OpenGraph, Twitter Card, meta, headings, links, forms, buttons, inputs 추출 [완료]
  3. commerce/listing/editorial/community/docs/corporate/protected/system signal 추출 [완료]
  4. HTML 일부가 깨지거나 필드가 누락되어도 예외 없이 빈 값으로 처리 [완료]

PHASE 4. Evidence Scoring 기반 Semantic Classification 구현 FILE: ./26_05_22_semantic_page_classification/phase_04_001_evidence_scoring_classifier.md

  1. 주요 page type별 scoring function과 evidence recording 구조 추가 [완료]
  2. 최소 20개 semantic page type 분류 구현 [완료]
  3. confidence, alternatives, secondary_page_types 산출 [완료]
  4. low confidence 또는 모호한 결과를 evidence 포함 UnknownPage로 처리 [완료]

PHASE 5. Analyze Strategy 및 LLM Policy 분리 FILE: ./26_05_22_semantic_page_classification/phase_05_001_analysis_llm_policy.md

  1. PageClassificationResult 기반 decide_analyze_strategy() 추가 [완료]
  2. PageClassificationResult 기반 decide_llm_policy() 추가 [완료]
  3. should_analyze_page(result_or_page_type, analyze_page_types=None) compatibility 구현 [완료]
  4. Category/Search/Board 계열을 무조건 skip하지 않고 strategy 기반으로 처리 [완료]
  5. Login/Checkout/Payment/Captcha/AccessDenied 계열은 SkipProtected/Skip 정책으로 처리 [완료]

PHASE 6. Crawler, Cleaner, Extractor, Discovery/Relevance 통합 FILE: ./26_05_22_semantic_page_classification/phase_06_001_pipeline_integration.md

  1. site_crawler.pypipeline.py metadata에 semantic classification payload 저장 [완료]
  2. ExtractionPageContext 또는 metadata를 통해 analyze_strategy/llm_policy 전달 [완료]
  3. HybridExtractor가 LLMPolicy를 우선 사용하고 legacy page_type fallback을 유지하도록 수정 [완료]
  4. page_cleaner.py, domain_discovery.py, relevance_engine.py의 legacy page_type 기대 경로와 신규 semantic type을 호환 [완료]

PHASE 7. Unknown Pattern 저장 기반 추가 FILE: ./26_05_22_semantic_page_classification/phase_07_001_unknown_pattern_storage.md

  1. UnknownPage 또는 low confidence 페이지의 evidence payload 정의 [완료]
  2. text/html/link/schema/button/form summary와 fingerprint hook 추가 [완료]
  3. DB schema 변경 없이 metadata_json에 저장 가능한 초기 구조 구현 [완료]
  4. 향후 clustering/embedding 확장을 위한 hook만 추가하고 실제 clustering은 이번 범위에서 제외 [완료]

PHASE 8. 테스트 Fixture 및 회귀 검증 FILE: ./26_05_22_semantic_page_classification/phase_08_001_tests_regression.md

  1. 최소 10개 이상의 HTML fixture 추가 [완료]
  2. ProductDetailPage, CategoryListingPage, SearchResultsPage, ArticlePage, QAPage, FAQPage, ForumThreadPage, DocumentationPage, JobPostingPage, LoginPage, CheckoutPage, TermsPage, SitemapPage, UnknownPage 단위 테스트 추가 [완료]
  3. legacy classify_page()should_analyze_page() 호환성 테스트 추가 [완료]
  4. HybridExtractor LLMPolicy 회귀 테스트 추가 [완료]
  5. pytest 또는 현재 프로젝트 테스트 명령 실행 및 결과 기록 [완료]