Files
2026-09-11 19:47:15 +03:00

41 lines
1.2 KiB
Python

"""Модуль 4: brain — «мозг» ассистента (LLM через OpenRouter) + очистка текста.
Использование:
from modules.brain import get_provider
brain = get_provider("openrouter", model="openai/gpt-4o-mini")
result = brain.ask("Какая погода?")
print(result.cleaned_text) # чистый текст для озвучки
"""
from __future__ import annotations
from .base import DialogHistory, LlmProvider, LlmResult
from .clean_text import clean_for_speech
from .prompts import SYSTEM_PROMPT
from .provider_openrouter import OpenRouterProvider
__all__ = [
"DialogHistory",
"LlmProvider",
"LlmResult",
"OpenRouterProvider",
"SYSTEM_PROMPT",
"clean_for_speech",
"get_provider",
]
_PROVIDERS = {
OpenRouterProvider.name: OpenRouterProvider,
}
def get_provider(name: str, **kwargs) -> LlmProvider:
"""Фабрика провайдеров по имени (выбор из конфига)."""
try:
provider_cls = _PROVIDERS[name]
except KeyError:
raise ValueError(
f"Неизвестный LLM-провайдер: {name!r}. Доступны: {sorted(_PROVIDERS)}"
) from None
return provider_cls(**kwargs)