This commit is contained in:
commit
46af290db3
100 files changed
+16663
No files matched your search
@@ -0,0 +1,85 @@
|
||||
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}
|
||||
Reference in new issue
Block a user