78 lines
3.0 KiB
Plaintext
78 lines
3.0 KiB
Plaintext
# 서버 바인딩 (uvicorn) - python -m app.main 실행 시 사용됨
|
|
HOST=0.0.0.0
|
|
PORT=8000
|
|
LOG_LEVEL=info
|
|
RELOAD=false
|
|
# 리버스 프록시 sub-path 배포 시. 예: /plagiarism (Apache가 /plagiarism → 컨테이너 매핑할 때)
|
|
ROOT_PATH=
|
|
# 설정하면 /v1/health를 제외한 API 요청에 X-API-Key가 필요합니다.
|
|
API_KEY=
|
|
# 운영 fail-closed. true인데 API_KEY가 비면 앱이 기동에 실패합니다.
|
|
# ⚠️ King 실제 활성화는 바이칼 측 키 전달 후 진행 (docs/AI_DETECTION.md 참조).
|
|
REQUIRE_API_KEY=false
|
|
# 인증 없이 열어둘 경로 제어
|
|
PUBLIC_HEALTH=true
|
|
PUBLIC_DOCS=true
|
|
|
|
ENGINE_VERSION=o2o-plagiarism-2.1.0-kosimcse
|
|
REFERENCE_CORPUS_DIR=./data/reference
|
|
TAXONOMY_DIR=./data/taxonomy
|
|
AUTOBIOGRAPHY_PATTERNS_PATH=./data/autobiography/common_patterns.txt
|
|
|
|
# 3.5만 에피소드용 SQLite provenance + 증분 영속 인덱스.
|
|
# 서버에서 ingest/build 완료 후 true로 전환합니다.
|
|
USE_PERSISTENT_INDEX=false
|
|
CORPUS_DB_PATH=./data/runtime/corpus.sqlite3
|
|
PERSISTENT_INDEX_DIR=./data/runtime/index
|
|
PERSISTENT_SIMILARITY_THRESHOLD=0.65
|
|
PERSISTENT_MIN_EXACT_SPAN=80
|
|
PERSISTENT_MIN_COVERAGE=0.30
|
|
PERSISTENT_RERANK_TOP_K=20
|
|
PRECEDENTS_PATH=./data/precedents/precedents.jsonl
|
|
AI_DETECTOR_MODEL_PATH=./data/models/ai_detector.joblib
|
|
# 학습 모델이 없을 때 규칙 기반 점수를 낼지. true 면 is_stub=true 로 노출된다.
|
|
AI_DETECTOR_ALLOW_HEURISTIC=false
|
|
# 휴리스틱 컷. scripts/calibrate_ai_detector_cuts.py 출력값을 넣는다.
|
|
# 비워두면 근거 없는 자리표시자(0.40/0.70)가 쓰이므로 배지가 무의미해진다.
|
|
# 값이 없으면 아래 두 줄은 주석 처리한 채로 둘 것 (빈 값은 파싱 오류).
|
|
#AI_DETECTOR_LOW_CUT=
|
|
#AI_DETECTOR_HIGH_CUT=
|
|
AI_DETECTOR_USE_POS=true
|
|
|
|
# PDF VII-4 권장 보수적 임계값 (정밀도 우선)
|
|
SIMILARITY_THRESHOLD=0.85
|
|
|
|
# KoSimCSE / KoSBERT (PDF VII-3 권장 - 한국어 오픈소스 임베딩, 자체 산출물)
|
|
# CPU 기본 이미지는 torch를 포함하지 않습니다. 레거시 KoSimCSE를 별도 설치한 경우만 true.
|
|
USE_KOSIMCSE=false
|
|
KOSIMCSE_MODEL=BM-K/KoSimCSE-roberta-multitask
|
|
KOSIMCSE_MAX_LENGTH=512
|
|
|
|
# OpenAI 연동 (옵션). KoSimCSE 있으면 임베딩은 비활성 권장.
|
|
OPENAI_API_KEY=
|
|
OPENAI_EXTRACTION_MODEL=gpt-4o-mini
|
|
OPENAI_EMBEDDING_MODEL=text-embedding-3-small
|
|
OPENAI_JUDGE_MODEL=gpt-4o-mini
|
|
USE_LLM_EXTRACTOR=false
|
|
USE_EMBEDDING_SIMILARITY=false
|
|
# 판례 Top 5와 탐지 증거를 GPT Structured Outputs로 재판단합니다.
|
|
# 활성화하면 증거 excerpt가 OpenAI API로 전송되며 응답 저장은 store=false입니다.
|
|
USE_LLM_LEGAL_JUDGE=false
|
|
LLM_JUDGE_TIMEOUT_SECONDS=20
|
|
LLM_JUDGE_MAX_EVIDENCE_CHARS=4000
|
|
|
|
# 삼중 유사도 가중치 (합이 1.0)
|
|
WEIGHT_TEXT_SIM=0.30
|
|
WEIGHT_LEMMA_SIM=0.45
|
|
WEIGHT_CHAR_SIM=0.15
|
|
WEIGHT_MOTIF_SIM=0.10
|
|
|
|
# PDF VII-3 3단 캐스케이딩 - MinHash + LSH 1차 필터
|
|
USE_LSH_FILTER=true
|
|
LSH_THRESHOLD=0.3
|
|
LSH_TOP_K=50
|
|
|
|
# PDF VII-4 자서전 특화 모드 (공통 표현 제거 + NER 마스킹)
|
|
AUTOBIOGRAPHY_MODE=true
|
|
ENABLE_ENTITY_MASKING=true
|