- src: phase_z2 composition/mapper/pipeline/placement_planner/retry, ai_fallback(prompts/schema/validate), mdx_text_atoms 신규 - Front: PipelineTracePanel 신규, FramePanel/SlideCanvas/Home/designAgentApi 등 갱신 + 테스트 4종 추가 - templates/phase_z2: catalog(component_expansion_registry, node_slot_mapping 신규), frames, families, slide_base 갱신 - tests/matching: phase2~26 매칭 실험 스크립트·리포트·온톨로지 전체 (미커밋 진행분) - tests: b4_v4 evidence, task5~28.5 시리즈, regression(imp95 baseline) 등 신규 테스트 대량 추가 - docs/reference: MDX 구조 인벤토리, MDX→Frame 구조 계약 문서 - scripts: mdx 계약/parity/coverage/viewport 체크, gitea comment, run sync 유틸 - .gitignore: tmp*.json, chromedriver, .orchestrator, *.pkl, Front_test* 등 임시/스냅샷 제외 미완성 작업의 보존용 스냅샷 커밋 (2026-07-02) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
89 lines
3.2 KiB
Markdown
89 lines
3.2 KiB
Markdown
# MDX ↔ Figma Frame 매칭 시스템
|
||
|
||
CEL 슬라이드 자동 변환을 위한 **MDX 콘텐츠 ↔ Figma 디자인 프레임 매칭** 파이프라인.
|
||
새 MDX 콘텐츠가 들어오면 32 개의 Figma 프레임 중 가장 적합한 프레임을 자동 추천하고, 그대로 사용 / 가벼운 편집 / 재구성 / 사용 불가 4 단계로 판정한다.
|
||
|
||
## 목적
|
||
|
||
- 한국어 비즈니스 문서 (DX/BIM 도메인) 의 MDX 섹션을 시각적 슬라이드로 변환
|
||
- 32 개 Figma 프레임 DB 에서 콘텐츠에 적합한 프레임을 자동 매칭
|
||
- 매칭 결과를 후속 단계 (텍스트 편집자 / 디자인 실무자) 에 넘겨 슬라이드 완성
|
||
|
||
## 파이프라인 (4 단계 매칭)
|
||
|
||
```
|
||
MDX 입력
|
||
↓
|
||
V1 키워드 매칭 (32 frame 전체)
|
||
matching_score = 0.414 × 핵심 + 0.320 × 세트 + 0.265 × 연관
|
||
(가중치는 Logistic Regression 학습 결과 — TARGET 4/4, LOOCV 검증)
|
||
↓ Top-K 후보 추출
|
||
V2 의미 매칭 (ko-sroberta cosine — 후보 재정렬)
|
||
↓
|
||
V3 구조 매칭
|
||
total = 0.40 × 레이아웃 일치 + 0.35 × 콘텐츠 성격 + 0.25 × 시각 의도
|
||
↓
|
||
V4 종합 판정 (32 frame 전체 평가)
|
||
confidence = 0.25 × anchor + 0.20 × cardinality + 0.20 × relation
|
||
+ 0.15 × slot + 0.20 × content − penalty
|
||
↓
|
||
판정 라벨: use_as_is (≥0.90) / light_edit (≥0.75) / restructure (≥0.60) / reject (<0.60)
|
||
```
|
||
|
||
## 데이터
|
||
|
||
| 입력 출처 | 개수 | 수집 문장 |
|
||
|---|---|---|
|
||
| Figma 프레임 텍스트 | 32 | 586 |
|
||
| BEPS 마스터 텍스트 | 1 | 1,410 |
|
||
| MDX 검증 구간 | 4 | 129 |
|
||
| **합계** | **37** | **2,125** |
|
||
|
||
전처리 후 최종:
|
||
- **고유 키워드 1,713 개** (= 핵심 451 + 연관 1,238 + 광범위 24)
|
||
- **키워드 세트 524 개** (frame-level 시그니처)
|
||
|
||
## 주요 산출물
|
||
|
||
| 파일 | 용도 |
|
||
|---|---|
|
||
| `mdx_matching_result.yaml` | V1 키워드 매칭 결과 |
|
||
| `v2_semantic_rerank_result.yaml` | V2 의미 매칭 결과 |
|
||
| `v3_structure_rerank_r5_result.yaml` | V3 구조 매칭 결과 (최종 r5) |
|
||
| `v4_full32_result.yaml` | V4 종합 판정 (32 frame 전체) |
|
||
| `structure_ontology_v2_final_r2.yaml` | 32 frame 의 구조 DB |
|
||
| `auto_anchor_candidates.yaml` | 키워드 세트 + 토큰 |
|
||
| `KEYWORD_INVENTORY.html` | 키워드집 생성 보고서 |
|
||
| `V4_SLOT_ABLATION.md` | slot 축 ablation 실증 |
|
||
| `DECK_01~07.html` | 임원 보고용 7 페이지 |
|
||
|
||
## 빠른 시작
|
||
|
||
```bash
|
||
# 매칭 시스템 의존 파이프라인 실행 (이미 결과 yaml 있으면 생략 가능)
|
||
cd matching/
|
||
|
||
# 1. 키워드 추출 + 정리
|
||
python pipeline_05_anchor_candidates.py
|
||
python pipeline_07_auto_anchor_candidates.py
|
||
|
||
# 2. V1~V4 매칭
|
||
python pipeline_06_2_mdx_matching.py # V1 키워드 매칭
|
||
python pipeline_08_v2_semantic_rerank.py # V2 의미 매칭
|
||
python pipeline_08_v3_r5_structure_rerank.py # V3 구조 매칭 (최종)
|
||
python pipeline_17_v4_full32.py # V4 종합 판정
|
||
|
||
# 3. 보고용 deck 생성
|
||
python pipeline_16_deck_4pages.py # DECK 1~7 생성
|
||
```
|
||
|
||
## 현재 성능
|
||
|
||
- **TARGET 4 섹션 정답률**: 3/4 (75%) — 01-2 / 03-1 / 03-2 정답, 02-2.2 실패
|
||
- **Logistic Regression 검증**: 4/4 (LOOCV)
|
||
- **BM25 / IDF 비교**: 현 방식 4/4 > BM25 3/4 > IDF 3/4
|
||
|
||
## 한계 + 다음 단계
|
||
|
||
`PLAN.md` / `PROGRESS.md` 참조.
|