- порядок беклога и роадмапа назначен слоями: проверки, которым можно верить → долги входа → владелец записи и контракт API → конвейер под тестами → приложение и возможности поверх; у каждого движения записана причина; - заведены восемь задач под пункты «Завершения», которых не закрывала ни одна запись, — цель any-audio-source была без задач вовсе; - у четырёх задач сняты критерии, требовавшие того, что делает задача ниже по очереди; исправлены ссылки на несуществующий repo/sqlite и на отменённую разведку об очереди.
3.6 KiB
3.6 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. Выборочность по
настройкам пользователя тоже: здесь считаются все уровни, а выключать их учит
settings-applied-in-pipeline. Своей модели не
держим и промптов в код не зашиваем сверх необходимого. Прогон на боевом ключе
ради проверки запрещён: подставной адаптер. Обращение к модели платное, и
объём расхода учитывает usage-accounting.