#!/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)