Files
contracts/history/session-02-problems.md

3.3 KiB

Проблемы проекта Contracts App (15.06.2026)

Дата: 15.06.2026 Статус: Анализ и выученные уроки


1. Технические ошибки и инструменты

replace_string_in_file портит файлы

Инструмент заменяет подстроку, а не файл целиком. При повторных правках возникали дубликаты кода (например, два блока if __name__ == "__main__") или обрезка функций. Решение: При больших правках использовать create_file для перезаписи файла целиком, либо очень внимательно выбирать контекст в oldString.

Опечатка в API-ключе (c772c3e5 vs 5fad79ba)

Два часа отладки HTTP/2 и httpx из-за опечатки в LLM_API_KEY (перепутаны символы 9K -> K9). Урок: Проверять валидность ключей и выводить первые/последние символы хеша в логи при ошибках 401.

Истёкший SSL-сертификат api.aillm.ru

Сертификат протух 14 июня 2026. httpx блокировал запросы. Временное решение: verify=False в клиенте LLM.


2. Архитектура и Сеть

ERR_HTTP2_PROTOCOL_ERROR (Таймауты Ingress)

LLM обрабатывает документ 30-40 секунд. Ingress в K8s обрывает соединение на 30-й секунде. Решение: Разделение процессов. Загрузка — мгновенно. Обработка LLM — по отдельному запросу с фронтенда с визуальным таймером, чтобы пользователь понимал, что процесс идет.

AJAX fetch() -> Failed to fetch

Сложная логика на фронте (очереди, JSZip) ломалась. Решение: Упрощение до стандартных форм. Паттерн PRG (Post-Redirect-Get) для устранения проблемы «Подтвердите повторную отправку формы» при нажатии F5.


3. Фронтенд и Контент

Битый логотип

nubes-logo.svg содержал текст "Forbidden" (ошибка копирования через curl). Урок: Проверять содержимое статических файлов после скачивания.


Текущее состояние (v1.0)

  1. Упрощение: Форма <input type="file" multiple> + стандартный submit.
  2. Надежность: POST на / загружает и парсит файлы, затем делает redirect на страницу договора.
  3. LLM: Отдельная кнопка «Обработать (LLM)» внутри договора, чтобы избежать таймаутов при массовой загрузке.
  4. Интерфейс: Добавлен таймер обработки и версия v1.0 в шапке.