|
|
@@ -22,10 +22,22 @@ import logging
|
|
|
from pathlib import Path
|
|
|
from typing import Any
|
|
|
|
|
|
-# 远程训练节点没有 pydantic-settings/数据库,直接用环境变量
|
|
|
from types import SimpleNamespace
|
|
|
|
|
|
-_data_dir = Path(os.environ.get("COMPUTE_NODE_REMOTE_DATA_DIR", "/root/Fine-tuning/backend/data"))
|
|
|
+# 确定数据目录:优先用 DATA_DIR 环境变量,否则从 .env 文件读取,最后兜底
|
|
|
+def _resolve_data_dir() -> Path:
|
|
|
+ v = os.environ.get("DATA_DIR") or os.environ.get("COMPUTE_NODE_REMOTE_DATA_DIR")
|
|
|
+ if v:
|
|
|
+ return Path(v)
|
|
|
+ # 从 .env 文件读取 DATA_DIR(pydantic-settings 加载 .env 但不导出到 os.environ)
|
|
|
+ env_file = Path(__file__).resolve().parent.parent.parent / ".env"
|
|
|
+ if env_file.exists():
|
|
|
+ for line in env_file.read_text():
|
|
|
+ if line.strip().startswith("DATA_DIR="):
|
|
|
+ return Path(line.split("=", 1)[1].strip())
|
|
|
+ return Path("/root/Fine-tuning/backend/data")
|
|
|
+
|
|
|
+_data_dir = _resolve_data_dir()
|
|
|
settings = SimpleNamespace(
|
|
|
data_dir=_data_dir,
|
|
|
processed_dir=_data_dir / "processed",
|