Что можно сказать, решает слот-автомат, а не модель: в промпт попадают только раскрытые факты. Иначе LLM услужливо назовёт адрес, которого не спрашивали. Промпты лежат файлами — их правит тот, кто ведёт занятия. Отказ провайдера не роняет занятие: звонящий откатывается на заготовки. Молчащий звонящий хуже шаблонной фразы. Офлайн — таблица, а не локальная модель. Ветвление уже делает слот-автомат, поэтому таблица индексируется парой «событие × настроение» и выходит небольшой: для пожарного сценария 62 реплики, около 36 секунд генерации. Формулировки в ней от облачной модели, а задержка на занятии нулевая — локальная 3–4B дала бы формулировки хуже и за 2.5 секунды. Найдено на бесплатной модели OpenRouter: рассуждающие модели тратят сотни токенов на размышление и при малом бюджете возвращают пустой content с finish_reason=length. Пустой ответ теперь честный отказ, бюджет токенов поднят, рассуждение из ответа исключается. Живые запросы к LLM вынесены из общего прогона: они требуют сети, а рассуждающая модель отвечает десятками секунд.
24 lines
308 B
Text
24 lines
308 B
Text
# IDE
|
||
.idea/
|
||
.vscode/
|
||
|
||
# Веса моделей (тянутся make models)
|
||
backend/models/
|
||
|
||
# Python
|
||
__pycache__/
|
||
*.pyc
|
||
.venv/
|
||
|
||
# Node
|
||
node_modules/
|
||
frontend/dist/
|
||
|
||
# Env: и .env, и .env.test, и всё, что рядом — там ключи
|
||
.env
|
||
.env.*
|
||
!.env.example
|
||
*.local
|
||
|
||
# Python
|
||
.pytest_cache/
|