Справочник настроек

Референс всех настроек TaigaReport. Базовая настройка описана в настройке LLM — здесь полный список с дефолтами.

Схема приоритетов

дефолты  →  ~/.config/taigareport/config.json  →  env  →  CLI-флаги

Каждый следующий уровень перекрывает предыдущий: разовый прогон флагом всегда сильнее постоянной настройки. Для ключа внутри источника: api_key > api_key_cmd (env LLM_API_KEY перекрывает оба). Конфиг-файл отсутствует или пуст — не ошибка.

Переменные окружения

ПеременнаяПо умолчаниюОписание
LLM_BASE_URLhttp://127.0.0.1:4000OpenAI-совместимый endpoint; /chat/completions добавляется сам, для /v1-прокси указывайте .../v1
LLM_API_KEY—API-ключ (задаётся вместе с LLM_MODEL)
LLM_MODEL—Имя модели
LLM_TIMEOUT900Бюджет одного вызова: секунды или duration (1 с … 1 ч); в конфиге — timeout_seconds
LLM_MAX_INPUT_BYTES102400Бюджет сырого текста фазы extract (1 КиБ … 10 МиБ); в конфиге — max_input_bytes
LLM_CONTEXT_TOKENSкарта известных моделейЯвный лимит контекста endpoint для предпроверки payload (1000 … 10 000 000); в конфиге — context_tokens
LLM_MAX_OUTPUT_TOKENSне отправляетсяЯвный лимит ответа: уходит в запрос как max_tokens (256 … 1 000 000); в конфиге — max_output_tokens
LLM_TOTAL_BUDGETвыключенОбщий бюджет всех LLM-фаз прогона (1 с … 24 ч); в конфиге — total_budget_seconds, флаг --total-budget

config.json

Путь: ~/.config/taigareport/config.json (уважает XDG_CONFIG_HOME). Пример целиком:

{
  "base_url": "http://127.0.0.1:4000",
  "api_key": "",
  "api_key_cmd": "op read 'op://Vault/taigareport/key'",
  "model": "gpt-4o-mini",
  "timeout_seconds": 900,
  "max_input_bytes": 102400,
  "context_tokens": null,
  "max_output_tokens": null,
  "total_budget_seconds": null,
  "language": "",
  "system_prompt_extra": "",
  "open": true,
  "out_dir": "",
  "encoding": "auto"
}
ПолеПо умолчаниюОписание
base_urlhttp://127.0.0.1:4000Endpoint (эквивалент LLM_BASE_URL)
api_key—Ключ в явном виде
api_key_cmd—Команда-источник ключа (30 с таймаут, вывод до 64 КиБ); слабее api_key
model—Модель (эквивалент LLM_MODEL)
timeout_seconds900Бюджет одного вызова
max_input_bytes102400Бюджет текстового входа фазы extract
context_tokensкарта моделейЯвный лимит контекста
max_output_tokens—Лимит ответа (max_tokens в запросе)
total_budget_secondsвыключенОбщий бюджет LLM-фаз прогона
languageязык данных по детектуЯзык текста отчёта; перекрывается --lang
system_prompt_extra—Доп. инструкции во все системные промпты (≤ 4 КиБ)
opentrueОткрывать отчёт в браузере; приоритет: --no-open > --open > конфиг
out_dirtaigareport-reports/ рядом с бинарникомДиректория автоименованных отчётов (поддерживает ~); перекрывается --out-dir
encodingautoКодировка не-UTF-8 входа: auto или cp1251 / koi8-r / cp866 / iso-8859-5 / mac-cyrillic

CLI-флаги

taigareport [flags] <data-file | ->
ФлагОписание
--out FILEТочное имя выходного файла, без метки времени; без флага — уникальное автоимя
--out-dir DIRДиректория автоименованных отчётов (приоритет: флаг > out_dir конфига > дефолт)
--open / --no-openОткрыть / не открывать отчёт в браузере (--no-open сильнее — для скриптов и CI)
--no-llmЭвристический выбор диаграммы, без вызова LLM (только табличный вход)
--deepТрек автономного анализа: паспорт → план → findings → страница (несовместим с --no-llm)
--format csv|json|md|yaml|textПереопределить детект формата
--encoding ENCКодировка входа (перекрывает конфиг)
--title STRINGЗаголовок отчёта
--lang LANGЯзык текста отчёта: код (ru) или название (Russian); перекрывает конфиг
--prompt TEXTДоп. инструкции ко всем LLM-запросам прогона (≤ 4 КиБ)
--meta FILEКонтракт данных: JSON с ролями/единицами/весами колонок; строгая валидация
--total-budget DURОбщий бюджет LLM-фаз (например 30m, 1h)
--no-run-artifactНе писать sidecar .run.json (replay без него невозможен)
--no-progressНе показывать стадии прогресса в stderr
--debugДиагностика: размеры payload, retry, валидация, бюджетные предупреждения

Подкоманды:

КомандаОписание
taigareport replay <file.run.json>Перерисовать отчёт из артефакта прогона без LLM — байт-идентичный HTML
taigareport llm testРазрезолвить конфигурацию, напечатать источник каждого поля, один пробный вызов

Диагностика и exit-коды

stdout несёт ровно одну строку — путь к отчёту; диагностика в stderr.

КодЗначение
0Успех (включая деградации с предупреждением: fallback на эвристики, страница без viz-brief)
1Usage / внутренняя ошибка
2Входные данные (в т.ч. --no-llm с текстом или с --deep)
3Конфигурация LLM (env неполон или 401/403)
4Сбой LLM-фазы без fallback (извлечение из текста; любая фаза --deep)
5Ошибка записи

Дефолты сверены с README TaigaReport и ADR-0004/0009/0012 (v0.50.4), октябрь 2026.