-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcheck_cache.py
More file actions
81 lines (64 loc) · 2.4 KB
/
check_cache.py
File metadata and controls
81 lines (64 loc) · 2.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
"""
验证模型缓存配置
"""
import os
import sys
from pathlib import Path
# 添加项目根目录到路径
sys.path.insert(0, str(Path(__file__).parent))
from src.utils.config_manager import ConfigManager
def check_cache_dir():
"""检查缓存目录配置"""
print("=" * 60)
print("📦 模型缓存配置检查")
print("=" * 60)
print()
# 加载配置
config = ConfigManager()
cache_dir = config.get("advanced.cache_dir", "./models")
# 转换为绝对路径
cache_path = Path(cache_dir).resolve()
print(f"配置的缓存目录: {cache_dir}")
print(f"绝对路径: {cache_path}")
print()
# 检查目录是否存在
if cache_path.exists():
print(f"✅ 目录存在")
# 检查是否有写权限
if os.access(cache_path, os.W_OK):
print(f"✅ 有写入权限")
else:
print(f"❌ 没有写入权限")
# 列出已下载的模型
model_dirs = list(cache_path.glob("models--*"))
if model_dirs:
print()
print(f"已下载的模型 ({len(model_dirs)} 个):")
for model_dir in model_dirs:
# 解析模型名称
model_name = model_dir.name.replace("models--", "").replace("--", "/")
# 计算目录大小
total_size = sum(f.stat().st_size for f in model_dir.rglob('*') if f.is_file())
size_gb = total_size / (1024 ** 3)
print(f" - {model_name} ({size_gb:.2f} GB)")
else:
print()
print("📭 还没有下载任何模型")
print("首次运行时会自动下载")
else:
print(f"⚠️ 目录不存在,将在首次运行时自动创建")
# 检查父目录是否存在且有写权限
parent_dir = cache_path.parent
if parent_dir.exists() and os.access(parent_dir, os.W_OK):
print(f"✅ 父目录存在且有写入权限")
else:
print(f"❌ 无法创建目录,请检查权限")
print()
print("=" * 60)
print("配置信息:")
print(f" 默认模型: {config.get('model.default_model')}")
print(f" 缓存目录: {cache_dir}")
print(f" 后端偏好: {config.get('system.backend_preference')}")
print("=" * 60)
if __name__ == "__main__":
check_cache_dir()