o2o-plagiarism-ai/.env.example

66 lines
2.3 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
AI_DETECTOR_ALLOW_HEURISTIC=false
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
USE_LLM_EXTRACTOR=false
USE_EMBEDDING_SIMILARITY=false
# 삼중 유사도 가중치 (합이 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