распознавание: большие раздачи размечаются целиком, файлы вне плана видны

- модель адресует файл номером строки нашего списка вместо копии пути: ответ
  на 180 файлов вместо ~15k токенов стоит ~2.5k, усечение сотней снято,
  max_files и max_tokens ушли в [recognition], correction-ретрай больше не
  переприсылает список
- негодный элемент ответа отбрасывается поимённой причиной, обрыв генерации и
  отказ по размеру запроса названы своими причинами, покрытие плана блокирует
  авто только при непокрытом видеофайле
- раскладка показывает все файлы раздачи со строками «не в плане» и полным
  порядком сортировки; снимок списка файлов лёг рядом с планом (миграция 0012)
This commit is contained in:
av
2026-09-02 08:54:58 +03:00
parent 01ac0430a9
commit fc9a3b4066
26 changed files with 1978 additions and 201 deletions
+20 -7
View File
@@ -1,18 +1,31 @@
{{define "layout_widget"}}
{{/* Полнота перечня названа явно: молчаливый показ неполного списка как
полного неотличим от честного «файлов вне плана нет». */}}
{{if .SourceUnknown}}
<p class="tbl-note is-warn">Список файлов раздачи не сохранён — эта загрузка распознана до того,
как система стала его хранить. Строки построены по плану: файлы, которых в плане нет,
здесь не видны, и полнота не гарантирована. Повторное распознавание из ревью вернёт полный список.</p>
{{else if lt .Planned .Total}}
<p class="tbl-note">В план распознавания попало {{.Planned}} файлов из {{.Total}} —
остальные показаны ниже пометкой «не в плане».</p>
{{end}}
<div class="table-wrap">
<table class="tbl">
<thead><tr><th class="cell-num">#</th><th>файл источника → раскладка</th><th>роль</th></tr></thead>
<thead><tr>
<th class="cell-num" title="номер файла в списке распознавания — им же его адресует ответ модели">#</th>
<th>файл источника → раскладка</th><th>роль</th>
</tr></thead>
<tbody>
{{range $i, $f := .}}
<tr class="{{if $f.Ignored}}ignored{{end}}">
<td class="cell-num">{{add $i 1}}</td>
{{range .Rows}}
<tr class="{{if .Ignored}}ignored{{end}}">
<td class="cell-num">{{if .Num}}{{.Num}}{{end}}</td>
<td>
<div class="fname">{{$f.Src}} <span class="arr"></span></div>
<div class="fname">{{.Src}} <span class="arr"></span></div>
<div class="link-to">
{{if $f.Linked}}<span class="src">{{$f.Dst}}</span>{{else}}<span class="no-link">не разложен</span>{{end}}
{{if .Linked}}<span class="src">{{.Dst}}</span>{{else if .Unplanned}}<span class="no-link">модель не разметила этот файл</span>{{else}}<span class="no-link">не разложен</span>{{end}}
</div>
</td>
<td><span class="badge {{if $f.Ignored}}st-cancelled{{else}}st-done{{end}}">{{$f.RoleLabel}}</span></td>
<td><span class="badge {{if .Unplanned}}st-review{{else if .Ignored}}st-cancelled{{else}}st-done{{end}}">{{.RoleLabel}}</span></td>
</tr>
{{end}}
</tbody>