maxkb/apps/common/handle/impl/media/media_adapter/config.py
朱潮 dd0360fb6f
Some checks failed
sync2gitee / repo-sync (push) Has been cancelled
Typos Check / Spell Check with Typos (push) Has been cancelled
modify file status
2025-08-29 09:29:02 +08:00

50 lines
1.8 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# -*- 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)