revise March 2025 knowledge retrieval articles
Build and deploy / deploy (push) Successful in 16s

This commit is contained in:
2026-07-31 17:26:30 +03:00
parent 8a27f0f966
commit 249dd850a4
7 changed files with 1204 additions and 1 deletions
@@ -0,0 +1,54 @@
<svg xmlns="http://www.w3.org/2000/svg" width="760" height="940" viewBox="0 0 760 940" role="img" aria-labelledby="title desc">
<title id="title">Матрица прав доступа, свежести и цитируемости источника</title>
<desc id="desc">Таблица из четырёх синтетических записей показывает, что высокий score допускается к ответу только вместе с разрешением, неистёкшим сроком и точным фрагментом источника.</desc>
<rect width="760" height="940" rx="32" fill="#111827"/>
<text x="44" y="62" fill="#f9fafb" font-family="Arial, sans-serif" font-size="31" font-weight="700">Матрица допуска к ответу</text>
<text x="44" y="96" fill="#cbd5e1" font-family="Arial, sans-serif" font-size="20">фиксированная модель: порядок score не отменяет права, дату и anchor</text>
<g font-family="Arial, sans-serif" font-size="20">
<rect x="38" y="132" width="684" height="72" rx="12" fill="#1e3a5f"/>
<text x="56" y="175" fill="#dbeafe" font-weight="700">Запись</text>
<text x="206" y="175" fill="#dbeafe" font-weight="700">Права</text>
<text x="332" y="175" fill="#dbeafe" font-weight="700">Срок</text>
<text x="448" y="175" fill="#dbeafe" font-weight="700">Цитата</text>
<text x="594" y="175" fill="#dbeafe" font-weight="700">Вердикт</text>
<rect x="38" y="220" width="684" height="112" rx="12" fill="#173a2a"/>
<text x="56" y="260" fill="#f0fdf4" font-weight="700">fresh-v3</text>
<text x="56" y="291" fill="#bbf7d0" font-size="17">score 0.91</text>
<text x="206" y="274" fill="#bbf7d0">allow</text>
<text x="332" y="274" fill="#bbf7d0">valid</text>
<text x="448" y="274" fill="#bbf7d0">uri#section</text>
<text x="594" y="274" fill="#86efac" font-weight="700">include</text>
<rect x="38" y="348" width="684" height="112" rx="12" fill="#422006"/>
<text x="56" y="388" fill="#fff7ed" font-weight="700">expired-v1</text>
<text x="56" y="419" fill="#fed7aa" font-size="17">score 0.96</text>
<text x="206" y="402" fill="#fed7aa">allow</text>
<text x="332" y="402" fill="#fbbf24">expired</text>
<text x="448" y="402" fill="#fed7aa">uri#section</text>
<text x="594" y="402" fill="#fbbf24" font-weight="700">reject</text>
<rect x="38" y="476" width="684" height="112" rx="12" fill="#3f1d2e"/>
<text x="56" y="516" fill="#fff1f2" font-weight="700">closed-v2</text>
<text x="56" y="547" fill="#fecdd3" font-size="17">score 0.98</text>
<text x="206" y="530" fill="#fb7185">deny</text>
<text x="332" y="530" fill="#fecdd3">valid</text>
<text x="448" y="530" fill="#fecdd3">uri#section</text>
<text x="594" y="530" fill="#fb7185" font-weight="700">reject</text>
<rect x="38" y="604" width="684" height="112" rx="12" fill="#312e81"/>
<text x="56" y="644" fill="#eef2ff" font-weight="700">no-anchor</text>
<text x="56" y="675" fill="#c7d2fe" font-size="17">score 0.89</text>
<text x="206" y="658" fill="#c7d2fe">allow</text>
<text x="332" y="658" fill="#c7d2fe">valid</text>
<text x="448" y="658" fill="#c4b5fd">missing</text>
<text x="594" y="658" fill="#c4b5fd" font-weight="700">reject</text>
</g>
<line x1="38" y1="754" x2="722" y2="754" stroke="#475569" stroke-width="2"/>
<text x="44" y="798" fill="#f8fafc" font-family="Arial, sans-serif" font-size="25" font-weight="700">Ответ допускает пересечение трёх условий</text>
<text x="44" y="836" fill="#cbd5e1" font-family="Arial, sans-serif" font-size="21">разрешённый access ∩ свежая версия ∩ exact anchor</text>
<rect x="44" y="866" width="672" height="42" rx="12" fill="#0f172a" stroke="#64748b"/>
<text x="64" y="894" fill="#e2e8f0" font-family="Arial, sans-serif" font-size="20">Score ранжирует, но не доказывает факт.</text>
</svg>

After

Width:  |  Height:  |  Size: 4.0 KiB

