Files
admin 46af290db3
Build and Push Docker Images / build-and-push (push) Failing after 3m33s
initial commit
2026-11-07 16:39:43 +03:00

86 lines
2.6 KiB
Python

from typing import Any, Literal
PresetName = Literal["creative_draft", "editor", "brainstorm"]
# Пресеты для Ollama (параметры, которые понимает Ollama API)
OLLAMA_PRESETS: dict[str, dict[str, Any]] = {
"creative_draft": {
"temperature": 0.85,
"top_p": 0.92,
"top_k": 50,
"repeat_penalty": 1.15,
},
"editor": {
"temperature": 0.3,
"top_p": 0.85,
"top_k": 40,
"repeat_penalty": 1.0,
},
"brainstorm": {
"temperature": 1.0,
"top_p": 0.95,
"top_k": 80,
"repeat_penalty": 1.2,
},
}
# Пресеты для OpenRouter (параметры OpenAI-совместимого API)
OPENROUTER_PRESETS: dict[str, dict[str, Any]] = {
"creative_draft": {
"temperature": 0.85,
"top_p": 0.92,
"frequency_penalty": 0.3,
"presence_penalty": 0.4,
},
"editor": {
"temperature": 0.3,
"top_p": 0.85,
"frequency_penalty": 0.0,
"presence_penalty": 0.0,
},
"brainstorm": {
"temperature": 1.0,
"top_p": 0.95,
"frequency_penalty": 0.5,
"presence_penalty": 0.6,
},
}
def get_preset(preset_name: str, provider: str) -> dict[str, Any]:
"""Получить параметры пресета для указанного провайдера.
Args:
preset_name: Название пресета (creative_draft, editor, brainstorm)
provider: Провайдер ("ollama" или "openrouter")
Returns:
Параметры пресета как словарь
Raises:
ValueError: Если провайдер неизвестен или пресет не найден
"""
if provider == "ollama":
return OLLAMA_PRESETS.get(preset_name, OLLAMA_PRESETS["creative_draft"])
elif provider == "openrouter":
return OPENROUTER_PRESETS.get(preset_name, OPENROUTER_PRESETS["creative_draft"])
else:
raise ValueError(f"Unknown provider: {provider}")
def list_presets(provider: str | None = None) -> dict[str, dict[str, dict[str, Any]]]:
"""Вернуть все доступные пресеты.
Args:
provider: Опционально фильтровать по провайдеру
Returns:
Словарь всех доступных пресетов
"""
if provider == "ollama":
return OLLAMA_PRESETS
elif provider == "openrouter":
return OPENROUTER_PRESETS
else:
return {"ollama": OLLAMA_PRESETS, "openrouter": OPENROUTER_PRESETS}