| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- # 智能音箱配置管理
- 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 文件配置')
|