Files
contracts/History/sonnet-upload-from-scratch.md
T

38 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Запрос: загрузка файлов с нуля
**Задача:** надёжная загрузка docx/pdf/zip (до 50MB) через веб-интерфейс.
## Ресурсы
- **Flask** (managed pythonk8s.services.ngcloud.ru, деплой = git push)
- **PostgreSQL 17.6** (внутренний кластер `postgresqlk8s-master...svc.cluster.local`)
- **Redis** (внутренний `redisk8s...svc.cluster.local`, admin/aLITloRefJEiCPqUc2xB)
- **БД:** пул psycopg2 (2-10, keepalive), таблицы есть (`documents`, `contracts`, `supplements`)
- **Парсеры:** python-docx (DOCX), pdfplumber (PDF), zipfile (ZIP), textify.to_text()
- **LLM:** aillm.ru (gpt-oss-120b), HTTP/2
- **Клиент:** браузер, XHR POST, JSON body
## Что НЕ работает (43 версии)
- POST с телом > 64KB → nginx/Ingress рвёт TCP (HTTP 000, ReadTimeout)
- 10-50KB: 100% надёжно
- FormData, JSON/base64, чанки, Redis, retry — ничего не помогло
- 64KB — жёсткий предел платформы
## Что нужно
1. **Архитектура загрузки** — гарантированно обходящая лимит 64KB на тело запроса
2. **Прогресс на клиенте** — интерактивно (имя файла, проценты, таймер)
3. **Парсинг после загрузки** — извлечение параграфов, таблиц, стилей
4. **ZIP** — показывать содержимое, парсить файлы внутри
## Вопросы
1. Как обойти 64KB лимит тела запроса?
2. Чанки — на клиенте или сервере?
3. Redis — нужен или нет для этой задачи?
4. Как гарантировать целостность файла при чанковой загрузке?
5. Какая структура БД оптимальна для хранения результатов парсинга?
**Ответь кратко: архитектура (3-5 пунктов), потом отвечу на вопросы.**