Вот уже больше полутора лет генеративный искусственный интеллект (ИИ) не даёт покоя не только разработчикам, но и, порой далёким от цифрового мира, пользователям. Для одних — ИИ не более чем игрушка или развлечение, для других же — неотъемлемая часть рабочего процесса. Как я уже говорил в одной из предыдущих статей, считаю генеративный ИИ следующей ступенью технологической эволюции, новым техноукладом, и очередным успехом в автоматизации труда некоторых профессий, однако, речи о замене нас с вами быть не может. Давайте теперь поговорим об этой самой автоматизации: чем именно и в каком виде ИИ может нам помочь?
Развитие идеи AI ассистента
Задаваясь этим вопросом: «Чем именно и как ИИ может помочь обычному человеку?», мне пришла идея создания AI ассистента (AI от англ. artificial intelligence). Этакий секретарь, которому можно делегировать небольшие задачки по обработке различного вида информации. Информация эта, в свою очередь, имеет несколько модальностей: текст (PDF, plain text), звук (голос), визуал (видео, фото). Несмотря на то, что в большей степени генеративный ИИ стал популярен именно благодаря текстовой модальности (ChatGPT), существует гораздо более широкий спектр его применения и на другие модальности, указанные выше. Например, понимание и извлечение информации из PDF документов, коммуникация с пользователем посредством голоса, ответы на вопросы и суммаризация на основе фото или видео. Всё это я решил объеденить в одном месте и реализовать мультимодальный AI ассистент.
После понимания концепции ассистента, возник вопрос об интерфейсе, через который пользователь мог бы взаимодействовать с ним. Поскольку большинство населения на планете на сегодняшний день использует смартфоны, в частности мессенджеры, для межличностной коммуникации, было принято решения сконцентрироваться на интерфейсе в виде «чата». Платформой для реализации такого интерфеса послужил Telegram, поскольку он не только поддерживает все три перечисленные модальности (текст и документы, голос, фото и видео), но и позволяет относительно просто реализовывать боты с широким функционалом. Более того, интерфейс мессенджера знаком многим пользователем, поэтому к нему не надо будет привыкать.
Техническая реализация: общая картина
Техническая реализация AI ассистента логически разделена на три уровня: (1) уровень интерфейса и логики бота (telegram), (2) уровень логики учёта пользователей (backend) и (3) уровень базы данных. При этом, основной функционал содержится в уровне (1), там происходит не только контроль за ходом диалога и навигация между различными режимами работы, но и предварительная обработка входных данных, а также работа со сторонними API (напр. OpenAI). Второй (2) уровень позволяет AI ассистенту запоминать тех, кто с ним коммуницирует. Это необходимо в первую очередь для контроля над возможностью отправки неограниченного числа сообщение и любого другого нежелательного использования. Третий (3) уровень помогает второму в хранении иноформации о пользователях, в частности их внутренний идентификатор и число отправленных сообщений, а также баланс «токенов» — внутренней единицы измерения информации. Стоит отметить, что как история сообщений так и любые персональные данные не хранятся в AI ассистенте.
Поговорим более детально о самом интересном уровне AI ассистента, а именно о первом из них. Начнём с того, что ассистент поддерживает следующие режимы взаимодействия (Вход (пользователь): текст, выход (AI ассистент)).
Отдельно стоит упомянуть о «понимании» видео и PDF документов т.к. они устроены примерно одинаково, этакий Retrieval Augmented Generation (RAG) или Knowledge Injection, если хотите. Итак, AI ассистент, обрабатывая сообщение, ищет ссылку на YouTube. Если ссылка найдена, то бот «читает» название и описание видео, а также получает его транскрипцию в случае, если она доступна. Вся эта информация используется как контекст к сообщению‑инструкции (промпт), которое отправил пользователь. Контекст ограничен числом токенов, которое поддерживает та или иная языковая модель на входе. В будущем, конечно, понимание видео будет построено более нативным способом, например, через разбиение видео на скриншоты и обработке их по отдельности. Таким образом, это поможет расширить функциональность выйдя за границы YouTube и обрабатывать даже обычные видео без метаданных.
Понимание PDF документов построено следующим образом. Каждый документ проверяется на соответствие заявленному формату, а затем документ «парсится». Если PDF оказался скан‑копией или фотокопией, то парсинг будет неудачным и как и выходной результат работы модели (в таких случаях рекомендуется отправлять изображения с текстом‑инструкцией — vision). В случае успешного парсинга, текст документа подаётся на вход языковой модели в качестве контекста и также обрезается в зависимости от количества токенов, которые поддерживает конкретная модель.
Примеры использования
Давайте рассмотрим несколько удобных примеров использования, которые я применяю практически каждый день.
Первый пример (Machine Translation Text‑to‑Voice): перевести фразу с русского на немецкий язык (голосовой вывод).
Второй пример (Information Retrieval from PDF): вкратце рассказать (обобщить) о чём научная статья. Изначально, статья на английском, но мы просим нашего ассистента выдать ответ по русски.
Третий пример (Vision): интерпретация графика с изображения, взятого из научной статьи.
Четвёртый пример (Video Summarization): просим AI ассистента сделать краткий пересказ длинного видео с YouTube.
Пятый пример (Image Generation): просим AI ассистента сгенерировать свой же логотип.
Выводы и важные ссылки
Итак, AI ассистент это, безусловно, полезная штука. Я бы сказал, при должном улучшении они даже частично заменят традиционные поисковые системы (это уже происходит). Эта тема перспективна не только в быту, но и в бизнесе, например, при разработке корпоративных поисковых систем, баз знаний или B2C продуктов.
Надеюсь, вам понравилась данная статья, все важные ссылки прикрепляю снизу:
AI ассистент в Telegram: https://t.me/gpt_rubq_bot
Поддержка в Telegram: https://t.me/ai_support_24
Официальный сайт проекта: https://gpt.perevalov.com/
Поделитесь в комментариях своими юз-кейсами генеративного ИИ!