@@ -0,0 +1,58 @@
<svg xmlns="http://www.w3.org/2000/svg" width="760" height="1040" viewBox="0 0 760 1040" role="img" aria-labelledby="title desc">
<title id="title">Путь от запроса к проверяемой цитате</title>
<desc id="desc">Вертикальная схема показывает пять шагов: запись индекса, выбор кандидатов, проверка прав и срока, точная цитата, затем человеческая проверка. Отсутствие свежего разрешённого источника ведёт к остановке.</desc>
<rect width="760" height="1040" rx="32" fill="#0f172a"/>
<text x="46" y="64" fill="#f8fafc" font-family="Arial, sans-serif" font-size="32" font-weight="700">Запрос → проверяемая цитата</text>
<text x="46" y="98" fill="#cbd5e1" font-family="Arial, sans-serif" font-size="20">score выбирает кандидата; ответ разрешает только проверенный источник</text>
<g font-family="Arial, sans-serif">
<rect x="46" y="134" width="668" height="124" rx="18" fill="#172554" stroke="#60a5fa" stroke-width="3"/>
<circle cx="86" cy="176" r="22" fill="#60a5fa"/>
<text x="79" y="184" fill="#0f172a" font-size="23" font-weight="700">1</text>
<text x="126" y="174" fill="#f8fafc" font-size="27" font-weight="700">Запись индекса</text>
<text x="126" y="207" fill="#dbeafe" font-size="21">id · версия · owner · права · дата · срок</text>
<text x="126" y="236" fill="#93c5fd" font-size="19">metadata остаются с фрагментом</text>
<path d="M380 268v34" stroke="#94a3b8" stroke-width="5" stroke-linecap="round"/>
<path d="M368 291l12 14 12-14" fill="none" stroke="#94a3b8" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<rect x="46" y="318" width="668" height="124" rx="18" fill="#172554" stroke="#60a5fa" stroke-width="3"/>
<circle cx="86" cy="360" r="22" fill="#60a5fa"/>
<text x="79" y="368" fill="#0f172a" font-size="23" font-weight="700">2</text>
<text x="126" y="358" fill="#f8fafc" font-size="27" font-weight="700">Retrieval кандидатов</text>
<text x="126" y="391" fill="#dbeafe" font-size="21">query → top-k в fixed corpus</text>
<text x="126" y="420" fill="#93c5fd" font-size="19">score — похожесть, не доказательство</text>
<path d="M380 452v34" stroke="#94a3b8" stroke-width="5" stroke-linecap="round"/>
<path d="M368 475l12 14 12-14" fill="none" stroke="#94a3b8" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<rect x="46" y="502" width="668" height="144" rx="18" fill="#172554" stroke="#38bdf8" stroke-width="3"/>
<circle cx="86" cy="544" r="22" fill="#38bdf8"/>
<text x="79" y="552" fill="#0f172a" font-size="23" font-weight="700">3</text>
<text x="126" y="542" fill="#f8fafc" font-size="27" font-weight="700">Права и свежесть</text>
<text x="126" y="575" fill="#e0f2fe" font-size="21">labels совпали? дата ≤ expiry?</text>
<text x="126" y="606" fill="#7dd3fc" font-size="19">closed, expired, no-anchor → reject</text>
<path d="M380 656v34" stroke="#94a3b8" stroke-width="5" stroke-linecap="round"/>
<path d="M368 679l12 14 12-14" fill="none" stroke="#94a3b8" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<rect x="46" y="706" width="668" height="124" rx="18" fill="#172554" stroke="#a78bfa" stroke-width="3"/>
<circle cx="86" cy="748" r="22" fill="#a78bfa"/>
<text x="79" y="756" fill="#0f172a" font-size="23" font-weight="700">4</text>
<text x="126" y="746" fill="#f8fafc" font-size="27" font-weight="700">Точная цитата</text>
<text x="126" y="779" fill="#ede9fe" font-size="21">URI#anchor · version · даты</text>
<text x="126" y="808" fill="#c4b5fd" font-size="19">путь к проверяемому fragment</text>
<path d="M380 840v34" stroke="#94a3b8" stroke-width="5" stroke-linecap="round"/>
<path d="M368 863l12 14 12-14" fill="none" stroke="#94a3b8" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<rect x="46" y="890" width="668" height="102" rx="18" fill="#14532d" stroke="#4ade80" stroke-width="3"/>
<circle cx="86" cy="932" r="22" fill="#4ade80"/>
<text x="79" y="940" fill="#14532d" font-size="23" font-weight="700">5</text>
<text x="126" y="930" fill="#f0fdf4" font-size="27" font-weight="700">Human verification</text>
<text x="126" y="962" fill="#bbf7d0" font-size="20">открыть fragment → сверить claim → ответ</text>
</g>
<rect x="46" y="1004" width="668" height="1" fill="#334155"/>
<text x="46" y="1028" fill="#fca5a5" font-family="Arial, sans-serif" font-size="20">STOP: нет source с правом и anchor — ответа нет.</text>
</svg>

