openapi: 3.0.3 info: title: 'Odinn ML' description: '' version: 1.0.0 servers: - url: 'https://ml.stage.odinn.cloud' paths: /api/ml-results: get: summary: Список operationId: '' description: "Получить список экспортов результатов применения ML (с пагинацией)\n\nСтандартный листинг Одинна с возможностью фильтрации" parameters: - in: query name: page description: 'Номер страницы.' example: 1 required: false schema: type: integer description: 'Номер страницы.' example: 1 - in: query name: page-size description: 'Количество элементов, возвращаемых на странице. По умолчанию 50.' example: 50 required: false schema: type: integer description: 'Количество элементов, возвращаемых на странице. По умолчанию 50.' example: 50 responses: 500: description: '' content: application/json: schema: type: object example: message: 'Server Error' properties: message: type: string example: 'Server Error' tags: - 'ML Results' security: [] /api/ml-results/ml-data: get: summary: 'Получение результатов по применению ML через API' operationId: MLAPI description: '' parameters: [] responses: 500: description: '' content: application/json: schema: type: object example: message: 'Server Error' properties: message: type: string example: 'Server Error' tags: - 'ML Results' requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'Значение поля value должно быть корректным UUID.' example: - 987d869f-4444-3341-9534-184d045b08ea items: type: string required: - ids security: [] /api/ml-results/export: post: summary: 'Экспорт результатов по применению ML в виде файла' operationId: ML description: "Начинает выгрузку результатов по применению ML в виде файла.\nМетод только начинает выгрузку, скачать файл можно будет по завершении (статус completed)\n\n" parameters: [] responses: { } tags: - 'ML Results' requestBody: required: true content: application/json: schema: type: object properties: ids: type: array description: 'Значение поля value должно быть корректным UUID.' example: - be7e97ef-cf64-3600-a180-b6561b8a7de0 items: type: string with_photo: type: boolean description: '' example: true required: - ids security: [] '/api/ml-results/{id}': get: summary: 'Получить информацию об экспорте' operationId: '' description: '' parameters: [] responses: 500: description: '' content: application/json: schema: type: object example: message: 'Server Error' properties: message: type: string example: 'Server Error' tags: - 'ML Results' security: [] parameters: - in: path name: id description: 'Идентификатор (UUID)' example: 89215061-a8da-3d29-bc69-1ade0efe9b48 required: true schema: type: uuid '/api/ml-results/{id}/download': get: summary: 'Скачать файл экспорта результатов по применению ML' operationId: ML description: '' parameters: [] responses: 500: description: '' content: application/json: schema: type: object example: message: 'Server Error' properties: message: type: string example: 'Server Error' tags: - 'ML Results' security: [] parameters: - in: path name: id description: 'Идентификатор (UUID)' example: 7f1990df-9287-3df8-aa12-fe8d2a73ae46 required: true schema: type: uuid /api/ai-model: get: summary: Список operationId: '' description: "Получить список моделей (с пагинацией)\nСтандартный листинг Одинна с возможностью фильтрации" parameters: - in: query name: page description: 'Номер страницы.' example: 1 required: false schema: type: integer description: 'Номер страницы.' example: 1 - in: query name: page-size description: 'Количество элементов, возвращаемых на странице. По умолчанию 50.' example: 50 required: false schema: type: integer description: 'Количество элементов, возвращаемых на странице. По умолчанию 50.' example: 50 responses: 200: description: '' content: application/json: schema: type: object example: current_page: 1 data: - id: a060b47f-c4fc-4267-82f9-b94a5f45553f name: Multimodal notes: null file_id: a060b47f-a9aa-44c3-800f-4f0331d6c11f classes: - Deconstruct_filter - Construct_filter - Pen - Pencil - Work_with_computer - STAND_part_one_screw - STAND_tight_second_screw created_at: '2025-11-17T09:34:15.000000Z' updated_at: '2025-11-17T09:34:15.000000Z' deleted_at: null file: id: a060b47f-a9aa-44c3-800f-4f0331d6c11f name: best_float32_metadata.tflite title: null path: /models/xf1Kgg1NtbghgLIoZYKGAOMFAWosUDZDbqkg8Sdx.tflite mime: application/octet-stream size: 12291067 last_accessed_at: '2025-11-17T09:34:15.000000Z' created_at: '2025-11-17T09:34:15.000000Z' updated_at: '2025-11-17T09:34:15.000000Z' deleted_at: null - id: 9fd585b7-ab3e-40d8-872c-8480c8438297 name: Best_Float32 notes: null file_id: 9fd585b7-9adf-4a8b-aa8a-262d80214e33 classes: - Construct_filter - Log_filling - Work_with_computer created_at: '2025-09-09T05:03:22.000000Z' updated_at: '2025-09-09T05:03:22.000000Z' deleted_at: null file: id: 9fd585b7-9adf-4a8b-aa8a-262d80214e33 name: best_float32_metadata.tflite title: null path: /models/bMoKJs1gBQrkzaui6ite4MVErUKzyybVhieHeAfd.tflite mime: application/octet-stream size: 12291067 last_accessed_at: '2025-09-09T05:03:22.000000Z' created_at: '2025-09-09T05:03:22.000000Z' updated_at: '2025-09-09T05:03:22.000000Z' deleted_at: null first_page_url: 'https://ml.stage.odinn.cloud/api/ai-model?page=1' from: 1 last_page: 1 last_page_url: 'https://ml.stage.odinn.cloud/api/ai-model?page=1' links: - url: null label: '« Назад' active: false - url: 'https://ml.stage.odinn.cloud/api/ai-model?page=1' label: '1' active: true - url: null label: 'Вперёд »' active: false next_page_url: null path: 'https://ml.stage.odinn.cloud/api/ai-model' per_page: 50 prev_page_url: null to: 2 total: 2 properties: current_page: type: integer example: 1 data: type: array example: - id: a060b47f-c4fc-4267-82f9-b94a5f45553f name: Multimodal notes: null file_id: a060b47f-a9aa-44c3-800f-4f0331d6c11f classes: - Deconstruct_filter - Construct_filter - Pen - Pencil - Work_with_computer - STAND_part_one_screw - STAND_tight_second_screw created_at: '2025-11-17T09:34:15.000000Z' updated_at: '2025-11-17T09:34:15.000000Z' deleted_at: null file: id: a060b47f-a9aa-44c3-800f-4f0331d6c11f name: best_float32_metadata.tflite title: null path: /models/xf1Kgg1NtbghgLIoZYKGAOMFAWosUDZDbqkg8Sdx.tflite mime: application/octet-stream size: 12291067 last_accessed_at: '2025-11-17T09:34:15.000000Z' created_at: '2025-11-17T09:34:15.000000Z' updated_at: '2025-11-17T09:34:15.000000Z' deleted_at: null - id: 9fd585b7-ab3e-40d8-872c-8480c8438297 name: Best_Float32 notes: null file_id: 9fd585b7-9adf-4a8b-aa8a-262d80214e33 classes: - Construct_filter - Log_filling - Work_with_computer created_at: '2025-09-09T05:03:22.000000Z' updated_at: '2025-09-09T05:03:22.000000Z' deleted_at: null file: id: 9fd585b7-9adf-4a8b-aa8a-262d80214e33 name: best_float32_metadata.tflite title: null path: /models/bMoKJs1gBQrkzaui6ite4MVErUKzyybVhieHeAfd.tflite mime: application/octet-stream size: 12291067 last_accessed_at: '2025-09-09T05:03:22.000000Z' created_at: '2025-09-09T05:03:22.000000Z' updated_at: '2025-09-09T05:03:22.000000Z' deleted_at: null items: type: object properties: id: type: string example: a060b47f-c4fc-4267-82f9-b94a5f45553f name: type: string example: Multimodal notes: type: string example: null file_id: type: string example: a060b47f-a9aa-44c3-800f-4f0331d6c11f classes: type: array example: - Deconstruct_filter - Construct_filter - Pen - Pencil - Work_with_computer - STAND_part_one_screw - STAND_tight_second_screw items: type: string created_at: type: string example: '2025-11-17T09:34:15.000000Z' updated_at: type: string example: '2025-11-17T09:34:15.000000Z' deleted_at: type: string example: null file: type: object properties: id: type: string example: a060b47f-a9aa-44c3-800f-4f0331d6c11f name: type: string example: best_float32_metadata.tflite title: type: string example: null path: type: string example: /models/xf1Kgg1NtbghgLIoZYKGAOMFAWosUDZDbqkg8Sdx.tflite mime: type: string example: application/octet-stream size: type: integer example: 12291067 last_accessed_at: type: string example: '2025-11-17T09:34:15.000000Z' created_at: type: string example: '2025-11-17T09:34:15.000000Z' updated_at: type: string example: '2025-11-17T09:34:15.000000Z' deleted_at: type: string example: null first_page_url: type: string example: 'https://ml.stage.odinn.cloud/api/ai-model?page=1' from: type: integer example: 1 last_page: type: integer example: 1 last_page_url: type: string example: 'https://ml.stage.odinn.cloud/api/ai-model?page=1' links: type: array example: - url: null label: '« Назад' active: false - url: 'https://ml.stage.odinn.cloud/api/ai-model?page=1' label: '1' active: true - url: null label: 'Вперёд »' active: false items: type: object properties: url: type: string example: null label: type: string example: '« Назад' active: type: boolean example: false next_page_url: type: string example: null path: type: string example: 'https://ml.stage.odinn.cloud/api/ai-model' per_page: type: integer example: 50 prev_page_url: type: string example: null to: type: integer example: 2 total: type: integer example: 2 tags: - Модели security: [] post: summary: Создать operationId: '' description: '' parameters: [] responses: { } tags: - Модели requestBody: required: true content: multipart/form-data: schema: type: object properties: name: type: string description: Имя example: est notes: type: string description: Заметки example: consequatur classes: type: array description: 'Классы которые модель может обрабатывать' example: - debitis items: type: string file: type: string format: binary description: 'Файл модели' required: - name - file security: [] '/api/ai-model/{id}': get: summary: 'Получить информацию о модели' operationId: '' description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: 'AI Model #2fb568c0-a6cc-3a47-86f1-afe264de212b Not found' properties: message: type: string example: 'AI Model #2fb568c0-a6cc-3a47-86f1-afe264de212b Not found' tags: - Модели security: [] put: summary: 'Обновить информацию о модели' operationId: '' description: '' parameters: [] responses: { } tags: - Модели requestBody: required: false content: multipart/form-data: schema: type: object properties: name: type: string description: Имя example: ullam notes: type: string description: Заметки example: fugit classes: type: array description: 'Классы которые модель может обрабатывать' example: - suscipit items: type: string file: type: string format: binary description: 'Файл модели' security: [] delete: summary: 'Удалить модель' operationId: '' description: '' parameters: [] responses: { } tags: - Модели security: [] parameters: - in: path name: id description: 'Идентификатор (UUID)' example: 2fb568c0-a6cc-3a47-86f1-afe264de212b required: true schema: type: uuid '/api/ai-model/{id}/download': get: summary: 'Скачать файл модели' operationId: '' description: '' parameters: [] responses: 404: description: '' content: application/json: schema: type: object example: message: '' properties: message: type: string example: '' tags: - Модели security: [] parameters: - in: path name: id description: 'Идентификатор (UUID)' example: d0c9af86-67db-3294-9e21-493cb7e29c38 required: true schema: type: uuid tags: - name: 'ML Results' description: '' - name: Модели description: ''