중간
This commit is contained in:
74
fletimageanalysis/config.py
Normal file
74
fletimageanalysis/config.py
Normal file
@@ -0,0 +1,74 @@
|
||||
"""
|
||||
설정 관리 모듈
|
||||
환경 변수 및 애플리케이션 설정을 관리합니다.
|
||||
"""
|
||||
|
||||
import os
|
||||
from dotenv import load_dotenv
|
||||
from pathlib import Path
|
||||
|
||||
# .env 파일 로드
|
||||
load_dotenv()
|
||||
|
||||
class Config:
|
||||
"""애플리케이션 설정 클래스"""
|
||||
|
||||
# 기본 애플리케이션 설정
|
||||
APP_TITLE = os.getenv("APP_TITLE", "PDF/DXF 도면 분석기")
|
||||
APP_VERSION = os.getenv("APP_VERSION", "1.1.0")
|
||||
DEBUG = os.getenv("DEBUG", "False").lower() == "true"
|
||||
|
||||
# API 설정
|
||||
GEMINI_API_KEY = os.getenv("GEMINI_API_KEY")
|
||||
GEMINI_MODEL = os.getenv("GEMINI_MODEL", "gemini-2.5-pro")
|
||||
DEFAULT_PROMPT = os.getenv(
|
||||
"DEFAULT_PROMPT",
|
||||
"pdf 이미지 분석하여 도면인지 어떤 정보들이 있는지 알려줘.structured_output 이외에 정보도 기타에 넣어줘."
|
||||
)
|
||||
|
||||
# 파일 업로드 설정
|
||||
MAX_FILE_SIZE_MB = int(os.getenv("MAX_FILE_SIZE_MB", "50"))
|
||||
ALLOWED_EXTENSIONS = os.getenv("ALLOWED_EXTENSIONS", "pdf,dxf").split(",")
|
||||
UPLOAD_FOLDER = os.getenv("UPLOAD_FOLDER", "uploads")
|
||||
|
||||
# 경로 설정
|
||||
BASE_DIR = Path(__file__).parent
|
||||
UPLOAD_DIR = BASE_DIR / UPLOAD_FOLDER
|
||||
ASSETS_DIR = BASE_DIR / "assets"
|
||||
RESULTS_FOLDER = BASE_DIR / "results"
|
||||
|
||||
@classmethod
|
||||
def validate_config(cls):
|
||||
"""설정 유효성 검사"""
|
||||
errors = []
|
||||
|
||||
if not cls.GEMINI_API_KEY:
|
||||
errors.append("GEMINI_API_KEY가 설정되지 않았습니다.")
|
||||
|
||||
if not cls.UPLOAD_DIR.exists():
|
||||
try:
|
||||
cls.UPLOAD_DIR.mkdir(parents=True, exist_ok=True)
|
||||
except Exception as e:
|
||||
errors.append(f"업로드 폴더 생성 실패: {e}")
|
||||
|
||||
return errors
|
||||
|
||||
@classmethod
|
||||
def get_file_size_limit_bytes(cls):
|
||||
"""파일 크기 제한을 바이트로 반환"""
|
||||
return cls.MAX_FILE_SIZE_MB * 1024 * 1024
|
||||
|
||||
@classmethod
|
||||
def get_gemini_api_key(cls):
|
||||
"""Gemini API 키 반환"""
|
||||
return cls.GEMINI_API_KEY
|
||||
|
||||
# 설정 검증
|
||||
if __name__ == "__main__":
|
||||
config_errors = Config.validate_config()
|
||||
if config_errors:
|
||||
print("설정 오류:")
|
||||
for error in config_errors:
|
||||
print(f" - {error}")
|
||||
else:
|
||||
print("설정이 올바르게 구성되었습니다.")
|
||||
Reference in New Issue
Block a user