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() |