기출 PDF 한 장을 분석해, 검증 가능한 새로운 시험지로 완성하는 AI 기반 출제 서비스
AI ExamGenerator is an AI-assisted assessment platform that turns Korean SAT PDFs into verified, ready-to-use exam papers. It extracts questions and passages, generates controlled variants that preserve intent and difficulty, verifies the results, and exports consistent PDF and Word documents.
This public repository is an intentionally separated portfolio showcase—not the production source tree. It includes:
- A responsive KOR / ENG product showcase
- An interactive feature walkthrough and the original brand film
- A public-safe system architecture
- Selected engineering decisions around idempotency, partial failure, AI observability, and deterministic figure rendering
- An explicit public repository scope
Visit the live portfolio or the production service.
AI ExamGenerator는 수능 기출 PDF에서 문항과 지문, 선택지, 수식과 이미지를 추출한 뒤 원래의 출제 의도와 난이도를 반영한 변형 문제를 생성합니다. 생성 결과는 여러 검증 단계를 거쳐 실제 사용 가능한 PDF 및 Word 시험지로 출력됩니다.
이 프로젝트는 단순한 LLM 데모가 아니라 긴 작업 시간, 부분 실패, 중복 요청, 크레딧 과금, PDF 손상, AI 응답 변동성을 전제로 설계한 운영형 서비스입니다.
기출 PDF 업로드
↓
텍스트 추출 + OCR 폴백 + 문항 구조화
↓
유형·난이도·정답 관계를 반영한 문제 변형
↓
원문 보존·중복·정답·도형 검증 및 실패 복구
↓
PDF / DOCX 시험지 생성
| 과제 | 해결 방향 |
|---|---|
| AI 응답의 불확실성 | 역할별 모델 라우팅, 구조화 출력, 제한된 재시도와 보충 생성 |
| 부분 실패와 긴 처리 시간 | Redis/RQ 비동기 작업, 취소 전파, 청크 단위 복구 |
| 중복 과금과 환불 | 멱등 요청 키와 트랜잭션 기반 크레딧 원장 |
| 스캔 PDF와 손상된 문서 | 페이지별 텍스트 품질 판정 후 OCR/비전 폴백 |
| 수학 도형의 일관성 | 검증 가능한 JSON 도형 명세와 결정적 SVG 렌더링 |
| 출력물 품질 | KaTeX, Headless Chromium, 문서별 레이아웃 파이프라인 |
| 비용·지연 관리 | 호출 단계별 latency/retry/cache metric과 플랜별 모델 정책 |
- Frontend: React, TypeScript, Vite, Tailwind CSS, TanStack Query, Zustand
- Backend: FastAPI, SQLAlchemy, Alembic, Pydantic
- Data & Jobs: PostgreSQL, Redis, RQ
- AI & Documents: Gemini, OCR/Vision fallback, KaTeX, Puppeteer, DOCX
- Infrastructure: Nginx, systemd, Naver Cloud Platform
- 웹 요청과 AI 작업을 분리합니다.
- 외부 API 호출은 실패할 수 있다고 가정합니다.
- 크레딧 변경은 재시도해도 한 번만 반영되어야 합니다.
- AI가 만든 콘텐츠를 그대로 신뢰하지 않고 로컬 규칙과 교차 검증을 적용합니다.
- 결과가 불완전하면 조용히 성공시키지 않고 상태로 드러냅니다.
- 화면, PDF, Word가 가능한 한 같은 데이터 명세를 사용합니다.
자세한 내용은 공개 아키텍처 문서를 참고해 주세요.
- 반응형 제품 포트폴리오 사이트
- 기능별 인터랙티브 제품 데모
- KOR/ENG 전환과 스크롤 연동 브랜드 영상
- 운영 구조를 단순화한 시스템 아키텍처
- 신뢰성·비용·문서 출력에 관한 핵심 설계 결정
- GitHub Pages 자동 배포 워크플로
이 저장소는 포트폴리오 전용 공개 쇼케이스입니다. 실제 운영 저장소와 Git 이력을 공유하지 않으며, 다음 항목은 의도적으로 포함하지 않습니다.
- 운영 백엔드 및 프론트엔드 전체 소스
- 모델 프롬프트와 라우팅 세부 정책
- 인증·결제·크레딧·관리자 구현
- 인프라 주소, 배포 설정, 자격 증명
- 사용자 PDF, 생성 결과, 운영 로그
공개/비공개 기준은 PUBLIC_SCOPE.md에 정리되어 있습니다.
빌드 도구가 필요 없는 정적 사이트입니다.
python3 -m http.server 4173브라우저에서 http://127.0.0.1:4173을 열면 됩니다.
© 2026 Seongwon Park. 이 저장소의 콘텐츠는 포트폴리오 열람 목적으로 공개됩니다.
