Codex commited on
Commit
85cfed7
·
1 Parent(s): 3ca3cda

Use persistent bucket storage when available

Browse files
Files changed (1) hide show
  1. app.py +23 -1
app.py CHANGED
@@ -30,7 +30,15 @@ HF_TOKEN = os.environ.get("HF_TOKEN", "")
30
  DATASET_REPO = "huanx/daniya-voice-gptsovits"
31
  GPT_SOVITS_REPO = "https://github.com/RVC-Boss/GPT-SoVITS.git"
32
 
33
- WORK_DIR = Path("/tmp/daniya_trainer")
 
 
 
 
 
 
 
 
34
  HF_HOME = WORK_DIR / "hf_home"
35
  GPT_SOVITS_DIR = WORK_DIR / "GPT-SoVITS"
36
  DATASET_DIR = WORK_DIR / "dataset"
@@ -65,6 +73,9 @@ log = logging.getLogger(__name__)
65
  os.environ.setdefault("HF_HOME", str(HF_HOME))
66
  os.environ.setdefault("TRANSFORMERS_CACHE", str(HF_HOME / "transformers"))
67
  os.environ.setdefault("HF_HUB_DISABLE_TELEMETRY", "1")
 
 
 
68
 
69
 
70
  @dataclass(frozen=True)
@@ -168,6 +179,7 @@ def get_version_context(version: str):
168
  def ensure_dirs():
169
  base_dirs = [
170
  WORK_DIR,
 
171
  HF_HOME,
172
  DATASET_DIR,
173
  EXP_ROOT,
@@ -264,8 +276,11 @@ def directory_overview():
264
  def directory_overview_for(ctx: VersionContext):
265
  return "\n".join(
266
  [
 
 
267
  f"当前版本: {ctx.spec.version}",
268
  f"工作目录: {WORK_DIR}",
 
269
  f"数据集目录: {DATASET_DIR}",
270
  f"日志目录: {ctx.exp_dir}",
271
  f"SoVITS 导出目录: {ctx.sovits_output_dir}",
@@ -796,8 +811,15 @@ def agent_status(version=DEFAULT_VERSION):
796
  "recommended_default": DEFAULT_VERSION,
797
  "stability": ctx.spec.stability,
798
  "dataset_prepared": dataset_prepared(ctx),
 
 
 
 
 
 
799
  "paths": {
800
  "work_dir": str(WORK_DIR),
 
801
  "dataset_dir": str(DATASET_DIR),
802
  "exp_dir": str(ctx.exp_dir),
803
  "sovits_output_dir": str(ctx.sovits_output_dir),
 
30
  DATASET_REPO = "huanx/daniya-voice-gptsovits"
31
  GPT_SOVITS_REPO = "https://github.com/RVC-Boss/GPT-SoVITS.git"
32
 
33
+ PERSISTENT_ROOT = Path(os.environ.get("PERSISTENT_ROOT", "/data"))
34
+ EPHEMERAL_ROOT = Path("/tmp")
35
+ ACTIVE_STORAGE_ROOT = (
36
+ PERSISTENT_ROOT if PERSISTENT_ROOT.is_dir() and os.access(PERSISTENT_ROOT, os.W_OK) else EPHEMERAL_ROOT
37
+ )
38
+ STORAGE_MODE = "persistent" if ACTIVE_STORAGE_ROOT == PERSISTENT_ROOT else "ephemeral"
39
+
40
+ WORK_DIR = ACTIVE_STORAGE_ROOT / "daniya_trainer"
41
+ TMP_ROOT = WORK_DIR / "tmp"
42
  HF_HOME = WORK_DIR / "hf_home"
43
  GPT_SOVITS_DIR = WORK_DIR / "GPT-SoVITS"
44
  DATASET_DIR = WORK_DIR / "dataset"
 
73
  os.environ.setdefault("HF_HOME", str(HF_HOME))
74
  os.environ.setdefault("TRANSFORMERS_CACHE", str(HF_HOME / "transformers"))
75
  os.environ.setdefault("HF_HUB_DISABLE_TELEMETRY", "1")
76
+ os.environ.setdefault("TMPDIR", str(TMP_ROOT))
77
+ os.environ.setdefault("TMP", str(TMP_ROOT))
78
+ os.environ.setdefault("TEMP", str(TMP_ROOT))
79
 
80
 
81
  @dataclass(frozen=True)
 
179
  def ensure_dirs():
180
  base_dirs = [
181
  WORK_DIR,
182
+ TMP_ROOT,
183
  HF_HOME,
184
  DATASET_DIR,
185
  EXP_ROOT,
 
276
  def directory_overview_for(ctx: VersionContext):
277
  return "\n".join(
278
  [
279
+ f"存储模式: {STORAGE_MODE}",
280
+ f"存储根目录: {ACTIVE_STORAGE_ROOT}",
281
  f"当前版本: {ctx.spec.version}",
282
  f"工作目录: {WORK_DIR}",
283
+ f"临时目录: {TMP_ROOT}",
284
  f"数据集目录: {DATASET_DIR}",
285
  f"日志目录: {ctx.exp_dir}",
286
  f"SoVITS 导出目录: {ctx.sovits_output_dir}",
 
811
  "recommended_default": DEFAULT_VERSION,
812
  "stability": ctx.spec.stability,
813
  "dataset_prepared": dataset_prepared(ctx),
814
+ "storage": {
815
+ "mode": STORAGE_MODE,
816
+ "root": str(ACTIVE_STORAGE_ROOT),
817
+ "persistent_root": str(PERSISTENT_ROOT),
818
+ "tmp_root": str(TMP_ROOT),
819
+ },
820
  "paths": {
821
  "work_dir": str(WORK_DIR),
822
+ "tmp_root": str(TMP_ROOT),
823
  "dataset_dir": str(DATASET_DIR),
824
  "exp_dir": str(ctx.exp_dir),
825
  "sovits_output_dir": str(ctx.sovits_output_dir),