82 lines
2.7 KiB
Python
82 lines
2.7 KiB
Python
![]() |
#!/usr/bin/env python
|
|||
|
"""
|
|||
|
直接测试API端点逻辑
|
|||
|
"""
|
|||
|
|
|||
|
import sys
|
|||
|
import os
|
|||
|
sys.path.append('server')
|
|||
|
|
|||
|
def simulate_api_call():
|
|||
|
"""模拟API调用"""
|
|||
|
print("=== 模拟API端点调用 ===")
|
|||
|
|
|||
|
try:
|
|||
|
# 模拟从server目录运行
|
|||
|
original_cwd = os.getcwd()
|
|||
|
server_dir = os.path.join(original_cwd, 'server')
|
|||
|
os.chdir(server_dir)
|
|||
|
|
|||
|
# 重新添加路径
|
|||
|
sys.path.insert(0, server_dir)
|
|||
|
|
|||
|
print(f"当前工作目录: {os.getcwd()}")
|
|||
|
|
|||
|
# 直接导入模型管理器(模拟API中的导入)
|
|||
|
from utils.model_manager import model_manager
|
|||
|
|
|||
|
print(f"模型管理器目录: {model_manager.model_dir}")
|
|||
|
print(f"目录存在: {os.path.exists(model_manager.model_dir)}")
|
|||
|
|
|||
|
if os.path.exists(model_manager.model_dir):
|
|||
|
files = os.listdir(model_manager.model_dir)
|
|||
|
print(f"目录文件: {files}")
|
|||
|
|
|||
|
# 调用API中的逻辑
|
|||
|
models = model_manager.list_models()
|
|||
|
print(f"原始模型数量: {len(models)}")
|
|||
|
|
|||
|
# 格式化响应数据(与API相同)
|
|||
|
formatted_models = []
|
|||
|
for model in models:
|
|||
|
formatted_model = {
|
|||
|
'model_id': model.get('filename', '').replace('.pth', ''),
|
|||
|
'product_id': model.get('product_id', ''),
|
|||
|
'product_name': model.get('product_name', model.get('product_id', '')),
|
|||
|
'model_type': model.get('model_type', ''),
|
|||
|
'training_mode': model.get('training_mode', 'product'),
|
|||
|
'store_id': model.get('store_id'),
|
|||
|
'aggregation_method': model.get('aggregation_method'),
|
|||
|
'version': model.get('version', 'v1'),
|
|||
|
'created_at': model.get('created_at', model.get('modified_at', '')),
|
|||
|
'file_size': model.get('file_size', 0),
|
|||
|
'metrics': model.get('metrics', {}),
|
|||
|
'config': model.get('config', {})
|
|||
|
}
|
|||
|
formatted_models.append(formatted_model)
|
|||
|
|
|||
|
print(f"格式化后模型数量: {len(formatted_models)}")
|
|||
|
|
|||
|
if formatted_models:
|
|||
|
print("API将返回:")
|
|||
|
import json
|
|||
|
print(json.dumps({
|
|||
|
"status": "success",
|
|||
|
"data": formatted_models,
|
|||
|
"total": len(formatted_models)
|
|||
|
}, indent=2, ensure_ascii=False))
|
|||
|
else:
|
|||
|
print("API将返回空数据")
|
|||
|
|
|||
|
return formatted_models
|
|||
|
|
|||
|
except Exception as e:
|
|||
|
print(f"模拟失败: {e}")
|
|||
|
import traceback
|
|||
|
traceback.print_exc()
|
|||
|
return []
|
|||
|
finally:
|
|||
|
os.chdir(original_cwd)
|
|||
|
|
|||
|
if __name__ == "__main__":
|
|||
|
simulate_api_call()
|