SOY NV AI
๋ฉํ๋ฐ์ดํฐ ์์ฑ ๊ธฐ๋ฅ ๊ฐ์ : ๊ธฐ์กด ๋ฉํ๋ฐ์ดํฐ ๋ณํฉ ๋ฐ ํ์ฐจ ์ ๋ณด ์ ์ง
d234e06
| """ | |
| ์ค์ ๊ด๋ฆฌ ๋ชจ๋ | |
| ํ๊ฒฝ ๋ณ์ ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ค์ ์ ๊ด๋ฆฌํฉ๋๋ค. | |
| """ | |
| import os | |
| from pathlib import Path | |
| from typing import Optional | |
| from dotenv import load_dotenv | |
| # .env ํ์ผ ๋ก๋ | |
| load_dotenv() | |
| # ํ๋ก์ ํธ ๋ฃจํธ ๋๋ ํ ๋ฆฌ | |
| PROJECT_ROOT = Path(__file__).parent.parent.parent | |
| class Config: | |
| """์ ํ๋ฆฌ์ผ์ด์ ์ค์ ํด๋์ค""" | |
| # Flask ์ค์ | |
| SECRET_KEY: str = os.getenv('SECRET_KEY', 'dev-secret-key-change-in-production') | |
| SQLALCHEMY_DATABASE_URI: str = os.getenv( | |
| 'DATABASE_URL', | |
| f'sqlite:///{PROJECT_ROOT / "instance" / "finance_analysis.db"}' | |
| ) | |
| SQLALCHEMY_TRACK_MODIFICATIONS: bool = False | |
| MAX_CONTENT_LENGTH: int = 100 * 1024 * 1024 # 100MB | |
| # Ollama ์ค์ | |
| OLLAMA_BASE_URL: str = os.getenv('OLLAMA_BASE_URL', 'http://localhost:11434') | |
| # ๊ฒฝ๋ก ์ค์ | |
| UPLOAD_FOLDER: Path = PROJECT_ROOT / 'uploads' | |
| VECTOR_DB_PATH: Path = PROJECT_ROOT / 'vector_db' | |
| KNOWLEDGE_GRAPH_PATH: Path = PROJECT_ROOT / 'knowledge_graphs' | |
| TEMPLATES_FOLDER: Path = PROJECT_ROOT / 'templates' | |
| STATIC_FOLDER: Path = PROJECT_ROOT / 'static' | |
| INSTANCE_FOLDER: Path = PROJECT_ROOT / 'instance' | |
| # ํ์ผ ํ์ฅ์ ์ค์ | |
| ALLOWED_EXTENSIONS: set[str] = {'txt', 'md', 'pdf', 'docx', 'epub'} | |
| # ์๋ฒ ๋ฉ ๋ชจ๋ธ ์ค์ | |
| EMBEDDING_MODEL_NAME: str = os.getenv('EMBEDDING_MODEL_NAME', 'sentence-transformers/all-MiniLM-L6-v2') | |
| RERANKER_MODEL_NAME: str = os.getenv('RERANKER_MODEL_NAME', 'BAAI/bge-reranker-base') | |
| # Gemini API ์ค์ | |
| GEMINI_API_KEY: Optional[str] = os.getenv('GEMINI_API_KEY', None) | |
| def ensure_directories(cls) -> None: | |
| """ํ์ ๋๋ ํ ๋ฆฌ ์์ฑ""" | |
| cls.UPLOAD_FOLDER.mkdir(parents=True, exist_ok=True) | |
| cls.VECTOR_DB_PATH.mkdir(parents=True, exist_ok=True) | |
| cls.KNOWLEDGE_GRAPH_PATH.mkdir(parents=True, exist_ok=True) | |
| cls.STATIC_FOLDER.mkdir(parents=True, exist_ok=True) | |
| cls.INSTANCE_FOLDER.mkdir(parents=True, exist_ok=True) | |
| def get_config() -> Config: | |
| """์ค์ ์ธ์คํด์ค ๋ฐํ""" | |
| return Config | |