
    Xj                     R   d dl Z d dlZd dlmZ d dlmZ dej                            dd           Zd dl	m
Z
 d dlmZ d d	lmZ  ee          Z ee                                          Z eej                            d
 eej         ed eej                  dz
                                                   Z eej                            d eedz                                Zedz  Zedz  Z G d de          Z e            Ze                    d           dS )    N)Path)Anyz.env.APP_ENVdevelopment)field_validator)BaseSettings)
get_loggerPROJECT_ROOT      LLM_SERVICE_DIRllm_servicebase_modelstrained_modelsc                      e Zd ZU eed<   eed<   dZeed<   dZeed<   dZeed<   dZ	eed	<   d
Z
eed<   dZeed<   dZeed<   dZeed<    ee          Zeed<    ee          Zeed<   dZeed<   dZeed<   dZeed<   dZeed<   dZeed<   dZeed<   ddgZee         ed<    edd !          ed"ed#efd$                        Z G d% d&          Zd'S )(SettingsDATABASE_URL
SECRET_KEYFENABLE_MOCK_TRAINING
qwen_localDEFAULT_TRAINING_PLATFORM VOLCENGINE_ACCESS_KEYVOLCENGINE_SECRET_KEYz
cn-beijingVOLCENGINE_REGIONALIYUN_ACCESS_KEYALIYUN_SECRET_KEYzcn-hangzhouALIYUN_REGIONQWEN_LOCAL_TRAINING_BASE_DIRQWEN_LOCAL_MODEL_CACHE_DIRr   QWEN_LOCAL_MAX_CONCURRENT_JOBS   QWEN_LOCAL_MAX_MEMORY_GB   QWEN_LOCAL_MIN_FREE_MEMORY_GBTQWEN_LOCAL_LOW_MEMORY_MODEi   !QWEN_LOCAL_DEFAULT_MAX_SEQ_LENGTHTRAINING_CENTER_UVICORN_RELOADzhttp://localhost:8500zhttp://localhost:8888CORS_ORIGINSbefore)modevreturnc                 X    t          |t                    rt          j        |          S |S )N)
isinstancestrjsonloads)clsr,   s     A/lsinfo/ai/hellotax_ai/training_center/backend/app/core/config.pyparse_cors_originszSettings.parse_cors_origins+   s)     a 	!:a==     c                       e Zd ZeZdS )Settings.ConfigN)__name__
__module____qualname__	_ENV_FILEenv_file r6   r4   Configr8   2   s        r6   r?   N) r9   r:   r;   r0   __annotations__r   boolr   r   r   r   r   r   r   DEFAULT_TRAINED_MODELS_DIRr   DEFAULT_BASE_MODELS_DIRr    r!   intr#   r%   r&   r'   r(   r)   listr   classmethodr   r5   r?   r>   r6   r4   r   r      s        OOO!&$&&&%1s111!#3###!#3###)s)))ss&M3&&&(+,F(G(G #GGG&)c*A&B&BBBB*+"C+++$&c&&&)*!3***'++++-1%s111+0"D00068OPL$s)PPP_^(3333 3    [ 43
         r6   r   zConfiguration loaded)r1   ospathlibr   typingr   environgetr<   pydanticr   pydantic_settingsr   common_loggingr	   r9   logger__file__resolve_thisr0   parentsminlenr
   r   rC   rB   r   settingsinfor>   r6   r4   <module>rX      s    				            >BJNN9m<<>>	 $ $ $ $ $ $ * * * * * * % % % % % %	H		X  tBJNN>33u}SSCCPUP]L^L^abLbEcEc7d3e3effgg$rz~~&7\M=Y9Z9Z[[\\)M9 ,/??     |   > 8:: " # # # # #r6   