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