Всем привет!
Недавно мы запустили бота, в котором воплощён образ Дмитрия Менделеева (очень важная личность для СИБУРа), в том числе внешность. Он может всякое. Например, рассказывать факты из области химии и науки, отвечать на любой рабочий вопрос и подсказывать правильное решение, рассказывать о СИБУРе и карьере в компании, помогать новым сотрудникам для адаптации — в общем, хороший инструмент для HR-целей.
Сосредоточимся на том, как он устроен внутри.
GPT и базы данных
Парадоксально, но часть с ИИ наиболее типовая, состоит она всего лишь из GPT, векторной базы данных с необходимой информацией и ловкости рук промпт-инжиниринга. База включает в себя базу Q&A для ответов на вопросы на сотрудников и соискателей, информацию про компанию, её продукты и проекты, а также внутренние аббревиатуры (своего рода пасхалка для сотрудников). Загруженная нами информация и тексты от пользователей преобразуются в эмбеддинги.
Эмбеддинг, который когда-то был сообщением пользователя, анализируется ботом с помощью контекстных функций, которые перехватывают все связанные с СИБУРом вопросы и ищут информацию в векторной базе. Если запрос пользователя не связан с компанией, то ответ создаётся через базовый GPT. Поэтому Дмитрию Менделееву можно задавать вопросы и о погоде, и о перспективах восстания машин, и о смысле жизни (42).
Инструкций по реализации подобной схемы чат-бота в интернете довольно много, но если у вас есть вопросы, мы с радостью ответим на них в комментариях. А пока перейдём к следующей части бота.
Интерактивный образ
То, что отличает НейроМенделеева от других GPT-ботов, — это голос и лицо с мимикой! Начнём с первого: голос мы сгенерировали в программе Eleven Labs. Мы сделали несколько вариантов тембров, скорости и интонаций, лучший в итоге выбрали коллегиально.
Лицо создано с помощью инструмента MetaHuman в рамках Unreal Engine. На основе портрета из интернета создавался 3D-слепок из интернета, затем он экспортировался в Unreal Engine 5, где с использованием ключевых точек слепка мы создали новую 3D-модель с текстурами и скелетом анимации (ригом).
После этого последний слепок мы перенесли в Blender, где добавили характерный волосяной покров Дмитрия Ивановича. Затем ассет волос возвращался в Unreal Engine, где готовая модель полностью анимировалась.
Сама анимация происходит по принципу захвата ключевых точек с видео. Для этого требуется калибровочное видео — прототипом может выступать любой человек. В конце получается последовательность кадров, которая переносится
в Premiere Pro, где видео склеивается, а голос совмещается
с изображением.
Что в итоге
А итоговый Дмитрий Иванович выглядит как-то так:
Оценить это всё можно вот здесь, а задать нам дополнительные вопросы — в комментариях! Если что, мы рады и помочь, и ваши советы послушать :)