# 智能音箱配置管理 import os from dotenv import load_dotenv load_dotenv() class Config: """所有配置项""" # ===== ASR ===== ASR_PROVIDER = os.getenv('ASR_PROVIDER', 'openai_whisper') OPENAI_API_KEY = os.getenv('OPENAI_API_KEY', '') OPENAI_BASE_URL = os.getenv('OPENAI_BASE_URL', 'https://api.openai.com/v1') # ===== LLM ===== LLM_PROVIDER = os.getenv('LLM_PROVIDER', 'deepseek') LLM_API_KEY = os.getenv('LLM_API_KEY', '') LLM_BASE_URL = os.getenv('LLM_BASE_URL', 'https://api.deepseek.com/v1') LLM_MODEL = os.getenv('LLM_MODEL', 'deepseek-chat') # ===== TTS(核心:你的服务)⭐ ===== TTS_BASE_URL = os.getenv('TTS_BASE_URL', 'http://localhost:3000') TTS_API_KEY = os.getenv('TTS_API_KEY', '') TTS_VOICE_ID = os.getenv('TTS_VOICE_ID', 'female-shaonv') TTS_VOICE_NAME = os.getenv('TTS_VOICE_NAME', '温柔女声') # ===== 音频 ===== AUDIO_SAMPLE_RATE = int(os.getenv('AUDIO_SAMPLE_RATE', '16000')) AUDIO_CHANNELS = int(os.getenv('AUDIO_CHANNELS', '1')) AUDIO_FORMAT = os.getenv('AUDIO_FORMAT', 'wav') MAX_RECORD_SECONDS = int(os.getenv('MAX_RECORD_SECONDS', '10')) SILENCE_THRESHOLD = int(os.getenv('SILENCE_THRESHOLD', '500')) SILENCE_DURATION_MS = int(os.getenv('SILENCE_DURATION_MS', '800')) # ===== 系统提示词 ===== SYSTEM_PROMPT = os.getenv( 'SYSTEM_PROMPT', '你是配音侠,一个友好的 AI 助手。请用简短的中文回复(不超过 50 字)。' ) @classmethod def validate(cls): """验证必要配置""" errors = [] if cls.ASR_PROVIDER == 'openai_whisper' and not cls.OPENAI_API_KEY: errors.append('缺少 OPENAI_API_KEY') if not cls.LLM_API_KEY: errors.append('缺少 LLM_API_KEY') if not cls.TTS_BASE_URL: errors.append('缺少 TTS_BASE_URL') if errors: raise ValueError('配置错误:\n ' + '\n '.join(errors)) return True if __name__ == '__main__': try: Config.validate() print('✅ 配置验证通过') print(f' ASR: {Config.ASR_PROVIDER}') print(f' LLM: {Config.LLM_PROVIDER} / {Config.LLM_MODEL}') print(f' TTS: {Config.TTS_BASE_URL}') except ValueError as e: print(f'❌ {e}') print('请检查 .env 文件配置')