Biolevate Multi-Dimensional Extraction API

Multi-dimensional (entity / schema-based) extraction resource management

OpenAPI Specification

biolevate-multi-dimensional-extraction-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Biolevate Agent Multi-Dimensional Extraction API
  version: 1.0.0
  description: Conversational agent jobs
servers:
- url: /
  description: Biolevate Server
security:
- TOKEN: []
tags:
- name: Multi-Dimensional Extraction
  description: Multi-dimensional (entity / schema-based) extraction resource management
paths:
  /api/core/multi-dim-extraction/jobs:
    get:
      tags:
      - Multi-Dimensional Extraction
      summary: List multi-dimensional extraction jobs
      description: Returns a paginated list of multi-dimensional extraction jobs for the current user
      operationId: listMDEJobs
      parameters:
      - name: pageSize
        in: query
        description: Page size
        required: true
        schema:
          type: integer
          format: int32
      - name: page
        in: query
        description: Page number
        required: true
        schema:
          type: integer
          format: int32
      - name: sortProperty
        in: query
        description: Sort property
        required: false
        schema:
          type: string
      - name: sortOrder
        in: query
        description: Sort order
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Successfully retrieved jobs
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PageDataJob'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/PageDataJob'
    post:
      tags:
      - Multi-Dimensional Extraction
      summary: Create multi-dimensional extraction job
      description: Creates a new entity extraction job using a structured schema (multi-column) on the specified files
      operationId: createMDEJob
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateMDERequest'
        required: true
      responses:
        '403':
          description: Access denied
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Job'
        '200':
          description: Job created successfully
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Job'
        '400':
          description: Invalid request
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Job'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Job'
  /api/core/multi-dim-extraction/jobs/{jobId}:
    get:
      tags:
      - Multi-Dimensional Extraction
      summary: Get multi-dimensional extraction job
      description: Returns a single multi-dimensional extraction job by its ID
      operationId: getMDEJob
      parameters:
      - name: jobId
        in: path
        description: The job Id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Successfully retrieved job
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Job'
        '403':
          description: Access denied - not the job owner
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Job'
        '404':
          description: Job not found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Job'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/Job'
  /api/core/multi-dim-extraction/jobs/{jobId}/results:
    get:
      tags:
      - Multi-Dimensional Extraction
      summary: Get multi-dimensional extraction job outputs
      description: Returns the entity extraction results from the multi-dimensional extraction job
      operationId: getMDEJobOutputs
      parameters:
      - name: jobId
        in: path
        description: The job Id
        required: true
        schema:
          type: string
      responses:
        '403':
          description: Access denied - not the job owner
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/MDEJobOutputs'
        '200':
          description: Successfully retrieved outputs
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/MDEJobOutputs'
        '404':
          description: Job not found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/MDEJobOutputs'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/MDEJobOutputs'
  /api/core/multi-dim-extraction/jobs/{jobId}/inputs:
    get:
      tags:
      - Multi-Dimensional Extraction
      summary: Get multi-dimensional extraction job inputs
      description: Returns the input files and entity schema used for the multi-dimensional extraction job
      operationId: getMDEJobInputs
      parameters:
      - name: jobId
        in: path
        description: The job Id
        required: true
        schema:
          type: string
      responses:
        '403':
          description: Access denied - not the job owner
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/MDEJobInputs'
        '200':
          description: Successfully retrieved inputs
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/MDEJobInputs'
        '404':
          description: Job not found
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/MDEJobInputs'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/MDEJobInputs'
  /api/core/multi-dim-extraction/jobs/{jobId}/annotations:
    get:
      tags:
      - Multi-Dimensional Extraction
      summary: Get multi-dimensional extraction job annotations
      description: Returns the document annotations generated by the multi-dimensional extraction job
      operationId: getMDEJobAnnotations
      parameters:
      - name: jobId
        in: path
        description: The job Id
        required: true
        schema:
          type: string
      responses:
        '403':
          description: Access denied - not the job owner
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EliseAnnotation'
        '200':
          description: Successfully retrieved annotations
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EliseAnnotation'
        '404':
          description: Job not found
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EliseAnnotation'
        '401':
          description: Unauthorized
          content:
            '*/*':
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EliseAnnotation'
components:
  schemas:
    EntityId:
      type: object
      properties:
        id:
          type: string
          format: uuid
        entityType:
          type: string
          enum:
          - POLICY
          - PROJECT
          - COLLECTION
          - PROVIDER
          - FILE
          - PROCESSOR
          - JOB
          - PRESET
          - EDITABLE_DOCUMENT
          - REVIEW
          - COLLECTION_DERIVATION
          - REVIEW_REQUEST
          - MILESTONE
          - INSIGHT
          - CONCEPT_NOTE
          - ANNOTATION
          - BIBLIO_SEARCH
          - SEARCH_DOWNLOAD
          - INSIGHT_CELL_FILTER
          - INSIGHT_CELL_SORTING
          - INSIGHT_CELL_FORMAT
          - INSIGHT_GROUP
          - INSIGHTS_TABLE_CONFIG
          - INSIGHTS_TABLE_TEMPLATE
          - SEARCH_REMOVAL
          - COMMENT_THREAD
          - COMMENT
          - SMART_REVIEW
          - RIS_IMPORT_JOB
          - FORGE_WORKFLOW
          - COLLECTION_VIEW
          - SUB_COLLECTION_JOB
          - PROJECT_LABEL
          - PROJECT_GROUP
    EliseEntityColumnInput:
      type: object
      properties:
        key:
          type: string
        label:
          type: string
        type:
          type: string
          enum:
          - ENTITY_COLUMN_TYPE_UNSPECIFIED
          - ENTITY_COLUMN_TYPE_STRING
          - ENTITY_COLUMN_TYPE_INT
          - ENTITY_COLUMN_TYPE_FLOAT
          - ENTITY_COLUMN_TYPE_BOOL
        role:
          type: string
          enum:
          - ENTITY_COLUMN_ROLE_UNSPECIFIED
          - ENTITY_COLUMN_ROLE_IDENTIFIER
          - ENTITY_COLUMN_ROLE_LABEL
          - ENTITY_COLUMN_ROLE_GROUP
          - ENTITY_COLUMN_ROLE_TIMEPOINT
          - ENTITY_COLUMN_ROLE_VALUE
          - ENTITY_COLUMN_ROLE_UNIT
          - ENTITY_COLUMN_ROLE_DEFINITION
          - ENTITY_COLUMN_ROLE_COMMENT
        description:
          type: string
        allowedValues:
          type: array
          items:
            type: string
        isRowKey:
          type: boolean
    JobLaunchConfig:
      type: object
      description: Optional job launch behaviour for input files
      properties:
        skip_unindexed_files:
          type: boolean
          description: 'When false or omitted, the request is rejected if any input file is not indexed. When true, unindexed files are excluded and the job runs on indexed files only.

            '
          example: false
    Job:
      type: object
      properties:
        jobId:
          type: string
        status:
          type: string
          enum:
          - SUCCESS
          - FAILED
          - ABORTED
          - RUNNING
          - PENDING
        taskType:
          type: string
        createdTime:
          type: integer
          format: int64
        executionTime:
          type: number
          format: double
        errorMessage:
          type: string
        name:
          type: string
        archived:
          type: boolean
    EliseEntityCellResult:
      type: object
      properties:
        columnKey:
          type: string
        value:
          type: object
        explanation:
          type: string
        referenceIds:
          type: array
          items:
            $ref: '#/components/schemas/AnnotationId'
    EliseEntitySchemaInput:
      type: object
      properties:
        name:
          type: string
        description:
          type: string
        columns:
          type: array
          items:
            $ref: '#/components/schemas/EliseEntityColumnInput'
    FilesInput:
      type: object
      properties:
        fileIds:
          type: array
          items:
            type: string
        collectionIds:
          type: array
          items:
            type: string
    EliseEntityRowResult:
      type: object
      properties:
        cells:
          type: array
          items:
            $ref: '#/components/schemas/EliseEntityCellResult'
        explanation:
          type: string
        referenceIds:
          type: array
          items:
            $ref: '#/components/schemas/AnnotationId'
    EliseAnnotation:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/AnnotationId'
        createdTime:
          type: integer
          format: int64
        owner:
          $ref: '#/components/schemas/UserId'
        space:
          $ref: '#/components/schemas/EntityId'
        data:
          $ref: '#/components/schemas/EliseAnnotationConfig'
        type:
          type: string
          enum:
          - DOCUMENT_STATEMENT
          - WEB_STATEMENT
          - ENTIRE_DOCUMENT_STATEMENT
          - EXTERNAL_DOCUMENT_STATEMENT
          - KNOWLEDGE_STATEMENT
          - REVIEW_STATEMENT
        modifiedTime:
          type: integer
          format: int64
        lastModifier:
          $ref: '#/components/schemas/UserId'
        status:
          type: string
          enum:
          - VALID
          - NOTVALID
    UserId:
      type: object
      properties:
        id:
          type: string
    EliseAnnotationConfig:
      type: object
      discriminator:
        propertyName: type
        mapping:
          DOCUMENT_STATEMENT: '#/components/schemas/EliseDocumentStatement'
          EXTERNAL_DOCUMENT_STATEMENT: '#/components/schemas/EliseExternalDocumentStatement'
          WEB_STATEMENT: '#/components/schemas/EliseWebStatement'
          KNOWLEDGE_STATEMENT: '#/components/schemas/EliseKnowledgeStatement'
          ENTIRE_DOCUMENT_STATEMENT: '#/components/schemas/EliseFullDocumentStatement'
          REVIEW_STATEMENT: '#/components/schemas/EliseReviewComment'
      properties:
        type:
          type: string
          enum:
          - DOCUMENT_STATEMENT
          - WEB_STATEMENT
          - ENTIRE_DOCUMENT_STATEMENT
          - EXTERNAL_DOCUMENT_STATEMENT
          - KNOWLEDGE_STATEMENT
          - REVIEW_STATEMENT
    AnnotationId:
      type: object
      properties:
        id:
          type: string
          format: uuid
        entityType:
          type: string
          enum:
          - POLICY
          - PROJECT
          - COLLECTION
          - PROVIDER
          - FILE
          - PROCESSOR
          - JOB
          - PRESET
          - EDITABLE_DOCUMENT
          - REVIEW
          - COLLECTION_DERIVATION
          - REVIEW_REQUEST
          - MILESTONE
          - INSIGHT
          - CONCEPT_NOTE
          - ANNOTATION
          - BIBLIO_SEARCH
          - SEARCH_DOWNLOAD
          - INSIGHT_CELL_FILTER
          - INSIGHT_CELL_SORTING
          - INSIGHT_CELL_FORMAT
          - INSIGHT_GROUP
          - INSIGHTS_TABLE_CONFIG
          - INSIGHTS_TABLE_TEMPLATE
          - SEARCH_REMOVAL
          - COMMENT_THREAD
          - COMMENT
          - SMART_REVIEW
          - RIS_IMPORT_JOB
          - FORGE_WORKFLOW
          - COLLECTION_VIEW
          - SUB_COLLECTION_JOB
          - PROJECT_LABEL
          - PROJECT_GROUP
    EliseEntityExtractionResult:
      type: object
      properties:
        metaId:
          type: string
          format: uuid
        meta:
          type: string
        schema:
          $ref: '#/components/schemas/EliseEntitySchemaInput'
        rows:
          type: array
          items:
            $ref: '#/components/schemas/EliseEntityRowResult'
        explanation:
          type: string
        referenceIds:
          type: array
          items:
            $ref: '#/components/schemas/AnnotationId'
    MDEJobInputs:
      type: object
      properties:
        files:
          $ref: '#/components/schemas/FilesInput'
        schema:
          $ref: '#/components/schemas/EliseEntitySchemaInput'
    MDEJobOutputs:
      type: object
      properties:
        entityExtraction:
          $ref: '#/components/schemas/EliseEntityExtractionResult'
    PageDataJob:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Job'
        totalPages:
          type: integer
          format: int32
        totalElements:
          type: integer
          format: int64
        hasNext:
          type: boolean
    CreateMDERequest:
      type: object
      properties:
        files:
          $ref: '#/components/schemas/FilesInput'
        schema:
          $ref: '#/components/schemas/EliseEntitySchemaInput'
        config:
          $ref: '#/components/schemas/JobLaunchConfig'
  securitySchemes:
    TOKEN:
      type: http
      scheme: bearer
      bearerFormat: JWT