Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ temp/
*.tmp
*.bak

test_real_api_3subjects.py
xtest_data_structure_pdf.py
자료구조_7_ocr_text.txt

.cph/
23 changes: 23 additions & 0 deletions exams/migrations/0003_studymaterial_analysis_run_id_and_more.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Generated by Django 5.2.16 on 2026-08-07 07:53

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('exams', '0002_studymaterial_analysis_error_message_and_more'),
]

operations = [
migrations.AddField(
model_name='studymaterial',
name='analysis_run_id',
field=models.UUIDField(blank=True, null=True, verbose_name='AI 분석 실행 식별자'),
),
migrations.AddField(
model_name='studymaterial',
name='analysis_started_at',
field=models.DateTimeField(blank=True, null=True, verbose_name='AI 분석 시작 시각'),
),
]
3 changes: 2 additions & 1 deletion exams/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,6 @@ class StudyMaterial(models.Model):
)
error_message = models.TextField(null=True, blank=True, verbose_name="추출/파싱 실패 원인")

# AI 분석(E-AI-01/02/03) 상태 - 위 status/error_message(텍스트 추출)와는 별개 필드.
# 리뷰 확정 사항: 텍스트 추출 성공 여부와 AI 분석 성공 여부는 서로 다른 단계라 분리한다.
analysis_status = models.CharField(
max_length=20,
Expand All @@ -138,6 +137,8 @@ class StudyMaterial(models.Model):
)
analysis_error_message = models.TextField(null=True, blank=True, verbose_name="AI 분석 실패 사유")
analysis_retry_count = models.PositiveSmallIntegerField(default=0, verbose_name="AI 분석 사용자 재시도 횟수")
analysis_started_at = models.DateTimeField(null=True, blank=True, verbose_name="AI 분석 시작 시각")
analysis_run_id = models.UUIDField(null=True, blank=True, verbose_name="AI 분석 실행 식별자")

created_at = models.DateTimeField(auto_now_add=True, verbose_name="생성일시")

Expand Down
533 changes: 346 additions & 187 deletions exams/services/analysis_orchestrator.py

Large diffs are not rendered by default.

Empty file.
Loading