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

94 lines
3.0 KiB
Python

#!/usr/bin/env python
"""
全新的API服务器进程来测试修复
"""
import sys
import os
# 确保在server目录下运行
current_dir = os.path.dirname(os.path.abspath(__file__))
server_dir = os.path.join(current_dir, 'server')
os.chdir(server_dir)
sys.path.insert(0, server_dir)
print(f"工作目录: {os.getcwd()}")
# 导入Flask和必要模块
from flask import Flask, jsonify, request
from flask_cors import CORS
app = Flask(__name__)
CORS(app)
@app.route('/api/models', methods=['GET'])
def test_models():
"""测试模型列表端点"""
try:
print("=== 测试模型端点 ===")
# 导入模型管理器
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}")
# 获取模型列表
models = model_manager.list_models()
print(f"找到模型: {len(models)}")
# 格式化数据
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', ''),
'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)} 个模型")
return jsonify({
"status": "success",
"data": formatted_models,
"total": len(formatted_models)
})
except Exception as e:
print(f"错误: {e}")
import traceback
traceback.print_exc()
return jsonify({
"status": "error",
"message": str(e),
"data": []
})
if __name__ == "__main__":
print("启动测试API服务器...")
# 先测试一下模型管理器
try:
from utils.model_manager import model_manager
print(f"模型管理器初始化成功,目录: {model_manager.model_dir}")
models = model_manager.list_models()
print(f"测试:找到 {len(models)} 个模型")
except Exception as e:
print(f"模型管理器测试失败: {e}")
import traceback
traceback.print_exc()
app.run(host='0.0.0.0', port=5001, debug=True)