# -*- coding: utf-8 -*- """ 媒体适配器配置管理 """ import os class MediaConfig: """独立的配置管理,不依赖Django settings""" def __init__(self, custom_config=None): self.config = self._load_default_config() if custom_config: self.config.update(custom_config) def _load_default_config(self): """加载默认配置""" return { # STT提供者配置 'stt_provider': os.getenv('MEDIA_STT_PROVIDER', 'openai'), 'stt_model': os.getenv('MEDIA_STT_MODEL', 'whisper-1'), # 处理参数 'max_duration': int(os.getenv('MEDIA_MAX_DURATION', '7200')), # 最大时长(秒) 'segment_duration': int(os.getenv('MEDIA_SEGMENT_DURATION', '300')), # 分段长度(秒) 'enable_timestamps': os.getenv('MEDIA_ENABLE_TIMESTAMPS', 'true').lower() == 'true', # 音频处理 'audio_format': os.getenv('MEDIA_AUDIO_FORMAT', 'mp3'), 'sample_rate': int(os.getenv('MEDIA_SAMPLE_RATE', '16000')), # 视频处理 'extract_keyframes': os.getenv('MEDIA_EXTRACT_KEYFRAMES', 'false').lower() == 'true', 'video_codec': os.getenv('MEDIA_VIDEO_CODEC', 'h264'), # 日志 'log_level': os.getenv('MEDIA_LOG_LEVEL', 'INFO'), 'log_file': os.getenv('MEDIA_LOG_FILE', 'media_adapter.log') } def get(self, key: str, default=None): """获取配置项""" return self.config.get(key, default) def set(self, key: str, value): """设置配置项""" self.config[key] = value def update(self, config_dict: dict): """批量更新配置""" self.config.update(config_dict)