Наши работы: что мы создали
Mesterséges Intelligencia Központ Kft. является компанией по разработке ПО из Будапешта. Что мы создали: ERP-систему с выставлением счетов и CRM, программу псевдонимизации юридических документов, синхронизатор данных, систему управления парком школьных ноутбуков и 3D-игру с живым ИИ-комментатором.
Каждая описанная здесь система существует и работает; если мы ещё вводим систему в эксплуатацию, мы об этом говорим. Названия наших клиентов и продуктов мы не раскрываем. Если вам нужна система, которой здесь нет, в конце страницы мы перечисляем и то, что ещё мы создаём.
Система управления предприятием с выставлением счетов и CRM
Задача. Повседневная работа венгерской малой или средней компании обычно разбросана по разным инструментам: таблицам, электронной почте, отдельной программе для выставления счетов и интерфейсу банка. Целью была единая система, построенная вокруг собственных процессов компании, которой могут пользоваться несколько организаций, не видя данных друг друга.
Решение. Мы разрабатываем модульную систему управления предприятием (ERP), которая обслуживает несколько организаций-клиентов:
- календарь, задачи и утверждения, фоновые задания;
- массовые рассылки и встроенный почтовый ящик для существующих почтовых учётных записей;
- продажи и CRM, закупки, организация обучения, а также HR с анализом резюме с помощью искусственного интеллекта;
- финансы: исходящие и входящие счета, банк, пакеты платёжных поручений, расчёт заработной платы и главная книга;
- отчёты и графики по любой таблице и закреплённый сбоку экрана ИИ-ассистент, которым можно управлять и голосом.
Счета, данные о которых передаются в венгерскую налоговую службу (NAV), выставляются через программу выставления счетов, с предварительным просмотром PDF и сторнированием. Банковская сверка сопоставляет поступление со счётом по назначению платежа, номеру счёта или расчётному счёту плательщика и отмечает оплату в счёте; входящие счета, полученные из NAV, после утверждения попадают в пакеты платёжных поручений.
В модуле CRM партнёров можно объединять в цепочки, у контактных лиц есть роли в принятии решений, процессы продаж движутся по канбан-доске, смену этапов можно отследить, к задачам прилагаются напоминания, хронологию работы с партнёром обобщает искусственный интеллект, а почта и календарь синхронизируются с карточкой партнёра.
Один вход открывает доступ ко всем модулям: центральная аутентификация работает с паролем и с учётными записями Google, Microsoft, Apple и GitHub, с двухфакторным входом, организациями, приглашениями и правами доступа.
Результат. Система в реальной эксплуатации в двух организациях; выставление счетов запущено в работу, модуль CRM находится на стадии внедрения. Этот опыт мы применяем в разработке ПО для бизнеса.
Анонимизатор юридических документов
Задача. Договор, процессуальный документ или судебное решение часто нужно передать другим или обработать с помощью искусственного интеллекта, но персональные данные не должны попасть наружу. Скрывать их вручную медленно, и при этом легко ошибиться: имя встречается и в склонённой форме, и в виде инициалов, и в подписи.
Решение. Приложение для Windows, которое полностью работает на собственном компьютере пользователя и псевдонимизирует венгерские юридические документы (PDF и Word):
- находит все формы имён участников: склонённые формы, девичью фамилию и фамилию в браке, инициалы, подпись заглавными буквами и имя в адресе электронной почты;
- остальные имена, организации и адреса находит работающая локально модель распознавания венгерских имён: в нашем измерении она была на 10–13 пунктов точнее генеративных моделей;
- предлагает четыре вида замены, в том числе метки процессуальных ролей и пронумерованные обозначения, а перед сохранением показывает лист проверки;
- перезаписывает файл с сохранением формата, вместе с колонтитулами, сносками, комментариями и метаданными.
Результат. Готовый файл повторно проверяет вторая программная библиотека, и если в нём осталось хотя бы одно исходное имя, программа не сохраняет файл. Приложение устанавливается на компьютер, и данные этот компьютер не покидают.
Браузерная 3D-игра с живым ИИ-комментатором
Задача. Корпоративный сайт обычно рассказывает, что компания разбирается в искусственном интеллекте, а мы хотели это показать. Игра должна была работать и на выставочном стенде, и на сайте, для деловых посетителей, которые не являются геймерами: без обучения, регистрации и кнопки «Старт». А ИИ во время игры должен был по-настоящему реагировать на игрока, а не выбирать наугад заранее написанные фразы.
Решение. Мы создали бесконечный раннер, в котором игрок и есть T-rex. Сцену в реальном времени рисует WebGL с помощью three.js, прямо в браузере; для управления нужна одна кнопка. Важные моменты (потерю жизни, рекорд, новый уровень, новый пейзаж, перепрыгнутую пропасть) игра отправляет в сводном отчёте нашему ИИ-ассистенту, комментатору на основе большой языковой модели, который на этой основе в реальном времени обращается к игроку. Комментатор только говорит: в ход игры он не вмешивается.
Результат.
- На важные моменты комментарий появляется примерно за 1–2 секунды.
- ИИ-ассистент говорит на 14 языках, всегда на языке игрока, и на всех языках обращается на «вы».
- На вопрос, который набирает игрок, он отвечает всегда, а в конце забега подводит итог раунда, приводя как минимум два числа.
- На компьютере и на телефоне работает одна и та же игра.
- Игра запущена: любой желающий может опробовать её на нашей главной странице.
Те же знания мы применяем в наших работах по разработке игр и по разработке ИИ-чат-ботов и ИИ-агентов.
Конвейер графики на основе ИИ для мира игры
Задача. Игре нужно много графических элементов в едином стиле: деревья, кусты, скалы, пейзажи, препятствия. Каждый из них нужно сделать в реальном масштабе, с прозрачным фоном и точным контуром, потому что на этом построена и проверка столкновений в игре. Вручную это медленно, а простая генерация изображений не даёт единого стиля и размера.
Решение. В нашу панель администратора мы встроили конвейер из шести шагов:
- Заказ: краткое описание темы.
- План. Языковая модель пишет план мира: настроение, цветовую палитру, погоду, виды объектов и инструкции для рисования.
- Листы стиля: отобранные образцы фиксируют стиль и масштаб; рисующая модель получает их как референсы.
- Рисование. Генеративная модель изображений рисует объекты, по одному листу на каждый вид, несколько листов параллельно; машина вырезает с листа каждый объект по отдельности, проверяет прозрачность и полноту контура, масштабирует до запланированной высоты, подгоняет цвета под палитру и создаёт карту нормалей для освещения в игре.
- Отбор: решение о принятии принимает человек.
- Выпуск: в игру попадают только выпущенные изображения.
Планировщик сам изготавливает сохранённый заказ в заданном временном окне, в пределах заранее установленного лимита вызовов ИИ; отбор и выпуск и в этом случае остаются ручными.
Результат. Пейзажи и препятствия игры созданы на этом конвейере. Рисунок, иконка и форма столкновения препятствия берутся из одних и тех же производственных данных: столкновение следует попиксельно точному контуру изображения. Без утверждения человеком в игру не попадает ничего.
Измерение размера в функциональных точках с помощью искусственного интеллекта
Задача. Предложение на разработку ПО стоит ровно столько, насколько точна оценка, лежащая в его основе. Оценка в часах зависит от того, кто оценивает, и от команды, поэтому два предложения трудно сравнить, а заказчик не видит, за что именно разработчик называет цену.
Решение. Функциональный размер разработки мы измеряем в функциональных точках COSMIC (ISO/IEC 19761). Метод считает перемещения данных: ввод (Entry), вывод (Exit), чтение (Read) и запись (Write). Каждое из них даёт одну функциональную точку, поэтому размер не зависит ни от технологии, ни от того, кто ведёт разработку. Для измерения мы создали собственный рабочий процесс с поддержкой ИИ:
- мы разбиваем разработку на группы функций и описываем каждую по единому шаблону: цель, участники, данные, функции, функции ИИ и то, что в неё не входит;
- каждую группу функций несколько языковых моделей подсчитывают по нескольку раз; прогоны формируют общий словарь названий участников и данных, а их разброс показывает неопределённость;
- этап сверки следит за тем, чтобы каждый функциональный процесс учитывался в проекте ровно один раз, даже если он встречается в нескольких описаниях;
- существующую систему мы описываем отдельно, поэтому в размер входит только новая часть;
- измерение отмечает и то, что функциональный размер не выражает: индивидуальный интерфейс, графику, работу в реальном времени, сложный алгоритм, миграцию данных, нефункциональные требования;
- автоматические объединения можно вручную пересмотреть, а готовое измерение можно зафиксировать как неизменяемую версию, которая становится основой договора.
Результат. Предложение и график работ составляются на основе измеренного размера, и два предложения можно сравнить по одной шкале. Размер представляет собой не оценку «на глаз», а детальный, прослеживаемый перечень: какой процесс, с какими перемещениями данных, сколько функциональных точек он даёт. О методе ценообразования мы пишем на странице Ценообразование.
Синхронизатор данных из MS SQL в облачный PostgreSQL
Задача. Данные базы MS SQL, работающей на собственном сервере компании, нужно было передавать в облачную систему для нового приложения и для отчётов, не нагружая исходную систему и ничего в неё не записывая.
Решение. Программа, которая работает как служба Windows и имеет только право на чтение:
- для каждой таблицы выбирает самый экономный способ отслеживания изменений, а удаления находит, сравнивая ключи;
- реагирует на изменение в течение 1–3 секунд, сама создаёт структуру целевой базы данных и следит за её изменениями;
- чувствительные столбцы можно исключить, а пропускную способность ограничить; ночью выполняет сверку и выдаёт отчёт о количестве строк;
- вводится в эксплуатацию одним установщиком, учётные данные хранит в зашифрованном виде.
Результат. Работу синхронизатора проверяют автоматические тесты и реальная тестовая среда с MS SQL и PostgreSQL. Если нужно связать несколько систем, такая работа тоже относится к направлению автоматизация процессов.
Система управления парком ноутбуков для школ
Задача. Около сотни школьных ноутбуков с Windows на нескольких площадках, без домена и без системы управления устройствами: установка программ, обновление и поддержание учётных записей в порядке выполнялись вручную, на каждом компьютере отдельно.
Решение. Мы создали собственную систему управления парком:
- агент на ноутбуках устанавливает только исходящие соединения, центральный сервер управляется через веб-интерфейс и ведёт инвентаризацию каждого компьютера;
- команды доходят до компьютеров поэтапно, с аварийной остановкой и журналом;
- система устанавливает и удаляет программы из каталога и сообщает, какой компьютер отклонился от предписанного состояния;
- она управляет единообразными локальными учётными записями и хранимыми паролями администратора, а сама обновляется поэтапно, с автоматическим откатом при сбое.
Результат. Парк работает на этой системе. Решение о переходе на Windows 11 мы тоже приняли на основе измерений: по результатам тестов производительности, выполненных на ноутбуках.
ИИ-тестировщики для веб-приложений
Задача. Веб-приложение нужно заново тестировать после каждого изменения, а ручное тестирование медленное и однообразное.
Решение. ИИ-агенты проходят заданные веб-приложения в настоящем браузере; это дополняют автоматические проверки и проверки доступности. Найденную ошибку утверждает человек, и только после этого из неё появляется заявка об ошибке; агенты учатся на решениях об утверждении. Запуски можно планировать, и повторно проверяются только изменившиеся части; страницы проверяются и в мобильном представлении.
Результат. Работает как внутренний инструмент для тестирования наших собственных разработок.
Тест при найме для сотрудников, работающих с ИИ
Для собственного найма мы создали получасовой онлайн-тест, который измеряет, как кандидат работает с искусственным интеллектом. В нём четыре части с ограничением по времени: поиск ошибок в намеренно неисправном демонстрационном приложении, разговор с клиентом, которого играет искусственный интеллект, задачи на мышление и эксперимент с системой, принцип работы которой неизвестен. Ответы предварительно оценивает ИИ, решение принимает человек; данные кандидатов мы обрабатываем в соответствии с GDPR (со сроком хранения, экспортом и удалением).
Небольшие собственные разработки
- Программа для диктовки: в Windows и macOS вводит речь как текст в любое приложение; распознавание речи работает локально, на видеокарте компьютера.
- Проверка плакатной кампании: размещённый плакат подтверждают фотография сотрудника и данные о местоположении, с обзором на карте.
- Менеджер коллекционных карточек: камера телефона распознаёт карточку с помощью сопоставления изображений и распознавания текста, а коллекцией и колодами можно управлять в одном месте.
- Наш прежний сайт: один ИИ-агент в реальном времени перестраивал оформление страницы для каждого посетителя, а другой разговаривал с ним, в том числе с голосовым вводом.
- Этот сайт для поисковых систем и ИИ-ассистентов: на 14 языках, с Markdown-версией каждой страницы, машиночитаемыми данными о компании и картой сайта, в которой отмечены языковые версии.
Что ещё мы создаём
Ниже приведены не завершённые проекты, а системы, которые мы с удовольствием создадим:
- извлечение данных из документов (счетов, договоров, накладных) с помощью искусственного интеллекта: Интеграция ИИ;
- чат-бот службы поддержки клиентов или ИИ-агент, который отвечает на основе собственных документов компании: ИИ-чат-боты и ИИ-агенты;
- интернет-магазин с индивидуальным ценообразованием, связанный с системой управления предприятием: Разработка интернет-магазинов;
- приложение для iOS и Android с серверной частью и панелью администратора: Мобильные приложения;
- брендированная игра и интерактивный проект для выставки или сайта: Разработка игр.