Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

COURTIFY Server

FastAPI 기반 COURTIFY 법률 요약 AI 프로토타입의 추론 서버입니다.

Flutter 앱에서 전달받은 민사 판결문 정보를 전처리하고, KoBART 기반 요약 모델을 실행한 뒤 JSON 형태로 결과를 반환합니다.

Main App: B-Dandelion/COURTIFY

Course Project · Prototype
정식 법률 자문 서비스가 아니라, 법률 문서 요약 과정에서 중요한 정보 보존과 생성 결과 검증을 실험한 서버 프로토타입입니다.

Architecture

Flutter App
    │
    │ HTTP / JSON
    ▼
FastAPI
    │
    ├─ input shaping
    ├─ priority sentence selection
    └─ KoBART inference
           │
           ▼
      summary JSON

Key Logic

Input shaping

모델 입력은 다음 구획으로 구성합니다.

[INSTRUCTION]
[META]
[ORDER]
[TEXT]

법률 문서에서 중요한 결론·금액·이자율을 보존하고 입력에 없는 사실 생성을 줄이기 위한 지시를 포함합니다.

Priority sentence selection

긴 판결문에서 결론과 숫자 정보가 입력 길이 제한 때문에 누락되지 않도록 문장별 중요도를 계산합니다.

가중치를 두는 주요 정보:

  • 인용 / 기각 / 각하 / 파기 / 취소
  • 지급 / 배상 / 지연손해금 / 이자
  • 금액(), 비율(%, 퍼센트)
  • 숫자가 포함된 문장

초반 문장과 높은 점수의 문장을 함께 선택해 모델 입력을 구성합니다.

Generation settings

num_beams = 4
do_sample = false
max_new_tokens = 180
no_repeat_ngram_size = 4
repetition_penalty = 1.15

결과 변동을 줄이고 반복 생성을 억제해 출력 비교와 검증이 쉽도록 설정했습니다.

API

GET /health

서버와 모델 실행 환경을 확인합니다.

반환 정보 예시:

  • device
  • CUDA availability
  • GPU name
  • PyTorch version
  • model device / model loaded state

POST /summarize

법원, 사건명, 선고일, 문장 배열을 받아 서버에서 입력을 구성한 뒤 요약합니다.

Example request:

{
  "court": "서울중앙지방법원",
  "case": "손해배상",
  "date": "2025-01-01",
  "sentences": ["판결문 문장 1", "판결문 문장 2"],
  "max_new_tokens": 180
}

POST /summarize_input_text

이미 [INSTRUCTION] / [META] / [ORDER] / [TEXT] 구조로 만들어진 입력을 직접 전달합니다.

Run

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 Setup

저장소에는 학습 데이터와 모델 가중치를 포함하지 않습니다. 모델 경로는 코드에 개인 로컬 경로를 고정하지 않고 MODEL_DIR 환경 변수로 전달합니다.

환경 변수를 지정하지 않으면 기본적으로 다음 상대 경로를 사용합니다.

./models/kobart-legal-summary-v3

CUDA가 사용 가능한 환경에서는 GPU를, 그렇지 않으면 CPU를 사용합니다.

Tech Stack

  • Python
  • FastAPI
  • PyTorch
  • Hugging Face Transformers
  • KoBART
  • Pydantic
  • Uvicorn

Notes

  • 수업 프로젝트 기반 프로토타입용 서버입니다.
  • 정식 법률 자문 시스템이 아닙니다.
  • 생성 결과는 금액·결론 누락 또는 환각 가능성이 있으므로 별도의 검증이 필요합니다.
  • 원본 AI Hub 데이터와 모델 가중치는 라이선스 및 용량 문제로 공개 저장소에 포함하지 않습니다.

About

COURTIFY NLP 추론 서버 프로토타입 · FastAPI + KoBART

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages