mindee-lite 5.0.0.beta1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.editorconfig +24 -0
- data/.gitattributes +14 -0
- data/.gitignore +76 -0
- data/.gitmodules +3 -0
- data/.pre-commit-config.yaml +36 -0
- data/.rubocop.yml +49 -0
- data/.yardopts +4 -0
- data/CHANGELOG.md +515 -0
- data/CODE_OF_CONDUCT.md +129 -0
- data/CONTRIBUTING.md +107 -0
- data/Gemfile +14 -0
- data/LICENSE +21 -0
- data/README.md +42 -0
- data/Rakefile +40 -0
- data/Steepfile +30 -0
- data/bin/console +14 -0
- data/bin/mindee.rb +30 -0
- data/bin/v1/parser.rb +153 -0
- data/bin/v1/products.rb +88 -0
- data/bin/v2/parser.rb +235 -0
- data/bin/v2/products.rb +34 -0
- data/docs/code_samples/bank_account_details_v1.txt +24 -0
- data/docs/code_samples/bank_account_details_v2.txt +24 -0
- data/docs/code_samples/bank_statement_fr_v2_async.txt +24 -0
- data/docs/code_samples/barcode_reader_v1.txt +24 -0
- data/docs/code_samples/cropper_v1.txt +21 -0
- data/docs/code_samples/default.txt +30 -0
- data/docs/code_samples/default_async.txt +29 -0
- data/docs/code_samples/expense_receipts_v5.txt +25 -0
- data/docs/code_samples/expense_receipts_v5_async.txt +24 -0
- data/docs/code_samples/financial_document_v1.txt +25 -0
- data/docs/code_samples/financial_document_v1_async.txt +24 -0
- data/docs/code_samples/idcard_fr_v1.txt +24 -0
- data/docs/code_samples/idcard_fr_v2.txt +24 -0
- data/docs/code_samples/international_id_v2_async.txt +24 -0
- data/docs/code_samples/invoice_splitter_v1_async.txt +24 -0
- data/docs/code_samples/invoices_v4.txt +25 -0
- data/docs/code_samples/invoices_v4_async.txt +24 -0
- data/docs/code_samples/multi_receipts_detector_v1.txt +24 -0
- data/docs/code_samples/passport_v1.txt +24 -0
- data/docs/code_samples/resume_v1_async.txt +24 -0
- data/docs/code_samples/v2_classification.txt +30 -0
- data/docs/code_samples/v2_crop.txt +30 -0
- data/docs/code_samples/v2_extraction.txt +42 -0
- data/docs/code_samples/v2_extraction_webhook.txt +45 -0
- data/docs/code_samples/v2_ocr.txt +30 -0
- data/docs/code_samples/v2_split.txt +30 -0
- data/docs/code_samples/workflow_execution.txt +28 -0
- data/docs/code_samples/workflow_polling.txt +35 -0
- data/examples/auto_invoice_splitter_extraction.rb +48 -0
- data/examples/auto_multi_receipts_detector_extraction.rb +30 -0
- data/lib/mindee/dependency.rb +29 -0
- data/lib/mindee/error/mindee_error.rb +17 -0
- data/lib/mindee/error/mindee_http_error.rb +36 -0
- data/lib/mindee/error/mindee_http_error_v2.rb +45 -0
- data/lib/mindee/error/mindee_http_unknown_error_v2.rb +18 -0
- data/lib/mindee/error/mindee_input_error.rb +30 -0
- data/lib/mindee/error.rb +6 -0
- data/lib/mindee/geometry/min_max.rb +23 -0
- data/lib/mindee/geometry/point.rb +41 -0
- data/lib/mindee/geometry/polygon.rb +37 -0
- data/lib/mindee/geometry/quadrilateral.rb +50 -0
- data/lib/mindee/geometry/utils.rb +88 -0
- data/lib/mindee/geometry.rb +7 -0
- data/lib/mindee/http/.rubocop.yml +7 -0
- data/lib/mindee/http/http_error_handler.rb +106 -0
- data/lib/mindee/http/response_validation.rb +81 -0
- data/lib/mindee/http.rb +3 -0
- data/lib/mindee/image/extracted_image.rb +89 -0
- data/lib/mindee/image/image_compressor.rb +29 -0
- data/lib/mindee/image/image_extractor.rb +118 -0
- data/lib/mindee/image/image_utils.rb +165 -0
- data/lib/mindee/image.rb +6 -0
- data/lib/mindee/input/base_parameters.rb +149 -0
- data/lib/mindee/input/local_response.rb +80 -0
- data/lib/mindee/input/polling_options.rb +26 -0
- data/lib/mindee/input/sources/base64_input_source.rb +31 -0
- data/lib/mindee/input/sources/bytes_input_source.rb +21 -0
- data/lib/mindee/input/sources/file_input_source.rb +20 -0
- data/lib/mindee/input/sources/local_input_source.rb +216 -0
- data/lib/mindee/input/sources/path_input_source.rb +20 -0
- data/lib/mindee/input/sources/url_input_source.rb +130 -0
- data/lib/mindee/input/sources.rb +8 -0
- data/lib/mindee/input.rb +4 -0
- data/lib/mindee/logging/logger.rb +24 -0
- data/lib/mindee/logging.rb +3 -0
- data/lib/mindee/page_options.rb +24 -0
- data/lib/mindee/pdf/extracted_pdf.rb +70 -0
- data/lib/mindee/pdf/pdf_compressor.rb +121 -0
- data/lib/mindee/pdf/pdf_extractor.rb +121 -0
- data/lib/mindee/pdf/pdf_processor.rb +91 -0
- data/lib/mindee/pdf/pdf_tools.rb +201 -0
- data/lib/mindee/pdf.rb +7 -0
- data/lib/mindee/v1/client.rb +490 -0
- data/lib/mindee/v1/extraction/multi_receipts_extractor.rb +32 -0
- data/lib/mindee/v1/extraction.rb +3 -0
- data/lib/mindee/v1/http/.rubocop.yml +7 -0
- data/lib/mindee/v1/http/endpoint.rb +221 -0
- data/lib/mindee/v1/http/workflow_endpoint.rb +93 -0
- data/lib/mindee/v1/http.rb +4 -0
- data/lib/mindee/v1/parsing/common/api_request.rb +38 -0
- data/lib/mindee/v1/parsing/common/api_response.rb +63 -0
- data/lib/mindee/v1/parsing/common/document.rb +86 -0
- data/lib/mindee/v1/parsing/common/execution.rb +78 -0
- data/lib/mindee/v1/parsing/common/execution_file.rb +26 -0
- data/lib/mindee/v1/parsing/common/execution_priority.rb +38 -0
- data/lib/mindee/v1/parsing/common/extras/cropper_extra.rb +32 -0
- data/lib/mindee/v1/parsing/common/extras/extras.rb +62 -0
- data/lib/mindee/v1/parsing/common/extras/full_text_ocr_extra.rb +35 -0
- data/lib/mindee/v1/parsing/common/extras/rag_extra.rb +28 -0
- data/lib/mindee/v1/parsing/common/extras.rb +6 -0
- data/lib/mindee/v1/parsing/common/inference.rb +69 -0
- data/lib/mindee/v1/parsing/common/job.rb +48 -0
- data/lib/mindee/v1/parsing/common/ocr/mvision_v1.rb +52 -0
- data/lib/mindee/v1/parsing/common/ocr/ocr.rb +180 -0
- data/lib/mindee/v1/parsing/common/ocr.rb +3 -0
- data/lib/mindee/v1/parsing/common/orientation.rb +28 -0
- data/lib/mindee/v1/parsing/common/page.rb +49 -0
- data/lib/mindee/v1/parsing/common/prediction.rb +19 -0
- data/lib/mindee/v1/parsing/common/product.rb +26 -0
- data/lib/mindee/v1/parsing/common/workflow_response.rb +30 -0
- data/lib/mindee/v1/parsing/common.rb +15 -0
- data/lib/mindee/v1/parsing/standard/abstract_field.rb +74 -0
- data/lib/mindee/v1/parsing/standard/address_field.rb +51 -0
- data/lib/mindee/v1/parsing/standard/amount_field.rb +28 -0
- data/lib/mindee/v1/parsing/standard/base_field.rb +30 -0
- data/lib/mindee/v1/parsing/standard/boolean_field.rb +29 -0
- data/lib/mindee/v1/parsing/standard/classification_field.rb +18 -0
- data/lib/mindee/v1/parsing/standard/company_registration_field.rb +45 -0
- data/lib/mindee/v1/parsing/standard/date_field.rb +40 -0
- data/lib/mindee/v1/parsing/standard/feature_field.rb +26 -0
- data/lib/mindee/v1/parsing/standard/locale_field.rb +52 -0
- data/lib/mindee/v1/parsing/standard/payment_details_field.rb +44 -0
- data/lib/mindee/v1/parsing/standard/position_field.rb +61 -0
- data/lib/mindee/v1/parsing/standard/string_field.rb +26 -0
- data/lib/mindee/v1/parsing/standard/tax_field.rb +110 -0
- data/lib/mindee/v1/parsing/standard.rb +15 -0
- data/lib/mindee/v1/parsing/universal/universal_list_field.rb +60 -0
- data/lib/mindee/v1/parsing/universal/universal_object_field.rb +123 -0
- data/lib/mindee/v1/parsing/universal.rb +4 -0
- data/lib/mindee/v1/parsing.rb +5 -0
- data/lib/mindee/v1/product/.rubocop.yml +12 -0
- data/lib/mindee/v1/product/barcode_reader/barcode_reader_v1.rb +47 -0
- data/lib/mindee/v1/product/barcode_reader/barcode_reader_v1_document.rb +47 -0
- data/lib/mindee/v1/product/barcode_reader/barcode_reader_v1_page.rb +38 -0
- data/lib/mindee/v1/product/cropper/cropper_v1.rb +47 -0
- data/lib/mindee/v1/product/cropper/cropper_v1_document.rb +15 -0
- data/lib/mindee/v1/product/cropper/cropper_v1_page.rb +55 -0
- data/lib/mindee/v1/product/financial_document/financial_document_v1.rb +47 -0
- data/lib/mindee/v1/product/financial_document/financial_document_v1_document.rb +329 -0
- data/lib/mindee/v1/product/financial_document/financial_document_v1_line_item.rb +124 -0
- data/lib/mindee/v1/product/financial_document/financial_document_v1_line_items.rb +64 -0
- data/lib/mindee/v1/product/financial_document/financial_document_v1_page.rb +38 -0
- data/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v1.rb +49 -0
- data/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v1_document.rb +49 -0
- data/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v1_page.rb +40 -0
- data/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v2.rb +49 -0
- data/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v2_bban.rb +63 -0
- data/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v2_document.rb +60 -0
- data/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v2_page.rb +40 -0
- data/lib/mindee/v1/product/fr/bank_statement/bank_statement_v2.rb +49 -0
- data/lib/mindee/v1/product/fr/bank_statement/bank_statement_v2_document.rb +169 -0
- data/lib/mindee/v1/product/fr/bank_statement/bank_statement_v2_page.rb +40 -0
- data/lib/mindee/v1/product/fr/bank_statement/bank_statement_v2_transaction.rb +78 -0
- data/lib/mindee/v1/product/fr/bank_statement/bank_statement_v2_transactions.rb +56 -0
- data/lib/mindee/v1/product/fr/id_card/id_card_v1.rb +49 -0
- data/lib/mindee/v1/product/fr/id_card/id_card_v1_document.rb +106 -0
- data/lib/mindee/v1/product/fr/id_card/id_card_v1_page.rb +57 -0
- data/lib/mindee/v1/product/fr/id_card/id_card_v2.rb +49 -0
- data/lib/mindee/v1/product/fr/id_card/id_card_v2_document.rb +143 -0
- data/lib/mindee/v1/product/fr/id_card/id_card_v2_page.rb +65 -0
- data/lib/mindee/v1/product/international_id/international_id_v2.rb +47 -0
- data/lib/mindee/v1/product/international_id/international_id_v2_document.rb +164 -0
- data/lib/mindee/v1/product/international_id/international_id_v2_page.rb +38 -0
- data/lib/mindee/v1/product/invoice/invoice_v4.rb +47 -0
- data/lib/mindee/v1/product/invoice/invoice_v4_document.rb +300 -0
- data/lib/mindee/v1/product/invoice/invoice_v4_line_item.rb +124 -0
- data/lib/mindee/v1/product/invoice/invoice_v4_line_items.rb +64 -0
- data/lib/mindee/v1/product/invoice/invoice_v4_page.rb +38 -0
- data/lib/mindee/v1/product/invoice_splitter/invoice_splitter_v1.rb +47 -0
- data/lib/mindee/v1/product/invoice_splitter/invoice_splitter_v1_document.rb +66 -0
- data/lib/mindee/v1/product/invoice_splitter/invoice_splitter_v1_invoice_page_group.rb +58 -0
- data/lib/mindee/v1/product/invoice_splitter/invoice_splitter_v1_invoice_page_groups.rb +50 -0
- data/lib/mindee/v1/product/invoice_splitter/invoice_splitter_v1_page.rb +38 -0
- data/lib/mindee/v1/product/multi_receipts_detector/multi_receipts_detector_v1.rb +47 -0
- data/lib/mindee/v1/product/multi_receipts_detector/multi_receipts_detector_v1_document.rb +38 -0
- data/lib/mindee/v1/product/multi_receipts_detector/multi_receipts_detector_v1_page.rb +38 -0
- data/lib/mindee/v1/product/passport/passport_v1.rb +47 -0
- data/lib/mindee/v1/product/passport/passport_v1_document.rb +112 -0
- data/lib/mindee/v1/product/passport/passport_v1_page.rb +38 -0
- data/lib/mindee/v1/product/receipt/receipt_v5.rb +47 -0
- data/lib/mindee/v1/product/receipt/receipt_v5_document.rb +187 -0
- data/lib/mindee/v1/product/receipt/receipt_v5_line_item.rb +88 -0
- data/lib/mindee/v1/product/receipt/receipt_v5_line_items.rb +56 -0
- data/lib/mindee/v1/product/receipt/receipt_v5_page.rb +38 -0
- data/lib/mindee/v1/product/resume/resume_v1.rb +47 -0
- data/lib/mindee/v1/product/resume/resume_v1_certificate.rb +82 -0
- data/lib/mindee/v1/product/resume/resume_v1_certificates.rb +60 -0
- data/lib/mindee/v1/product/resume/resume_v1_document.rb +340 -0
- data/lib/mindee/v1/product/resume/resume_v1_education.rb +106 -0
- data/lib/mindee/v1/product/resume/resume_v1_educations.rb +66 -0
- data/lib/mindee/v1/product/resume/resume_v1_language.rb +66 -0
- data/lib/mindee/v1/product/resume/resume_v1_languages.rb +56 -0
- data/lib/mindee/v1/product/resume/resume_v1_page.rb +38 -0
- data/lib/mindee/v1/product/resume/resume_v1_professional_experience.rb +122 -0
- data/lib/mindee/v1/product/resume/resume_v1_professional_experiences.rb +70 -0
- data/lib/mindee/v1/product/resume/resume_v1_social_networks_url.rb +66 -0
- data/lib/mindee/v1/product/resume/resume_v1_social_networks_urls.rb +56 -0
- data/lib/mindee/v1/product/universal/universal.rb +48 -0
- data/lib/mindee/v1/product/universal/universal_document.rb +35 -0
- data/lib/mindee/v1/product/universal/universal_page.rb +54 -0
- data/lib/mindee/v1/product/universal/universal_prediction.rb +128 -0
- data/lib/mindee/v1/product.rb +18 -0
- data/lib/mindee/v1.rb +7 -0
- data/lib/mindee/v2/client.rb +132 -0
- data/lib/mindee/v2/file_operation/crop.rb +51 -0
- data/lib/mindee/v2/file_operation/crop_files.rb +25 -0
- data/lib/mindee/v2/file_operation/split.rb +37 -0
- data/lib/mindee/v2/file_operation/split_files.rb +25 -0
- data/lib/mindee/v2/file_operation.rb +6 -0
- data/lib/mindee/v2/http/.rubocop.yml +7 -0
- data/lib/mindee/v2/http/api_v2_settings.rb +65 -0
- data/lib/mindee/v2/http/mindee_api_v2.rb +230 -0
- data/lib/mindee/v2/http.rb +4 -0
- data/lib/mindee/v2/parsing/base_inference.rb +44 -0
- data/lib/mindee/v2/parsing/base_response.rb +15 -0
- data/lib/mindee/v2/parsing/common_response.rb +20 -0
- data/lib/mindee/v2/parsing/error_item.rb +21 -0
- data/lib/mindee/v2/parsing/error_response.rb +51 -0
- data/lib/mindee/v2/parsing/field/base_field.rb +63 -0
- data/lib/mindee/v2/parsing/field/field_confidence.rb +128 -0
- data/lib/mindee/v2/parsing/field/field_location.rb +33 -0
- data/lib/mindee/v2/parsing/field/inference_fields.rb +105 -0
- data/lib/mindee/v2/parsing/field/list_field.rb +79 -0
- data/lib/mindee/v2/parsing/field/object_field.rb +138 -0
- data/lib/mindee/v2/parsing/field/simple_field.rb +60 -0
- data/lib/mindee/v2/parsing/field.rb +9 -0
- data/lib/mindee/v2/parsing/inference_active_options.rb +67 -0
- data/lib/mindee/v2/parsing/inference_file.rb +38 -0
- data/lib/mindee/v2/parsing/inference_job.rb +25 -0
- data/lib/mindee/v2/parsing/inference_model.rb +30 -0
- data/lib/mindee/v2/parsing/job.rb +93 -0
- data/lib/mindee/v2/parsing/job_response.rb +30 -0
- data/lib/mindee/v2/parsing/job_webhook.rb +59 -0
- data/lib/mindee/v2/parsing/rag_metadata.rb +17 -0
- data/lib/mindee/v2/parsing/raw_text.rb +27 -0
- data/lib/mindee/v2/parsing/raw_text_page.rb +24 -0
- data/lib/mindee/v2/parsing/search/pagination_metadata.rb +44 -0
- data/lib/mindee/v2/parsing/search/search_model.rb +38 -0
- data/lib/mindee/v2/parsing/search/search_models.rb +34 -0
- data/lib/mindee/v2/parsing/search/search_response.rb +38 -0
- data/lib/mindee/v2/parsing/search.rb +6 -0
- data/lib/mindee/v2/parsing.rb +16 -0
- data/lib/mindee/v2/product/base_product.rb +28 -0
- data/lib/mindee/v2/product/classification/classification.rb +20 -0
- data/lib/mindee/v2/product/classification/classification_classifier.rb +25 -0
- data/lib/mindee/v2/product/classification/classification_inference.rb +35 -0
- data/lib/mindee/v2/product/classification/classification_response.rb +32 -0
- data/lib/mindee/v2/product/classification/classification_result.rb +27 -0
- data/lib/mindee/v2/product/classification/params/classification_parameters.rb +47 -0
- data/lib/mindee/v2/product/crop/crop.rb +20 -0
- data/lib/mindee/v2/product/crop/crop_inference.rb +34 -0
- data/lib/mindee/v2/product/crop/crop_item.rb +39 -0
- data/lib/mindee/v2/product/crop/crop_response.rb +40 -0
- data/lib/mindee/v2/product/crop/crop_result.rb +34 -0
- data/lib/mindee/v2/product/crop/params/crop_parameters.rb +47 -0
- data/lib/mindee/v2/product/extraction/extraction.rb +21 -0
- data/lib/mindee/v2/product/extraction/extraction_inference.rb +40 -0
- data/lib/mindee/v2/product/extraction/extraction_response.rb +32 -0
- data/lib/mindee/v2/product/extraction/extraction_result.rb +44 -0
- data/lib/mindee/v2/product/extraction/params/data_schema.rb +51 -0
- data/lib/mindee/v2/product/extraction/params/data_schema_field.rb +69 -0
- data/lib/mindee/v2/product/extraction/params/data_schema_replace.rb +39 -0
- data/lib/mindee/v2/product/extraction/params/extraction_parameters.rb +125 -0
- data/lib/mindee/v2/product/ocr/ocr.rb +20 -0
- data/lib/mindee/v2/product/ocr/ocr_inference.rb +34 -0
- data/lib/mindee/v2/product/ocr/ocr_page.rb +33 -0
- data/lib/mindee/v2/product/ocr/ocr_response.rb +32 -0
- data/lib/mindee/v2/product/ocr/ocr_result.rb +34 -0
- data/lib/mindee/v2/product/ocr/ocr_word.rb +29 -0
- data/lib/mindee/v2/product/ocr/params/ocr_parameters.rb +47 -0
- data/lib/mindee/v2/product/split/params/split_parameters.rb +48 -0
- data/lib/mindee/v2/product/split/split.rb +19 -0
- data/lib/mindee/v2/product/split/split_inference.rb +34 -0
- data/lib/mindee/v2/product/split/split_range.rb +38 -0
- data/lib/mindee/v2/product/split/split_response.rb +40 -0
- data/lib/mindee/v2/product/split/split_result.rb +34 -0
- data/lib/mindee/v2/product.rb +7 -0
- data/lib/mindee/v2.rb +7 -0
- data/lib/mindee/version.rb +26 -0
- data/lib/mindee.rb +135 -0
- data/mindee-lite.gemspec +36 -0
- data/mindee.gemspec +44 -0
- data/sig/custom/marcel.rbs +3 -0
- data/sig/custom/mini_magick.rbs +31 -0
- data/sig/custom/net_http.rbs +43 -0
- data/sig/custom/origami.rbs +59 -0
- data/sig/mindee/dependency.rbs +13 -0
- data/sig/mindee/error/mindee_error.rbs +13 -0
- data/sig/mindee/error/mindee_http_error.rbs +17 -0
- data/sig/mindee/error/mindee_http_error_v2.rbs +15 -0
- data/sig/mindee/error/mindee_http_unknown_error_v2.rbs +9 -0
- data/sig/mindee/error/mindee_input_error.rbs +18 -0
- data/sig/mindee/geometry/min_max.rbs +11 -0
- data/sig/mindee/geometry/point.rbs +14 -0
- data/sig/mindee/geometry/polygon.rbs +12 -0
- data/sig/mindee/geometry/quadrilateral.rbs +15 -0
- data/sig/mindee/geometry/utils.rbs +13 -0
- data/sig/mindee/http/http_error_handler.rbs +15 -0
- data/sig/mindee/http/response_validation.rbs +11 -0
- data/sig/mindee/image/extracted_image.rbs +21 -0
- data/sig/mindee/image/image_compressor.rbs +8 -0
- data/sig/mindee/image/image_extractor.rbs +13 -0
- data/sig/mindee/image/image_utils.rbs +19 -0
- data/sig/mindee/input/base_parameters.rbs +35 -0
- data/sig/mindee/input/local_response.rbs +14 -0
- data/sig/mindee/input/polling_options.rbs +12 -0
- data/sig/mindee/input/sources/base64_input_source.rbs +11 -0
- data/sig/mindee/input/sources/bytes_input_source.rbs +10 -0
- data/sig/mindee/input/sources/file_input_source.rbs +10 -0
- data/sig/mindee/input/sources/local_input_source.rbs +30 -0
- data/sig/mindee/input/sources/path_input_source.rbs +10 -0
- data/sig/mindee/input/sources/url_input_source.rbs +20 -0
- data/sig/mindee/logging/logger.rbs +11 -0
- data/sig/mindee/page_options.rbs +11 -0
- data/sig/mindee/pdf/extracted_pdf.rbs +17 -0
- data/sig/mindee/pdf/pdf_compressor.rbs +15 -0
- data/sig/mindee/pdf/pdf_extractor.rbs +19 -0
- data/sig/mindee/pdf/pdf_processor.rbs +12 -0
- data/sig/mindee/pdf/pdf_tools.rbs +31 -0
- data/sig/mindee/v1/client.rbs +84 -0
- data/sig/mindee/v1/extraction/multi_receipts_extractor.rbs +8 -0
- data/sig/mindee/v1/http/endpoint.rbs +41 -0
- data/sig/mindee/v1/http/workflow_endpoint.rbs +22 -0
- data/sig/mindee/v1/parsing/common/api_request.rbs +22 -0
- data/sig/mindee/v1/parsing/common/api_response.rbs +31 -0
- data/sig/mindee/v1/parsing/common/document.rbs +32 -0
- data/sig/mindee/v1/parsing/common/execution.rbs +26 -0
- data/sig/mindee/v1/parsing/common/execution_file.rbs +16 -0
- data/sig/mindee/v1/parsing/common/execution_priority.rbs +16 -0
- data/sig/mindee/v1/parsing/common/extras/cropper_extra.rbs +18 -0
- data/sig/mindee/v1/parsing/common/extras/extras.rbs +24 -0
- data/sig/mindee/v1/parsing/common/extras/full_text_ocr_extra.rbs +22 -0
- data/sig/mindee/v1/parsing/common/extras/rag_extra.rbs +19 -0
- data/sig/mindee/v1/parsing/common/inference.rbs +31 -0
- data/sig/mindee/v1/parsing/common/job.rbs +24 -0
- data/sig/mindee/v1/parsing/common/ocr/mvision_v1.rbs +20 -0
- data/sig/mindee/v1/parsing/common/ocr/ocr.rbs +56 -0
- data/sig/mindee/v1/parsing/common/orientation.rbs +15 -0
- data/sig/mindee/v1/parsing/common/page.rbs +19 -0
- data/sig/mindee/v1/parsing/common/prediction.rbs +14 -0
- data/sig/mindee/v1/parsing/common/product.rbs +16 -0
- data/sig/mindee/v1/parsing/common/workflow_response.rbs +22 -0
- data/sig/mindee/v1/parsing/standard/abstract_field.rbs +30 -0
- data/sig/mindee/v1/parsing/standard/address_field.rbs +28 -0
- data/sig/mindee/v1/parsing/standard/amount_field.rbs +16 -0
- data/sig/mindee/v1/parsing/standard/base_field.rbs +16 -0
- data/sig/mindee/v1/parsing/standard/boolean_field.rbs +16 -0
- data/sig/mindee/v1/parsing/standard/classification_field.rbs +12 -0
- data/sig/mindee/v1/parsing/standard/company_registration_field.rbs +20 -0
- data/sig/mindee/v1/parsing/standard/date_field.rbs +20 -0
- data/sig/mindee/v1/parsing/standard/feature_field.rbs +12 -0
- data/sig/mindee/v1/parsing/standard/locale_field.rbs +24 -0
- data/sig/mindee/v1/parsing/standard/payment_details_field.rbs +19 -0
- data/sig/mindee/v1/parsing/standard/position_field.rbs +26 -0
- data/sig/mindee/v1/parsing/standard/string_field.rbs +16 -0
- data/sig/mindee/v1/parsing/standard/tax_field.rbs +33 -0
- data/sig/mindee/v1/parsing/universal/universal_list_field.rbs +21 -0
- data/sig/mindee/v1/parsing/universal/universal_object_field.rbs +38 -0
- data/sig/mindee/v1/product/barcode_reader/barcode_reader_v1.rbs +13 -0
- data/sig/mindee/v1/product/barcode_reader/barcode_reader_v1_document.rbs +16 -0
- data/sig/mindee/v1/product/barcode_reader/barcode_reader_v1_page.rbs +17 -0
- data/sig/mindee/v1/product/cropper/cropper_v1.rbs +13 -0
- data/sig/mindee/v1/product/cropper/cropper_v1_document.rbs +14 -0
- data/sig/mindee/v1/product/cropper/cropper_v1_page.rbs +19 -0
- data/sig/mindee/v1/product/financial_document/financial_document_v1.rbs +13 -0
- data/sig/mindee/v1/product/financial_document/financial_document_v1_document.rbs +49 -0
- data/sig/mindee/v1/product/financial_document/financial_document_v1_line_item.rbs +35 -0
- data/sig/mindee/v1/product/financial_document/financial_document_v1_line_items.rbs +15 -0
- data/sig/mindee/v1/product/financial_document/financial_document_v1_page.rbs +17 -0
- data/sig/mindee/v1/product/fr/bank_account_details/bank_account_details_v1.rbs +15 -0
- data/sig/mindee/v1/product/fr/bank_account_details/bank_account_details_v1_document.rbs +19 -0
- data/sig/mindee/v1/product/fr/bank_account_details/bank_account_details_v1_page.rbs +19 -0
- data/sig/mindee/v1/product/fr/bank_account_details/bank_account_details_v2.rbs +15 -0
- data/sig/mindee/v1/product/fr/bank_account_details/bank_account_details_v2_bban.rbs +25 -0
- data/sig/mindee/v1/product/fr/bank_account_details/bank_account_details_v2_document.rbs +20 -0
- data/sig/mindee/v1/product/fr/bank_account_details/bank_account_details_v2_page.rbs +19 -0
- data/sig/mindee/v1/product/fr/bank_statement/bank_statement_v2.rbs +15 -0
- data/sig/mindee/v1/product/fr/bank_statement/bank_statement_v2_document.rbs +31 -0
- data/sig/mindee/v1/product/fr/bank_statement/bank_statement_v2_page.rbs +19 -0
- data/sig/mindee/v1/product/fr/bank_statement/bank_statement_v2_transaction.rbs +27 -0
- data/sig/mindee/v1/product/fr/bank_statement/bank_statement_v2_transactions.rbs +17 -0
- data/sig/mindee/v1/product/fr/id_card/id_card_v1.rbs +15 -0
- data/sig/mindee/v1/product/fr/id_card/id_card_v1_document.rbs +26 -0
- data/sig/mindee/v1/product/fr/id_card/id_card_v1_page.rbs +20 -0
- data/sig/mindee/v1/product/fr/id_card/id_card_v2.rbs +15 -0
- data/sig/mindee/v1/product/fr/id_card/id_card_v2_document.rbs +31 -0
- data/sig/mindee/v1/product/fr/id_card/id_card_v2_page.rbs +21 -0
- data/sig/mindee/v1/product/international_id/international_id_v2.rbs +13 -0
- data/sig/mindee/v1/product/international_id/international_id_v2_document.rbs +31 -0
- data/sig/mindee/v1/product/international_id/international_id_v2_page.rbs +17 -0
- data/sig/mindee/v1/product/invoice/invoice_v4.rbs +13 -0
- data/sig/mindee/v1/product/invoice/invoice_v4_document.rbs +45 -0
- data/sig/mindee/v1/product/invoice/invoice_v4_line_item.rbs +35 -0
- data/sig/mindee/v1/product/invoice/invoice_v4_line_items.rbs +15 -0
- data/sig/mindee/v1/product/invoice/invoice_v4_page.rbs +17 -0
- data/sig/mindee/v1/product/invoice_splitter/invoice_splitter_v1.rbs +13 -0
- data/sig/mindee/v1/product/invoice_splitter/invoice_splitter_v1_document.rbs +17 -0
- data/sig/mindee/v1/product/invoice_splitter/invoice_splitter_v1_invoice_page_group.rbs +21 -0
- data/sig/mindee/v1/product/invoice_splitter/invoice_splitter_v1_invoice_page_groups.rbs +15 -0
- data/sig/mindee/v1/product/invoice_splitter/invoice_splitter_v1_page.rbs +17 -0
- data/sig/mindee/v1/product/multi_receipts_detector/multi_receipts_detector_v1.rbs +14 -0
- data/sig/mindee/v1/product/multi_receipts_detector/multi_receipts_detector_v1_document.rbs +15 -0
- data/sig/mindee/v1/product/multi_receipts_detector/multi_receipts_detector_v1_page.rbs +17 -0
- data/sig/mindee/v1/product/passport/passport_v1.rbs +13 -0
- data/sig/mindee/v1/product/passport/passport_v1_document.rbs +25 -0
- data/sig/mindee/v1/product/passport/passport_v1_page.rbs +17 -0
- data/sig/mindee/v1/product/receipt/receipt_v5.rbs +13 -0
- data/sig/mindee/v1/product/receipt/receipt_v5_document.rbs +33 -0
- data/sig/mindee/v1/product/receipt/receipt_v5_line_item.rbs +27 -0
- data/sig/mindee/v1/product/receipt/receipt_v5_line_items.rbs +15 -0
- data/sig/mindee/v1/product/receipt/receipt_v5_page.rbs +17 -0
- data/sig/mindee/v1/product/resume/resume_v1.rbs +13 -0
- data/sig/mindee/v1/product/resume/resume_v1_certificate.rbs +27 -0
- data/sig/mindee/v1/product/resume/resume_v1_certificates.rbs +17 -0
- data/sig/mindee/v1/product/resume/resume_v1_document.rbs +69 -0
- data/sig/mindee/v1/product/resume/resume_v1_education.rbs +33 -0
- data/sig/mindee/v1/product/resume/resume_v1_educations.rbs +17 -0
- data/sig/mindee/v1/product/resume/resume_v1_language.rbs +23 -0
- data/sig/mindee/v1/product/resume/resume_v1_languages.rbs +17 -0
- data/sig/mindee/v1/product/resume/resume_v1_page.rbs +19 -0
- data/sig/mindee/v1/product/resume/resume_v1_professional_experience.rbs +37 -0
- data/sig/mindee/v1/product/resume/resume_v1_professional_experiences.rbs +17 -0
- data/sig/mindee/v1/product/resume/resume_v1_social_networks_url.rbs +23 -0
- data/sig/mindee/v1/product/resume/resume_v1_social_networks_urls.rbs +17 -0
- data/sig/mindee/v1/product/universal/universal.rbs +16 -0
- data/sig/mindee/v1/product/universal/universal_document.rbs +12 -0
- data/sig/mindee/v1/product/universal/universal_page.rbs +18 -0
- data/sig/mindee/v1/product/universal/universal_prediction.rbs +30 -0
- data/sig/mindee/v2/client.rbs +29 -0
- data/sig/mindee/v2/file_operation/crop.rbs +10 -0
- data/sig/mindee/v2/file_operation/crop_files.rbs +9 -0
- data/sig/mindee/v2/file_operation/split.rbs +11 -0
- data/sig/mindee/v2/file_operation/split_files.rbs +9 -0
- data/sig/mindee/v2/http/api_v2_settings.rbs +27 -0
- data/sig/mindee/v2/http/mindee_api_v2.rbs +52 -0
- data/sig/mindee/v2/parsing/base_inference.rbs +18 -0
- data/sig/mindee/v2/parsing/base_response.rbs +11 -0
- data/sig/mindee/v2/parsing/common_response.rbs +12 -0
- data/sig/mindee/v2/parsing/error_item.rbs +13 -0
- data/sig/mindee/v2/parsing/error_response.rbs +20 -0
- data/sig/mindee/v2/parsing/field/base_field.rbs +17 -0
- data/sig/mindee/v2/parsing/field/field_confidence.rbs +30 -0
- data/sig/mindee/v2/parsing/field/field_location.rbs +16 -0
- data/sig/mindee/v2/parsing/field/inference_fields.rbs +20 -0
- data/sig/mindee/v2/parsing/field/list_field.rbs +23 -0
- data/sig/mindee/v2/parsing/field/object_field.rbs +27 -0
- data/sig/mindee/v2/parsing/field/simple_field.rbs +16 -0
- data/sig/mindee/v2/parsing/inference_active_options.rbs +26 -0
- data/sig/mindee/v2/parsing/inference_file.rbs +17 -0
- data/sig/mindee/v2/parsing/inference_job.rbs +13 -0
- data/sig/mindee/v2/parsing/inference_model.rbs +12 -0
- data/sig/mindee/v2/parsing/job.rbs +24 -0
- data/sig/mindee/v2/parsing/job_response.rbs +14 -0
- data/sig/mindee/v2/parsing/job_webhook.rbs +19 -0
- data/sig/mindee/v2/parsing/rag_metadata.rbs +13 -0
- data/sig/mindee/v2/parsing/raw_text.rbs +12 -0
- data/sig/mindee/v2/parsing/raw_text_page.rbs +11 -0
- data/sig/mindee/v2/parsing/search/pagination_metadata.rbs +20 -0
- data/sig/mindee/v2/parsing/search/search_model.rbs +19 -0
- data/sig/mindee/v2/parsing/search/search_response.rbs +17 -0
- data/sig/mindee/v2/parsing/search_models.rbs +14 -0
- data/sig/mindee/v2/product/base_product.rbs +19 -0
- data/sig/mindee/v2/product/classification/classification.rbs +10 -0
- data/sig/mindee/v2/product/classification/classification_classifier.rbs +15 -0
- data/sig/mindee/v2/product/classification/classification_inference.rbs +15 -0
- data/sig/mindee/v2/product/classification/classification_response.rbs +23 -0
- data/sig/mindee/v2/product/classification/classification_result.rbs +15 -0
- data/sig/mindee/v2/product/classification/params/classification_parameters/classification_parameters.rbs +23 -0
- data/sig/mindee/v2/product/crop/crop.rbs +10 -0
- data/sig/mindee/v2/product/crop/crop_inference.rbs +14 -0
- data/sig/mindee/v2/product/crop/crop_item.rbs +18 -0
- data/sig/mindee/v2/product/crop/crop_response.rbs +25 -0
- data/sig/mindee/v2/product/crop/crop_result.rbs +14 -0
- data/sig/mindee/v2/product/crop/params/crop_parameters/crop_parameters.rbs +23 -0
- data/sig/mindee/v2/product/extraction/extraction.rbs +15 -0
- data/sig/mindee/v2/product/extraction/extraction_inference.rbs +19 -0
- data/sig/mindee/v2/product/extraction/extraction_response.rbs +24 -0
- data/sig/mindee/v2/product/extraction/extraction_result.rbs +18 -0
- data/sig/mindee/v2/product/extraction/params/data_schema.rbs +21 -0
- data/sig/mindee/v2/product/extraction/params/data_schema_field.rbs +29 -0
- data/sig/mindee/v2/product/extraction/params/data_schema_replace.rbs +21 -0
- data/sig/mindee/v2/product/extraction/params/extraction_parameters.rbs +38 -0
- data/sig/mindee/v2/product/ocr/ocr.rbs +10 -0
- data/sig/mindee/v2/product/ocr/ocr_inference.rbs +14 -0
- data/sig/mindee/v2/product/ocr/ocr_page.rbs +15 -0
- data/sig/mindee/v2/product/ocr/ocr_response.rbs +23 -0
- data/sig/mindee/v2/product/ocr/ocr_result.rbs +14 -0
- data/sig/mindee/v2/product/ocr/ocr_word.rbs +15 -0
- data/sig/mindee/v2/product/ocr/params/ocr_parameters/ocr_parameters.rbs +24 -0
- data/sig/mindee/v2/product/split/params/split_parameters/split_parameters.rbs +23 -0
- data/sig/mindee/v2/product/split/split.rbs +10 -0
- data/sig/mindee/v2/product/split/split_inference.rbs +14 -0
- data/sig/mindee/v2/product/split/split_range.rbs +18 -0
- data/sig/mindee/v2/product/split/split_response.rbs +25 -0
- data/sig/mindee/v2/product/split/split_result.rbs +14 -0
- data/sig/mindee/version.rbs +6 -0
- data/sig/mindee.rbs +62 -0
- metadata +600 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Mindee
|
|
4
|
+
module V2
|
|
5
|
+
module Parsing
|
|
6
|
+
# Data schema options activated during the inference.
|
|
7
|
+
class DataSchemaActiveOption
|
|
8
|
+
# @return [Boolean]
|
|
9
|
+
attr_reader :replace
|
|
10
|
+
|
|
11
|
+
# @param server_response [Hash]
|
|
12
|
+
def initialize(server_response)
|
|
13
|
+
@replace = server_response[:replace] || server_response['replace']
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# String representation.
|
|
17
|
+
# @return [String]
|
|
18
|
+
def to_s
|
|
19
|
+
"Data Schema\n-----------\n:Replace: #{@replace ? 'True' : 'False'}"
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# Options which were activated during the inference.
|
|
24
|
+
class InferenceActiveOptions
|
|
25
|
+
# @return [Boolean] Whether the Raw Text feature was activated.
|
|
26
|
+
attr_reader :raw_text
|
|
27
|
+
# @return [Boolean] Whether the polygon feature was activated.
|
|
28
|
+
attr_reader :polygon
|
|
29
|
+
# @return [Boolean] Whether the confidence feature was activated.
|
|
30
|
+
attr_reader :confidence
|
|
31
|
+
# @return [Boolean] Whether the Retrieval-Augmented Generation feature was activated.
|
|
32
|
+
attr_reader :rag
|
|
33
|
+
# @return [Boolean] Whether the text context feature was activated.
|
|
34
|
+
attr_reader :text_context
|
|
35
|
+
# @return [DataSchemaActiveOption]
|
|
36
|
+
attr_reader :data_schema
|
|
37
|
+
|
|
38
|
+
# @param server_response [Hash] Raw JSON parsed into a Hash.
|
|
39
|
+
def initialize(server_response)
|
|
40
|
+
@raw_text = server_response['raw_text']
|
|
41
|
+
@polygon = server_response['polygon']
|
|
42
|
+
@confidence = server_response['confidence']
|
|
43
|
+
@rag = server_response['rag']
|
|
44
|
+
@text_context = server_response['text_context']
|
|
45
|
+
@data_schema = DataSchemaActiveOption.new(server_response['data_schema'])
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# String representation.
|
|
49
|
+
# @return [String]
|
|
50
|
+
def to_s
|
|
51
|
+
parts = [
|
|
52
|
+
'Active Options',
|
|
53
|
+
'==============',
|
|
54
|
+
":Raw Text: #{@raw_text ? 'True' : 'False'}",
|
|
55
|
+
":Polygon: #{@polygon ? 'True' : 'False'}",
|
|
56
|
+
":Confidence: #{@confidence ? 'True' : 'False'}",
|
|
57
|
+
":RAG: #{@rag ? 'True' : 'False'}",
|
|
58
|
+
":Text Context: #{@text_context ? 'True' : 'False'}\n",
|
|
59
|
+
@data_schema.to_s,
|
|
60
|
+
'',
|
|
61
|
+
]
|
|
62
|
+
parts.join("\n")
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Mindee
|
|
4
|
+
module V2
|
|
5
|
+
module Parsing
|
|
6
|
+
# Information about a file returned in an inference.
|
|
7
|
+
class InferenceFile
|
|
8
|
+
# @return [String] File name.
|
|
9
|
+
attr_reader :name
|
|
10
|
+
# @return [String, nil] Optional alias for the file.
|
|
11
|
+
attr_reader :file_alias
|
|
12
|
+
# @return [Integer] Page count.
|
|
13
|
+
attr_reader :page_count
|
|
14
|
+
# @return [String] MIME type.
|
|
15
|
+
attr_reader :mime_type
|
|
16
|
+
|
|
17
|
+
# @param server_response [Hash] Raw JSON parsed into a Hash.
|
|
18
|
+
def initialize(server_response)
|
|
19
|
+
@name = server_response['name']
|
|
20
|
+
@file_alias = server_response['alias']
|
|
21
|
+
@page_count = server_response['page_count']
|
|
22
|
+
@mime_type = server_response['mime_type']
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# String representation.
|
|
26
|
+
# @return [String]
|
|
27
|
+
def to_s
|
|
28
|
+
"File\n" \
|
|
29
|
+
"====\n" \
|
|
30
|
+
":Name: #{@name}\n" \
|
|
31
|
+
":Alias:#{" #{@file_alias}" if @file_alias}\n" \
|
|
32
|
+
":Page Count: #{@page_count}\n" \
|
|
33
|
+
":MIME Type: #{@mime_type}\n"
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'common_response'
|
|
4
|
+
require_relative 'job'
|
|
5
|
+
|
|
6
|
+
module Mindee
|
|
7
|
+
module V2
|
|
8
|
+
module Parsing
|
|
9
|
+
# HTTP response wrapper that embeds a V2 job.
|
|
10
|
+
class InferenceJob
|
|
11
|
+
# @return [String] UUID of the Job.
|
|
12
|
+
attr_reader :id
|
|
13
|
+
|
|
14
|
+
def initialize(server_response)
|
|
15
|
+
@id = server_response['id']
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# @return [String] String representation of the job.
|
|
19
|
+
def to_s
|
|
20
|
+
"Job\n===\n:ID: #{@id}\n"
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Mindee
|
|
4
|
+
module V2
|
|
5
|
+
module Parsing
|
|
6
|
+
# ID of the model that produced the inference.
|
|
7
|
+
class InferenceModel
|
|
8
|
+
# @return [String] Identifier of the model.
|
|
9
|
+
attr_reader :id
|
|
10
|
+
|
|
11
|
+
# @param server_response [Hash] Raw JSON parsed into a Hash.
|
|
12
|
+
def initialize(server_response)
|
|
13
|
+
@id = server_response['id']
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# String representation.
|
|
17
|
+
# @return [String]
|
|
18
|
+
def to_s
|
|
19
|
+
parts = [
|
|
20
|
+
'Model',
|
|
21
|
+
'=====',
|
|
22
|
+
":ID: #{@id}",
|
|
23
|
+
'',
|
|
24
|
+
]
|
|
25
|
+
parts.join("\n")
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'date'
|
|
4
|
+
require_relative 'error_response'
|
|
5
|
+
require_relative 'job_webhook'
|
|
6
|
+
|
|
7
|
+
module Mindee
|
|
8
|
+
module V2
|
|
9
|
+
module Parsing
|
|
10
|
+
# Metadata returned when polling a job (asynchronous request).
|
|
11
|
+
class Job
|
|
12
|
+
# @return [String] Unique job identifier.
|
|
13
|
+
attr_reader :id
|
|
14
|
+
# @return [Time] Date and time of the Job creation.
|
|
15
|
+
attr_reader :created_at
|
|
16
|
+
# @return [Time, nil] Date and time of the Job completion. Filled once processing is finished.
|
|
17
|
+
attr_reader :completed_at
|
|
18
|
+
# @return [String] Identifier of the model used.
|
|
19
|
+
attr_reader :model_id
|
|
20
|
+
# @return [String] Name of the processed file.
|
|
21
|
+
attr_reader :filename
|
|
22
|
+
# @return [String] Optional alias for the file.
|
|
23
|
+
attr_reader :alias
|
|
24
|
+
# @return [String, nil] Current status (submitted, processing, done, …).
|
|
25
|
+
attr_reader :status
|
|
26
|
+
# @return [String] URL to query for updated status.
|
|
27
|
+
attr_reader :polling_url
|
|
28
|
+
# @return [String, nil] URL that redirects to the final result once ready.
|
|
29
|
+
attr_reader :result_url
|
|
30
|
+
# @return [Array<JobWebhook>] Webhooks triggered by the job.
|
|
31
|
+
attr_reader :webhooks
|
|
32
|
+
# @return [ErrorResponse, nil] Error details when the job failed.
|
|
33
|
+
attr_reader :error
|
|
34
|
+
|
|
35
|
+
# rubocop:disable Metrics/CyclomaticComplexity
|
|
36
|
+
# @param server_response [Hash] Parsed JSON payload from the API.
|
|
37
|
+
def initialize(server_response)
|
|
38
|
+
raise ArgumentError, 'server_response must be a Hash' unless server_response.is_a?(Hash)
|
|
39
|
+
|
|
40
|
+
@id = server_response['id']
|
|
41
|
+
@status = server_response['status'] if server_response.key?('status')
|
|
42
|
+
unless server_response['error'].nil? || server_response['error'].empty?
|
|
43
|
+
@error = ErrorResponse.new(server_response['error'])
|
|
44
|
+
end
|
|
45
|
+
@created_at = Time.iso8601(server_response['created_at'])
|
|
46
|
+
if server_response.key?('completed_at') && !server_response['completed_at'].nil?
|
|
47
|
+
@completed_at = Time.iso8601(server_response['completed_at'])
|
|
48
|
+
end
|
|
49
|
+
@model_id = server_response['model_id']
|
|
50
|
+
@polling_url = server_response['polling_url']
|
|
51
|
+
@filename = server_response['filename']
|
|
52
|
+
@result_url = server_response['result_url']
|
|
53
|
+
@alias = server_response['alias']
|
|
54
|
+
@webhooks = []
|
|
55
|
+
server_response['webhooks'].each do |webhook|
|
|
56
|
+
@webhooks.push JobWebhook.new(webhook)
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
# rubocop:enable Metrics/CyclomaticComplexity
|
|
60
|
+
|
|
61
|
+
# String representation.
|
|
62
|
+
# @return [String]
|
|
63
|
+
def to_s
|
|
64
|
+
lines = [
|
|
65
|
+
'Job',
|
|
66
|
+
'###',
|
|
67
|
+
":ID: #{@id}",
|
|
68
|
+
":CreatedAt: #{@created_at}",
|
|
69
|
+
":ModelID: #{@model_id}",
|
|
70
|
+
":Filename: #{@filename}",
|
|
71
|
+
":Alias: #{@alias}",
|
|
72
|
+
":Status: #{@status}",
|
|
73
|
+
":PollingURL: #{@polling_url}",
|
|
74
|
+
":ResultURL: #{@result_url}",
|
|
75
|
+
]
|
|
76
|
+
|
|
77
|
+
lines << @error.to_s if @error
|
|
78
|
+
|
|
79
|
+
unless @webhooks.empty?
|
|
80
|
+
lines += [
|
|
81
|
+
'',
|
|
82
|
+
'Webhooks',
|
|
83
|
+
'=========',
|
|
84
|
+
@webhooks.join("\n\n"),
|
|
85
|
+
]
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
lines.join("\n")
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'common_response'
|
|
4
|
+
require_relative 'job'
|
|
5
|
+
|
|
6
|
+
module Mindee
|
|
7
|
+
module V2
|
|
8
|
+
module Parsing
|
|
9
|
+
# HTTP response wrapper that embeds a V2 job.
|
|
10
|
+
class JobResponse < CommonResponse
|
|
11
|
+
# @return [Job] Parsed job payload.
|
|
12
|
+
attr_reader :job
|
|
13
|
+
|
|
14
|
+
# @param server_response [Hash] Hash parsed from the API JSON response.
|
|
15
|
+
def initialize(server_response)
|
|
16
|
+
# CommonResponse takes care of the generic metadata (status, etc.)
|
|
17
|
+
super
|
|
18
|
+
|
|
19
|
+
@job = Job.new(server_response['job'])
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# String representation.
|
|
23
|
+
# @return [String]
|
|
24
|
+
def to_s
|
|
25
|
+
@job.to_s
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'date'
|
|
4
|
+
require_relative 'error_response'
|
|
5
|
+
|
|
6
|
+
module Mindee
|
|
7
|
+
module V2
|
|
8
|
+
module Parsing
|
|
9
|
+
# Information about a webhook created for a job response.
|
|
10
|
+
class JobWebhook
|
|
11
|
+
# @return [String] Identifier of the webhook.
|
|
12
|
+
attr_reader :id
|
|
13
|
+
# @return [DateTime, nil] Creation timestamp (or +nil+ when absent).
|
|
14
|
+
attr_reader :created_at
|
|
15
|
+
# @return [String] Webhook status.
|
|
16
|
+
attr_reader :status
|
|
17
|
+
# @return [ErrorResponse, nil] Error information when something failed.
|
|
18
|
+
attr_reader :error
|
|
19
|
+
|
|
20
|
+
# @param server_response [Hash] Raw JSON parsed into a Hash.
|
|
21
|
+
def initialize(server_response)
|
|
22
|
+
@id = server_response['id']
|
|
23
|
+
@created_at = parse_date(server_response['created_at'])
|
|
24
|
+
@status = server_response['status']
|
|
25
|
+
@error = ErrorResponse.new(server_response['error']) unless server_response['error'].nil?
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# RST display.
|
|
29
|
+
#
|
|
30
|
+
# @return [String]
|
|
31
|
+
def to_s
|
|
32
|
+
parts = [
|
|
33
|
+
'JobResponseWebhook',
|
|
34
|
+
'##################',
|
|
35
|
+
":ID: #{@id}",
|
|
36
|
+
":CreatedAt: #{@created_at}",
|
|
37
|
+
":Status: #{@status}",
|
|
38
|
+
]
|
|
39
|
+
|
|
40
|
+
parts << @error.to_s if @error
|
|
41
|
+
parts.join("\n")
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
private
|
|
45
|
+
|
|
46
|
+
# Safely parse an ISO-8601 date/time string to DateTime.
|
|
47
|
+
# @param str [String, nil] The date string.
|
|
48
|
+
# @return [DateTime, nil]
|
|
49
|
+
def parse_date(str)
|
|
50
|
+
return nil if str.to_s.empty?
|
|
51
|
+
|
|
52
|
+
DateTime.iso8601(str || '')
|
|
53
|
+
rescue ArgumentError
|
|
54
|
+
nil
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Mindee
|
|
4
|
+
module V2
|
|
5
|
+
module Parsing
|
|
6
|
+
# Metadata about the RAG operation.
|
|
7
|
+
class RAGMetadata
|
|
8
|
+
# The UUID of the matched document used during the RAG operation.
|
|
9
|
+
attr_accessor :retrieved_document_id
|
|
10
|
+
|
|
11
|
+
def initialize(server_response)
|
|
12
|
+
@retrieved_document_id = server_response.fetch('retrieved_document_id', nil)
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Mindee
|
|
4
|
+
module V2
|
|
5
|
+
module Parsing
|
|
6
|
+
# Raw text extracted from all pages in the document.
|
|
7
|
+
class RawText
|
|
8
|
+
# @return [Array[Mindee::V2::Parsing::RawTextPage]] List of pages with their extracted text content.
|
|
9
|
+
attr_reader :pages
|
|
10
|
+
|
|
11
|
+
# @param server_response [Hash] Raw JSON parsed into a Hash.
|
|
12
|
+
def initialize(server_response)
|
|
13
|
+
@pages = []
|
|
14
|
+
server_response.fetch('pages', []).each do |page|
|
|
15
|
+
@pages.push RawTextPage.new(page)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# String representation.
|
|
20
|
+
# @return [String]
|
|
21
|
+
def to_s
|
|
22
|
+
"#{@pages.join("\n\n")}\n"
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Mindee
|
|
4
|
+
module V2
|
|
5
|
+
module Parsing
|
|
6
|
+
# Raw text extracted from a single page.
|
|
7
|
+
class RawTextPage
|
|
8
|
+
# @return [String] Text content of the page as a single string. '\n' is used to separate lines.
|
|
9
|
+
attr_reader :content
|
|
10
|
+
|
|
11
|
+
# @param server_response [Hash] Raw JSON parsed into a Hash.
|
|
12
|
+
def initialize(server_response)
|
|
13
|
+
@content = server_response['content']
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# String representation.
|
|
17
|
+
# @return [String]
|
|
18
|
+
def to_s
|
|
19
|
+
@content
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Mindee
|
|
4
|
+
module V2
|
|
5
|
+
module Parsing
|
|
6
|
+
module Search
|
|
7
|
+
# Pagination Metadata data associated with model search.
|
|
8
|
+
class PaginationMetadata
|
|
9
|
+
# @return [Integer] Number of items per page.
|
|
10
|
+
attr_reader :per_page
|
|
11
|
+
|
|
12
|
+
# @return [Integer] 1-indexed page number.
|
|
13
|
+
attr_reader :page
|
|
14
|
+
|
|
15
|
+
# @return [Integer] Total items.
|
|
16
|
+
attr_reader :total_items
|
|
17
|
+
|
|
18
|
+
# @return [Integer] Total number of pages.
|
|
19
|
+
attr_reader :total_pages
|
|
20
|
+
|
|
21
|
+
# @param raw_response [Hash] The parsed JSON payload mapping to pagination metadata.
|
|
22
|
+
def initialize(raw_response)
|
|
23
|
+
@per_page = raw_response['per_page']
|
|
24
|
+
@page = raw_response['page']
|
|
25
|
+
@total_items = raw_response['total_items']
|
|
26
|
+
@total_pages = raw_response['total_pages']
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# String representation of the pagination metadata.
|
|
30
|
+
# @return [String]
|
|
31
|
+
def to_s
|
|
32
|
+
[
|
|
33
|
+
":Per Page: #{@per_page}",
|
|
34
|
+
":Page: #{@page}",
|
|
35
|
+
":Total Items: #{@total_items}",
|
|
36
|
+
":Total Pages: #{@total_pages}",
|
|
37
|
+
'',
|
|
38
|
+
].join("\n")
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Mindee
|
|
4
|
+
module V2
|
|
5
|
+
module Parsing
|
|
6
|
+
module Search
|
|
7
|
+
# Individual model information.
|
|
8
|
+
class SearchModel
|
|
9
|
+
# @return [String] ID of the model.
|
|
10
|
+
attr_reader :id
|
|
11
|
+
|
|
12
|
+
# @return [String] Name of the model.
|
|
13
|
+
attr_reader :name
|
|
14
|
+
|
|
15
|
+
# @return [String] Type of the model.
|
|
16
|
+
attr_reader :model_type
|
|
17
|
+
|
|
18
|
+
# @param payload [Hash] The parsed JSON payload mapping to the search model.
|
|
19
|
+
def initialize(payload)
|
|
20
|
+
@id = payload['id']
|
|
21
|
+
@name = payload['name']
|
|
22
|
+
@model_type = payload['model_type']
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# String representation of the model.
|
|
26
|
+
# @return [String]
|
|
27
|
+
def to_s
|
|
28
|
+
[
|
|
29
|
+
":Name: #{@name}",
|
|
30
|
+
":ID: #{@id}",
|
|
31
|
+
":Model Type: #{@model_type}",
|
|
32
|
+
].join("\n")
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Mindee
|
|
4
|
+
module V2
|
|
5
|
+
module Parsing
|
|
6
|
+
module Search
|
|
7
|
+
# Array of search models.
|
|
8
|
+
class SearchModels < Array
|
|
9
|
+
def initialize(prediction)
|
|
10
|
+
super(prediction.map { |entry| SearchModel.new(entry) })
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
# Default string representation.
|
|
14
|
+
# @return [String]
|
|
15
|
+
def to_s
|
|
16
|
+
return "\n" if empty?
|
|
17
|
+
|
|
18
|
+
lines = flat_map do |model|
|
|
19
|
+
[
|
|
20
|
+
"* :Name: #{model.name}",
|
|
21
|
+
" :ID: #{model.id}",
|
|
22
|
+
" :Model Type: #{model.model_type}",
|
|
23
|
+
]
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# Joins all lines with a newline and appends a final newline
|
|
27
|
+
# to perfectly match the C# StringBuilder output.
|
|
28
|
+
"#{lines.join("\n")}\n"
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Mindee
|
|
4
|
+
module V2
|
|
5
|
+
module Parsing
|
|
6
|
+
module Search
|
|
7
|
+
# Models search response.
|
|
8
|
+
class SearchResponse < CommonResponse
|
|
9
|
+
# @return [Search::Search] Parsed search payload.
|
|
10
|
+
attr_reader :models
|
|
11
|
+
# @return [Search::Search] Pagination metadata.
|
|
12
|
+
attr_reader :pagination_metadata
|
|
13
|
+
|
|
14
|
+
def initialize(server_response)
|
|
15
|
+
super
|
|
16
|
+
|
|
17
|
+
@models = Search::SearchModels.new(server_response['models'])
|
|
18
|
+
@pagination_metadata = PaginationMetadata.new(server_response['pagination'])
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# String representation.
|
|
22
|
+
# @return [String]
|
|
23
|
+
def to_s
|
|
24
|
+
[
|
|
25
|
+
'Models',
|
|
26
|
+
'######',
|
|
27
|
+
models.to_s,
|
|
28
|
+
'Pagination Metadata',
|
|
29
|
+
'###################',
|
|
30
|
+
pagination_metadata.to_s,
|
|
31
|
+
'',
|
|
32
|
+
].join("\n")
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'parsing/common_response'
|
|
4
|
+
require_relative 'parsing/error_response'
|
|
5
|
+
require_relative 'parsing/field'
|
|
6
|
+
require_relative 'parsing/inference_file'
|
|
7
|
+
require_relative 'parsing/inference_job'
|
|
8
|
+
require_relative 'parsing/inference_model'
|
|
9
|
+
require_relative 'parsing/inference_active_options'
|
|
10
|
+
require_relative 'parsing/job'
|
|
11
|
+
require_relative 'parsing/job_response'
|
|
12
|
+
require_relative 'parsing/job_webhook'
|
|
13
|
+
require_relative 'parsing/rag_metadata'
|
|
14
|
+
require_relative 'parsing/raw_text'
|
|
15
|
+
require_relative 'parsing/raw_text_page'
|
|
16
|
+
require_relative 'parsing/search'
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative '../parsing/base_response'
|
|
4
|
+
require_relative '../../input/base_parameters'
|
|
5
|
+
|
|
6
|
+
module Mindee
|
|
7
|
+
module V2
|
|
8
|
+
module Product
|
|
9
|
+
# Base class for all V2 products.
|
|
10
|
+
class BaseProduct
|
|
11
|
+
# @return [String] The slug of the endpoint used for this response
|
|
12
|
+
@slug = ''
|
|
13
|
+
# @return [Class<BaseParameters>] The class of the parameters used for this response
|
|
14
|
+
@params_type = Mindee::Input::BaseParameters
|
|
15
|
+
# @return [Class<BaseResponse>] The class of the response used for this product
|
|
16
|
+
@response_type = Mindee::V2::Parsing::BaseResponse
|
|
17
|
+
|
|
18
|
+
def initialize
|
|
19
|
+
raise StandardError, 'Cannot instantiate abstract class.' if instance_of?(BaseProduct)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
class << self
|
|
23
|
+
attr_reader :params_type, :slug, :response_type
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'classification_response'
|
|
4
|
+
require_relative 'params/classification_parameters'
|
|
5
|
+
|
|
6
|
+
module Mindee
|
|
7
|
+
module V2
|
|
8
|
+
module Product
|
|
9
|
+
# Classification module.
|
|
10
|
+
module Classification
|
|
11
|
+
# Classification product.
|
|
12
|
+
class Classification < BaseProduct
|
|
13
|
+
@slug = 'classification'
|
|
14
|
+
@params_type = Mindee::V2::Product::Classification::Params::ClassificationParameters
|
|
15
|
+
@response_type = Mindee::V2::Product::Classification::ClassificationResponse
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Mindee
|
|
4
|
+
module V2
|
|
5
|
+
module Product
|
|
6
|
+
module Classification
|
|
7
|
+
# Classification of document type from the source file.
|
|
8
|
+
class ClassificationClassifier
|
|
9
|
+
# @return [String] The document type, as identified on given classification values.
|
|
10
|
+
attr_reader :document_type
|
|
11
|
+
|
|
12
|
+
# @param server_response [Hash] Hash representation of the JSON returned by the service.
|
|
13
|
+
def initialize(server_response)
|
|
14
|
+
@document_type = server_response['document_type']
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# @return [String] String representation.
|
|
18
|
+
def to_s
|
|
19
|
+
"Document Type: #{@document_type}"
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|