From 1c85c913f8f050dac3b83a669a5d0f72389f9d24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Sat, 27 Jun 2026 13:06:23 +0400 Subject: [PATCH] =?UTF-8?q?docs:=20=D0=B0=D0=BA=D1=82=D1=83=D0=B0=D0=BB?= =?UTF-8?q?=D0=B8=D0=B7=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D1=82=D1=8C=20servic?= =?UTF-8?q?e-description=20=E2=80=94=20=D0=BF=D0=B0=D1=80=D1=81=D0=B8?= =?UTF-8?q?=D0=BD=D0=B3=20=D0=BD=D0=B0=20=D0=92=D0=9C,=20pdfplumber+python?= =?UTF-8?q?-docx?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- History/architecture/service-description.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/History/architecture/service-description.md b/History/architecture/service-description.md index a6dadf2..78fdee3 100644 --- a/History/architecture/service-description.md +++ b/History/architecture/service-description.md @@ -12,7 +12,7 @@ 1. **Загрузка** — файлы принимаются через веб-интерфейс. Поддерживаются .docx, .doc (старый Word), .pdf, а также .zip с несколькими файлами. -2. **Парсинг** — каждый файл автоматически разбирается: извлекаются таблицы и текст. Используется Apache POI (Java) для Word-документов и PDFBox для PDF. Результат — структурированный JSON (elements_json) и текстовое представление. +2. **Парсинг** — каждый файл автоматически разбирается на ВМ: извлекаются таблицы и текст. Используется pdfplumber для PDF (с сохранением структуры таблиц) и python-docx для Word. Результат — структурированный JSON (elements_json) и текстовое представление. 3. **Порядок** — файлы можно переставить стрелками ↕. Первый в списке считается базовым договором, остальные — дополнительные документы к нему. @@ -31,9 +31,9 @@ │ ├── загрузка файлов ──→ VM (Python, convert_server.py) │ │ - │ ├── /convert-doc ──→ Lucee (parser.cfm) - │ ├── /process-v2 ───→ Lucee (apply_events.cfm) - │ └── LLM (api.aillm.ru, gpt-oss-120b) + │ ├── /upload ──→ parse.py (pdfplumber + python-docx) + │ ├── /llm-ops ──→ LLM (api.aillm.ru, gpt-oss-120b) + │ └── /process-v2 ──→ Lucee (apply_events.cfm) │ └── API ──→ Lucee (CFML на k8s) │ @@ -44,8 +44,8 @@ |-----------|-----|------------| | Веб-интерфейс | Lucee 6.0 (k8s) | CFML + JavaScript | | База данных | Внутренний PostgreSQL 15 | JSONB, UUID, advisory locks | -| Парсинг документов | Lucee | Apache POI (HWPF/XWPF), PDFBox | -| LLM-анализ | Внешняя VM (5.172.178.213) | Python 3, httpx, SSE-стриминг | +| Парсинг документов | ВМ (5.172.178.213) | pdfplumber (PDF) + python-docx (DOCX) | +| LLM-анализ | ВМ (5.172.178.213) | Python 3, httpx, SSE-стриминг | | Модель | api.aillm.ru | gpt-oss-120b (бесплатно, 8000 токенов) | ## Event Sourcing @@ -65,7 +65,7 @@ - **Backend**: Lucee 6.0 (CFML) на Kubernetes - **База**: PostgreSQL 15 (JSONB, UUID, window functions) -- **Парсинг**: Apache POI (Java, встроен в Lucee) +- **Парсинг**: pdfplumber (PDF) + python-docx (DOCX) на ВМ - **LLM-прокси**: Python 3 + httpx + threading (SSE) - **Модель**: gpt-oss-120b (OpenAI-совместимый API) - **Фронтенд**: ванильный JS + Lucide иконки