o
    h?i                     @   sL   d dl Z d dlmZ ddlmZ ddddd	d
ddZddedefddZdS )    N)settings   )TrainingPlatformzplatforms.auto.AutoPlatformzplatforms.mlx.MLXPlatformz+platforms.llamafactory.LlamaFactoryPlatformzqwen_local.QwenLocalPlatformzvolcengine.VolcenginePlatformzaliyun.AliyunPlatformzmock.MockPlatform)automlxllamafactory
qwen_local
volcenginealiyunmockplatform_namereturnc                 C   s^   | pt j}|tvrtd| dtt  t| dd\}}td| }t	|| S )aF  Get training platform by name.

    Args:
        platform_name: Platform identifier (auto, mlx, llamafactory, volcengine, aliyun, mock)
                      If None, uses DEFAULT_TRAINING_PLATFORM from settings

    Returns:
        TrainingPlatform instance

    Raises:
        ValueError: If platform_name is unknown
    zUnknown platform: z. Available: .r   zapp.services.training_platform.)
r   DEFAULT_TRAINING_PLATFORM	PLATFORMS
ValueErrorlistkeysrsplit	importlibimport_modulegetattr)r   platformmodule_path
class_namemodule r   X/lsinfo/ai/hellotax_ai/training_center/backend/app/services/training_platform/factory.pyget_training_platform   s   
r   )N)r   app.core.configr   baser   r   strr   r   r   r   r   <module>   s    