Интеграция веб-интерфейсов с сервисами платформы для размещения ИИ-проектов
Введение
В последние годы количество интеллектуальных приложений стремительно растет: от чат-ботов и рекомендательных систем до сервисов компьютерного зрения и голосовых ассистентов. Однако успех таких решений во многом определяется не только качеством самой модели, но и скоростью превращения прототипа в полноценный продукт. Именно поэтому сегодня особенно актуальна задача ускорения перехода от обученной модели к готовому сервису, доступному конечному пользователю.
В процессе реализации интеллектуальных решений разработчики постоянно сталкиваются с целым набором трудностей, связанных с переходом от обученной модели к полноценному сервису. Часто процесс усложняется из-за необходимости ручного управления жизненным циклом модели, сложной интеграции с существующими системами, отсутствии автоматизации, и ресурсоемкого сопровождение инфраструктуры. Эти проблемы замедляют запуск продукта, усложняют взаимодействие между командами и мешают своевременному обновлению сервиса без прерывания его работы.
Наша платформа призвана решить эти задачи: она автоматизирует развертывание, интеграцию и управление сервисами машинного обучения, позволяя быстро переходить от созданной модели к ее промышленной эксплуатации на удобной и современной инфраструктуре.
Далее показан пример, как обученная модель превращается в готовый сервис для извлечения платежных реквизитов из чеков. Разработчик разместил модуль с LLM-моделью QWEN используя преимущества платформы: обеспечение сервисом аутентификации, объектное хранилище для данных модели и файлов запросов и API сервисы.
В этой конфигурации платформа берет на себя развертывание и публикацию модели как REST‑сервиса, настраивает механизмы аутентификации, а также предоставляет объектное хранилище и его API для загрузки изображений платежных документов в рамках единого потока данных.
Со стороны команды модели добавлено веб-приложение: оно реализует веб‑интерфейс и предобработку изображений, обращаясь к готовым API эндпоинтам предсказаний и файлового сервиса.
1. Путь разработчика: от модели к готовому сервису
Исходное состояние - наличие обученной модели (PyTorch, TensorFlow, scikit-learn, LLM и др.).
Цель - за минимальное время создать веб-сервис с современным UI на основе данной модели.
Технические требования к размещенному сервису включают:
- REST API.
- Механизмы аутентификации и авторизации пользователей.
- Подсистему логирования и аналитики.
1.1. Создание и обновление ИИ-сервиса
Процесс развертывания модели на платформе:
- Регистрацию проекта:
- Оставьте заявку на сайте MLOps
- Наши специалисты с вами свяжутся и предоставят необходимые доступы
- Создание шаблонного приложения в Личном кабинете
- Подготовку репозитория с исходным кодом, загрузку кода в систему управления версиями платформы
- Реализацию inference:
Реализуйте функцию inference в репозитории с исходным кодом со следующей сигнатурой:
def inference( |
""" Здесь разработчик должен задать описание API которое должна предоставить платформа: :param inputs.image: Input image for visual analysis :type inputs.image: FILE or image/jpeg or image/png
:param outputs.response: Generated response from the model :type outputs.response: str """ |
|
Функция inference интегрирует модуль с предсказательной моделью в сервис запуска моделей через API. Модуль предоставляет API, который принимает именованные входные данные, и возвращает также именованные данные.
Формат самих входных данных, которые передаются в аргументе inputs при вызове функции, и выходных данных, возвращаемых функцией, должен быть указан в docstring-спецификации.
Для подробного описания как задать свой API обратитесь к документации
- Упаковку модели при помощи:
- CI/CD процессов(платформа соберет docker-образ сервиса из коммита помеченного git-тегом)
- загрузки весов модели в объектное хранилище
- Изменение манифестов модуля
Платформа позволяет управлять компонентами приложения через манифесты расположенные в репозитории с исходным кодом. Используя манифесты разработчик может создать, обновить или удалить:
- Модуль с моделью
- API для модуля
- Объектное хранилище
- Пайплайн
Для подробного описания обратитесь к документации.
1.2. Интеграция клиентского приложения с сервисом платформы
После размещения сервиса платформа формирует для модуля уникальную ссылку и сопровождающую документацию (OpenAPI).
Для интеграции клиентского приложения с модулем нужно:
- Запросить в поддержке платформы добавление домена клиентского приложения в разрешенные для перенаправлений
- Добавить настройки cors в API сервисов. Пример:
spec: |
В allowOrigin перечислите все домены с которых будут приходить запросы к сервису
Пример вызова API с клиентского приложения на JavaScript:
import Keycloak from "keycloak-js"; |
2. Логирование и метрики
Все обращения к API фиксируются в системе мониторинга.
Возможности включают:
- Просмотр детализированных логов запросов и ответов, логи контейнера с сервисом
- Отображение статистики вызовов.
- Анализ производительности (latency, throughput и пр.).
- Версионирование и история публикаций моделей(на основе git репозитория).
3. Обновление и версионирование
Все изменения в модель вносятся через обновление кода в git-репозитории - разработчик отмечает новую версию модели git-тегом, после чего платформа автоматически собирает и загружает образ в Harbor-реестр. Разработчик может выбрать нужный образ для сервиса из реестра, и развертывание новой версии происходит без остановки работы приложения.
Такая схема обновления сервиса обеспечивает простоту перехода на новую версию или откат к стабильной при необходимости, фиксирует историю изменений и облегчает совместную разработку. Все обновления прозрачны, удобны в мониторинге и документир[1] овании - так повышается контроль над релизами, снижается риск ошибок и ускоряется внедрение новых функциональных возможностей.
К дополнительным преимуществам относятся:
- Минимизация времени на интеграцию и тестирование модели до промышленной эксплуатации.
- Улучшение взаимодействия между командами - все специалисты работают по единой схеме обновлений, без ручных вмешательств и простоев.
- Возможность запускать эксперименты и быстро возвращаться к проверенным версиям без сложных процедур развертывания.
- Повышение надежности и безопасности продукта за счет снижения вероятности человеческих ошибок и автоматического контроля за процессом обновлений.
4. Пример запросов к модулям из галереи
Примеры запросов в postman:
Для обращения к API развернутого компонента приложения, необходимо иметь учетную запись в реестре пользователей платформы и состоять в пользовательской группе:
- /pu-gallery-pa-tesseract-ocr/gallery-tesseract-users для Tesseract OCR
- /pu-gallery-pa-qwen/gallery-qwen-users для QWEN
Для добавления в эти группы или получения учетной записи обратитесь к администраторам платформы через заявку в поддержке
Заключение
Благодаря нашей платформе путь от готовой обученной модели до полноценного веб-сервиса может занять считанные минуты. Регистрация, размещение и интеграция с клиентским приложением происходят по упрощенной схеме, при этом предоставляются средства мониторинга, управления версиями и безопасного взаимодействия с пользователями.