v1.0.155: contractor submodule + session-11-summary
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
# Резюме для нового чата — contracts (contractor/Lucee)
|
||||
|
||||
Дата: 2026-06-23 | Версия в git: v1.0.152 | Версия на Lucee: v1.0.152 (после редеплоя)
|
||||
|
||||
---
|
||||
|
||||
## Архитектура
|
||||
|
||||
```
|
||||
Браузер (contractor.luceek8s.dev.nubes.ru)
|
||||
│
|
||||
├── загрузка файлов → VM (contracts.kube5s.ru/upload)
|
||||
│ Python convert_server.py, чанки 10KB → chunk.cfm → Lucee DB
|
||||
│
|
||||
├── парсинг: PDF→VM (PyPDF2), DOCX/DOC→Lucee (Apache POI через parser.cfm)
|
||||
│
|
||||
├── сравнение → VM SSE /process-v2 → LLM (gpt-oss-120b)
|
||||
│
|
||||
└── промпты → Lucee prompt.cfm (версионные, extract/diff)
|
||||
```
|
||||
|
||||
**Компоненты:**
|
||||
- Lucee 6.0 (CFML) на k8s — `contractor.luceek8s.dev.nubes.ru`
|
||||
- VM Python 3 — `contracts.kube5s.ru` (5.172.178.213)
|
||||
- PostgreSQL 15 — внутренний, БД `baza`
|
||||
- LLM: gpt-oss-120b через api.aillm.ru (бесплатно, 8000 токенов)
|
||||
- Nginx: `/upload`, `/process-v2`, `/unzip-upload`, `/convert-doc` → VM:8766
|
||||
|
||||
## Что сделано (v1.0.109 → v1.0.152)
|
||||
|
||||
### Успешно работает
|
||||
- Upload через VM чанками (10KB) — обходит лимит Lucee k8s (~30KB)
|
||||
- ZIP через /unzip-upload (VM)
|
||||
- PDF парсинг через PyPDF2 на VM
|
||||
- Prompts в БД с версионированием, редактор в UI
|
||||
- Opus-улучшенные промпты (few-shot, глоссарий ЦОД)
|
||||
- Provenance: prompt_version, source_document_id, raw_llm_response в spec_events
|
||||
- ↕ стрелки для порядка файлов
|
||||
- О сервисе — модальное окно
|
||||
|
||||
### Критические баги исправлены
|
||||
- JS: UPPERCASE ключи Lucee (OK, BODY, VERSIONS, IS_ACTIVE...)
|
||||
- JS: лишний `});` ломавший весь JS
|
||||
- CORS: дубликаты заголовков на /upload и /unzip-upload
|
||||
- chunk.cfm: `decode(base64)` для правильного хранения файлов
|
||||
- parser.cfm: откачен к рабочей версии (PDF→VM, DOCX→Lucee POI)
|
||||
|
||||
## Текущее состояние (v1.0.152)
|
||||
|
||||
- VM: Python, чанки base64, PDF парсинг ✅
|
||||
- Lucee: v1.0.152, parser.cfm рабочий, chunk.cfm с base64 ✅
|
||||
- PDF: загрузка + парсинг работают ✅
|
||||
- DOCX/DOC: должно работать после v1.0.152 (base64 fix) ✅
|
||||
- Prompts: работают ✅
|
||||
|
||||
## Проблемы решённые сегодня
|
||||
|
||||
1. PDF upload: "Network Error" → chunked upload через VM (10KB чанки)
|
||||
2. PDF parsing: PDFBox сломан → PyPDF2 на VM
|
||||
3. DOCX storage: hex вместо base64 → base64 в chunk.cfm
|
||||
4. CORS дубликаты → nginx только OPTIONS, VM — POST
|
||||
5. JS uppercase keys → исправлено
|
||||
|
||||
## Правила (важно!)
|
||||
|
||||
- ⛔ НИКОГДА ничего не делать без «делай»
|
||||
- После каждой правки: проверка синтаксиса (node --check для JS, py_compile для Python)
|
||||
- После каждого изменения: bump версии в index.cfm
|
||||
- Перед push: git diff, проверить всё
|
||||
- Lucee требует ручного редеплоя через Nubes UI
|
||||
- VM: scp + pkill + nohup для перезапуска
|
||||
- curl к *.ngcloud.ru всегда с --http2 и --max-time
|
||||
- Lucee serializeJSON → UPPERCASE ключи
|
||||
- Lucee k8s лимит тела запроса ~30KB
|
||||
- Документация в History/*.md
|
||||
|
||||
## Если что-то сломалось
|
||||
|
||||
1. Проверить git status в /home/naeel/nubes/contracts/contractor
|
||||
2. Проверить версию на Lucee: curl --http2 --max-time 5 -s 'https://contractor.luceek8s.dev.nubes.ru/' | grep 'v1.0.'
|
||||
3. Проверить VM: ssh -i ~/.ssh/naeel_vm_id_ed25519 naeel@5.172.178.213 'ps aux | grep convert'
|
||||
4. Логи nginx: ssh ... 'sudo tail -20 /var/log/nginx/error.log'
|
||||
5. Тест загрузки: curl --http2 -X POST 'https://contracts.kube5s.ru/upload' -F 'files=@file.pdf'
|
||||
+1
-1
Submodule contractor updated: 34a34ee6d7...ee374171d8
Reference in New Issue
Block a user