Phase T 적용: 폰트 위계 + 불릿 충돌 수정 + pipeline 통합
폰트 위계 적용: - key-msg: 11→14px (가장 중요, 가장 큰 폰트) - core: 12px 유지 - bg: 11px/9-10px 유지 - sidebar: 제목 14→11px, 불릿 12→10px (가장 덜 중요, 가장 작은 폰트) 불릿 충돌 수정: - BG/SIDEBAR: <style> 블록 금지, 인라인 style만 사용 - CORE의 .bp::before CSS가 BG의 .bp에 적용되는 문제 해결 pipeline.py 통합: - generate_slide_html() → generate_with_retry() 교체 - step2b_verification.json 저장 추가 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -165,8 +165,7 @@ async def generate_slide(
|
||||
# 블록 선택 없음. 슬롯 채우기 없음. AI가 콘텐츠에 맞는 HTML 구조를 직접 만든다.
|
||||
yield {"event": "progress", "data": "2/4 슬라이드 HTML 생성 중..."}
|
||||
|
||||
from src.html_generator import generate_slide_html
|
||||
from src.html_validator import validate_and_clean_html
|
||||
from src.content_verifier import generate_with_retry
|
||||
from src.renderer import render_slide_from_html
|
||||
from src.kei_client import vision_quality_gate
|
||||
import asyncio
|
||||
@@ -191,8 +190,8 @@ async def generate_slide(
|
||||
"b64": img_b64,
|
||||
})
|
||||
|
||||
# Claude Sonnet이 HTML 생성
|
||||
generated = await generate_slide_html(
|
||||
# Claude Sonnet HTML 생성 + 독립 검증 + 재시도 루프
|
||||
generated, verification = await generate_with_retry(
|
||||
content=content,
|
||||
analysis=analysis,
|
||||
container_specs=container_specs,
|
||||
@@ -200,8 +199,10 @@ async def generate_slide(
|
||||
images=slide_images,
|
||||
)
|
||||
|
||||
# HTML 정화 + 검증
|
||||
generated = validate_and_clean_html(generated)
|
||||
_save_step(run_dir, "step2b_verification.json", {
|
||||
area: {"passed": r.passed, "score": r.score, "errors": r.errors}
|
||||
for area, r in verification.items()
|
||||
})
|
||||
|
||||
_save_step(run_dir, "step2_generated.json", {
|
||||
"body_html_length": len(generated.get("body_html", "")),
|
||||
|
||||
Reference in New Issue
Block a user