numind 0.3.2__tar.gz → 0.4.1__tar.gz
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.
- {numind-0.3.2 → numind-0.4.1}/.github/workflows/tests.yml +1 -1
- {numind-0.3.2 → numind-0.4.1}/PKG-INFO +73 -100
- {numind-0.3.2 → numind-0.4.1}/README.md +59 -86
- {numind-0.3.2 → numind-0.4.1}/docs/ContentExtractionApi.md +26 -17
- {numind-0.3.2 → numind-0.4.1}/docs/ContentExtractionProjectManagementApi.md +19 -15
- {numind-0.3.2 → numind-0.4.1}/docs/ContentProjectSettingsResponse.md +5 -3
- numind-0.4.1/docs/ContentProjectSettingsResponseRasterizationDPI.md +39 -0
- numind-0.4.1/docs/ContentSettingsPatch.md +37 -0
- {numind-0.3.2 → numind-0.4.1}/docs/ConvertRequest.md +2 -1
- {numind-0.3.2 → numind-0.4.1}/docs/DefaultApi.md +3 -3
- {numind-0.3.2 → numind-0.4.1}/docs/DocumentsApi.md +11 -4
- {numind-0.3.2 → numind-0.4.1}/docs/FilesApi.md +7 -0
- numind-0.4.1/docs/InferenceApi.md +381 -0
- numind-0.4.1/docs/InferenceStatusResponse.md +31 -0
- numind-0.4.1/docs/JobReportResponse.md +35 -0
- {numind-0.3.2 → numind-0.4.1}/docs/JobsApi.md +93 -0
- numind-0.4.1/docs/PostProcessingErrorResponse.md +36 -0
- numind-0.4.1/docs/PostProcessingRepairResponse.md +39 -0
- numind-0.4.1/docs/PostProcessingReportResponse.md +36 -0
- numind-0.4.1/docs/ReferenceProjectResponse.md +33 -0
- numind-0.4.1/docs/StructuredDataExtractionApi.md +550 -0
- {numind-0.3.2 → numind-0.4.1}/docs/StructuredExtractionExamplesApi.md +1 -4
- {numind-0.3.2 → numind-0.4.1}/docs/StructuredExtractionProjectManagementApi.md +115 -39
- {numind-0.3.2 → numind-0.4.1}/docs/StructuredInferenceExample.md +1 -1
- {numind-0.3.2 → numind-0.4.1}/docs/StructuredProjectSettingsResponse.md +8 -6
- numind-0.4.1/docs/StructuredSettingsPatch.md +40 -0
- numind-0.4.1/docs/TemplateGenerationApi.md +339 -0
- {numind-0.3.2 → numind-0.4.1}/pyproject.toml +7 -6
- {numind-0.3.2 → numind-0.4.1}/sdk_generation/pyproject_base.toml +15 -25
- {numind-0.3.2 → numind-0.4.1}/src/numind/models/__init__.py +11 -6
- {numind-0.3.2 → numind-0.4.1}/src/numind/models/content_project_settings_response.py +30 -6
- numind-0.4.1/src/numind/models/content_project_settings_response_rasterization_dpi.py +164 -0
- numind-0.3.2/src/numind/models/update_content_project_settings_request.py → numind-0.4.1/src/numind/models/content_settings_patch.py +38 -16
- numind-0.4.1/src/numind/models/convert_request.py +104 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/models/health_response.py +3 -2
- {numind-0.3.2 → numind-0.4.1}/src/numind/models/image_info.py +1 -1
- numind-0.4.1/src/numind/models/inference_status_response.py +93 -0
- numind-0.4.1/src/numind/models/job_report_response.py +125 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/models/paginated_response_t.py +3 -2
- numind-0.4.1/src/numind/models/post_processing_error_response.py +98 -0
- numind-0.4.1/src/numind/models/post_processing_repair_response.py +114 -0
- numind-0.4.1/src/numind/models/post_processing_report_response.py +115 -0
- numind-0.4.1/src/numind/models/reference_project_response.py +90 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/models/structured_extraction_response.py +5 -2
- {numind-0.3.2 → numind-0.4.1}/src/numind/models/structured_inference_example.py +4 -2
- {numind-0.3.2 → numind-0.4.1}/src/numind/models/structured_project_settings_response.py +33 -9
- numind-0.3.2/src/numind/models/update_structured_project_settings_request.py → numind-0.4.1/src/numind/models/structured_settings_patch.py +41 -26
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/data_correction.py +13 -2
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/bic.py +12 -4
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/email_address.py +19 -8
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/iban.py +12 -4
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/integer.py +9 -6
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/language_tag.py +2 -3
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/number.py +11 -6
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/phone_number.py +26 -5
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/rfc3987.py +14 -3
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/unit_code.py +2 -3
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/verbatim_string.py +89 -38
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/template_conversion/json_schema.py +12 -0
- numind-0.4.1/src/numind/numind.py +685 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client/__init__.py +34 -8
- {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client/api/content_extraction_api.py +89 -42
- {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client/api/content_extraction_project_management_api.py +25 -27
- {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client/api/default_api.py +6 -6
- {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client/api/documents_api.py +3 -3
- {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client/api/files_api.py +3 -3
- numind-0.4.1/src/numind/openapi_client/api/inference_api.py +1395 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client/api/jobs_api.py +276 -0
- numind-0.3.2/src/numind/openapi_client/api/inference_api.py → numind-0.4.1/src/numind/openapi_client/api/structured_data_extraction_api.py +688 -824
- {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client/api/structured_extraction_examples_api.py +3 -3
- {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client/api/structured_extraction_project_management_api.py +270 -69
- numind-0.4.1/src/numind/openapi_client/api/template_generation_api.py +1160 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client/api_client.py +65 -11
- {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client/configuration.py +36 -5
- {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client/rest.py +32 -11
- {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client_async/__init__.py +34 -8
- {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client_async/api/content_extraction_api.py +89 -42
- {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client_async/api/content_extraction_project_management_api.py +25 -27
- {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client_async/api/default_api.py +6 -6
- {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client_async/api/documents_api.py +3 -3
- {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client_async/api/files_api.py +3 -3
- numind-0.4.1/src/numind/openapi_client_async/api/inference_api.py +1395 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client_async/api/jobs_api.py +276 -0
- numind-0.3.2/src/numind/openapi_client_async/api/inference_api.py → numind-0.4.1/src/numind/openapi_client_async/api/structured_data_extraction_api.py +688 -824
- {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client_async/api/structured_extraction_examples_api.py +3 -3
- {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client_async/api/structured_extraction_project_management_api.py +270 -69
- numind-0.4.1/src/numind/openapi_client_async/api/template_generation_api.py +1160 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client_async/api_client.py +65 -11
- {numind-0.3.2 → numind-0.4.1}/tests/conftest.py +17 -0
- numind-0.4.1/tests/nuextract_utils/test_optional_dependencies.py +131 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_content.py +6 -2
- {numind-0.3.2/tests/openapi_client_async → numind-0.4.1/tests/openapi_client}/test_content_project_response.py +6 -2
- {numind-0.3.2/tests/openapi_client_async → numind-0.4.1/tests/openapi_client}/test_content_project_settings_response.py +6 -2
- numind-0.4.1/tests/openapi_client/test_content_project_settings_response_rasterization_dpi.py +55 -0
- numind-0.3.2/tests/openapi_client/test_update_content_project_settings_request.py → numind-0.4.1/tests/openapi_client/test_content_settings_patch.py +14 -14
- {numind-0.3.2/tests/openapi_client_async → numind-0.4.1/tests/openapi_client}/test_convert_request.py +4 -2
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_import_project_response.py +6 -2
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_inference_api.py +0 -6
- numind-0.4.1/tests/openapi_client/test_inference_status_response.py +57 -0
- numind-0.4.1/tests/openapi_client/test_job_report_response.py +98 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_jobs_api.py +3 -0
- numind-0.4.1/tests/openapi_client/test_post_processing_error_response.py +63 -0
- numind-0.4.1/tests/openapi_client/test_post_processing_repair_response.py +66 -0
- numind-0.4.1/tests/openapi_client/test_post_processing_report_response.py +69 -0
- numind-0.4.1/tests/openapi_client/test_reference_project_response.py +57 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_structured.py +6 -2
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_structured_data_extraction_api.py +6 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_structured_extraction_project_management_api.py +3 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_structured_inference_example.py +0 -1
- {numind-0.3.2/tests/openapi_client_async → numind-0.4.1/tests/openapi_client}/test_structured_project_response.py +6 -2
- {numind-0.3.2/tests/openapi_client_async → numind-0.4.1/tests/openapi_client}/test_structured_project_settings_response.py +6 -2
- numind-0.3.2/tests/openapi_client/test_update_structured_project_settings_request.py → numind-0.4.1/tests/openapi_client/test_structured_settings_patch.py +14 -15
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_template_generation_api.py +3 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_content.py +6 -2
- {numind-0.3.2/tests/openapi_client → numind-0.4.1/tests/openapi_client_async}/test_content_project_response.py +6 -2
- {numind-0.3.2/tests/openapi_client → numind-0.4.1/tests/openapi_client_async}/test_content_project_settings_response.py +6 -2
- numind-0.4.1/tests/openapi_client_async/test_content_project_settings_response_rasterization_dpi.py +55 -0
- numind-0.3.2/tests/openapi_client_async/test_update_content_project_settings_request.py → numind-0.4.1/tests/openapi_client_async/test_content_settings_patch.py +14 -14
- {numind-0.3.2/tests/openapi_client → numind-0.4.1/tests/openapi_client_async}/test_convert_request.py +4 -2
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_import_project_response.py +6 -2
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_inference_api.py +0 -8
- numind-0.4.1/tests/openapi_client_async/test_inference_status_response.py +57 -0
- numind-0.4.1/tests/openapi_client_async/test_job_report_response.py +98 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_jobs_api.py +3 -0
- numind-0.4.1/tests/openapi_client_async/test_post_processing_error_response.py +63 -0
- numind-0.4.1/tests/openapi_client_async/test_post_processing_repair_response.py +66 -0
- numind-0.4.1/tests/openapi_client_async/test_post_processing_report_response.py +69 -0
- numind-0.4.1/tests/openapi_client_async/test_reference_project_response.py +57 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_structured.py +6 -2
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_structured_data_extraction_api.py +8 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_structured_extraction_project_management_api.py +3 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_structured_inference_example.py +0 -1
- {numind-0.3.2/tests/openapi_client → numind-0.4.1/tests/openapi_client_async}/test_structured_project_response.py +6 -2
- {numind-0.3.2/tests/openapi_client → numind-0.4.1/tests/openapi_client_async}/test_structured_project_settings_response.py +6 -2
- numind-0.3.2/tests/openapi_client_async/test_update_structured_project_settings_request.py → numind-0.4.1/tests/openapi_client_async/test_structured_settings_patch.py +14 -15
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_template_generation_api.py +3 -0
- {numind-0.3.2 → numind-0.4.1}/tests/test_conversion_json_schema.py +33 -0
- numind-0.4.1/tests/test_extract_structured_data.py +188 -0
- numind-0.4.1/tests/test_numarkdown.py +150 -0
- numind-0.4.1/tests/test_project.py +237 -0
- numind-0.3.2/docs/InferenceApi.md +0 -562
- numind-0.3.2/docs/StructuredDataExtractionApi.md +0 -236
- numind-0.3.2/docs/TemplateGenerationApi.md +0 -203
- numind-0.3.2/docs/UpdateContentProjectSettingsRequest.md +0 -43
- numind-0.3.2/docs/UpdateStructuredProjectSettingsRequest.md +0 -47
- numind-0.3.2/src/numind/models/convert_request.py +0 -85
- numind-0.3.2/src/numind/numind.py +0 -558
- numind-0.3.2/src/numind/openapi_client/api/structured_data_extraction_api.py +0 -958
- numind-0.3.2/src/numind/openapi_client/api/template_generation_api.py +0 -680
- numind-0.3.2/src/numind/openapi_client_async/api/structured_data_extraction_api.py +0 -958
- numind-0.3.2/src/numind/openapi_client_async/api/template_generation_api.py +0 -680
- numind-0.3.2/tests/test_numarkdown.py +0 -27
- numind-0.3.2/tests/test_project.py +0 -135
- {numind-0.3.2 → numind-0.4.1}/.github/codecov.yml +0 -0
- {numind-0.3.2 → numind-0.4.1}/.github/dependabot.yml +0 -0
- {numind-0.3.2 → numind-0.4.1}/.github/workflows/lint.yml +0 -0
- {numind-0.3.2 → numind-0.4.1}/.github/workflows/publish-pypi.yml +0 -0
- {numind-0.3.2 → numind-0.4.1}/.github/workflows/sdk-auto-update.yml +0 -0
- {numind-0.3.2 → numind-0.4.1}/.github/workflows/update-api-build-version-repo-var.yml +0 -0
- {numind-0.3.2 → numind-0.4.1}/.gitignore +0 -0
- {numind-0.3.2 → numind-0.4.1}/LICENSE +0 -0
- {numind-0.3.2 → numind-0.4.1}/docs/Content.md +0 -0
- {numind-0.3.2 → numind-0.4.1}/docs/ContentExtractionResponse.md +0 -0
- {numind-0.3.2 → numind-0.4.1}/docs/ContentProjectResponse.md +0 -0
- {numind-0.3.2 → numind-0.4.1}/docs/CreateContentProjectRequest.md +0 -0
- {numind-0.3.2 → numind-0.4.1}/docs/CreateOrUpdateStructuredExampleRequest.md +0 -0
- {numind-0.3.2 → numind-0.4.1}/docs/CreateStructuredProjectRequest.md +0 -0
- {numind-0.3.2 → numind-0.4.1}/docs/DocumentInfo.md +0 -0
- {numind-0.3.2 → numind-0.4.1}/docs/DocumentResponse.md +0 -0
- {numind-0.3.2 → numind-0.4.1}/docs/Error.md +0 -0
- {numind-0.3.2 → numind-0.4.1}/docs/FileResponse.md +0 -0
- {numind-0.3.2 → numind-0.4.1}/docs/HealthResponse.md +0 -0
- {numind-0.3.2 → numind-0.4.1}/docs/ImageInfo.md +0 -0
- {numind-0.3.2 → numind-0.4.1}/docs/ImportProjectResponse.md +0 -0
- {numind-0.3.2 → numind-0.4.1}/docs/InferenceStatus.md +0 -0
- {numind-0.3.2 → numind-0.4.1}/docs/InferenceValidationError.md +0 -0
- {numind-0.3.2 → numind-0.4.1}/docs/InformationResponse.md +0 -0
- {numind-0.3.2 → numind-0.4.1}/docs/InvalidInformation.md +0 -0
- {numind-0.3.2 → numind-0.4.1}/docs/JobIdResponse.md +0 -0
- {numind-0.3.2 → numind-0.4.1}/docs/JobStatusResponse.md +0 -0
- {numind-0.3.2 → numind-0.4.1}/docs/PaginatedResponseT.md +0 -0
- {numind-0.3.2 → numind-0.4.1}/docs/ProjectImportExportApi.md +0 -0
- {numind-0.3.2 → numind-0.4.1}/docs/ServiceStatus.md +0 -0
- {numind-0.3.2 → numind-0.4.1}/docs/Structured.md +0 -0
- {numind-0.3.2 → numind-0.4.1}/docs/StructuredExampleResponse.md +0 -0
- {numind-0.3.2 → numind-0.4.1}/docs/StructuredExtractionResponse.md +0 -0
- {numind-0.3.2 → numind-0.4.1}/docs/StructuredProjectResponse.md +0 -0
- {numind-0.3.2 → numind-0.4.1}/docs/TemplateRequest.md +0 -0
- {numind-0.3.2 → numind-0.4.1}/docs/TemplateResponse.md +0 -0
- {numind-0.3.2 → numind-0.4.1}/docs/TextInfo.md +0 -0
- {numind-0.3.2 → numind-0.4.1}/docs/TextRequest.md +0 -0
- {numind-0.3.2 → numind-0.4.1}/docs/UpdateContentProjectRequest.md +0 -0
- {numind-0.3.2 → numind-0.4.1}/docs/UpdateStructuredProjectRequest.md +0 -0
- {numind-0.3.2 → numind-0.4.1}/docs/ValidInformation.md +0 -0
- {numind-0.3.2 → numind-0.4.1}/docs/VersionResponse.md +0 -0
- {numind-0.3.2 → numind-0.4.1}/sdk_generation/.openapi-generator-ignore +0 -0
- {numind-0.3.2 → numind-0.4.1}/sdk_generation/adapt_openapi_client_init.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/sdk_generation/adapt_pyproject.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/sdk_generation/collate_documentation_readme.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/sdk_generation/config.json +0 -0
- {numind-0.3.2 → numind-0.4.1}/sdk_generation/gen_sdk.sh +0 -0
- {numind-0.3.2 → numind-0.4.1}/sdk_generation/remove_unused_models_from_openapi_spec_file.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/__init__.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/api_response.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/constants.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/exceptions.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/models/content.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/models/content_extraction_response.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/models/content_project_response.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/models/create_content_project_request.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/models/create_or_update_structured_example_request.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/models/create_structured_project_request.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/models/document_info.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/models/document_response.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/models/error.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/models/file_response.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/models/import_project_response.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/models/inference_status.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/models/inference_validation_error.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/models/information_response.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/models/invalid_information.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/models/job_id_response.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/models/job_status_response.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/models/service_status.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/models/structured.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/models/structured_example_response.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/models/structured_project_response.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/models/template_request.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/models/template_response.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/models/text_info.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/models/text_request.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/models/update_content_project_request.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/models/update_structured_project_request.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/models/valid_information.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/models/version_response.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/__init__.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/_iso_data/CLDR likelySubtags.xml +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/_iso_data/CLDR supplementalData.xml +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/_iso_data/IANA language subtag registry.txt +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/_iso_data/IANA tlds.txt +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/_iso_data/ISO 15924.csv +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/_iso_data/ISO 3166-1.csv +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/_iso_data/ISO 3166-2.csv +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/_iso_data/ISO 4217 list-one.csv +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/_iso_data/ISO 4217 list-three.csv +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/_iso_data/__init__.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/_iso_data/iso-639-3.tab +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/_iso_data/iso-639-3_Retirements.tab +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/_iso_data/ucum-essence.xml +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/__init__.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/constants.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/data_validation.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/models.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/__init__.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/_utils.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/base.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/country.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/currency.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/date_time.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/duration.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/geolocation.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/language.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/region.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/script.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/string_.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/url.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/utils.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/template_conversion/__init__.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/template_conversion/constants.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/template_conversion/pydantic.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/template_conversion/validation.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client/api/__init__.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client/api/project_import_export_api.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client/py.typed +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client_async/api/__init__.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client_async/api/project_import_export_api.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client_async/configuration.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client_async/py.typed +0 -0
- {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client_async/rest.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/__init__.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/json_schema_test_cases/1.json +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/nuextract_utils/__init__.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/nuextract_utils/test_error_detection.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/__init__.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_content_extraction_api.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_content_extraction_project_management_api.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_content_extraction_response.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_create_content_project_request.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_create_or_update_structured_example_request.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_create_structured_project_request.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_default_api.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_document_info.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_document_response.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_documents_api.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_error.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_file_response.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_files_api.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_health_response.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_image_info.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_inference_status.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_inference_validation_error.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_information_response.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_invalid_information.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_job_id_response.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_job_status_response.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_paginated_response_t.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_project_import_export_api.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_service_status.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_structured_example_response.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_structured_extraction_examples_api.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_structured_extraction_response.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_template_request.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_template_response.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_text_info.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_text_request.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_update_content_project_request.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_update_structured_project_request.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_valid_information.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_version_response.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/__init__.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_content_extraction_api.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_content_extraction_project_management_api.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_content_extraction_response.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_create_content_project_request.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_create_or_update_structured_example_request.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_create_structured_project_request.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_default_api.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_document_info.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_document_response.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_documents_api.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_error.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_file_response.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_files_api.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_health_response.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_image_info.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_inference_status.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_inference_validation_error.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_information_response.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_invalid_information.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_job_id_response.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_job_status_response.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_paginated_response_t.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_project_import_export_api.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_service_status.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_structured_example_response.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_structured_extraction_examples_api.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_structured_extraction_response.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_template_request.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_template_response.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_text_info.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_text_request.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_update_content_project_request.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_update_structured_project_request.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_valid_information.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_version_response.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/test_cases/vacation/examples.csv +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/test_cases/vacation/files/tahiti.docx +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/test_cases/vacation/files_examples/kyoto.docx +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/test_cases/vacation/schema.json +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/test_cases/vacation/texts.csv +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/test_conversion_pydantic.py +0 -0
- {numind-0.3.2 → numind-0.4.1}/tests/test_json_schema_descriptions.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: numind
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.1
|
|
4
4
|
Summary: SDK to interact with the NuMind models API.
|
|
5
5
|
Project-URL: Homepage, https://github.com/numindai/nuextract-platform-sdk
|
|
6
6
|
Project-URL: Repository, https://github.com/numindai/nuextract-platform-sdk.git
|
|
@@ -36,30 +36,21 @@ Classifier: License :: OSI Approved :: MIT License
|
|
|
36
36
|
Classifier: Operating System :: OS Independent
|
|
37
37
|
Classifier: Programming Language :: Python
|
|
38
38
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
39
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
40
39
|
Classifier: Programming Language :: Python :: 3.10
|
|
41
40
|
Classifier: Programming Language :: Python :: 3.11
|
|
42
41
|
Classifier: Programming Language :: Python :: 3.12
|
|
43
42
|
Classifier: Programming Language :: Python :: 3.13
|
|
43
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
44
|
+
Classifier: Programming Language :: Python :: 3.15
|
|
44
45
|
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
45
|
-
Requires-Python: >=3.
|
|
46
|
+
Requires-Python: >=3.10
|
|
46
47
|
Requires-Dist: aiohttp-retry>=2.8.3
|
|
47
|
-
Requires-Dist: aiohttp>=3.
|
|
48
|
-
Requires-Dist: cdifflib>=1.2.9
|
|
49
|
-
Requires-Dist: defusedxml>=0.7.1
|
|
50
|
-
Requires-Dist: emval>=0.1.3
|
|
51
|
-
Requires-Dist: eval-type-backport>=0.2.2; python_version < '3.10'
|
|
48
|
+
Requires-Dist: aiohttp>=3.14.1
|
|
52
49
|
Requires-Dist: json-repair>=0.44.1
|
|
53
50
|
Requires-Dist: jsonschema
|
|
54
51
|
Requires-Dist: orjson
|
|
55
|
-
Requires-Dist: phonenumbers>=9.0.24
|
|
56
52
|
Requires-Dist: pydantic>=2.11
|
|
57
53
|
Requires-Dist: python-dateutil>=2.8.2
|
|
58
|
-
Requires-Dist: rapidfuzz>=3.13.0
|
|
59
|
-
Requires-Dist: regex>=2026.1.15
|
|
60
|
-
Requires-Dist: schwifty>=2025.9.0
|
|
61
|
-
Requires-Dist: stringzilla>=4.6.1
|
|
62
|
-
Requires-Dist: sympy>=1.14.0
|
|
63
54
|
Requires-Dist: typing-extensions>=4.7.1
|
|
64
55
|
Requires-Dist: urllib3
|
|
65
56
|
Provides-Extra: build
|
|
@@ -67,6 +58,15 @@ Requires-Dist: openapi-generator-cli; extra == 'build'
|
|
|
67
58
|
Requires-Dist: pyyaml; extra == 'build'
|
|
68
59
|
Requires-Dist: toml; extra == 'build'
|
|
69
60
|
Requires-Dist: uv; extra == 'build'
|
|
61
|
+
Provides-Extra: data-validation
|
|
62
|
+
Requires-Dist: cdifflib>=1.2.9; extra == 'data-validation'
|
|
63
|
+
Requires-Dist: emval>=0.1.3; extra == 'data-validation'
|
|
64
|
+
Requires-Dist: phonenumbers>=9.0.24; extra == 'data-validation'
|
|
65
|
+
Requires-Dist: rapidfuzz>=3.13.0; extra == 'data-validation'
|
|
66
|
+
Requires-Dist: regex>=2026.1.15; extra == 'data-validation'
|
|
67
|
+
Requires-Dist: schwifty>=2025.9.0; extra == 'data-validation'
|
|
68
|
+
Requires-Dist: stringzilla>=4.6.1; extra == 'data-validation'
|
|
69
|
+
Requires-Dist: sympy>=1.14.0; extra == 'data-validation'
|
|
70
70
|
Provides-Extra: tests
|
|
71
71
|
Requires-Dist: pytest-asyncio; extra == 'tests'
|
|
72
72
|
Requires-Dist: pytest-cov; extra == 'tests'
|
|
@@ -92,7 +92,6 @@ You must first get an API key on the [NuExtract platform](https://nuextract.ai/a
|
|
|
92
92
|
|
|
93
93
|
```python
|
|
94
94
|
import os
|
|
95
|
-
|
|
96
95
|
from numind import NuMind
|
|
97
96
|
|
|
98
97
|
# Create a client object to interact with the API
|
|
@@ -101,60 +100,30 @@ from numind import NuMind
|
|
|
101
100
|
client = NuMind(api_key=os.environ["NUMIND_API_KEY"])
|
|
102
101
|
```
|
|
103
102
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
You can create an **async** client by using the `NuMindAsync` class:
|
|
107
|
-
|
|
108
|
-
```python
|
|
109
|
-
import asyncio
|
|
110
|
-
from numind import NuMindAsync
|
|
111
|
-
|
|
112
|
-
client = NuMindAsync(api_key="API_KEY")
|
|
113
|
-
requests = [{}]
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
async def main():
|
|
117
|
-
return [
|
|
118
|
-
await client.extract_structured_data(project_id, **request_kwargs)
|
|
119
|
-
for request_kwargs in requests
|
|
120
|
-
]
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
responses = asyncio.run(main())
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
The methods and their usages are the same as for the sync `NuMind` client except that API methods are coroutines that must be awaited.
|
|
103
|
+
You can create an **async** client by using the `NuMindAsync` class.
|
|
104
|
+
The methods and their usages are the same as for the sync `NuMind` client.
|
|
127
105
|
|
|
128
|
-
###
|
|
106
|
+
### Extract structured data
|
|
129
107
|
|
|
130
|
-
If you want to extract structured information
|
|
108
|
+
If you want to extract structured information without a project, provide the template directly to `extract_structured_data`:
|
|
131
109
|
|
|
132
110
|
```python
|
|
133
111
|
template = {
|
|
134
112
|
"destination": {
|
|
135
113
|
"name": "verbatim-string",
|
|
136
114
|
"zip_code": "string",
|
|
137
|
-
"country": "
|
|
115
|
+
"country": "country",
|
|
138
116
|
},
|
|
139
117
|
"accommodation": "verbatim-string",
|
|
140
118
|
"activities": ["verbatim-string"],
|
|
141
|
-
"duration":
|
|
142
|
-
"time_unit": ["day", "week", "month", "year"],
|
|
143
|
-
"time_quantity": "integer",
|
|
144
|
-
},
|
|
119
|
+
"duration": "duration",
|
|
145
120
|
}
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
output = client.extract_structured_data(template=template, input_text=input_text)
|
|
153
|
-
print(output)
|
|
154
|
-
|
|
155
|
-
# Can also work with files, replace the path with your own
|
|
156
|
-
# from pathlib import Path
|
|
157
|
-
# output = client.extract(template=template, input_file="file.ppt")
|
|
121
|
+
input_file_path = Path("to", "file.pdf")
|
|
122
|
+
response = client.extract_structured_data(
|
|
123
|
+
template=template,
|
|
124
|
+
input_file=input_file_path,
|
|
125
|
+
)
|
|
126
|
+
print(response.result)
|
|
158
127
|
```
|
|
159
128
|
|
|
160
129
|
```json
|
|
@@ -162,7 +131,7 @@ print(output)
|
|
|
162
131
|
"destination": {
|
|
163
132
|
"name": "Tahiti",
|
|
164
133
|
"zip_code": "98730",
|
|
165
|
-
"country": "
|
|
134
|
+
"country": "FR"
|
|
166
135
|
},
|
|
167
136
|
"accommodation": "overwater bungalow in Bora Bora",
|
|
168
137
|
"activities": [
|
|
@@ -171,16 +140,13 @@ print(output)
|
|
|
171
140
|
"basking",
|
|
172
141
|
"explore lush rainforests, hidden waterfalls, and the rich Polynesian culture"
|
|
173
142
|
],
|
|
174
|
-
"duration":
|
|
175
|
-
"time_unit": null,
|
|
176
|
-
"time_quantity": null
|
|
177
|
-
}
|
|
143
|
+
"duration": null
|
|
178
144
|
}
|
|
179
145
|
```
|
|
180
146
|
|
|
181
147
|
### Create a good template
|
|
182
148
|
|
|
183
|
-
NuExtract uses JSON extraction templates which specify the information to retrieve and their types
|
|
149
|
+
NuExtract uses JSON extraction templates which specify the information to retrieve and their types:
|
|
184
150
|
|
|
185
151
|
* **string**: a text, whose value can be abstract, i.e. totally free and can be deduced from calculations, reasoning, external knowledge;
|
|
186
152
|
* **verbatim-string**: a purely extractive text whose value must be present in the document. Some flexibility might be allowed on the formatting, e.g. new lines and escaped characters (e.g. `\n`) in a documents might be represented with a space;
|
|
@@ -231,16 +197,26 @@ otherwise it is `None`, and `incompatibilities` identifies the affected location
|
|
|
231
197
|
|
|
232
198
|
### Inferring a template
|
|
233
199
|
|
|
234
|
-
|
|
200
|
+
Template generation is asynchronous. Submit a natural-language description, poll the job status, and retrieve the generated template once complete.
|
|
235
201
|
|
|
236
202
|
```python
|
|
237
|
-
|
|
238
|
-
|
|
203
|
+
import time
|
|
204
|
+
|
|
205
|
+
from numind.models import TemplateRequest
|
|
239
206
|
|
|
240
207
|
description = "Create a template that extracts key information from an order confirmation email. The template should be able to pull details like the order ID, customer ID, date and time of the order, status, total amount, currency, item details (product ID, quantity, and unit price), shipping address, any customer requests or delivery preferences, and the estimated delivery date."
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
)
|
|
208
|
+
job_id = client.post_api_template_generation_jobs_text(
|
|
209
|
+
TemplateRequest(description=description)
|
|
210
|
+
).job_id
|
|
211
|
+
|
|
212
|
+
job_status = client.get_api_jobs_jobid_status(job_id)
|
|
213
|
+
while job_status.completed_at is None:
|
|
214
|
+
time.sleep(4)
|
|
215
|
+
job_status = client.get_api_jobs_jobid_status(job_id)
|
|
216
|
+
if job_status.status != "completed":
|
|
217
|
+
raise RuntimeError(f"Template generation failed with status {job_status.status}")
|
|
218
|
+
|
|
219
|
+
template = client.get_api_template_generation_jobs_templatejobid(job_id).result
|
|
244
220
|
```
|
|
245
221
|
|
|
246
222
|
### Create a project
|
|
@@ -248,15 +224,16 @@ input_schema = client.post_api_infer_template(
|
|
|
248
224
|
A project allows to define an information extraction task from a template and examples.
|
|
249
225
|
|
|
250
226
|
```python
|
|
251
|
-
from numind.
|
|
227
|
+
from numind.models import CreateStructuredProjectRequest
|
|
252
228
|
|
|
253
229
|
project_id = client.post_api_structured_extraction(
|
|
254
|
-
|
|
230
|
+
CreateStructuredProjectRequest(
|
|
255
231
|
name="vacation",
|
|
256
232
|
description="Extraction of locations and activities",
|
|
257
233
|
template=template,
|
|
234
|
+
instructions="",
|
|
258
235
|
)
|
|
259
|
-
)
|
|
236
|
+
).id
|
|
260
237
|
```
|
|
261
238
|
|
|
262
239
|
The `project_id` can also be found in the "API" tab of a project on the NuExtract website.
|
|
@@ -271,8 +248,7 @@ example_1_input = "This is a text example"
|
|
|
271
248
|
example_1_expected_output = {
|
|
272
249
|
"destination": {"name": None, "zip_code": None, "country": None}
|
|
273
250
|
}
|
|
274
|
-
|
|
275
|
-
example_2_input = file.read()
|
|
251
|
+
example_2_input = Path("example_2.odt")
|
|
276
252
|
example_2_expected_output = {
|
|
277
253
|
"destination": {"name": None, "zip_code": None, "country": None}
|
|
278
254
|
}
|
|
@@ -285,34 +261,21 @@ examples = [
|
|
|
285
261
|
client.add_examples_to_structured_extraction_project(project_id, examples)
|
|
286
262
|
```
|
|
287
263
|
|
|
288
|
-
###
|
|
289
|
-
|
|
290
|
-
```python
|
|
291
|
-
output_schema = client.extract_structured_data(project_id, input_text=input_text)
|
|
292
|
-
```
|
|
293
|
-
|
|
294
|
-
### Extract structured information from a file
|
|
295
|
-
|
|
296
|
-
```python
|
|
297
|
-
from pathlib import Path
|
|
298
|
-
|
|
299
|
-
file_path = Path("document.odt")
|
|
300
|
-
with file_path.open("rb") as file:
|
|
301
|
-
input_file = file.read()
|
|
302
|
-
output_schema = client.extract(project_id, input_file=input_file)
|
|
303
|
-
```
|
|
304
|
-
|
|
305
|
-
### NuMarkdown: Convert a document to a RAG-ready Markdown
|
|
264
|
+
### Convert a document to a RAG-ready Markdown
|
|
306
265
|
|
|
307
266
|
```python
|
|
308
267
|
from pathlib import Path
|
|
309
268
|
|
|
310
269
|
file_path = Path("document.pdf")
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
markdown = client.extract_content(input_file)
|
|
270
|
+
response = client.extract_content(file_path, job_status_polling_delay=2.0)
|
|
271
|
+
print(response.result)
|
|
314
272
|
```
|
|
315
273
|
|
|
274
|
+
`extract_structured_data` and `extract_content` poll job status every four seconds by
|
|
275
|
+
default. Use `job_status_polling_delay` to select a different interval in seconds.
|
|
276
|
+
Failed jobs raise `RuntimeError` by default. Set `raise_on_job_fail=False` to return a
|
|
277
|
+
`FailedJobStatusResponse` containing the complete job status and its failure reason.
|
|
278
|
+
|
|
316
279
|
# Documentation
|
|
317
280
|
|
|
318
281
|
### Extracting Information from Documents
|
|
@@ -404,7 +367,7 @@ This Python package is automatically generated by the [OpenAPI Generator](https:
|
|
|
404
367
|
|
|
405
368
|
- API version:
|
|
406
369
|
- Package version: 1.0.0
|
|
407
|
-
- Generator version: 7.
|
|
370
|
+
- Generator version: 7.26.0
|
|
408
371
|
- Build package: org.openapitools.codegen.languages.PythonClientCodegen
|
|
409
372
|
|
|
410
373
|
### Documentation for API Endpoints
|
|
@@ -436,17 +399,18 @@ Class | Method | HTTP request | Description
|
|
|
436
399
|
*FilesApi* | [**post_api_files_fileid_convert_to_document**](docs/FilesApi.md#post_api_files_fileid_convert_to_document) | **POST** /api/files/{fileId}/convert-to-document |
|
|
437
400
|
*InferenceApi* | [**post_api_content_extraction_contentprojectid_jobs_document_documentid**](docs/InferenceApi.md#post_api_content_extraction_contentprojectid_jobs_document_documentid) | **POST** /api/content-extraction/{contentProjectId}/jobs/document/{documentId} |
|
|
438
401
|
*InferenceApi* | [**post_api_structured_extraction_structuredprojectid_jobs_document_documentid**](docs/InferenceApi.md#post_api_structured_extraction_structuredprojectid_jobs_document_documentid) | **POST** /api/structured-extraction/{structuredProjectId}/jobs/document/{documentId} |
|
|
439
|
-
*InferenceApi* | [**post_api_structured_extraction_structuredprojectid_jobs_text**](docs/InferenceApi.md#post_api_structured_extraction_structuredprojectid_jobs_text) | **POST** /api/structured-extraction/{structuredProjectId}/jobs/text |
|
|
440
402
|
*InferenceApi* | [**post_api_template_generation_jobs_document_documentid**](docs/InferenceApi.md#post_api_template_generation_jobs_document_documentid) | **POST** /api/template-generation/jobs/document/{documentId} |
|
|
441
|
-
*InferenceApi* | [**post_api_template_generation_jobs_text**](docs/InferenceApi.md#post_api_template_generation_jobs_text) | **POST** /api/template-generation/jobs/text |
|
|
442
403
|
*JobsApi* | [**get_api_jobs**](docs/JobsApi.md#get_api_jobs) | **GET** /api/jobs |
|
|
404
|
+
*JobsApi* | [**get_api_jobs_jobid_reports**](docs/JobsApi.md#get_api_jobs_jobid_reports) | **GET** /api/jobs/{jobId}/reports |
|
|
443
405
|
*JobsApi* | [**get_api_jobs_jobid_status**](docs/JobsApi.md#get_api_jobs_jobid_status) | **GET** /api/jobs/{jobId}/status |
|
|
444
406
|
*JobsApi* | [**get_api_jobs_jobid_stream**](docs/JobsApi.md#get_api_jobs_jobid_stream) | **GET** /api/jobs/{jobId}/stream |
|
|
445
407
|
*JobsApi* | [**post_api_jobs_jobid_cancel**](docs/JobsApi.md#post_api_jobs_jobid_cancel) | **POST** /api/jobs/{jobId}/cancel |
|
|
446
408
|
*ProjectImportExportApi* | [**get_api_extraction_projectkind_projectid_export**](docs/ProjectImportExportApi.md#get_api_extraction_projectkind_projectid_export) | **GET** /api/extraction/{projectKind}/{projectId}/export |
|
|
447
409
|
*ProjectImportExportApi* | [**post_api_extraction_import**](docs/ProjectImportExportApi.md#post_api_extraction_import) | **POST** /api/extraction/import |
|
|
448
410
|
*StructuredDataExtractionApi* | [**get_api_structured_extraction_jobs_structuredextractionjobid**](docs/StructuredDataExtractionApi.md#get_api_structured_extraction_jobs_structuredextractionjobid) | **GET** /api/structured-extraction/jobs/{structuredExtractionJobId} |
|
|
411
|
+
*StructuredDataExtractionApi* | [**post_api_structured_extraction_jobs**](docs/StructuredDataExtractionApi.md#post_api_structured_extraction_jobs) | **POST** /api/structured-extraction/jobs |
|
|
449
412
|
*StructuredDataExtractionApi* | [**post_api_structured_extraction_structuredprojectid_jobs**](docs/StructuredDataExtractionApi.md#post_api_structured_extraction_structuredprojectid_jobs) | **POST** /api/structured-extraction/{structuredProjectId}/jobs |
|
|
413
|
+
*StructuredDataExtractionApi* | [**post_api_structured_extraction_structuredprojectid_jobs_text**](docs/StructuredDataExtractionApi.md#post_api_structured_extraction_structuredprojectid_jobs_text) | **POST** /api/structured-extraction/{structuredProjectId}/jobs/text |
|
|
450
414
|
*StructuredExtractionExamplesApi* | [**delete_api_structured_extraction_structuredprojectid_examples_structuredexampleid**](docs/StructuredExtractionExamplesApi.md#delete_api_structured_extraction_structuredprojectid_examples_structuredexampleid) | **DELETE** /api/structured-extraction/{structuredProjectId}/examples/{structuredExampleId} |
|
|
451
415
|
*StructuredExtractionExamplesApi* | [**get_api_structured_extraction_structuredprojectid_examples**](docs/StructuredExtractionExamplesApi.md#get_api_structured_extraction_structuredprojectid_examples) | **GET** /api/structured-extraction/{structuredProjectId}/examples |
|
|
452
416
|
*StructuredExtractionExamplesApi* | [**get_api_structured_extraction_structuredprojectid_examples_structuredexampleid**](docs/StructuredExtractionExamplesApi.md#get_api_structured_extraction_structuredprojectid_examples_structuredexampleid) | **GET** /api/structured-extraction/{structuredProjectId}/examples/{structuredExampleId} |
|
|
@@ -454,6 +418,7 @@ Class | Method | HTTP request | Description
|
|
|
454
418
|
*StructuredExtractionExamplesApi* | [**put_api_structured_extraction_structuredprojectid_examples_structuredexampleid**](docs/StructuredExtractionExamplesApi.md#put_api_structured_extraction_structuredprojectid_examples_structuredexampleid) | **PUT** /api/structured-extraction/{structuredProjectId}/examples/{structuredExampleId} |
|
|
455
419
|
*StructuredExtractionProjectManagementApi* | [**delete_api_structured_extraction_structuredprojectid**](docs/StructuredExtractionProjectManagementApi.md#delete_api_structured_extraction_structuredprojectid) | **DELETE** /api/structured-extraction/{structuredProjectId} |
|
|
456
420
|
*StructuredExtractionProjectManagementApi* | [**get_api_structured_extraction**](docs/StructuredExtractionProjectManagementApi.md#get_api_structured_extraction) | **GET** /api/structured-extraction |
|
|
421
|
+
*StructuredExtractionProjectManagementApi* | [**get_api_structured_extraction_reference_projects**](docs/StructuredExtractionProjectManagementApi.md#get_api_structured_extraction_reference_projects) | **GET** /api/structured-extraction/reference-projects |
|
|
457
422
|
*StructuredExtractionProjectManagementApi* | [**get_api_structured_extraction_structuredprojectid**](docs/StructuredExtractionProjectManagementApi.md#get_api_structured_extraction_structuredprojectid) | **GET** /api/structured-extraction/{structuredProjectId} |
|
|
458
423
|
*StructuredExtractionProjectManagementApi* | [**get_api_structured_extraction_structuredprojectid_thumbnail**](docs/StructuredExtractionProjectManagementApi.md#get_api_structured_extraction_structuredprojectid_thumbnail) | **GET** /api/structured-extraction/{structuredProjectId}/thumbnail |
|
|
459
424
|
*StructuredExtractionProjectManagementApi* | [**patch_api_structured_extraction_structuredprojectid**](docs/StructuredExtractionProjectManagementApi.md#patch_api_structured_extraction_structuredprojectid) | **PATCH** /api/structured-extraction/{structuredProjectId} |
|
|
@@ -467,6 +432,7 @@ Class | Method | HTTP request | Description
|
|
|
467
432
|
*StructuredExtractionProjectManagementApi* | [**post_api_structured_extraction_structuredprojectid_unshare**](docs/StructuredExtractionProjectManagementApi.md#post_api_structured_extraction_structuredprojectid_unshare) | **POST** /api/structured-extraction/{structuredProjectId}/unshare |
|
|
468
433
|
*TemplateGenerationApi* | [**get_api_template_generation_jobs_templatejobid**](docs/TemplateGenerationApi.md#get_api_template_generation_jobs_templatejobid) | **GET** /api/template-generation/jobs/{templateJobId} |
|
|
469
434
|
*TemplateGenerationApi* | [**post_api_template_generation_jobs**](docs/TemplateGenerationApi.md#post_api_template_generation_jobs) | **POST** /api/template-generation/jobs |
|
|
435
|
+
*TemplateGenerationApi* | [**post_api_template_generation_jobs_text**](docs/TemplateGenerationApi.md#post_api_template_generation_jobs_text) | **POST** /api/template-generation/jobs/text |
|
|
470
436
|
|
|
471
437
|
|
|
472
438
|
### Documentation For Models
|
|
@@ -475,6 +441,8 @@ Class | Method | HTTP request | Description
|
|
|
475
441
|
- [ContentExtractionResponse](docs/ContentExtractionResponse.md)
|
|
476
442
|
- [ContentProjectResponse](docs/ContentProjectResponse.md)
|
|
477
443
|
- [ContentProjectSettingsResponse](docs/ContentProjectSettingsResponse.md)
|
|
444
|
+
- [ContentProjectSettingsResponseRasterizationDPI](docs/ContentProjectSettingsResponseRasterizationDPI.md)
|
|
445
|
+
- [ContentSettingsPatch](docs/ContentSettingsPatch.md)
|
|
478
446
|
- [ConvertRequest](docs/ConvertRequest.md)
|
|
479
447
|
- [CreateContentProjectRequest](docs/CreateContentProjectRequest.md)
|
|
480
448
|
- [CreateOrUpdateStructuredExampleRequest](docs/CreateOrUpdateStructuredExampleRequest.md)
|
|
@@ -487,12 +455,18 @@ Class | Method | HTTP request | Description
|
|
|
487
455
|
- [ImageInfo](docs/ImageInfo.md)
|
|
488
456
|
- [ImportProjectResponse](docs/ImportProjectResponse.md)
|
|
489
457
|
- [InferenceStatus](docs/InferenceStatus.md)
|
|
458
|
+
- [InferenceStatusResponse](docs/InferenceStatusResponse.md)
|
|
490
459
|
- [InferenceValidationError](docs/InferenceValidationError.md)
|
|
491
460
|
- [InformationResponse](docs/InformationResponse.md)
|
|
492
461
|
- [InvalidInformation](docs/InvalidInformation.md)
|
|
493
462
|
- [JobIdResponse](docs/JobIdResponse.md)
|
|
463
|
+
- [JobReportResponse](docs/JobReportResponse.md)
|
|
494
464
|
- [JobStatusResponse](docs/JobStatusResponse.md)
|
|
495
465
|
- [PaginatedResponseT](docs/PaginatedResponseT.md)
|
|
466
|
+
- [PostProcessingErrorResponse](docs/PostProcessingErrorResponse.md)
|
|
467
|
+
- [PostProcessingRepairResponse](docs/PostProcessingRepairResponse.md)
|
|
468
|
+
- [PostProcessingReportResponse](docs/PostProcessingReportResponse.md)
|
|
469
|
+
- [ReferenceProjectResponse](docs/ReferenceProjectResponse.md)
|
|
496
470
|
- [ServiceStatus](docs/ServiceStatus.md)
|
|
497
471
|
- [Structured](docs/Structured.md)
|
|
498
472
|
- [StructuredExampleResponse](docs/StructuredExampleResponse.md)
|
|
@@ -500,14 +474,13 @@ Class | Method | HTTP request | Description
|
|
|
500
474
|
- [StructuredInferenceExample](docs/StructuredInferenceExample.md)
|
|
501
475
|
- [StructuredProjectResponse](docs/StructuredProjectResponse.md)
|
|
502
476
|
- [StructuredProjectSettingsResponse](docs/StructuredProjectSettingsResponse.md)
|
|
477
|
+
- [StructuredSettingsPatch](docs/StructuredSettingsPatch.md)
|
|
503
478
|
- [TemplateRequest](docs/TemplateRequest.md)
|
|
504
479
|
- [TemplateResponse](docs/TemplateResponse.md)
|
|
505
480
|
- [TextInfo](docs/TextInfo.md)
|
|
506
481
|
- [TextRequest](docs/TextRequest.md)
|
|
507
482
|
- [UpdateContentProjectRequest](docs/UpdateContentProjectRequest.md)
|
|
508
|
-
- [UpdateContentProjectSettingsRequest](docs/UpdateContentProjectSettingsRequest.md)
|
|
509
483
|
- [UpdateStructuredProjectRequest](docs/UpdateStructuredProjectRequest.md)
|
|
510
|
-
- [UpdateStructuredProjectSettingsRequest](docs/UpdateStructuredProjectSettingsRequest.md)
|
|
511
484
|
- [ValidInformation](docs/ValidInformation.md)
|
|
512
485
|
- [VersionResponse](docs/VersionResponse.md)
|
|
513
486
|
|