Add multi-provider AI config safeguards

This commit is contained in:
2026-02-28 16:35:43 +03:00
parent ea3ab4ff84
commit ff52b75073
4 changed files with 466 additions and 69 deletions

View File

@@ -17,12 +17,47 @@ BASE_DIR = Path(__file__).resolve().parents[2]
# Загружаем переменные из файла .env в корневом каталоге
load_dotenv(BASE_DIR / ".env")
# --- Настройки AI (Perplexity) ---
# API ключ для доступа к нейросети
# --- Настройки AI ---
# AI_PROVIDER опционален. Приоритет у единственного активного AI API key.
# Если активных ключей несколько, AI-модуль вернет ошибку конфигурации.
AI_PROVIDER = os.getenv("AI_PROVIDER", "perplexity").strip().lower()
# Perplexity
PERPLEXITY_API_KEY = os.getenv("PERPLEXITY_API_KEY")
# Модель, которую будем использовать (по умолчанию llama-3.1-sonar-small-128k-chat)
PERPLEXITY_MODEL = os.getenv("PERPLEXITY_MODEL", "llama-3.1-sonar-small-128k-chat")
PERPLEXITY_API_URL = "https://api.perplexity.ai/chat/completions"
PERPLEXITY_API_URL = os.getenv(
"PERPLEXITY_API_URL", "https://api.perplexity.ai/chat/completions"
)
# OpenAI
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
OPENAI_MODEL = os.getenv("OPENAI_MODEL", "gpt-4o-mini")
OPENAI_API_URL = os.getenv(
"OPENAI_API_URL", "https://api.openai.com/v1/chat/completions"
)
# Gemini (через официальный OpenAI-compatible endpoint Google)
GEMINI_API_KEY = os.getenv("GEMINI_API_KEY")
GEMINI_MODEL = os.getenv("GEMINI_MODEL", "gemini-2.5-flash")
GEMINI_API_URL = os.getenv(
"GEMINI_API_URL",
"https://generativelanguage.googleapis.com/v1beta/openai/chat/completions",
)
# Z.ai
ZAI_API_KEY = os.getenv("ZAI_API_KEY")
ZAI_MODEL = os.getenv("ZAI_MODEL", "glm-5")
ZAI_API_URL = os.getenv(
"ZAI_API_URL", "https://api.z.ai/api/paas/v4/chat/completions"
)
# Anthropic Claude
ANTHROPIC_API_KEY = os.getenv("ANTHROPIC_API_KEY")
ANTHROPIC_MODEL = os.getenv("ANTHROPIC_MODEL", "claude-sonnet-4-20250514")
ANTHROPIC_API_URL = os.getenv(
"ANTHROPIC_API_URL", "https://api.anthropic.com/v1/messages"
)
ANTHROPIC_API_VERSION = os.getenv("ANTHROPIC_API_VERSION", "2023-06-01")
# --- Настройки распознавания речи (Deepgram) ---
# Ключ для облачного STT (Speech-to-Text)