Audio Scribe Bot: быстрый Telegram-вход в рабочую платформу

У Audio Scribe есть workspace для спокойной работы, но первый контакт с материалом часто происходит не там. Голосовое остаётся после созвона, ссылка на видео приходит в переписке, скриншот нужно быстро показать, а мысль проще отправить сообщением, чем оформлять как задачу.

Audio Scribe Bot закрывает именно этот момент: он даёт быстрый Telegram-вход в Audio Scribe и принимает сырой материал там, где пользователю проще его отправить. Через него можно переслать голосовое, отправить аудио или видео, приложить фото, дать ссылку, задать вопрос по недавнему контексту, получить уведомление по напоминанию или передать результат дальше в workspace.

Для пользователя это выглядит как обычный чат: отправил материал, уточнил, что с ним сделать, получил ответ или сохранил заготовку для дальнейшей работы. Внутри бот связан с NestJS backend, очередями Redis/BullMQ, PostgreSQL, MinIO/S3-compatible storage, AI routing и общими сущностями: Files, notes, tasks, reminders, billing и analysis. Каждое входящее сообщение сначала распознаётся как тип события, а затем уходит в подходящий сценарий.

Что можно отправить

Бот не заставляет заранее раскладывать всё по формам и разделам. Он принимает те материалы, которые обычно уже есть под рукой в Telegram:

  • голосовые сообщения и аудиофайлы;
  • видео и видеосообщения;
  • YouTube/Vimeo-ссылки и другие URL, которые можно обсудить или разобрать как вопрос;
  • фотографии и альбомы как визуальный контекст;
  • текстовые вопросы, команды и уточнения по недавнему диалогу;
  • действия с напоминаниями через Telegram-уведомления и inline controls, если соответствующие возможности включены.

Как сейчас устроен routing

Главная идея routing — не заставлять пользователя заранее угадывать нужный режим. Раньше почти каждый media entrypoint сразу показывал статическое меню кнопок. Сейчас логика спокойнее и ближе к реальному чату:

  1. Бот получает сообщение и определяет тип входящих данных.
  2. Для аудио, видео и файлов он сначала даёт шанс file-session: если для материала есть понятные действия, backend может предложить применимый сценарий.
  3. Если статического действия не нужно или оно не подходит, входящее сообщение уходит в question-processing или video-processing.
  4. Результат возвращается текстом в Telegram и/или сохраняется как рабочий материал для дальнейшей работы в workspace.

Особенно это заметно на обычных URL. Generic links больше не стоит описывать как старое inline action prompt-меню. Чаще они идут в conversational/question pipeline: пользователь отправляет ссылку, затем человеческим языком спрашивает, что с ней сделать, или бот использует её как контекст для ответа.

Для YouTube/Vimeo есть отдельная ветка. Если intent явный, backend может:

  • запустить video-processing;
  • извлечь аудио;
  • скачать видео;
  • показать доступные качества;
  • использовать доступный transcript, если он есть;
  • передать результат дальше в транскрибацию или вопросный сценарий.

Пример: голосовое или аудио

Самый понятный сценарий — запись, которую не хочется переслушивать вручную. Пользователь отправляет голосовое или аудиофайл. Бот получает Telegram file id, создаёт или пытается создать file-session и передаёт тяжёлую обработку в очередь audio-processing.

Дальше backend скачивает файл, прогоняет транскрибацию через настроенный provider, сохраняет результат в базе и возвращает ответ. В чате появляется не просто технический статус, а рабочая основа, с которой можно продолжать. Для материала могут быть доступны:

  • полный текст;
  • summary;
  • thoughts или дополнительный разбор;
  • цитаты;
  • key takeaways;
  • заметки или рабочие заготовки для workspace.

Бот не обещает идеальную точность и не притворяется, что любой файл обработается одинаково. На результат влияют формат, качество записи, выбранный provider, лимиты и текущие настройки проекта.

Фото и альбомы: silent vision context

С картинками поведение тоже стало спокойнее. Фото и image batch используются как silent vision context: бот сохраняет визуальный контекст без inline buttons и без обязательного видимого summary.

Практический flow такой:

  1. Пользователь отправляет фото, скриншот или альбом.
  2. Бот сохраняет визуальный контекст.
  3. Следующим сообщением пользователь задаёт вопрос: «что здесь важно?», «перепиши текст», «найди ошибку на скриншоте», «что это за объект?».
  4. Вопрос уходит в AI routing уже с учётом последнего изображения или batch-контекста.

Такой UX меньше шумит в чате и лучше подходит для реальной переписки: не каждое фото требует немедленного ответа, иногда оно просто подготавливает контекст.

