Работа судов в дальнем плавании требует наличия запасов еды, медикаментов, хозяйственных товаров и различного оборудования. Компания, обеспечивающая морские суда в длительных рейсах, ежедневно получает десятки запросов на поставку самых разных товаров.
Эти запросы приходят в различном виде: в PDF-документах, Excel-файлах, иногда просто в теле письма, иногда в виде наименований, а иногда – в виде ссылок. Закупщики вручную вносят позиции в ERP, сверяются с историей закупок аналогичных рейсов, подбирают поставщиков и цены, формируют коммерческие предложения.
В условиях высокой конкуренции и жёстких логистических ограничений это создавало существенные потери времени и риски ошибок. Наш клиент искал технологическое решение, которое позволило бы сократить время отклика на запрос, уменьшить долю ручного труда и повысить точность подбора поставщиков. Таким решением стал ИИ-модуль.
Мы разработали интеллектуальный модуль, который автоматизирует процесс подготовки коммерческих предложений по входящим заявкам. Система принимала на вход неструктурированные документы в форматах Excel, PDF или в виде текстовых вложений. Затем модуль извлекал из них список требуемых товаров с помощью каскадного пайплайна: сначала применялись стандартные парсеры и OCR, затем данные нормализовались и классифицировались.
Для поиска соответствий между извлечёнными позициями и товарной базой ERP использовалась комбинация векторного поиска и нечеткого текстового сопоставления. Мы задействовали FAISS и pgvector для поиска по эмбеддингам, а также алгоритмы cosine similarity и rapidfuzz для учёта текстовых вариаций в названиях товаров. Это обеспечивало устойчивую работу даже в случае опечаток, нестандартизированных обозначений или смешанных языков.
После сопоставления система подбирает наилучшие варианты поставщиков и цен, анализируя историю закупок клиента. Для каждой позиции формируются рекомендации с указанием confidence-оценки, то есть насколько найденный вариант соответствует оригинальному запросу. Результаты экспортируются в Excel-файл, который закупщик может просмотреть, откорректировать, передать в ERP и выслать клиенту.
Архитектура решения предусматривает дальнейшее масштабирование: все компоненты работают в Docker-контейнерах, развёрнутых в Azure. Код хранится и автоматически деплоится через GitLab CI. Интеграция с ERP пока выполнялась через экспорт Excel-файлов, но была заложена возможность подключения по API. Всё решение строилось на Python и FastAPI, с PostgreSQL и pgvector в качестве основной СУБД.
После внедрения системы клиент получил единый управляемый процесс снабжения для всего флота. Время обработки одной заявки сократилось с нескольких дней до нескольких часов. Количество ошибок и возвратов снизилось благодаря нормализации данных и автоматической верификации. Экипажи оценили простоту работы с интерфейсом, а штаб — доступ к точной, полной информации о потребностях каждого судна.
Платформа доказала свою эффективность в условиях разрозненной инфраструктуры и готова к масштабированию на новые направления и партнёрские компании. Она стала инструментом не только автоматизации, но и стратегического управления ресурсами на флоте.