Loading...
Loading...
02-reusable-code-python/pipelines/types.py
"""
파이프라인 오케스트레이션 타입 정의
Ingest → Synthesize → Create → Publish 4단계 파이프라인에서
사용하는 열거형 타입을 정의한다.
@source claude-world/notebooklm-skill
@extracted 2026-03-18
@version 1.0.0
의존성:
- enum (표준 라이브러리)
사용법:
from pipelines.types import PipelineStage, StageStatus, OutputType
stage = PipelineStage.INGEST
status = StageStatus.COMPLETED
output = OutputType.AUDIO
"""
from enum import Enum
class PipelineStage(str, Enum):
"""파이프라인 4단계.
notebooklm-skill 기반 콘텐츠 생성 파이프라인의 핵심 단계.
str을 상속하여 JSON 직렬화 시 문자열로 변환된다.
"""
INGEST = "ingest"
"""소스 수집: URL, 텍스트, 파일 등 원본 데이터 수집 및 정규화"""
SYNTHESIZE = "synthesize"
"""합성/분석: 수집된 데이터에서 핵심 인사이트 추출 및 구조화"""
CREATE = "create"
"""산출물 생성: 오디오, 슬라이드, 퀴즈 등 최종 콘텐츠 생성"""
PUBLISH = "publish"
"""발행/배포: 생성된 산출물을 목적지에 저장 또는 배포"""
class StageStatus(str, Enum):
"""단계 실행 상태.
각 파이프라인 단계의 실행 상태를 나타낸다.
"""
PENDING = "pending"
"""대기 중: 실행 전 초기 상태"""
RUNNING = "running"
"""실행 중: 현재 처리 중"""
COMPLETED = "completed"
"""완료: 성공적으로 마침"""
FAILED = "failed"
"""실패: 오류 발생으로 중단됨"""
SKIPPED = "skipped"
"""건너뜀: 조건 미충족 또는 선택적 단계로 생략됨"""
class OutputType(str, Enum):
"""산출물 타입 (10종).
파이프라인 Create 단계에서 생성 가능한 콘텐츠 유형.
"""
AUDIO = "audio"
"""오디오: 팟캐스트, 요약 음성 등"""
VIDEO = "video"
"""비디오: 강의 영상, 설명 영상 등"""
SLIDES = "slides"
"""슬라이드: 프레젠테이션 자료"""
REPORT = "report"
"""보고서: 구조화된 분석 문서"""
QUIZ = "quiz"
"""퀴즈: 학습 확인용 문항"""
FLASHCARDS = "flashcards"
"""플래시카드: 핵심 개념 암기 카드"""
MIND_MAP = "mind_map"
"""마인드맵: 개념 간 관계 시각화"""
TIMELINE = "timeline"
"""타임라인: 시간 순서 정리"""
STUDY_GUIDE = "study_guide"
"""학습 가이드: 체계적 학습 경로 문서"""
BRIEFING = "briefing"
"""브리핑: 핵심 요약 뉴스레터 형식"""