Контекстные вопросы

Ценность бота раскрывается не только в загрузке файлов, но и в продолжении разговора. Он умеет отвечать не только на одиночные сообщения, но и на вопросы с учётом недавнего ConversationContext и связанного материала. После записи встречи можно спросить:

  • «Какие решения приняли?»
  • «Что нужно сделать после встречи?»
  • «Какие аргументы приводил клиент?»
  • «Сохрани это как заметку для проекта»

После картинки можно спросить:

  • «Что на скриншоте сломано?»
  • «Сделай короткое описание»
  • «Вытащи текст и оформи списком»

Это не отдельный magic-режим, а нормальная маршрутизация в question-processing с контекстом из предыдущих сообщений и сохранённых объектов.

Рабочие сценарии

Разбор созвона

После созвона не всегда есть силы сразу открывать рабочую систему и раскладывать итоги по полочкам. Запись встречи можно отправить боту, получить транскрипт и первичный разбор, а затем перенести выводы в workspace: заметку, задачи, календарные пункты или напоминания.

Интервью и продуктовые исследования

Интервью редко заканчивается готовым документом. Чаще остаётся запись и набор важных фрагментов, которые легко упустить. После интервью удобно получить текстовую основу, выделить повторяющиеся проблемы, сохранить цитаты и продолжить разметку уже в Files/notes/tasks.

Подкасты, лекции и видео

Длинный контент трудно разбирать в один заход. Для подкастов, лекций и видео бот работает как быстрый способ стартовать обработку: отправить файл или ссылку, получить summary, задать уточняющие вопросы, а затем вернуться к материалу в workspace.

Напоминания и уведомления

Напоминания поддерживают one-shot и recurring-сценарии, паузу, возобновление, отмену и snooze. Delivery может идти через Telegram или ntfy. Но часть web/inline/polling возможностей управляется feature flags, поэтому в production конкретный набор кнопок и экранов может быть уже или шире в зависимости от настроек.

Биллинг

Биллинг разделяет два типа расхода:

  • секунды — для транскрибации;
  • генерации — для AI-ответов и анализа.

Пополнение может идти через Telegram Stars. При ошибках обработки предусмотрена логика возврата, чтобы не списывать баланс за задачу, которая не завершилась успешно.

Что работает под капотом

Простой чат держится на нескольких слоях платформы:

  • Backend API на NestJS принимает Telegram updates, управляет пользователями, billing, file-session, AI routing и сохранением результатов;
  • BullMQ/Redis держит очереди audio-processing, question-processing, video-processing, reminder-scanner и recurring-job-scanner;
  • PostgreSQL/Prisma хранит пользователей, анализы, файлы, заметки, задачи, напоминания, контекст и настройки;
  • MinIO/S3-compatible storage используется для файлов и generated artifacts;
  • AI routing может направлять разные задачи к AudioScribe, Google/Gemini, OpenAI, Anthropic, OpenRouter, SiliconFlow, Polza AI, Perplexity, local/OpenAI-compatible provider или AssemblyAI для transcription.

Есть и внутренний operator/admin слой: feature flags, audit, agent/workflow-разделы, мониторинг и настройки. Для обычного пользователя это не главный сценарий, но он объясняет, почему бот не является маленьким скриптом вокруг Telegram API.

Чего я не описываю как текущую пользовательскую возможность

Я не называю голосовые ответы отдельной актуальной настройкой пользователя. В текущем user-facing описании бот отвечает текстом, а voice replies не стоит подавать как активный самостоятельный режим.

Я также не привязываю статью к конкретному публичному username бота. Если username меняется или не подтверждён локальными материалами, лучше описывать продуктовый сценарий, а не заставлять читателя искать неактуальный аккаунт.

Почему бот нужен, если есть workspace

Telegram удобен там, где действие происходит на ходу: переслать голосовое, быстро кинуть ссылку, получить уведомление, уточнить вопрос по материалу. Без такого входа пользователь каждый раз должен специально переходить в workspace и оформлять материал вручную. С ботом первый шаг короче: отправить то, что уже есть, и дать системе понять, какой сценарий нужен дальше.

Workspace удобнее для спокойной работы: Files, заметки, задачи, календарь, напоминания, настройки и admin-часть. Бот — это вход и быстрый диалог. Workspace — место, где результаты перестают быть одноразовыми сообщениями и становятся рабочими материалами.


Это портфолио-описание Telegram-части Audio Scribe: без обещаний по SLA, точности или нагрузке, с честным разделением реализованного routing, feature flags и roadmap-ограничений.