Files
transcriber/tasks/items/llm-insights-adapter.md
T
av d2c85af80a tasks: целевая картина пересобрана — три цели, тринадцать задач, сдвинутые границы
- паспорт: сервис объявлен архивом с бессрочным хранением записей и текстов,
  машинная вычитка расшифровки внутри границ, приложение — основной вход;
  добавлены две границы: не файловое хранилище общего назначения и не биллинг;
- заведены цели upload-reliability, user-settings, usage-stats и тринадцать
  задач; очередь пересобрана — сперва починки, затем разведки о хранилище,
  затем доступ и владелец, и только потом экраны;
- архитектура: четыре новых открытых вопроса — приём большого файла, учёт
  расхода, срок хранения, потолок шести часов.
2026-08-11 10:05:22 +03:00

3.7 KiB

Считать заголовок, темы и пересказ внешней моделью

  • Тип: feature
  • Категория: Очередь
  • Зачем: Расшифровка доходит стеной текста: ни заголовка, ни тем, ни пересказа сервис не считает, и клиента языковой модели в нём нет.
  • Теги: goal:text-insights

Двигает пункты 1, 3, 4 и 5 «Завершения» цели: у готовой записи появляются заголовок (1), пересказ (3) и темы (4), а отказ и молчание модели не роняют задачу (5).

Здесь появляется пятая внешняя зависимость — языковая модель с OpenAI-совместимым интерфейсом за шлюзом bifrost, — и текст расшифровки уходит ещё на одну сторону.

Затрагивает

  • internal/contract — интерфейс расчёта выводов из текста;
  • новый адаптер OpenAI-совместимого клиента и подставной адаптер для тестов;
  • конвейер: шаг после transcribe, его состояние и место в цепочке;
  • колонки заголовка, тем и пересказа у задачи и их миграция;
  • контракт чтения записи: новые поля ответа;
  • секция конфигурации: адрес шлюза, имя модели, ключ;
  • docs/architecture.md — внешняя зависимость и чем она отказывает;
  • docs/security.md — текст расшифровки уходит на внешний сервис.

Критерии приёмки

  • Дошедшая до done запись несёт заголовок в одну строку, список тем и пересказ в два-три предложения. Оракул — тест конвейера на подставной модели: три поля заполнены, заголовок без переносов строки.
  • Отказ и молчание модели не роняют задачу: текст доходит до человека без выводов. Оракул — тест с моделью, возвращающей ошибку и таймаут: задача в done, текст на месте, в журнале одна запись уровня WARN.
  • Уровень, выключенный в настройках пользователя, у модели не запрашивается, а настройка берётся та, что действовала на приёме записи. Оракул — тест с выключенными темами и тест с настройкой, изменённой после приёма: вызовов за темами нет в обоих случаях.
  • Ключ и адрес шлюза не попадают ни в журнал, ни в ответ. Оракул — тест шага с перехваченным журналом.

Рамки

Литературный текст сюда не входит — это literary-text-level. Своей модели не держим и промптов в код не зашиваем сверх необходимого. Прогон на боевом ключе ради проверки запрещён: подставной адаптер. Обращение к модели платное, и объём расхода учитывает usage-accounting.