Задача
В длинных записях — интервью, совещаниях, лекциях, созвонах — есть факты, которые трудно найти. Пересматривать два часа ради одной фразы долго. Пересказ быстрый, но его нельзя проверить: неизвестно, что модель упустила или додумала.
Нужен был не пересказ получше, а ответ, которому можно быстро поверить: только по записи, с точным моментом для каждого пункта и проверкой в один клик. «Об этом в интервью не говорилось» — тоже допустимый ответ. Демо построено на публичном двухчасовом интервью основателя amoCRM.
Объём первой версии
- Вошло
- Одна запись с вычитанной расшифровкой. Вопросы своими словами и подсказки для быстрого старта. Ответ, который появляется по мере генерации, с таймкодами, на которые он опирается. Карточки доказательств с кадром и началом реплики. Плеер с нужной секунды. Защита и суточные лимиты для публичного демо.
- Не вошло
- Загрузка своих записей, автоматическая расшифровка, учётные записи, поиск по нескольким записям и формальный бенчмарк точности. Одной хорошо подготовленной записи достаточно, чтобы показать сам принцип проверки; остальное — решения для следующих версий.
Что сделано
- ВопросСвоими словами или из подсказок. Поиск идёт по смыслу, а не по совпадению слов.
- ПоискВопрос сравнивается по смыслу с 88 фрагментами расшифровки; 15 ближайших уходят модели.
- ОтветМодель отвечает только по этим фрагментам и в конце перечисляет таймкоды. Если тема не обсуждалась, она так и говорит.
- ДоказательствоКаждый таймкод становится карточкой: кадр видео на этой секунде и начало реплики, которая с неё начинается.
- ВидеоКлик по карточке или таймкоду в тексте открывает плеер на этой секунде.
Моя роль
- Сделано мной
- CORTEX — целиком мой проект: продуктовая и техническая архитектура, поиск и правила ответа, интерфейс ответов с таймкодами, решения о выпуске и релизы.
- С AI-агентами
- Последние релизы — новый интерфейс, карточки с кадрами, исправления таймкодов, новая защита — реализованы с AI-агентами: я выбирал варианты, задавал ограничения, проверял код, запускал тесты и выпускал релизы.
- Не моё
- Само интервью — публичная запись, использованная как демо-контент.
Ключевые решения
- Файловый индекс вместо векторной базы данных
- Первая версия работала на векторной базе данных — для одной записи из 88 фрагментов это лишняя инфраструктура. Теперь индекс — два файла в образе с проверкой хеша при старте. Перед переключением 30 контрольных вопросов дали на обеих версиях одинаковый первый результат и те же 15 фрагментов. Память API — с ~242 до 45 МиБ, образ — с 1,08 ГБ до 254 МБ.
- Точное совпадение вместо «ближайшего»
- Текст карточки ищется по точному времени начала реплики. Поиск по ближайшей секунде отвергнут: в 14 местах записи на одну секунду приходятся две реплики. Без точного совпадения карточка показывает нейтральную плитку, а ссылка на видео работает.
- Доказательства подготовлены заранее
- Из шести способов показать кадр и текст выбран самый простой: заранее подготовленный справочник начал реплик и 440 маленьких кадров — меньше 1 МБ. Публикуются только первые слова реплик, а не вся расшифровка.
- Собственная защита вместо внешней капчи
- Прежняя капча пропускала запросы при сбое провайдера. Её заменила проверка ALTCHA внутри API до любого платного вызова модели — с параметрами, уже проверенными в RISK.
Проверка
- Модульные и контрактные тесты интерфейса: извлечение и дедупликация таймкодов, поиск доказательств, шаги статуса.
- Браузерные тесты воспроизводят записанные реальные ответы: карточки, попиксельное сравнение кадров с видео, плеер — на компьютере и телефоне.
- Защиту проверили от начала до конца на имитации провайдера модели, без платных вызовов.
- Приёмка на рабочем сайте 4 октября 2026 года: реальный вопрос прошёл всю цепочку — защита, ответ, таймкоды, видео — примерно за десять секунд.
Статус
CORTEX публичен с весны 2026 года. Текущая архитектура — статический фронтенд и небольшой API с файловым индексом — работает с августа 2026; доказательства переработаны в сентябре, защита заменена в октябре. Лимиты: 5 вопросов в сутки на браузер и 15 на сетевой адрес. Это публичное демо на одном интервью, а не коммерческий сервис.
Технологии
- Фронтенд
- Nuxt 3, Vue 3, TypeScript; статическая сборка за nginx
- API
- Python, FastAPI, потоковый вывод (SSE), SQLite для лимитов и одноразовых доказательств
- Поиск
- Нарезка LlamaIndex, эмбеддинги bge-m3, файловый индекс из 88 векторов, 15 ближайших по косинусной близости
- AI
- Один потоковый вызов LLM через OpenRouter на вопрос, ответ только по найденным фрагментам
- Доказательства
- Начала реплик и 440 кадров, заранее подготовленные из расшифровки и видео
- Инфраструктура
- Docker Compose за nginx; сборка и рабочий сервер разделены