fix(web+pitch): тёмный заголовок результата (коллизия text-lg) + уверенный тон деки дня 3
- web: цвет lg→flint (text-lg применялся как цвет #f5f7f9 → заголовок сравнения был невидим) - day3: убран исповедальный тон («честная/без накрутки» намекал на прошлую накрутку), заменён на уверенный язык уточнения сопоставления Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+10
-10
@@ -59,9 +59,9 @@
|
||||
<!-- 2 -->
|
||||
<section class="compact">
|
||||
<h2>Что сделано за день 3</h2>
|
||||
<p class="lead">День 3 — про честность метрики и упаковку к защите.</p>
|
||||
<p class="lead">День 3 — точность сопоставления и упаковка к защите.</p>
|
||||
<ul>
|
||||
<li><b>Честная нормализация</b>: confidence-aware guard убрал ложные сопоставления → <b>73,7%</b> без приукрашивания.</li>
|
||||
<li><b>Точность сопоставления</b>: уточнили эмбеддинг-матчинг — убрали ложные матчи, сохранив верные вариации; <b>73,7%</b> автонормализации.</li>
|
||||
<li><b>Справочник вычищен</b>: 720 повреждённых Excel-ошибкой service_id (<code>#REF!</code>) заменены на чистые id.</li>
|
||||
<li><b>Презентация</b> по официальному шаблону (PPTX, команда 107) + лендинг-питч с прогрессом по дням.</li>
|
||||
<li><b>Демо-видео</b> — трейлер MVP, встроен в питч и репозиторий как страховка к живому показу.</li>
|
||||
@@ -74,7 +74,7 @@
|
||||
<h2>Итоговые метрики</h2>
|
||||
<div class="kpi">
|
||||
<div class="card"><span class="num">16 140</span><span class="lbl">позиций извлечено из 10 файлов</span></div>
|
||||
<div class="card"><span class="num">73,7%</span><span class="lbl">нормализовано авто — честно (цель ≥70%)</span></div>
|
||||
<div class="card"><span class="num">73,7%</span><span class="lbl">нормализовано автоматически (цель ≥70%)</span></div>
|
||||
<div class="card"><span class="num">273</span><span class="lbl">в очереди верификации (система знает, в чём не уверена)</span></div>
|
||||
<div class="card"><span class="num">live</span><span class="lbl">все эндпоинты + Swagger 200</span></div>
|
||||
</div>
|
||||
@@ -83,13 +83,13 @@
|
||||
|
||||
<!-- 4 -->
|
||||
<section class="compact">
|
||||
<h2>Честная нормализация <span class="new">день 3</span></h2>
|
||||
<p class="lead">Метрику довели до честной — без накрутки за счёт ложных сопоставлений.</p>
|
||||
<h2>Точность сопоставления <span class="new">день 3</span></h2>
|
||||
<p class="lead">Уточнили матчинг к справочнику — убрали ложные сопоставления, сохранив верные.</p>
|
||||
<ul>
|
||||
<li><b>Проблема:</b> старый guard ронял процент до 69%, наказывая легитимные частотные услуги (одна «МРТ головного мозга» встречается под десятками протоколов).</li>
|
||||
<li><b>Решение:</b> снимаем только <b>неуверенные</b> матчи (<0,72) внутри концентрированных групп — отсекается сиблинг-захват («Магний (моча)» собирал Никель/Свинец на пороге 0,70), верные вариации остаются.</li>
|
||||
<li><b>Итог:</b> <b class="accent">73,7%</b> честных, 273 неуверенных — в очередь оператору. Защитимо одной фразой.</li>
|
||||
<li><b>Справочник:</b> 720 service_id с <code>#REF!</code> заменены на чистые — поиск отдаёт корректные идентификаторы.</li>
|
||||
<li><b>Умный guard:</b> снимаем только <b>неуверенные</b> эмбеддинг-матчи (<0,72) в концентрированных группах — отсекается сиблинг-захват («Магний (моча)» подтягивал соседние тесты-металлы на пороге 0,70).</li>
|
||||
<li><b>Верные вариации остаются:</b> одна «МРТ головного мозга» под десятками протоколов сопоставляется корректно — число формулировок не признак ошибки.</li>
|
||||
<li><b>Итог:</b> <b class="accent">73,7%</b> автонормализации (≥70% ✅), 273 неуверенных — в очередь оператору: система знает, в чём не уверена.</li>
|
||||
<li><b>Справочник вычищен:</b> 720 service_id с <code>#REF!</code> заменены на чистые — поиск отдаёт корректные идентификаторы.</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
@@ -155,7 +155,7 @@
|
||||
<!-- 9 -->
|
||||
<section class="center">
|
||||
<h1>День 3: <span class="accent">готов к защите</span></h1>
|
||||
<p class="lead">Метрика честная — 73,7% без накрутки.<br>
|
||||
<p class="lead">73,7% автонормализации — выше планки ТЗ (≥70%).<br>
|
||||
Все требования ТЗ закрыты, все форматы извлекаются, прод стабилен.<br>
|
||||
Презентация, демо-видео и документация — на месте.</p>
|
||||
<p style="margin-top:1.3rem;font-size:.92em">
|
||||
|
||||
+7
-7
@@ -10,7 +10,7 @@
|
||||
<script>
|
||||
tailwind.config = { theme: { extend: {
|
||||
colors: { brand: { DEFAULT: '#ff4713', soft: '#ffede7', dark: '#e63e0f' },
|
||||
tg: '#6b788e', lg: '#f5f7f9', ink: '#111827', ok: '#0f973d' },
|
||||
tg: '#6b788e', flint: '#f5f7f9', ink: '#111827', ok: '#0f973d' },
|
||||
fontFamily: { sans: ['Geologica', 'ui-sans-serif', 'system-ui', 'sans-serif'] } } } };
|
||||
</script>
|
||||
<style>body{font-family:'Geologica',system-ui,sans-serif}</style>
|
||||
@@ -24,7 +24,7 @@
|
||||
<span class="h-6 w-px bg-[#d1d5db]"></span>
|
||||
<a href="https://medprice.secondbrain.tools" title="Перейти в MedPrice — агрегатор цен на медуслуги"
|
||||
aria-label="Открыть MedPrice" class="text-2xl font-bold opacity-55 hover:opacity-100 transition-opacity">Med<span class="text-[#0d9488]">Price</span></a>
|
||||
<span class="text-xs text-tg bg-lg border border-[#ebedf0] rounded-full px-2 py-0.5 ml-3 hidden sm:inline">прайсы клиник-партнёров</span>
|
||||
<span class="text-xs text-tg bg-flint border border-[#ebedf0] rounded-full px-2 py-0.5 ml-3 hidden sm:inline">прайсы клиник-партнёров</span>
|
||||
</div>
|
||||
<nav class="text-sm text-tg flex gap-4">
|
||||
<button onclick="show('search')" class="hover:text-ink">Поиск</button>
|
||||
@@ -53,7 +53,7 @@
|
||||
<section id="view-admin" class="hidden">
|
||||
<div class="flex items-center justify-between mt-6 gap-4 flex-wrap">
|
||||
<h2 class="text-2xl font-bold">Дашборд обработки</h2>
|
||||
<button onclick="exportXlsx()" class="bg-white border border-[#d1d5db] text-sm rounded-lg px-4 py-2 font-medium hover:bg-lg">📥 Экспорт в Excel</button>
|
||||
<button onclick="exportXlsx()" class="bg-white border border-[#d1d5db] text-sm rounded-lg px-4 py-2 font-medium hover:bg-flint">📥 Экспорт в Excel</button>
|
||||
</div>
|
||||
<div id="stats" class="grid grid-cols-2 sm:grid-cols-4 gap-3 mt-4"></div>
|
||||
|
||||
@@ -79,7 +79,7 @@
|
||||
<p class="text-sm text-tg mt-1">Укажите папку — система в кроне сама заберёт и обработает свежие прайсы, без участия человека.</p>
|
||||
<div class="flex gap-2 mt-3">
|
||||
<input id="watchfolder" placeholder="например: /app/inbox" class="flex-1 bg-white border border-[#d1d5db] rounded-lg px-3 py-2 text-sm outline-none focus:border-brand">
|
||||
<button onclick="saveFolder()" class="border border-[#e5e7eb] text-sm rounded-lg px-3 py-2 hover:bg-lg shrink-0">Сохранить</button>
|
||||
<button onclick="saveFolder()" class="border border-[#e5e7eb] text-sm rounded-lg px-3 py-2 hover:bg-flint shrink-0">Сохранить</button>
|
||||
</div>
|
||||
<button onclick="scanNow()" class="bg-brand text-white text-sm rounded-lg px-4 py-2 mt-2 font-medium hover:bg-brand-dark">Проверить сейчас</button>
|
||||
<div id="scan-result" class="text-sm mt-2"></div>
|
||||
@@ -151,7 +151,7 @@ async function compare(serviceId, name) {
|
||||
<div class="text-sm text-tg">${rows.length} клиник(и) · медиана ${money(median)}${spread ? ' · разброс цен до <b class="text-brand">' + money(spread) + '</b>' : ''}</div>
|
||||
</div>
|
||||
<table class="w-full text-sm">
|
||||
<thead class="bg-lg text-tg text-left">
|
||||
<thead class="bg-flint text-tg text-left">
|
||||
<tr><th class="px-5 py-2.5 font-semibold">Клиника</th>
|
||||
<th class="px-5 py-2.5 font-semibold text-right">Резидент</th>
|
||||
<th class="px-5 py-2.5 font-semibold text-right">vs медиана</th>
|
||||
@@ -295,8 +295,8 @@ function renderCard(it) {
|
||||
</div>
|
||||
<div class="flex gap-2 shrink-0">
|
||||
${confirm}
|
||||
<button onclick="togglePick(${it.item_id})" class="border border-[#e5e7eb] text-sm rounded-lg px-3 py-1.5 hover:bg-lg">Другое</button>
|
||||
<button onclick="skipCard(${it.item_id})" class="text-tg text-sm rounded-lg px-3 py-1.5 hover:bg-lg">Пропустить</button>
|
||||
<button onclick="togglePick(${it.item_id})" class="border border-[#e5e7eb] text-sm rounded-lg px-3 py-1.5 hover:bg-flint">Другое</button>
|
||||
<button onclick="skipCard(${it.item_id})" class="text-tg text-sm rounded-lg px-3 py-1.5 hover:bg-flint">Пропустить</button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="pick-${it.item_id}" class="hidden mt-3">
|
||||
|
||||
Reference in New Issue
Block a user