first commit
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
"""Модуль 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)
|
||||
Reference in New Issue
Block a user