Мультимодальный AI Ассистент в Telegram: Как это работает?

Вот уже больше полутора лет генеративный искусственный интеллект (ИИ) не даёт покоя не только разработчикам, но и, порой далёким от цифрового мира, пользователям. Для одних — ИИ не более чем игрушка или развлечение, для других же — неотъемлемая часть рабочего процесса. Как я уже говорил в одной из предыдущих статей, считаю генеративный ИИ следующей ступенью технологической эволюции, новым техноукладом, и очередным успехом в автоматизации труда некоторых профессий, однако, речи о замене нас с вами быть не может. Давайте теперь поговорим об этой самой автоматизации: чем именно и в каком виде ИИ может нам помочь?

Развитие идеи AI ассистента

Задаваясь этим вопросом: «Чем именно и как ИИ может помочь обычному человеку?», мне пришла идея создания AI ассистента (AI от англ. artificial intelligence) . Этакий секретарь, которому можно делегировать небольшие задачки по обработке различного вида информации. Информация эта, в свою очередь, имеет несколько модальностей: текст (PDF, plain text) , звук (голос) , визуал (видео, фото) . Несмотря на то, что в большей степени генеративный ИИ стал популярен именно благодаря текстовой модальности (ChatGPT) , существует гораздо более широкий спектр его применения и на другие модальности, указанные выше. Например, понимание и извлечение информации из PDF документов, коммуникация с пользователем посредством голоса, ответы на вопросы и суммаризация на основе фото или видео. Всё это я решил объеденить в одном месте и реализовать мультимодальный AI ассистент.

Модальности, которые должен поддерживать AI ассистент
Модальности, которые должен поддерживать AI ассистент

После понимания концепции ассистента, возник вопрос об интерфейсе, через который пользователь мог бы взаимодействовать с ним. Поскольку большинство населения на планете на сегодняшний день использует смартфоны, в частности мессенджеры, для межличностной коммуникации, было принято решения сконцентрироваться на интерфейсе в виде «чата». Платформой для реализации такого интерфеса послужил Telegram, поскольку он не только поддерживает все три перечисленные модальности (текст и документы, голос, фото и видео) , но и позволяет относительно просто реализовывать боты с широким функционалом. Более того, интерфейс мессенджера знаком многим пользователем, поэтому к нему не надо будет привыкать.

Техническая реализация: общая картина

Техническая реализация AI ассистента логически разделена на три уровня: (1) уровень интерфейса и логики бота (telegram) , (2) уровень логики учёта пользователей (backend) и (3) уровень базы данных. При этом, основной функционал содержится в уровне (1), там происходит не только контроль за ходом диалога и навигация между различными режимами работы, но и предварительная обработка входных данных, а также работа со сторонними API (напр. OpenAI) . Второй (2) уровень позволяет AI ассистенту запоминать тех, кто с ним коммуницирует. Это необходимо в первую очередь для контроля над возможностью отправки неограниченного числа сообщение и любого другого нежелательного использования. Третий (3) уровень помогает второму в хранении иноформации о пользователях, в частности их внутренний идентификатор и число отправленных сообщений, а также баланс «токенов» — внутренней единицы измерения информации. Стоит отметить, что как история сообщений так и любые персональные данные не хранятся в AI ассистенте.

Уровни приложения AI ассистента
Уровни приложения AI ассистента

Поговорим более детально о самом интересном уровне AI ассистента, а именно о первом из них. Начнём с того, что ассистент поддерживает следующие режимы взаимодействия (Вход (пользователь) : текст, выход (AI ассистент)) .

Матрица совместимости входных и выходных данных (вход — строки, выход — столбцы, модель — ячейка)
Матрица совместимости входных и выходных данных (вход — строки, выход — столбцы, модель — ячейка)

Отдельно стоит упомянуть о «понимании» видео и PDF документов т. к. они устроены примерно одинаково, этакий Retrieval Augmented Generation (RAG) или Knowledge Injection, если хотите. Итак, AI ассистент, обрабатывая сообщение, ищет ссылку на YouTube. Если ссылка найдена, то бот «читает» название и описание видео, а также получает его транскрипцию в случае, если она доступна. Вся эта информация используется как контекст к сообщению‑инструкции (промпт) , которое отправил пользователь. Контекст ограничен числом токенов, которое поддерживает та или иная языковая модель на входе. В будущем, конечно, понимание видео будет построено более нативным способом, например, через разбиение видео на скриншоты и обработке их по отдельности. Таким образом, это поможет расширить функциональность выйдя за границы YouTube и обрабатывать даже обычные видео без метаданных.

Понимание PDF документов построено следующим образом. Каждый документ проверяется на соответствие заявленному формату, а затем документ «парсится». Если PDF оказался скан‑копией или фотокопией, то парсинг будет неудачным и как и выходной результат работы модели (в таких случаях рекомендуется отправлять изображения с текстом‑инструкцией — vision) . В случае успешного парсинга, текст документа подаётся на вход языковой модели в качестве контекста и также обрезается в зависимости от количества токенов, которые поддерживает конкретная модель.

Пример общего принципа по "просмотру" YouTube и "пониманию" PDF
Пример общего принципа по "просмотру" YouTube и "пониманию" PDF

Примеры использования

Давайте рассмотрим несколько удобных примеров использования, которые я применяю практически каждый день.

Первый пример (Machine Translation Text‑to‑Voice): перевести фразу с русского на немецкий язык (голосовой вывод) .

Первый пример (Machine Translation Text-to-Voice)
Первый пример (Machine Translation Text-to-Voice)

Второй пример (Information Retrieval from PDF): вкратце рассказать (обобщить) о чём научная статья. Изначально, статья на английском, но мы просим нашего ассистента выдать ответ по русски.

Второй пример (Information Retrieval from PDF)
Второй пример (Information Retrieval from PDF)

Третий пример (Vision): интерпретация графика с изображения, взятого из научной статьи.

Третий пример (Vision)
Третий пример (Vision)

Четвёртый пример (Video Summarization): просим AI ассистента сделать краткий пересказ длинного видео с YouTube.

Четвёртый пример (Video Summarization)
Четвёртый пример (Video Summarization)

Пятый пример (Image Generation): просим AI ассистента сгенерировать свой же логотип.

Пятый пример (Image Generation)
Пятый пример (Image Generation)

Выводы и важные ссылки

Итак, AI ассистент это, безусловно, полезная штука. Я бы сказал, при должном улучшении они даже частично заменят традиционные поисковые системы (это уже происходит). Эта тема перспективна не только в быту, но и в бизнесе, например, при разработке корпоративных поисковых систем, баз знаний или B2C продуктов.

Надеюсь, вам понравилась данная статья, все важные ссылки прикрепляю снизу:

Поделитесь в комментариях своими юз-кейсами генеративного ИИ!

Начать дискуссию