TNOT commited on
Commit
9b56c31
·
1 Parent(s): a257915

fix: 顶级智斗假死

Browse files
Files changed (1) hide show
  1. app.py +29 -5
app.py CHANGED
@@ -13,10 +13,14 @@ from pathlib import Path
13
 
14
  logging.basicConfig(
15
  level=logging.INFO,
16
- format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
 
17
  )
18
  logger = logging.getLogger(__name__)
19
 
 
 
 
20
  # 项目根目录
21
  BASE_DIR = Path(__file__).parent.absolute()
22
 
@@ -168,9 +172,13 @@ def setup_environment():
168
  if is_cloud:
169
  cleanup_temp_files()
170
 
 
 
171
  # 确保 ffmpeg 已安装(支持 m4a 等音频格式)
172
  if is_cloud or platform.system() != "Windows":
 
173
  ensure_ffmpeg()
 
174
 
175
  # 魔搭创空间无法访问 HuggingFace,使用镜像
176
  if is_cloud and Path("/home/studio_service").exists():
@@ -188,6 +196,7 @@ def setup_environment():
188
  if platform.system() != "Windows":
189
  logger.info("Linux 环境,检查并安装 MFA...")
190
  setup_mfa_linux()
 
191
 
192
  if is_cloud:
193
  logger.info("检测到云端环境,正在初始化...")
@@ -196,7 +205,9 @@ def setup_environment():
196
  os.environ.setdefault("TMPDIR", "/tmp")
197
 
198
  # 下载所有必需模型
 
199
  download_all_models()
 
200
  else:
201
  logger.info("本地环境运行")
202
 
@@ -237,11 +248,13 @@ def setup_mfa_linux():
237
  mamba_root.mkdir(parents=True, exist_ok=True)
238
 
239
  # 下载并安装 micromamba
240
- subprocess.run([
241
  "bash", "-c",
242
  f'curl -Ls https://micro.mamba.pm/api/micromamba/linux-64/latest | tar -xvj -C {mamba_root} bin/micromamba'
243
- ], check=True, capture_output=True, timeout=120)
244
  logger.info("micromamba 下载完成")
 
 
245
 
246
  # 2. 使用 micromamba 创建环境并安装 MFA
247
  mfa_bin_path = mfa_env / "bin" / "mfa"
@@ -264,20 +277,23 @@ def setup_mfa_linux():
264
  logger.info("MFA 环境验证通过,无需重新安装")
265
 
266
  if need_install:
267
- logger.info("使用 micromamba 安装 MFA...")
268
  env = os.environ.copy()
269
  env["MAMBA_ROOT_PREFIX"] = str(mamba_root)
270
 
271
  # 创建环境并安装 MFA(指定 Python 3.11)
272
- subprocess.run([
 
273
  str(mamba_bin), "create", "-n", "mfa",
274
  "-c", "conda-forge",
275
  "python=3.11",
276
  "montreal-forced-aligner",
277
  "-y"
278
  ], env=env, check=True, capture_output=True, text=True, timeout=600)
 
279
 
280
  # 更新确保使用 CPU 版本的 kaldi
 
