Ru2SQL / src /config.py
Tyycha's picture
initial commit
8871df9
"""Конфигурация проекта. Читаем из .env через pydantic-settings."""
from __future__ import annotations
from pathlib import Path
from pydantic_settings import BaseSettings, SettingsConfigDict
ROOT_DIR = Path(__file__).resolve().parent.parent
class Settings(BaseSettings):
"""Все настройки приложения. Значения берутся из .env, переменных окружения, либо дефолтов."""
model_config = SettingsConfigDict(
env_file=str(ROOT_DIR / ".env"),
env_file_encoding="utf-8",
extra="ignore",
)
# Модель
base_model_name: str = "Qwen/Qwen2.5-Coder-3B-Instruct"
lora_adapter_path: str = str(ROOT_DIR / "checkpoints" / "qwen-coder-pauq-lora")
device: str = "cpu" # "cpu" | "cuda" | "mps"
# Данные
pauq_data_dir: Path = ROOT_DIR / "data" / "pauq"
databases_dir: Path = ROOT_DIR / "data" / "databases"
# API ключи (используется только тот, который заполнен)
gigachat_api_key: str = ""
openai_api_key: str = ""
yandexgpt_api_key: str = ""
yandexgpt_folder_id: str = ""
hf_token: str = ""
# FastAPI
api_host: str = "127.0.0.1"
api_port: int = 8000
# Inference defaults
max_new_tokens: int = 256
temperature: float = 0.0 # для SQL детерминизм лучше
do_sample: bool = False
# Singleton-инстанс. Импортируется по всему проекту: `from src.config import settings`
settings = Settings()