системы «Интеллектуальный ИИ-ассистент геолога»
Содержание
- Назначение и область применения
- Функциональные возможности
- Архитектура и технологический стек
- Требования к программному и аппаратному обеспечению
- Информационная безопасность
1. Назначение и область применения
«Интеллектуальный ИИ-ассистент геолога» — программный комплекс для построения трёхмерной блочной модели месторождения по данным разведочных скважин и предсказания литологии (типа породы) во всём объёме месторождения с помощью нейросети.
Система предназначена для специалистов горно-геологической отрасли и применяется для:
- оцифровки и хранения данных скважин (устья, инклинометрия, литологические интервалы);
- построения блочной модели месторождения по данным скважин;
- автоматического прогнозирования литологии в неразбуренных частях месторождения;
- трёхмерной визуализации и анализа результатов.
Программное обеспечение поставляется в виде веб-приложения (SaaS) и в виде локального дистрибутива (OnPremise) на основе Docker-контейнеров.
2. Функциональные возможности
2.1. Управление учётными записями и разграничение прав доступа
Система поддерживает ролевую модель доступа (RBAC) с четырьмя ролями:
| Роль | Возможности |
|---|---|
| Администратор | Полный доступ; управление пользователями и ролями; просмотр заявок. |
| Бизнес-аналитик | Полный контроль над месторождениями, блочными моделями и обучением; выбор «Основного» предсказания. |
| Пользователь | Загрузка месторождения и построение предсказания в один шаг; просмотр публичных месторождений. |
| Читатель | Только просмотр публичных месторождений и их предсказаний. |
Поддерживаются: аутентификация по логину и паролю, создание и удаление учётных записей, изменение ролей, ограничения целостности (запрет снятия роли с последнего администратора и изменения собственной роли).
2.2. Загрузка и хранение данных скважин
- Импорт данных из Excel-файла (
.xlsx) с листамиwellhead(устья скважин: координаты X, Y, Z),inclinometry(инклинометрия: азимут, угол, глубина замера) иlithology(литологические интервалы: от, до, код породы). - Расчёт траектории ствола скважины по данным инклинометрии (desurvey).
- Автоматическое определение габаритов месторождения и набора пород с назначением цветовой палитры.
- Контроль уникальности наименования месторождения, разграничение видимости (публичное / приватное), копирование и удаление месторождений.
- Шаблон Excel-файла для заполнения данными.
2.3. Построение блочной модели месторождения
- Генерация регулярной блочной сетки с заданным размером блока.
- Определение «известных» блоков по пересечению с керном скважин (с учётом порога перекрытия) и преобладающей породы блока.
- Ограничение модели по форме тела месторождения триангулированными поверхностями (TIN) кровли и подошвы, построенными по концам скважин, либо заполнение габаритного параллелепипеда.
- Контроль предельного числа блоков; оценка количества блоков до построения.
- В упрощённом сценарии (роль «Пользователь») размер блока подбирается автоматически.
2.4. Обучение нейросети и предсказание литологии
- Обучение нейросетевого классификатора на «известных» блоках с задаваемым числом эпох.
- Автоматическое предсказание литологии для всех блоков модели после обучения.
- Расчёт уверенности предсказания (softmax) по каждому блоку.
- Сохранение метрик обучения по эпохам (точность, функция потерь).
- Возможность обучить и хранить несколько нейросетей для одного месторождения.
2.5. Трёхмерная визуализация и анализ
- Интерактивная 3D-визуализация скважин и блочной (воксельной) модели в браузере.
- Режимы отображения: известные блоки, предсказание, уверенность сети (абсолютная и нормированная).
- Фильтрация по породам и сечения (срезы) по осям X / Y / Z.
- Отсечение невидимых блоков (surface culling) для производительной отрисовки больших моделей.
- Редактирование цветов пород.
2.6. Управление предсказаниями и видимостью
- Пометка одного предсказания месторождения как «Основного»; именно оно отображается ролям «Пользователь» и «Читатель».
- Разграничение видимости месторождений (публичные / приватные) по ролям.
2.7. Заявки с лендинга
Приём и хранение обращений, оставленных через форму на публичной странице (лендинге): дата, имя, компания, контакты, сообщение; просмотр и удаление заявок администратором.
2.8. Отображение прогресса длительных операций
Длительные операции (построение блочной модели, обучение и предсказание, удаление) выполняются асинхронно; прогресс в процентах передаётся в интерфейс в реальном времени по технологии Server-Sent Events (SSE).
3. Архитектура и технологический стек
Система построена по микросервисной архитектуре и разворачивается в Docker-контейнерах под управлением Docker Compose. Единая точка входа обеспечивается обратным прокси-сервером.
| Компонент | Назначение | Технологии |
|---|---|---|
| Веб-интерфейс (front) | Пользовательский интерфейс, 3D-визуализация | React, TypeScript, MUI, Vite, Three.js |
| Сервер приложений (api) | Авторизация и роли, парсинг данных, построение блочной модели, выдача прогресса | NestJS (Node.js), Kysely |
| Сервис нейросети (neuro) | Обучение модели и предсказание литологии | FastAPI (Python), TensorFlow |
| База данных | Хранение данных скважин, моделей, предсказаний, пользователей | PostgreSQL |
| Обратный прокси | Единый вход, маршрутизация, HTTPS | Caddy |
Взаимодействие компонентов: браузер обращается к прокси-серверу, который направляет запросы к серверу приложений и веб-интерфейсу; сервер приложений хранит данные в PostgreSQL и инициирует обучение в сервисе нейросети; результаты предсказания сохраняются в базе данных.
4. Требования к программному и аппаратному обеспечению
| Параметр | Значение |
|---|---|
| Операционная система | Linux (Ubuntu 20.04+, Debian 10+, RHEL/CentOS 8+), Windows 10/11, macOS |
| Процессор | x86_64, от 2 ядер |
| Оперативная память | не менее 4 ГБ |
| Дисковое пространство | от 4 ГБ |
| Системное ПО | Docker CE 20.10+, Docker Compose v2+ |
| Клиент | Современный веб-браузер с поддержкой WebGL |
5. Информационная безопасность
- Аутентификация по логину и паролю с выдачей подписанного токена доступа (JWT) с ограниченным сроком действия.
- Хранение паролей в виде необратимых хэшей (bcrypt).
- Разграничение прав по ролям на уровне сервера приложений; для роли «Читатель» запрещены любые изменяющие операции.
- Разделение данных по видимости (публичные / приватные месторождения).
- Параметры безопасности (секрет подписи токенов, учётные данные администратора, пароль базы данных) задаются при развёртывании и подлежат изменению в продуктивной среде.