feat: add migrations, test scripts, and utility tools

- Add database migrations (006-028) for face recognition, identity, file_uuid
- Add test scripts for ASR, face, search, processing
- Add portal frontend (Tauri)
- Add config, benchmark, and monitoring utilities
- Add model checkpoints and pretrained model references
This commit is contained in:
Warren
2026-04-30 15:11:53 +08:00
parent 4d75b2e251
commit b54c2def30
192 changed files with 46721 additions and 0 deletions
+128
View File
@@ -0,0 +1,128 @@
#!/opt/homebrew/bin/python3.11
"""
快速状态检查
"""
import os
import sys
import time
import psutil
from datetime import datetime
def quick_check():
print("=" * 60)
print("快速状态检查")
print(f"时间: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}")
print("=" * 60)
# 系统负载
load = os.getloadavg()
cpu = psutil.cpu_percent(interval=1)
mem = psutil.virtual_memory()
print(f"\n📊 系统状态:")
print(f" 负载: {load[0]:.2f} (1min), {load[1]:.2f} (5min), {load[2]:.2f} (15min)")
print(f" CPU: {cpu:.1f}%")
print(
f" 内存: {mem.percent:.1f}% ({mem.used / (1024**3):.1f}GB / {mem.total / (1024**3):.1f}GB)"
)
# 检查处理器进程
print(f"\n🔍 处理器进程:")
processor_counts = {}
high_cpu_processes = []
for proc in psutil.process_iter(["pid", "name", "cmdline", "cpu_percent"]):
try:
cmdline = " ".join(proc.info["cmdline"]) if proc.info["cmdline"] else ""
cpu = proc.info.get("cpu_percent", 0)
# 检查各种处理器
if "asr_processor" in cmdline:
processor_counts["asr"] = processor_counts.get("asr", 0) + 1
if cpu > 50:
high_cpu_processes.append(f"ASR PID {proc.pid}: {cpu:.1f}%")
elif "cut_processor" in cmdline:
processor_counts["cut"] = processor_counts.get("cut", 0) + 1
if cpu > 50:
high_cpu_processes.append(f"CUT PID {proc.pid}: {cpu:.1f}%")
elif "ocr_processor" in cmdline:
processor_counts["ocr"] = processor_counts.get("ocr", 0) + 1
elif "yolo_processor" in cmdline:
processor_counts["yolo"] = processor_counts.get("yolo", 0) + 1
elif "face_processor" in cmdline:
processor_counts["face"] = processor_counts.get("face", 0) + 1
elif "pose_processor" in cmdline:
processor_counts["pose"] = processor_counts.get("pose", 0) + 1
except (psutil.NoSuchProcess, psutil.AccessDenied):
continue
# 显示处理器计数
for proc_type, count in processor_counts.items():
print(f" {proc_type.upper()}: {count} 个进程")
# 显示高CPU进程
if high_cpu_processes:
print(f"\n⚠️ 高CPU进程:")
for proc_info in high_cpu_processes[:5]: # 只显示前5个
print(f" {proc_info}")
if len(high_cpu_processes) > 5:
print(f" ... 还有 {len(high_cpu_processes) - 5} 个高CPU进程")
# 检查输出目录
output_dir = "/Users/accusys/momentry/output"
if os.path.exists(output_dir):
asr_files = len(
[f for f in os.listdir(output_dir) if "_asr_" in f and f.endswith(".json")]
)
cut_files = len(
[f for f in os.listdir(output_dir) if "_cut_" in f and f.endswith(".json")]
)
print(f"\n📁 输出文件:")
print(f" ASR文件: {asr_files}")
print(f" CUT文件: {cut_files}")
# 状态总结
print(f"\n📈 状态总结:")
if load[0] > 8:
print(f" ⚠️ 系统负载很高 ({load[0]:.2f})")
if processor_counts.get("asr", 0) > 0 or processor_counts.get("cut", 0) > 0:
print(f" 可能原因: ASR/CUT 视频处理中")
elif load[0] > 4:
print(f" ️ 系统负载中等 ({load[0]:.2f})")
else:
print(f" ✅ 系统负载正常 ({load[0]:.2f})")
if mem.percent > 90:
print(f" ⚠️ 内存使用率很高 ({mem.percent:.1f}%)")
elif mem.percent > 80:
print(f" ️ 内存使用率较高 ({mem.percent:.1f}%)")
else:
print(f" ✅ 内存使用率正常 ({mem.percent:.1f}%)")
# 建议
print(f"\n💡 建议:")
if processor_counts.get("asr", 0) > 0 or processor_counts.get("cut", 0) > 0:
print(f" 1. ASR/CUT 处理进行中,建议等待完成")
print(f" 2. 处理完成后系统负载会恢复正常")
else:
print(f" 1. 没有运行中的处理器,可以继续下一步工作")
print(f"\n⏱️ 检查完成")
print("=" * 60)
if __name__ == "__main__":
try:
quick_check()
except KeyboardInterrupt:
print(f"\n检查被中断")
sys.exit(0)
except Exception as e:
print(f"\n错误: {e}")
sys.exit(1)