""" Централизованная конфигурация приложения Say. Все настройки читаются из переменных окружения с разумными значениями по умолчанию. """ import os # ============================================================================= # API — единый эндпоинт (aillm.ru) # ============================================================================= API_BASE = os.environ.get("API_BASE", "https://api.aillm.ru") API_KEY = os.environ.get("API_KEY", "sk-ucI5YvOticoOQ9Kuj5K9mQ") # ============================================================================= # Whisper (распознавание речи) # ============================================================================= WHISPER_URL = os.environ.get( "WHISPER_URL", f"{API_BASE}/v1/audio/transcriptions", ) WHISPER_KEY = os.environ.get("WHISPER_KEY", API_KEY) WHISPER_MODEL = os.environ.get("WHISPER_MODEL", "whisper-large-v3") # ============================================================================= # Три LLM-профиля — каждый со своим именем, моделью и системным промптом # ============================================================================= LLM_PROFILES = [ { "id": "ddm", "name": "DDM-120", "description": "Быстрая модель, общие вопросы", "url": os.environ.get("LLM_URL_DDM", f"{API_BASE}/v1/chat/completions"), "key": os.environ.get("LLM_KEY_DDM", API_KEY), "model": os.environ.get("LLM_MODEL_DDM", "ddm-120"), "system_prompt": os.environ.get( "LLM_SYSTEM_DDM", "Ты — полезный ассистент. Отвечай кратко и по делу на том же языке, что и запрос.", ), "temperature": float(os.environ.get("LLM_TEMP_DDM", "0.7")), "max_tokens": int(os.environ.get("LLM_TOKENS_DDM", "1024")), }, { "id": "qwen", "name": "Qwen", "description": "Мощная модель, сложные задачи", "url": os.environ.get("LLM_URL_QWEN", f"{API_BASE}/v1/chat/completions"), "key": os.environ.get("LLM_KEY_QWEN", API_KEY), "model": os.environ.get("LLM_MODEL_QWEN", "qwen-plus"), "system_prompt": os.environ.get( "LLM_SYSTEM_QWEN", "Ты — эксперт-аналитик. Отвечай развернуто, структурированно, на языке запроса.", ), "temperature": float(os.environ.get("LLM_TEMP_QWEN", "0.7")), "max_tokens": int(os.environ.get("LLM_TOKENS_QWEN", "2048")), }, { "id": "deepseek", "name": "DeepSeek", "description": "Глубокая аналитика, код, рассуждения", "url": os.environ.get("LLM_URL_DEEPSEEK", f"{API_BASE}/v1/chat/completions"), "key": os.environ.get("LLM_KEY_DEEPSEEK", API_KEY), "model": os.environ.get("LLM_MODEL_DEEPSEEK", "deepseek-chat"), "system_prompt": os.environ.get( "LLM_SYSTEM_DEEPSEEK", "Ты — глубокий аналитик и программист. Думай step-by-step, отвечай на языке запроса.", ), "temperature": float(os.environ.get("LLM_TEMP_DEEPSEEK", "0.7")), "max_tokens": int(os.environ.get("LLM_TOKENS_DEEPSEEK", "4096")), }, ] # ============================================================================= # Flask # ============================================================================= FLASK_HOST = os.environ.get("HOST", "0.0.0.0") FLASK_PORT = int(os.environ.get("PORT", "5000")) # ============================================================================= # Логирование # ============================================================================= LOG_LEVEL = os.environ.get("LOG_LEVEL", "INFO")