# ✨ Считать заголовок, темы и пересказ внешней моделью - **Тип:** 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`.