Add OpenRouter provider and remove Perplexity
This commit is contained in:
@@ -18,9 +18,9 @@ from .config import (
|
||||
OPENAI_API_KEY,
|
||||
OPENAI_API_URL,
|
||||
OPENAI_MODEL,
|
||||
PERPLEXITY_API_KEY,
|
||||
PERPLEXITY_API_URL,
|
||||
PERPLEXITY_MODEL,
|
||||
OPENROUTER_API_KEY,
|
||||
OPENROUTER_API_URL,
|
||||
OPENROUTER_MODEL,
|
||||
ZAI_API_KEY,
|
||||
ZAI_API_URL,
|
||||
ZAI_MODEL,
|
||||
@@ -50,14 +50,14 @@ Separate variants with " / " (space slash space).
|
||||
Keep the translation максимально кратким и естественным, без лишних слов."""
|
||||
|
||||
_PROVIDER_ALIASES = {
|
||||
"": "perplexity",
|
||||
"": "openrouter",
|
||||
"anthropic": "anthropic",
|
||||
"claude": "anthropic",
|
||||
"claude_anthropic": "anthropic",
|
||||
"gemini": "gemini",
|
||||
"google": "gemini",
|
||||
"openai": "openai",
|
||||
"perplexity": "perplexity",
|
||||
"openrouter": "openrouter",
|
||||
"z.ai": "zai",
|
||||
"z-ai": "zai",
|
||||
"z_ai": "zai",
|
||||
@@ -66,15 +66,15 @@ _PROVIDER_ALIASES = {
|
||||
|
||||
# В .env нужен только один AI-ключ
|
||||
_PROVIDER_SETTINGS = {
|
||||
"perplexity": {
|
||||
"provider": "perplexity",
|
||||
"openrouter": {
|
||||
"provider": "openrouter",
|
||||
"protocol": "openai_compatible",
|
||||
"api_key": PERPLEXITY_API_KEY,
|
||||
"model": PERPLEXITY_MODEL,
|
||||
"api_url": PERPLEXITY_API_URL,
|
||||
"name": "Perplexity",
|
||||
"key_var": "PERPLEXITY_API_KEY",
|
||||
"model_var": "PERPLEXITY_MODEL",
|
||||
"api_key": OPENROUTER_API_KEY,
|
||||
"model": OPENROUTER_MODEL,
|
||||
"api_url": OPENROUTER_API_URL,
|
||||
"name": "OpenRouter",
|
||||
"key_var": "OPENROUTER_API_KEY",
|
||||
"model_var": "OPENROUTER_MODEL",
|
||||
},
|
||||
"openai": {
|
||||
"provider": "openai",
|
||||
@@ -169,10 +169,10 @@ def _get_provider_settings():
|
||||
|
||||
supported = ", ".join(sorted(_PROVIDER_SETTINGS))
|
||||
print(
|
||||
f"⚠️ Неизвестный AI_PROVIDER={AI_PROVIDER!r}, используем Perplexity. "
|
||||
f"⚠️ Неизвестный AI_PROVIDER={AI_PROVIDER!r}, используем OpenRouter. "
|
||||
f"Поддерживаются: {supported}."
|
||||
)
|
||||
return _PROVIDER_SETTINGS["perplexity"], None
|
||||
return _PROVIDER_SETTINGS["openrouter"], None
|
||||
|
||||
|
||||
def _content_to_text(content) -> str:
|
||||
|
||||
@@ -20,13 +20,13 @@ load_dotenv(BASE_DIR / ".env")
|
||||
# --- Настройки AI ---
|
||||
# AI_PROVIDER опционален. Приоритет у единственного активного AI API key.
|
||||
# Если активных ключей несколько, AI-модуль вернет ошибку конфигурации.
|
||||
AI_PROVIDER = os.getenv("AI_PROVIDER", "perplexity").strip().lower()
|
||||
AI_PROVIDER = os.getenv("AI_PROVIDER", "openrouter").strip().lower()
|
||||
|
||||
# Perplexity
|
||||
PERPLEXITY_API_KEY = os.getenv("PERPLEXITY_API_KEY")
|
||||
PERPLEXITY_MODEL = os.getenv("PERPLEXITY_MODEL", "llama-3.1-sonar-small-128k-chat")
|
||||
PERPLEXITY_API_URL = os.getenv(
|
||||
"PERPLEXITY_API_URL", "https://api.perplexity.ai/chat/completions"
|
||||
# OpenRouter
|
||||
OPENROUTER_API_KEY = os.getenv("OPENROUTER_API_KEY")
|
||||
OPENROUTER_MODEL = os.getenv("OPENROUTER_MODEL", "openai/gpt-4o-mini")
|
||||
OPENROUTER_API_URL = os.getenv(
|
||||
"OPENROUTER_API_URL", "https://openrouter.ai/api/v1/chat/completions"
|
||||
)
|
||||
|
||||
# OpenAI
|
||||
|
||||
Reference in New Issue
Block a user