"""검증 A: 용어 정의 재검증 + 검증 B: 본심 (이미지+텍스트+팝업 표) 용어 정의: 참고 이미지 수준 — 부제 + 불릿 2개 + 원본 텍스트 거의 그대로 본심: dx1.png 이미지 + DX vs BIM 관계 텍스트 + 비교표는 details/summary 팝업 """ from __future__ import annotations import asyncio, sys, time, datetime, base64, re from pathlib import Path ROOT = Path(__file__).parent.parent sys.path.insert(0, str(ROOT)) async def main(): from src.slide_measurer import capture_slide_screenshot from src.config import settings import anthropic out_dir = ROOT / "data" / "runs" / f"verify_v2_{datetime.datetime.now().strftime('%Y%m%d_%H%M%S')}" out_dir.mkdir(parents=True, exist_ok=True) client = anthropic.AsyncAnthropic(api_key=settings.anthropic_api_key) t0 = time.time() # ═══════════════════════════════════════ # 검증 A: 용어 정의 (참고 이미지 수준) # ═══════════════════════════════════════ print("=== 검증 A: 용어 정의 (참고 이미지 수준) ===") prompt_a = """다음 3개 용어 정의를 sidebar 카드로 만들어라. 380px × 490px. ## 용어 (원본 텍스트를 한 글자도 바꾸지 말고 그대로 사용) ### BIM (Building Information Modeling) : 디지털 전환을 위한 핵심 기술 - 시설물의 생애주기동안 발생한 모든 정보를 3차원 모델 기반으로 통합·관리하는 정보 관리 도구 - 건설 정보와 절차를 표준화된 방식으로 연계하고 디지털 협업이 가능하도록 하는 핵심 인프라 기술 ### 건설산업 - 다양한 시설물을 각 산업마다의 광범위한 기술을 통합 및 융합하여 만들어내는 종합산업 - 목적 시설물의 품질 욕구를 충족시키면서 최단기간 내에 최소 비용으로 편리하고 안전하며 우수한 성능의 시설물 완성을 목표로 함 ### 디지털전환 (DX, Digital Transformation) : 산업 패러다임의 변화 - 디지털 기술을 기반으로 산업 전반의 업무 방식과 가치 창출 구조를 전환하는 과정 및 결과 - 단순한 기술 도입이 아닌, 고객 가치와 의사결정 방식의 근본적인 변화로 산업의 새로운 방향을 정립하는 것을 의미 ## 디자인 요구사항 1. 상단에 "용어 정의" 구분선 라벨 (좌우 선 + 중앙 텍스트, 13px #64748b) 2. 각 용어를 카드로: - 배경: #f8fafc, 테두리: 1px solid #e2e8f0, border-radius: 8px, padding: 14px - 용어명: 14px bold #1e293b (예: "BIM (Building Information Modeling)") - 부제: 12px #2563eb (예: ": 디지털 전환을 위한 핵심 기술") - 불릿: 12px #475569, line-height: 1.6, 불릿 마커 "•" - 각 불릿은 원본 텍스트 그대로 3. 카드 간 간격 10px 4. 490px 안에 여유 있게 배치 HTML + inline
{inner}
""" if __name__ == "__main__": import logging logging.basicConfig(level=logging.INFO, format="%(asctime)s %(levelname)s %(message)s", datefmt="%H:%M:%S") logging.getLogger("selenium").setLevel(logging.WARNING) logging.getLogger("urllib3").setLevel(logging.WARNING) logging.getLogger("httpx").setLevel(logging.WARNING) asyncio.run(main())