Explorar o código

修复模型获取报错

drggboy hai 3 meses
pai
achega
07b01317eb
Modificáronse 1 ficheiros con 61 adicións e 17 borrados
  1. 61 17
      api/app/routes.py

+ 61 - 17
api/app/routes.py

@@ -350,48 +350,87 @@ def list_tables():
 
 @bp.route('/models/<int:model_id>', methods=['GET'])
 def get_model(model_id):
+    """
+    获取单个模型信息的API接口
+    
+    @param model_id: 模型ID
+    @return: JSON响应
+    """
+    Session = sessionmaker(bind=db.engine)
+    session = Session()
+    
     try:
-        model = Models.query.filter_by(ModelID=model_id).first()
+        model = session.query(Models).filter_by(ModelID=model_id).first()
         if model:
             return jsonify({
                 'ModelID': model.ModelID,
-                'ModelName': model.ModelName,
-                'ModelType': model.ModelType,
-                'CreatedAt': model.CreatedAt.strftime('%Y-%m-%d %H:%M:%S'),
-                'Description': model.Description
+                'Model_name': model.Model_name,
+                'Model_type': model.Model_type,
+                'Created_at': model.Created_at.strftime('%Y-%m-%d %H:%M:%S'),
+                'Description': model.Description,
+                'Performance_score': float(model.Performance_score) if model.Performance_score else None,
+                'Data_type': model.Data_type
             })
         else:
-            return jsonify({'message': 'Model not found'}), 404
+            return jsonify({'message': '未找到模型'}), 404
+            
     except Exception as e:
-        return jsonify({'error': 'Internal server error', 'message': str(e)}), 500
+        logger.error(f'获取模型信息失败: {str(e)}')
+        return jsonify({'error': '服务器内部错误', 'message': str(e)}), 500
+        
+    finally:
+        session.close()
 
 
 @bp.route('/models', methods=['GET'])
 def get_all_models():
+    """
+    获取所有模型信息的API接口
+    
+    @return: JSON响应
+    """
+    Session = sessionmaker(bind=db.engine)
+    session = Session()
+    
     try:
-        models = Models.query.all()  # 获取所有模型数据
+        models = session.query(Models).all()
         if models:
             result = [
                 {
                     'ModelID': model.ModelID,
-                    'ModelName': model.ModelName,
-                    'ModelType': model.ModelType,
-                    'CreatedAt': model.CreatedAt.strftime('%Y-%m-%d %H:%M:%S'),
-                    'Description': model.Description
+                    'Model_name': model.Model_name,
+                    'Model_type': model.Model_type,
+                    'Created_at': model.Created_at.strftime('%Y-%m-%d %H:%M:%S'),
+                    'Description': model.Description,
+                    'Performance_score': float(model.Performance_score) if model.Performance_score else None,
+                    'Data_type': model.Data_type
                 }
                 for model in models
             ]
             return jsonify(result)
         else:
-            return jsonify({'message': 'No models found'}), 404
+            return jsonify({'message': '未找到任何模型'}), 404
+            
     except Exception as e:
-        return jsonify({'error': 'Internal server error', 'message': str(e)}), 500
+        logger.error(f'获取所有模型信息失败: {str(e)}')
+        return jsonify({'error': '服务器内部错误', 'message': str(e)}), 500
+        
+    finally:
+        session.close()
 
 
 @bp.route('/model-parameters', methods=['GET'])
 def get_all_model_parameters():
+    """
+    获取所有模型参数的API接口
+    
+    @return: JSON响应
+    """
+    Session = sessionmaker(bind=db.engine)
+    session = Session()
+    
     try:
-        parameters = ModelParameters.query.all()  # 获取所有参数数据
+        parameters = session.query(ModelParameters).all()
         if parameters:
             result = [
                 {
@@ -404,9 +443,14 @@ def get_all_model_parameters():
             ]
             return jsonify(result)
         else:
-            return jsonify({'message': 'No parameters found'}), 404
+            return jsonify({'message': '未找到任何参数'}), 404
+            
     except Exception as e:
-        return jsonify({'error': 'Internal server error', 'message': str(e)}), 500
+        logger.error(f'获取所有模型参数失败: {str(e)}')
+        return jsonify({'error': '服务器内部错误', 'message': str(e)}), 500
+        
+    finally:
+        session.close()
 
 
 @bp.route('/models/<int:model_id>/parameters', methods=['GET'])