Files
pet-project-server/files/diet/config.template.toml
T
av e281082a66 diet: распознавание и сведение переведены на bothub/gemini-3.8-flash
- обе секции llm ходят в одну модель вместо разных, комментарии
  переписаны под именование моделей через Bifrost
- обновлены секреты в group_vars/all/secrets.yml
2026-09-11 09:57:17 +03:00

70 lines
4.3 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-модель. Имя здесь — АЛИАС Bifrost, а не модель провайдера:
# правило routing_rules в files/bifrost/config.template.json разворачивает его
# в конкретную пару провайдер+модель и держит за ней цепочку фолбэков на случай,
# когда основная модель у агрегатора временно недоступна. Менять модель — там.
type = "openai-compat"
model = "bothub/gemini-3.8-flash"
# Умолчание в минуту обрывает первый за долгое время вызов: 65,9 с 6 сентября
# 2026, тогда как следующие за ним укладывались в 6–10 с. Ждал не шлюз и не наш
# повтор — по его журналу запросов попытка была одна, у провайдера ушло 65,5 с,
# накладные шлюза 0,46 с. То же самое видно у соседа по серверу через другого
# провайдера (74 с и 67,8 с, оба раза первый вызов после простоя), так что дело
# не в выбранной модели. Срок поднят, чтобы готовый ответ не выбрасывался
# за шесть секунд до прихода; настоящая причина медленного первого обращения
# наружу этим не лечится.
timeout = "2m"
# Сведение позиций. Тоже алиас Bifrost — см. комментарий выше.
[llm.composition]
type = "openai-compat"
model = "bothub/gemini-3.8-flash"
# Замер давал этой модели 19–70 секунд на ответ, то есть умолчание в минуту
# обрывало бы её самые долгие ответы, засчитывая их временной неудачей.
timeout = "2m"