4.0 KiB
4.0 KiB
КФУ-агент — расчёт К1–К3 по Политике финансовой устойчивости
Приложение с сервером (Node.js, node:http, без тяжёлых зависимостей) + статический фронт.
Запуск — команда run (поставит зависимости по package.json и поднимет server.js).
Что умеет
- Данные — три источника:
- выгрузка СУО (SAP BPC): листы ДОЛГ / EBITDA / Баланс, распознавание структуры, подбор строк, EBITDA «снизу вверх» по статьям ОПиУ и готовая строкой, LTM-мостик для промежуточных периодов, структура долга по компонентам с контролем по сумме, блок «Консолидация» (TOTALADJ) для Группы Фонда;
- отчётность МСФО — извлечение показателей ИИ (PDF распковывается сервером в текст, Excel в браузере, сканы страниц — как изображения); результат — редактируемая сводка с LTM и итогами;
- ручной ввод.
- Реестр показателей — компании и периоды, долг/гарантии/EBITDA/проценты/капитал, редактирование и удаление.
- Расчёт и зоны — целевые и пороговые значения по компаниям (предзаполнены из сводного файла КФУ), свод «как в сводном файле», коэффициенты К1–К3 с зонами (зелёная/жёлтая/красная), EBITDA ≤ 0 → красная, выгрузка в Excel (листы: Свод, Долг Группы, КФУ, Параметры, Аудит) и CSV.
- Агент — чат с расчётом по методам: видит реестр, зоны и методы (реестр); подсказки:
заключение по зонам, стресс-тест (долг +10%, EBITDA −15%, проценты +20%, капитал −5% — пересчитывается
детерминированно в
stressRow, агенту передаются готовые значения), запас до порогов, методологические риски.
Архитектура
index.html— всё приложение (вкладки 1–4), SheetJS изvendor/xlsx.full.min.js.monitor.html+kfu-client.js— предыдущий экран «Мониторинг» (ссылка в шапке КФУ-агента).server.js—node:http: статика (allowlist файлов) +POST /api/ai(прокси кAI_BASE_URL/chat/completionsсAI_API_KEY/AI_MODELиз окружения) +GET /api/health. Ключи ИИ живут только на сервере; браузер ходит вapi/ai(относительный путь).- PDF: клиент шлёт base64 в
/api/ai(блокfile:pdf), сервер распковываетpdf-parse; пустой PDF (скан) → честная ошибка. Лимит тела 40 МБ, таймаут ИИ 90 с.
Запуск
run → ссылка из вывода. После правок — ещё раз run.
Публикация — кнопка «Опубликовать» (приложение: https://code.vibe42.kz/apps/..., не в pages).
Данные (Excel) читаются в браузере и не покидают машину, кроме отправки PDF/снимков в ИИ для извлечения показателей. Состояние (реестр, параметры, методика) сохраняется/загружается локальным JSON; исходные книги и отчёты исключены из Git.