281
  subprocess.run([
282
  str(mamba_bin), "install", "-n", "mfa",
283
  "-c", "conda-forge",
@@ -637,13 +653,21 @@ def download_mfa_models_all() -> bool:
637
 
638
  def main():
639
  """主入口"""
 
 
 
 
640
  setup_environment()
641
 
 
 
642
  # 导入并启动云端 GUI
643
  from src.gui_cloud import create_cloud_ui
644
 
645
  app = create_cloud_ui()
646
 
 
 
647
  # 云端配置
648
  # 启用队列,魔搭CPU按需分配,无需设置并发上限
649
  app.queue()
 
13
 
14
  logging.basicConfig(
15
  level=logging.INFO,
16
+ format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
17
+ handlers=[logging.StreamHandler(sys.stdout)]
18
  )
19
  logger = logging.getLogger(__name__)
20
 
21
+ # 确保日志立即输出(禁用缓冲)
22
+ sys.stdout.reconfigure(line_buffering=True) if hasattr(sys.stdout, 'reconfigure') else None
23
+
24
  # 项目根目录
25
  BASE_DIR = Path(__file__).parent.absolute()
26
 
 
172
  if is_cloud:
173
  cleanup_temp_files()
174
 
175
+ logger.info("清理完成,继续初始化...")
176
+
177
  # 确保 ffmpeg 已安装(支持 m4a 等音频格式)
178
  if is_cloud or platform.system() != "Windows":
179
+ logger.info("检查 ffmpeg...")
180
  ensure_ffmpeg()
181
+ logger.info("ffmpeg 检查完成")
182
 
183
  # 魔搭创空间无法访问 HuggingFace,使用镜像
184
  if is_cloud and Path("/home/studio_service").exists():
 
196
  if platform.system() != "Windows":
197
  logger.info("Linux 环境,检查并安装 MFA...")
198
  setup_mfa_linux()
199
+ logger.info("MFA 设置完成")
200
 
201
  if is_cloud:
202
  logger.info("检测到云端环境,正在初始化...")
 
205
  os.environ.setdefault("TMPDIR", "/tmp")
206
 
207
  # 下载所有必需模型
208
+ logger.info("开始下载模型...")
209
  download_all_models()
210
+ logger.info("模型下载完成")
211
  else:
212
  logger.info("本地环境运行")
213
 
 
248
  mamba_root.mkdir(parents=True, exist_ok=True)
249
 
250
  # 下载并安装 micromamba
251
+ result = subprocess.run([
252
  "bash", "-c",
253
  f'curl -Ls https://micro.mamba.pm/api/micromamba/linux-64/latest | tar -xvj -C {mamba_root} bin/micromamba'
254
+ ], check=True, capture_output=True, text=True, timeout=120)
255
  logger.info("micromamba 下载完成")
256
+ else:
257
+ logger.info("micromamba 已存在,跳过下载")
258
 
259
  # 2. 使用 micromamba 创建环境并安装 MFA
260
  mfa_bin_path = mfa_env / "bin" / "mfa"
 
277
  logger.info("MFA 环境验证通过,无需重新安装")
278
 
279
  if need_install:
280
+ logger.info("使用 micromamba 安装 MFA(这可能需要几分钟)...")
281
  env = os.environ.copy()
282
  env["MAMBA_ROOT_PREFIX"] = str(mamba_root)
283
 
284
  # 创建环境并安装 MFA(指定 Python 3.11)
285
+ logger.info("执行 micromamba create...")
286
+ result = subprocess.run([
287
  str(mamba_bin), "create", "-n", "mfa",
288
  "-c", "conda-forge",
289
  "python=3.11",
290
  "montreal-forced-aligner",
291
  "-y"
292
  ], env=env, check=True, capture_output=True, text=True, timeout=600)
293
+ logger.info("MFA 环境创建完成")
294
 
295
  # 更新确保使用 CPU 版本的 kaldi
296
+ logger.info("安装 CPU 版本 kaldi...")
297
  subprocess.run([
298
  str(mamba_bin), "install", "-n", "mfa",
299
  "-c", "conda-forge",
 
653
 
654
  def main():
655
  """主入口"""
656
+ logger.info("=" * 50)
657
+ logger.info("人力V助手 云端版启动")
658
+ logger.info("=" * 50)
659
+
660
  setup_environment()
661
 
662
+ logger.info("环境初始化完成,启动 Gradio UI...")
663
+
664
  # 导入并启动云端 GUI
665
  from src.gui_cloud import create_cloud_ui
666
 
667
  app = create_cloud_ui()
668
 
669
+ logger.info("Gradio UI 创建完成,启动服务...")
670
+
671
  # 云端配置
672
  # 启用队列,魔搭CPU按需分配,无需设置并发上限
673
  app.queue()