- первый вызов после простоя занял 65,9 с и был оборван минутным умолчанием, следующие уложились в 6–10 с - по журналу запросов шлюза попытка была одна: 65,5 с ждал провайдер, накладные шлюза 0,46 с
71 lines
4.5 KiB
TOML
71 lines
4.5 KiB
TOML
# Diet — конфигурация. Рендерится плейбуком playbook-diet.yml.
|
|
#
|
|
# Здесь только обязательные поля и те умолчания, что меняются осознанно:
|
|
# полный справочник полей с их умолчаниями — config.example.toml в репозитории
|
|
# приложения. Разбор строгий: неизвестный ключ в этом файле роняет старт.
|
|
|
|
[general]
|
|
# Часовой пояс новых пользователей: по нему режутся сутки в итогах дня.
|
|
# Хранение времени и журнал всегда в UTC, его это не трогает.
|
|
timezone = "Europe/Moscow"
|
|
|
|
[http]
|
|
# Порт наружу не публикуется: в сеть смотрит только Caddy, а внутрь
|
|
# web_proxy_network приложение видно по имени контейнера diet_app.
|
|
listen = "0.0.0.0:8080"
|
|
|
|
[storage]
|
|
# data/ приложения смонтирован на /var/lib/diet — единственное, что уезжает
|
|
# в бэкап (backup-targets).
|
|
db_path = "/var/lib/diet/diet.db"
|
|
|
|
[storage.files]
|
|
# Снимки тарелок и этикеток: каталог на диске этой же машины.
|
|
type = "local"
|
|
dir = "/var/lib/diet/files"
|
|
|
|
[cache.images]
|
|
# cache/ смонтирован на /var/cache/diet: содержимое восстановимо целиком,
|
|
# в бэкап не идёт и сносится в любой момент.
|
|
type = "local"
|
|
dir = "/var/cache/diet/images"
|
|
|
|
[llm]
|
|
# Шлюз в общей сети; версию API ("/v1/chat/completions") приложение
|
|
# дописывает само, поэтому адрес указывается корнем.
|
|
base_url = "http://bifrost_app:8080/openai"
|
|
|
|
# Bifrost в закрытой сети ключа не спрашивает: governance у него не включён
|
|
# и виртуальных ключей нет. Пустая строка — приложение ходит без авторизации.
|
|
# Появится ключ — значение приедет из vault, а файл станет секретным:
|
|
# тогда задаче рендера нужны no_log и права 0600.
|
|
api_key = ""
|
|
|
|
[llm.recognition]
|
|
# Снимки читает vision-модель через bothub — кандидат по умолчанию из замера
|
|
# на живых фотографиях (docs/research/2026-08-31-vision-recognition.md
|
|
# в репозитории приложения): точность не хуже моделей в девяносто раз дороже.
|
|
type = "openai-compat"
|
|
model = "bothub/gemini-3.1-flash-lite"
|
|
|
|
# Умолчание в минуту обрывает первый за долгое время вызов: 65,9 с 6 сентября
|
|
# 2026, тогда как следующие за ним укладывались в 6–10 с. Ждал не шлюз и не наш
|
|
# повтор — по его журналу запросов попытка была одна, у провайдера ушло 65,5 с,
|
|
# накладные шлюза 0,46 с. То же самое видно у соседа по серверу через другого
|
|
# провайдера (74 с и 67,8 с, оба раза первый вызов после простоя), так что дело
|
|
# не в выбранной модели. Срок поднят, чтобы готовый ответ не выбрасывался
|
|
# за шесть секунд до прихода; настоящая причина медленного первого обращения
|
|
# наружу этим не лечится.
|
|
timeout = "2m"
|
|
|
|
[llm.composition]
|
|
# Сведение позиций. Модель медленнее соседки по шлюзу, зато честно говорит
|
|
# «не знаю» о незнакомом продукте вместо выдуманного КБЖУ. Разбор фоновый,
|
|
# человек ответа у экрана не ждёт, поэтому ожидание здесь дешевле выдумки.
|
|
type = "openai-compat"
|
|
model = "bothub/deepseek-v4-flash"
|
|
|
|
# Замер давал этой модели 19–70 секунд на ответ, то есть умолчание в минуту
|
|
# обрывало бы её самые долгие ответы, засчитывая их временной неудачей.
|
|
timeout = "2m"
|