After

Width:  |  Height:  |  Size: 4.9 KiB

@@ -0,0 +1,48 @@
<svg xmlns="http://www.w3.org/2000/svg" width="760" height="990" viewBox="0 0 760 990" role="img" aria-labelledby="title desc">
<title id="title">Цикл человеческой проверки ответа по инженерной базе знаний</title>
<desc id="desc">Схема показывает, как вопрос проходит через выбор источника, проверку метаданных, открытие точного фрагмента и человеческое подтверждение. Красная ветка останавливает ответ при отсутствующей цитате, сроке или праве.</desc>
<rect width="760" height="990" rx="32" fill="#0c1220"/>
<text x="44" y="62" fill="#f8fafc" font-family="Arial, sans-serif" font-size="31" font-weight="700">Петля проверки, а не генерации</text>
<text x="44" y="96" fill="#cbd5e1" font-family="Arial, sans-serif" font-size="20">каждый переход оставляет проверяемый артефакт</text>
<g font-family="Arial, sans-serif">
<rect x="72" y="140" width="616" height="96" rx="20" fill="#1e3a5f" stroke="#60a5fa" stroke-width="3"/>
<text x="106" y="181" fill="#f8fafc" font-size="27" font-weight="700">1. Вопрос и граница</text>
<text x="106" y="212" fill="#bfdbfe" font-size="19">claim · source type · допустимая дата</text>
<path d="M380 246v32" stroke="#94a3b8" stroke-width="5" stroke-linecap="round"/>
<path d="M368 267l12 14 12-14" fill="none" stroke="#94a3b8" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<rect x="72" y="294" width="616" height="96" rx="20" fill="#172554" stroke="#818cf8" stroke-width="3"/>
<text x="106" y="335" fill="#f8fafc" font-size="27" font-weight="700">2. Candidates из индекса</text>
<text x="106" y="366" fill="#c7d2fe" font-size="19">id, score, snippet плюс metadata</text>
<path d="M380 400v32" stroke="#94a3b8" stroke-width="5" stroke-linecap="round"/>
<path d="M368 421l12 14 12-14" fill="none" stroke="#94a3b8" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<rect x="72" y="448" width="616" height="116" rx="20" fill="#164e63" stroke="#22d3ee" stroke-width="3"/>
<text x="106" y="489" fill="#ecfeff" font-size="27" font-weight="700">3. Права, срок, anchor</text>
<text x="106" y="520" fill="#a5f3fc" font-size="19">labels · dates · URI#fragment</text>
<text x="106" y="548" fill="#67e8f9" font-size="18">нет поля — не цитировать</text>
<path d="M380 574v32" stroke="#94a3b8" stroke-width="5" stroke-linecap="round"/>
<path d="M368 595l12 14 12-14" fill="none" stroke="#94a3b8" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<rect x="72" y="622" width="616" height="98" rx="20" fill="#14532d" stroke="#4ade80" stroke-width="3"/>
<text x="106" y="663" fill="#f0fdf4" font-size="27" font-weight="700">4. Открыть fragment и сверить claim</text>
<text x="106" y="694" fill="#bbf7d0" font-size="19">human review: source и граница</text>
<path d="M380 730v32" stroke="#94a3b8" stroke-width="5" stroke-linecap="round"/>
<path d="M368 751l12 14 12-14" fill="none" stroke="#94a3b8" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<rect x="72" y="778" width="616" height="94" rx="20" fill="#4c1d95" stroke="#c084fc" stroke-width="3"/>
<text x="106" y="819" fill="#faf5ff" font-size="27" font-weight="700">5. Ответ вместе с citation</text>
<text x="106" y="850" fill="#e9d5ff" font-size="19">version · anchor · retrievedAt · причина</text>
</g>
<path d="M72 506H34V904H236" fill="none" stroke="#fb7185" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M225 892l14 12-14 12" fill="none" stroke="#fb7185" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/>
<rect x="250" y="884" width="438" height="72" rx="18" fill="#4c0519" stroke="#fb7185" stroke-width="3"/>
<text x="276" y="916" fill="#ffe4e6" font-family="Arial, sans-serif" font-size="22" font-weight="700">STOP: нет права, срока или anchor</text>
<text x="276" y="941" fill="#fda4af" font-family="Arial, sans-serif" font-size="19">вернуть вопрос owner</text>
</svg>

After

Width:  |  Height:  |  Size: 4.3 KiB