FastAPI 기반 COURTIFY 법률 요약 AI 프로토타입의 추론 서버입니다.
Flutter 앱에서 전달받은 민사 판결문 정보를 전처리하고, KoBART 기반 요약 모델을 실행한 뒤 JSON 형태로 결과를 반환합니다.
Main App: B-Dandelion/COURTIFY
Course Project · Prototype
정식 법률 자문 서비스가 아니라, 법률 문서 요약 과정에서 중요한 정보 보존과 생성 결과 검증을 실험한 서버 프로토타입입니다.
Flutter App
│
│ HTTP / JSON
▼
FastAPI
│
├─ input shaping
├─ priority sentence selection
└─ KoBART inference
│
▼
summary JSON
모델 입력은 다음 구획으로 구성합니다.
[INSTRUCTION]
[META]
[ORDER]
[TEXT]
법률 문서에서 중요한 결론·금액·이자율을 보존하고 입력에 없는 사실 생성을 줄이기 위한 지시를 포함합니다.
긴 판결문에서 결론과 숫자 정보가 입력 길이 제한 때문에 누락되지 않도록 문장별 중요도를 계산합니다.
가중치를 두는 주요 정보:
- 인용 / 기각 / 각하 / 파기 / 취소
- 지급 / 배상 / 지연손해금 / 이자
- 금액(
원), 비율(%,퍼센트) - 숫자가 포함된 문장
초반 문장과 높은 점수의 문장을 함께 선택해 모델 입력을 구성합니다.
num_beams = 4
do_sample = false
max_new_tokens = 180
no_repeat_ngram_size = 4
repetition_penalty = 1.15
결과 변동을 줄이고 반복 생성을 억제해 출력 비교와 검증이 쉽도록 설정했습니다.
서버와 모델 실행 환경을 확인합니다.
반환 정보 예시:
- device
- CUDA availability
- GPU name
- PyTorch version
- model device / model loaded state
법원, 사건명, 선고일, 문장 배열을 받아 서버에서 입력을 구성한 뒤 요약합니다.
Example request:
{
"court": "서울중앙지방법원",
"case": "손해배상",
"date": "2025-01-01",
"sentences": ["판결문 문장 1", "판결문 문장 2"],
"max_new_tokens": 180
}이미 [INSTRUCTION] / [META] / [ORDER] / [TEXT] 구조로 만들어진 입력을 직접 전달합니다.
pip install -r requirements.txt
export MODEL_DIR=/path/to/kobart-legal-summary-model
uvicorn server_v1:app --host 127.0.0.1 --port 8000또는 환경 변수를 설정한 뒤:
python server_v1.py저장소에는 학습 데이터와 모델 가중치를 포함하지 않습니다. 모델 경로는 코드에 개인 로컬 경로를 고정하지 않고 MODEL_DIR 환경 변수로 전달합니다.
환경 변수를 지정하지 않으면 기본적으로 다음 상대 경로를 사용합니다.
./models/kobart-legal-summary-v3
CUDA가 사용 가능한 환경에서는 GPU를, 그렇지 않으면 CPU를 사용합니다.
- Python
- FastAPI
- PyTorch
- Hugging Face Transformers
- KoBART
- Pydantic
- Uvicorn
- 수업 프로젝트 기반 프로토타입용 서버입니다.
- 정식 법률 자문 시스템이 아닙니다.
- 생성 결과는 금액·결론 누락 또는 환각 가능성이 있으므로 별도의 검증이 필요합니다.
- 원본 AI Hub 데이터와 모델 가중치는 라이선스 및 용량 문제로 공개 저장소에 포함하지 않습니다.