64 lines
2.2 KiB
Python
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() |