Руководство по установке и API модуля OceanAI
1. Общие сведения
Программный модуль OceanAI — это система обработки пространственных данных на основе технологий искусственного интеллекта, предназначенная для решения задач инженерных изысканий и экологического мониторинга морских акваторий.

Основные функции:
• Автоматическая сегментация ледяных полей по спутниковым снимкам
• Детектирование и классификация нефтяных загрязнений
• Моделирование дрейфа ледяных полей и загрязнений
• Поиск потенциальных источников загрязнений по данным АИС
2. Системные требования
2.1. Аппаратные требования
  • Процессор: 8+ ядер
  • Оперативная память: 32+ ГБ RAM
  • Дисковое пространство: 500+ ГБ SSD
  • Видеокарта: NVIDIA GPU с 8+ ГБ памяти (рекомендуется для ускорения нейросетевых вычислений)
2.2. Программное обеспечение, необходимое для функционирования Сервиса
Базовое системное программное обеспечение
  • Docker — платформа контейнеризации, предназначенная для создания, распространения и запуска приложений в изолированных контейнерах
  • PostgreSQL — свободная объектно-реляционная система управления базами данных
  • PostGIS — расширение PostgreSQL для хранения и обработки пространственных (географических) данных
  • Nginx — веб-сервер и обратный прокси, используемый для маршрутизации HTTP- запросов, обслуживания статических файлов и (при необходимости) терминации SSL
  • GeoServer — серверное приложение для публикации, обработки и визуализации геопространственных данных по стандартам OGC (WMS, WFS, WCS), используемое для предоставления картографических сервисов
Фронтенд (JavaScript)
  • Vue — прогрессивный JavaScript-фреймворк для построения пользовательских интерфейсов и одностраничных приложений (SPA), основанный на реактивной компонентной модели
  • Vite — инструмент сборки и среды разработки фронтенд-приложений, используемый на этапе разработки и сборки (не используется в продуктивной среде)

Библиотеки и фреймворки бэкенда
  • FastAPI — веб-фреймворк для разработки REST API и сервисов на языке Python (Python 3.9+)
  • Uvicorn — ASGI-сервер для запуска FastAPI-приложений
  • GeoAlchemy2 — расширение SQLAlchemy для работы с географическими типами данных PostgreSQL/PostGIS
  • RabbitMQ — брокер сообщений, используемый для асинхронного взаимодействия между сервисами и обработки фоновых задач
  • PyTorch — фреймворк машинного обучения для построения и обучения нейросетевых моделей
  • OpenCV — библиотека компьютерного зрения для обработки и анализа изображений
  • XGBoost — библиотека для реализации алгоритмов градиентного бустинга
  • OpenDrift — фреймворк для моделирования дрейфа объектов на поверхности моря

Хранилища и инфраструктурные сервисы
  • MinIO — S3-совместимое объектное хранилище объектов, используемое для хранения файлов, результатов вычислений и промежуточных данных

Инструменты разработки и тестирования
  • Pytest — фреймворк для модульного, интеграционного и функционального тестирования
  • GitLab — платформа управления исходным кодом и CI/CD, используемая в процессе разработки и сопровождения (не требуется для выполнения сервиса в продуктивной среде)
2.3. Языки программирования, на которых написан программный комплекс
  • Python — высокоуровневый язык программирования общего назначения; поддерживает несколько парадигм программирования: структурное, объектно- ориентированное, функциональное, императивное и аспектно-ориентированное. В языке присутствует динамическая типизация, автоматическое управление памятью, полная интроспекция, механизм обработки исключений, поддержка многопоточных вычислений и удобные высокоуровневые структуры данных. Программный код на Python организовывается в функции и классы, которые могут объединяться в модули, а они в свою очередь могут быть объединены в пакеты. Основной язык для реализации алгоритмов ИИ, обработки данных и backend- логики. Используется для разработки нейросетевых моделей, обработки спутниковых данных и реализации бизнес-логики системы.
  • SQL — Язык структурированных запросов (SQL) — язык программирования для хранения и обработки информации в реляционной базе данных. Реляционная база данных хранит информацию в табличной форме со строками и столбцами,представляющими различные атрибуты данных и различные связи между значениями данных. Используется для создания запросов к PostgreSQL/PostGIS для пространственных данных и метаинформации.
  • JavaScript — для реализации фронтенд-компонентов веб-интерфейса цифровой платформы OceanAI.
3. Подготовка к работе
3.1. Состав передаваемых материалов
При поставке ПО предоставляются следующие материалы:
  • Документация:
• Руководство по установке (текущий документ)
• Описание функциональных характеристик
• Руководство пользователя веб-интерфейса

  • Конфигурационные файлы:
• docker-compose.yml — конфигурация всех сервисов
• .env.example — пример файла с переменными окружения
• requirements.txt — зависимости Python

  • Исходный код:
• Микросервисы на Python
• Веб-интерфейс на Vue.js
• Конфигурации для развертывания
3.2 Для демонстрационного запуска Продукта требуется:
Установленный интерпретатор Python версии не ниже 3.8. Скачать его можно через магазин приложений операционной системы или же с официального сайта — https://www.python.org/downloads/.
  1. Установить среду для чтения файлов с расширением *.ipynb. Рекомендуется установить Jupiter Notebook (инструкция по установке представлена на официальном сайте — https://jupyter.org/install).
  2. Установить зависимости из requirements.txt.
4. Работа с API
4.1. Общие принципы
OceanAI построен на микросервисной архитектуре с использованием REST API. Все сервисы предоставляют документацию в формате OpenAPI (Swagger).

Основные характеристики API:
  • Формат данных: JSON
  • Аутентификация: JWT токены
  • Коды ответов: стандартные HTTP коды
  • Пагинация: для списковых endpoints
Детальное описание работы с API будет предоставлено по запросу.