CosyVoice / check_deployment.py
jerrybwang
--other 更新代码
cdf446f
#!/usr/bin/env python3
"""
Hugging Face Space 部署检查脚本
检查所有必需的文件和配置是否正确
"""
import os
import sys
from pathlib import Path
def check_file_exists(filepath, required=True):
"""检查文件是否存在"""
exists = os.path.exists(filepath)
status = "✅" if exists else ("❌" if required else "⚠️")
req_text = "必需" if required else "可选"
print(f"{status} {filepath} ({req_text}): {'存在' if exists else '缺失'}")
return exists
def check_file_content(filepath, required_content):
"""检查文件内容"""
try:
with open(filepath, 'r', encoding='utf-8') as f:
content = f.read()
for item in required_content:
if item in content:
print(f" ✅ 包含: {item}")
else:
print(f" ❌ 缺失: {item}")
return False
return True
except Exception as e:
print(f" ❌ 读取文件失败: {e}")
return False
def main():
print("="*60)
print("Hugging Face Space 部署检查")
print("="*60)
print()
# 检查必需文件
print("📋 检查必需文件:")
print("-"*60)
files_ok = True
files_ok &= check_file_exists("app.py", required=True)
files_ok &= check_file_exists("requirements.txt", required=True)
files_ok &= check_file_exists("packages.txt", required=True)
files_ok &= check_file_exists("README.md", required=True)
print()
# 检查可选文件
print("📋 检查可选文件:")
print("-"*60)
check_file_exists("config.py", required=False)
check_file_exists(".gitignore", required=False)
print()
# 检查 README.md 配置
print("📋 检查 README.md 配置:")
print("-"*60)
if os.path.exists("README.md"):
readme_items = [
"title:",
"sdk: gradio",
"app_file: app.py",
]
check_file_content("README.md", readme_items)
print()
# 检查 requirements.txt
print("📋 检查 requirements.txt:")
print("-"*60)
if os.path.exists("requirements.txt"):
req_items = [
"gradio",
"torch",
"transformers",
"huggingface_hub",
]
check_file_content("requirements.txt", req_items)
print()
# 检查 packages.txt
print("📋 检查 packages.txt:")
print("-"*60)
if os.path.exists("packages.txt"):
pkg_items = [
"ffmpeg",
]
check_file_content("packages.txt", pkg_items)
print()
# 检查 app.py
print("📋 检查 app.py:")
print("-"*60)
if os.path.exists("app.py"):
app_items = [
"import gradio",
"AutoModel.from_pretrained",
"FunAudioLLM/CosyVoice-300M",
"demo.launch()",
]
check_file_content("app.py", app_items)
print()
print("="*60)
if files_ok:
print("✅ 所有必需文件检查通过!")
print()
print("📦 下一步:")
print("1. 访问 https://huggingface.co/spaces")
print("2. 创建新的 Space,选择 Gradio SDK")
print("3. 上传以下文件:")
print(" - app.py")
print(" - requirements.txt")
print(" - packages.txt")
print(" - README.md")
print("4. 等待构建完成(约5-10分钟)")
print("5. 测试应用功能")
else:
print("❌ 检查失败!请修复上述问题后重试。")
sys.exit(1)
print("="*60)
if __name__ == "__main__":
main()