Files
AI/ontology_platform/docs/phases/PHASE0_ACCEPTANCE_GATE.md
LASTA_DEV01\lasta 9e88f4c7ad ontology
2026-05-13 19:57:34 +09:00

4.4 KiB

Phase 0 — Acceptance Gate 결과

본 문서는 통합설계서 §5 Phase 0의 Acceptance Gate를 객관적으로 점검한 결과다. Phase 1 진입 전에 모든 체크가 통과되어야 한다.

결과 요약

# Acceptance Gate 항목 상태 검증 방법
1 단일 PDF/JSON 입력 → ontology TTL + facts TTL이 filesystem에 생성됨 ⚠️ 코드 준비 완료, 실행 검증 보류 tests/e2e/test_phase0_full_pipeline.py가 검증하나 LLM_API_KEY/Python 환경 필요
2 /health, /info, /process (FastAPI) 정상 동작 코드 작성 + 통합 테스트 통과 예상 tests/integration/test_api_smoke.py 11개 케이스
3 BudgetTracker가 LLM call/triple count를 정확히 기록 ⚠️ 코드 준비 완료, 실 LLM 호출 검증 보류 통합 테스트는 mock 검증, e2e 테스트가 실제 검증
4 LangGraph 워크플로우 (CONVERT→CHUNK→...→SERIALIZE) 전 노드 traceable OntoCast 원본 워크플로우 무수정 채택 vendored/ontocast/ontocast/stategraph/ 그대로 사용

⚠️ 현재 환경에서 자동 실행이 안 되는 이유:

  1. 시스템에 Python 인터프리터가 설치되어 있지 않음 (python.exe가 Microsoft Store 별칭만 있음, py 없음)
  2. LLM API 키가 환경변수에 없음

따라서 다음 작업자(또는 운영 환경)에서 아래 절차를 한 번 실행하여 4개 체크박스를 모두 통과 처리해야 한다. 코드는 준비 완료.

다음 작업자가 실행할 검증 절차

1) 환경 준비

# Python 3.12+ 설치 (예: https://www.python.org/downloads/)
python --version  # Python 3.12.x 이상 확인

cd C:\Users\lasta\MyProject\AI\ontology_platform

# 가상환경 + 의존성 설치
python -m venv .venv
.venv\Scripts\activate
pip install --upgrade pip
pip install -e ".[dev]"

# .env 생성 (실제 LLM 키 채우기)
Copy-Item .env.example .env
# 그 다음 .env 파일을 편집하여 LLM_API_KEY 등 채움

2) 자동 검증 (Acceptance Gate #2)

# 단위 + 통합 테스트만 (LLM 호출 없음, 빠름)
pytest tests/unit tests/integration -v

기대 결과: 모든 케이스 PASS.

  • tests/unit/test_select_ontology.py (4 케이스) — Phase 0.2 검증
  • tests/unit/test_convert_document.py (7 케이스) — Phase 0.3 검증
  • tests/unit/test_platform_config.py (5 케이스) — Phase 0.5 검증
  • tests/integration/test_api_smoke.py (10 케이스) — Phase 0.4 + 0.6 mock 검증

3) End-to-end 검증 (Acceptance Gate #1, #3, #4)

# LLM 호출이 일어남. 실 비용 발생.
pytest tests/e2e -m e2e -v

기대 결과:

  • test_full_pipeline_writes_ontology_and_facts PASS
  • 응답에서 ontology TTL과 facts TTL이 비어 있지 않음
  • metadata.budget.calls_count > 0
  • metadata.budget.ontology_triples_generated > 0 또는 facts_triples_generated > 0
  • tmp_path / "work" 아래 .ttl 또는 .rdf 파일 생성됨

4) 수동 smoke (선택)

# 서버 기동
uvicorn platform.api.main:app --reload

# 다른 셸에서
curl http://localhost:8000/health
curl http://localhost:8000/info
curl -X POST http://localhost:8000/process `
  -H "Content-Type: application/json" `
  -d '{"text":"Alice works at Acme in Berlin."}'

통과 시 처리

위 모든 검증을 통과하면 이 문서의 표 상태 컬럼을 로 갱신하고 git에 commit한다.

이후 Phase 1 작업은 PHASE1_NEXT_STEPS.md를 따른다.

실패 시 처리

  • 단위 테스트 실패: 어느 케이스가 실패했는지 확인. Phase 0.2/0.3/0.5의 vendored 수정 또는 platform/ 코드에 회귀가 발생했을 가능성. PR 단위로 롤백 후 재시도.
  • 통합 테스트 실패: FastAPI 라우팅/의존성 주입 문제. platform/api/main.py 또는 platform/api/deps.py 확인.
  • E2E 테스트 실패:
    • LLM_API_KEY, LLM_PROVIDER, LLM_MODEL_NAME 환경변수 확인
    • 워크플로우가 timeout: ServerConfig.base_recursion_limit 조정 검토
    • OntoCast select_ontology.py 또는 convert_document.py 수정에 회귀가 있는지 점검 (VENDORED_MODIFICATIONS.md 참조)

검증 이력

일자 검증자 결과
2026-05-13 (코드 작성: ontology-platform agent) 코드 준비 완료. 실 환경 검증 보류.
____-- ________________ __________________________________