распознавание: большие раздачи размечаются целиком, файлы вне плана видны
- модель адресует файл номером строки нашего списка вместо копии пути: ответ на 180 файлов вместо ~15k токенов стоит ~2.5k, усечение сотней снято, max_files и max_tokens ушли в [recognition], correction-ретрай больше не переприсылает список - негодный элемент ответа отбрасывается поимённой причиной, обрыв генерации и отказ по размеру запроса названы своими причинами, покрытие плана блокирует авто только при непокрытом видеофайле - раскладка показывает все файлы раздачи со строками «не в плане» и полным порядком сортировки; снимок списка файлов лёг рядом с планом (миграция 0012)
This commit is contained in:
@@ -27,7 +27,11 @@ type Recognition struct {
|
||||
Reasons string `db:"reasons"` // JSON-массив строк
|
||||
RawLLM sql.NullString `db:"raw_llm"`
|
||||
Plan sql.NullString `db:"plan"` // JSON recognize.Plan
|
||||
CreatedAt string `db:"created_at"`
|
||||
// SourceFiles — снимок списка файлов раздачи на момент распознавания
|
||||
// (JSON-массив {path,size} в порядке нумерации промпта). NULL — запись
|
||||
// старше миграции 0012: снимка нет, полнота раскладки не гарантирована.
|
||||
SourceFiles sql.NullString `db:"source_files"`
|
||||
CreatedAt string `db:"created_at"`
|
||||
}
|
||||
|
||||
// ReasonList разбирает JSON-поле reasons в срез строк.
|
||||
@@ -71,12 +75,13 @@ func (s *Store) CreateRecognition(ctx context.Context, r *Recognition, reasons [
|
||||
const q = `
|
||||
INSERT INTO recognition
|
||||
(id, download_id, attempt_no, is_current, media_type, title, original_title,
|
||||
year, provider, provider_id, confidence, reasons, raw_llm, plan, created_at)
|
||||
VALUES (?, ?, ?, 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`
|
||||
year, provider, provider_id, confidence, reasons, raw_llm, plan, source_files,
|
||||
created_at)
|
||||
VALUES (?, ?, ?, 1, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`
|
||||
if _, err := tx.ExecContext(ctx, q,
|
||||
r.ID, r.DownloadID, nextAttempt, r.MediaType, r.Title, r.OriginalTitle,
|
||||
r.Year, r.Provider, r.ProviderID, r.Confidence, string(reasonsJSON), r.RawLLM, r.Plan,
|
||||
FormatTime(Now())); err != nil {
|
||||
r.SourceFiles, FormatTime(Now())); err != nil {
|
||||
return "", fmt.Errorf("insert recognition: %w", err)
|
||||
}
|
||||
if err := tx.Commit(); err != nil {
|
||||
|
||||
Reference in New Issue
Block a user