v1.0.130: about modal — service description, fix slang (допник→допсоглашение)

This commit is contained in:
2026-06-23 08:52:40 +04:00
parent 9f1de520e5
commit b807480bdd
+30 -1
View File
@@ -75,7 +75,7 @@
<body>
<div class="topbar">
<img src="/nubes-logo.svg" alt="Nubes">
<span class="title">Сверка договоров — LLM AI-driven Event Sourcing <span style="font-weight:400;color:var(--muted);font-size:12px;">v1.0.128 — Lucee</span></span>
<span class="title">Сверка договоров — LLM AI-driven Event Sourcing <span style="font-weight:400;color:var(--muted);font-size:12px;">v1.0.130 — Lucee</span></span>
</div>
<div class="content">
@@ -83,6 +83,7 @@
<div class="card-header">
<i data-lucide="folder-open" style="width:18px;height:18px;"></i>
Загрузка договоров/приложений/спецификаций
<span style="margin-left:auto;font-size:11px;color:var(--muted);cursor:pointer;" onclick="openAbout()">О сервисе</span>
</div>
<div class="card-body">
<input type="file" id="fileInput" accept=".docx,.doc,.pdf" multiple style="margin-bottom:6px;width:100%;">
@@ -171,6 +172,23 @@
</div>
</div>
<!-- ── Модалка "О сервисе" ── -->
<div class="modal-overlay" id="aboutModalOverlay" onclick="closeAbout(event)">
<div class="modal" style="max-width:640px;" onclick="event.stopPropagation()">
<div class="modal-header">
<i data-lucide="info" style="width:18px;height:18px;"></i>
<span>О сервисе</span>
<button class="remove-btn" onclick="closeAbout()" style="margin-left:auto;font-size:18px;">&#xd7;</button>
</div>
<div class="modal-body" style="padding:16px;font-size:13px;line-height:1.6;max-height:65vh;overflow-y:auto;" id="aboutBody">
<p>Сервис автоматически сравнивает договоры и допсоглашения облачного провайдера (colocation, ЦОД). Юрист загружает файлы, система извлекает спецификации услуг и при помощи LLM находит изменения: что добавилось, изменилось, удалилось.</p>
<p><b>Пайплайн:</b> Загрузка → Парсинг → Порядок (↕) → LLM-сравнение → Результаты</p>
<p>Каждое следующее допсоглашение учитывает изменения из предыдущих (Event Sourcing). Итоговая спецификация — сумма всех операций.</p>
<p><b>Стек:</b> Lucee 6.0 (CFML) + PostgreSQL 15 + Python 3 (LLM-прокси) + gpt-oss-120b</p>
</div>
</div>
</div>
<script>
lucide.createIcons();
@@ -240,6 +258,17 @@ function moveDown(i) {
window.moveUp = moveUp;
window.moveDown = moveDown;
// ── О сервисе ────────────────────────────────────────────────
function openAbout() {
document.getElementById('aboutModalOverlay').classList.add('open');
}
function closeAbout(e) {
if (e && e.target !== document.getElementById('aboutModalOverlay')) return;
document.getElementById('aboutModalOverlay').classList.remove('open');
}
window.openAbout = openAbout;
window.closeAbout = closeAbout;
// ── Автозагрузка при выборе файлов ──────────────────────────
fileInput.addEventListener('change', async function() {
var newFiles = Array.from(fileInput.files);