Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AI ExamGenerator

기출 PDF 한 장을 분석해, 검증 가능한 새로운 시험지로 완성하는 AI 기반 출제 서비스

Live Service Portfolio Scope

AI ExamGenerator 제품 개요

한국어 · English

English overview

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과 플랜별 모델 정책

기술 스택

Application

  • 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

아키텍처 원칙

  1. 웹 요청과 AI 작업을 분리합니다.
  2. 외부 API 호출은 실패할 수 있다고 가정합니다.
  3. 크레딧 변경은 재시도해도 한 번만 반영되어야 합니다.
  4. AI가 만든 콘텐츠를 그대로 신뢰하지 않고 로컬 규칙과 교차 검증을 적용합니다.
  5. 결과가 불완전하면 조용히 성공시키지 않고 상태로 드러냅니다.
  6. 화면, 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. 이 저장소의 콘텐츠는 포트폴리오 열람 목적으로 공개됩니다.

About

AI-powered exam generation from source PDFs · PDF 분석부터 검증 가능한 시험지 출력까지

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages