import sys
from pathlib import Path

sys.path.insert(0, str(Path(__file__).parent.parent.parent.parent.parent))
from app.services.training_platform.qwen.config import TrainingConfig
from app.services.training_platform.qwen.utils import get_memory_usage
from common_logging import get_logger

logger = get_logger(__name__)


def test_environment():
    logger.info('Starting environment test')
    print('=' * 50)
    print('训练环境测试')
    print('=' * 50)
    print(f'\n✓ 当前内存使用: {get_memory_usage():.2f}GB')
    try:
        import mlx.core as mx
        print(f'✓ MLX 版本: {mx.__version__}')
    except Exception as e:
        logger.error(f'MLX import failed: {e}')
        print(f'✗ MLX 导入失败: {e}')
        return False
    try:
        print('✓ MLX-LM 已安装')
    except Exception as e:
        logger.error(f'MLX-LM import failed: {e}')
        print(f'✗ MLX-LM 导入失败: {e}')
        return False
    models_dir = Path(__file__).parent.parent / 'models'
    print(f'\n✓ 模型目录: {models_dir}')
    print(f'  存在: {models_dir.exists()}')
    config = TrainingConfig()
    print('\n✓ 训练配置:')
    print(f'  学习率: {config.learning_rate}')
    print(f'  Epochs: {config.num_epochs}')
    print(f'  LoRA rank: {config.lora_rank}')
    print('\n' + '=' * 50)
    print('✓ 环境测试通过！')
    print('=' * 50)
    logger.info('Environment test passed')
    return True
if __name__ == '__main__':
    success = test_environment()
    sys.exit(0 if success else 1)
