ShopTRAINING/test/test_api_models.py
2025-07-02 11:05:23 +08:00

64 lines
2.2 KiB
Python

#!/usr/bin/env python
"""
直接测试API模型端点
"""
import sys
import os
sys.path.append('server')
def test_api_models():
"""测试API模型列表功能"""
try:
# 导入API相关模块
from utils.model_manager import model_manager
print("=== 直接测试模型管理器 ===")
models = model_manager.list_models()
print(f"模型管理器找到 {len(models)} 个模型")
if models:
for i, model in enumerate(models):
print(f"{i+1}. {model.get('filename', 'N/A')}")
print(f" 产品: {model.get('product_name', 'N/A')}")
print(f" 类型: {model.get('model_type', 'N/A')}")
print(f" 大小: {model.get('file_size', 0):,} bytes")
print("\n=== 测试API格式化 ===")
# 模拟API返回格式
formatted_models = []
for model in models:
# 从文件名解析信息
filename = model.get('filename', '')
parts = filename.replace('.pth', '').split('_')
formatted_model = {
'model_id': filename.replace('.pth', ''),
'product_id': model.get('product_id', 'unknown'),
'product_name': model.get('product_name', 'unknown'),
'model_type': model.get('model_type', 'unknown'),
'training_mode': model.get('training_mode', 'product'),
'version': model.get('version', 'v1'),
'filename': filename,
'file_size': model.get('file_size', 0),
'created_at': model.get('created_at', ''),
'metrics': model.get('metrics', {})
}
formatted_models.append(formatted_model)
print(f"格式化后的模型数量: {len(formatted_models)}")
if formatted_models:
import json
print("API返回格式示例:")
print(json.dumps(formatted_models[0], indent=2, ensure_ascii=False))
return formatted_models
except Exception as e:
print(f"测试失败: {e}")
import traceback
traceback.print_exc()
return []
if __name__ == "__main__":
test_api_models()