CoolFace
Apppublic

wapadil/seedream4

sourceHugging Facemitupdated 1y agoView on Hugging Face
3likes
monitoring.py83 linesDownload Raw Back to root
1"""2简单的监控和日志系统3替换复杂的调试输出4"""5import time6import logging7from functools import wraps8from flask import request9 10 11# 配置日志12logging.basicConfig(13    level=logging.INFO,14    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'15)16logger = logging.getLogger('seedream')17 18 19def log_api_call(func):20    """API调用日志装饰器"""21    @wraps(func)22    def wrapper(*args, **kwargs):23        start_time = time.time()24        endpoint = request.endpoint25        method = request.method26 27        logger.info(f"API调用开始: {method} {endpoint}")28 29        try:30            result = func(*args, **kwargs)31            duration = time.time() - start_time32            logger.info(f"API调用成功: {method} {endpoint} - {duration:.2f}s")33            return result34        except Exception as e:35            duration = time.time() - start_time36            logger.error(f"API调用失败: {method} {endpoint} - {duration:.2f}s - {str(e)}")37            raise38 39    return wrapper40 41 42def log_generation_metrics(model_endpoint, prompt_length, image_count=0):43    """记录生成指标"""44    logger.info(45        f"生成请求: 模型={model_endpoint}, "46        f"提示长度={prompt_length}, 图片数量={image_count}"47    )48 49 50def log_error(error_type, error_message, context=None):51    """统一错误日志"""52    logger.error(f"{error_type}: {error_message}")53    if context:54        logger.error(f"上下文: {context}")55 56 57def log_request_id(request_id, action="generated", model=None, prompt=None):58    """59    明确记录 request_id 到日志60    用于后续从 Hugging Face Spaces 日志中提取和删除61 62    日志格式: [REQUEST_ID] {request_id} | action={action} | model={model}63    """64    log_parts = [f"[REQUEST_ID] {request_id}", f"action={action}"]65 66    if model:67        log_parts.append(f"model={model}")68 69    if prompt:70        # 截断过长的 prompt71        prompt_preview = prompt[:100] + "..." if len(prompt) > 100 else prompt72        log_parts.append(f"prompt={prompt_preview}")73 74    logger.info(" | ".join(log_parts))75 76 77def get_health_status():78    """获取健康状态"""79    return {80        'status': 'healthy',81        'timestamp': time.time(),82        'version': '2.0-optimized'83    }