numind 0.3.2__tar.gz → 0.4.0__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.0}/.github/workflows/tests.yml +1 -1
- {numind-0.3.2 → numind-0.4.0}/PKG-INFO +62 -98
- {numind-0.3.2 → numind-0.4.0}/README.md +48 -84
- numind-0.4.0/docs/InferenceApi.md +348 -0
- numind-0.3.2/docs/InferenceApi.md → numind-0.4.0/docs/StructuredDataExtractionApi.md +208 -243
- {numind-0.3.2 → numind-0.4.0}/docs/StructuredInferenceExample.md +1 -1
- {numind-0.3.2 → numind-0.4.0}/docs/TemplateGenerationApi.md +104 -1
- {numind-0.3.2 → numind-0.4.0}/pyproject.toml +7 -6
- {numind-0.3.2 → numind-0.4.0}/sdk_generation/pyproject_base.toml +15 -25
- {numind-0.3.2 → numind-0.4.0}/src/numind/models/health_response.py +3 -2
- {numind-0.3.2 → numind-0.4.0}/src/numind/models/paginated_response_t.py +3 -2
- {numind-0.3.2 → numind-0.4.0}/src/numind/models/structured_extraction_response.py +5 -2
- {numind-0.3.2 → numind-0.4.0}/src/numind/models/structured_inference_example.py +4 -2
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/data_validation/data_correction.py +13 -2
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/data_validation/types/bic.py +12 -4
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/data_validation/types/email_address.py +19 -8
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/data_validation/types/iban.py +12 -4
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/data_validation/types/integer.py +9 -6
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/data_validation/types/language_tag.py +2 -3
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/data_validation/types/number.py +11 -6
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/data_validation/types/phone_number.py +26 -5
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/data_validation/types/rfc3987.py +14 -3
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/data_validation/types/unit_code.py +2 -3
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/data_validation/types/verbatim_string.py +89 -38
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/template_conversion/json_schema.py +12 -0
- numind-0.4.0/src/numind/numind.py +680 -0
- numind-0.3.2/src/numind/openapi_client/api/structured_data_extraction_api.py → numind-0.4.0/src/numind/openapi_client/api/inference_api.py +482 -173
- numind-0.3.2/src/numind/openapi_client/api/inference_api.py → numind-0.4.0/src/numind/openapi_client/api/structured_data_extraction_api.py +555 -785
- {numind-0.3.2 → numind-0.4.0}/src/numind/openapi_client/api/template_generation_api.py +323 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/openapi_client/api_client.py +49 -9
- {numind-0.3.2 → numind-0.4.0}/src/numind/openapi_client/configuration.py +36 -5
- {numind-0.3.2 → numind-0.4.0}/src/numind/openapi_client/rest.py +29 -8
- numind-0.3.2/src/numind/openapi_client_async/api/structured_data_extraction_api.py → numind-0.4.0/src/numind/openapi_client_async/api/inference_api.py +482 -173
- numind-0.3.2/src/numind/openapi_client_async/api/inference_api.py → numind-0.4.0/src/numind/openapi_client_async/api/structured_data_extraction_api.py +555 -785
- {numind-0.3.2 → numind-0.4.0}/src/numind/openapi_client_async/api/template_generation_api.py +323 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/openapi_client_async/api_client.py +49 -9
- {numind-0.3.2 → numind-0.4.0}/tests/conftest.py +17 -0
- numind-0.4.0/tests/nuextract_utils/test_optional_dependencies.py +131 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_inference_api.py +0 -6
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_structured_data_extraction_api.py +6 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_structured_inference_example.py +0 -1
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_template_generation_api.py +3 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_inference_api.py +0 -8
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_structured_data_extraction_api.py +8 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_structured_inference_example.py +0 -1
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_template_generation_api.py +3 -0
- {numind-0.3.2 → numind-0.4.0}/tests/test_conversion_json_schema.py +33 -0
- numind-0.4.0/tests/test_extract_structured_data.py +184 -0
- numind-0.4.0/tests/test_numarkdown.py +150 -0
- {numind-0.3.2 → numind-0.4.0}/tests/test_project.py +50 -16
- numind-0.3.2/docs/StructuredDataExtractionApi.md +0 -236
- numind-0.3.2/src/numind/numind.py +0 -558
- numind-0.3.2/tests/test_numarkdown.py +0 -27
- {numind-0.3.2 → numind-0.4.0}/.github/codecov.yml +0 -0
- {numind-0.3.2 → numind-0.4.0}/.github/dependabot.yml +0 -0
- {numind-0.3.2 → numind-0.4.0}/.github/workflows/lint.yml +0 -0
- {numind-0.3.2 → numind-0.4.0}/.github/workflows/publish-pypi.yml +0 -0
- {numind-0.3.2 → numind-0.4.0}/.github/workflows/sdk-auto-update.yml +0 -0
- {numind-0.3.2 → numind-0.4.0}/.github/workflows/update-api-build-version-repo-var.yml +0 -0
- {numind-0.3.2 → numind-0.4.0}/.gitignore +0 -0
- {numind-0.3.2 → numind-0.4.0}/LICENSE +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/Content.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/ContentExtractionApi.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/ContentExtractionProjectManagementApi.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/ContentExtractionResponse.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/ContentProjectResponse.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/ContentProjectSettingsResponse.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/ConvertRequest.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/CreateContentProjectRequest.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/CreateOrUpdateStructuredExampleRequest.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/CreateStructuredProjectRequest.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/DefaultApi.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/DocumentInfo.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/DocumentResponse.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/DocumentsApi.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/Error.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/FileResponse.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/FilesApi.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/HealthResponse.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/ImageInfo.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/ImportProjectResponse.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/InferenceStatus.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/InferenceValidationError.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/InformationResponse.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/InvalidInformation.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/JobIdResponse.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/JobStatusResponse.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/JobsApi.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/PaginatedResponseT.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/ProjectImportExportApi.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/ServiceStatus.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/Structured.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/StructuredExampleResponse.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/StructuredExtractionExamplesApi.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/StructuredExtractionProjectManagementApi.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/StructuredExtractionResponse.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/StructuredProjectResponse.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/StructuredProjectSettingsResponse.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/TemplateRequest.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/TemplateResponse.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/TextInfo.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/TextRequest.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/UpdateContentProjectRequest.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/UpdateContentProjectSettingsRequest.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/UpdateStructuredProjectRequest.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/UpdateStructuredProjectSettingsRequest.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/ValidInformation.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/docs/VersionResponse.md +0 -0
- {numind-0.3.2 → numind-0.4.0}/sdk_generation/.openapi-generator-ignore +0 -0
- {numind-0.3.2 → numind-0.4.0}/sdk_generation/adapt_openapi_client_init.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/sdk_generation/adapt_pyproject.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/sdk_generation/collate_documentation_readme.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/sdk_generation/config.json +0 -0
- {numind-0.3.2 → numind-0.4.0}/sdk_generation/gen_sdk.sh +0 -0
- {numind-0.3.2 → numind-0.4.0}/sdk_generation/remove_unused_models_from_openapi_spec_file.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/__init__.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/api_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/constants.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/exceptions.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/models/__init__.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/models/content.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/models/content_extraction_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/models/content_project_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/models/content_project_settings_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/models/convert_request.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/models/create_content_project_request.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/models/create_or_update_structured_example_request.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/models/create_structured_project_request.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/models/document_info.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/models/document_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/models/error.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/models/file_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/models/image_info.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/models/import_project_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/models/inference_status.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/models/inference_validation_error.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/models/information_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/models/invalid_information.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/models/job_id_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/models/job_status_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/models/service_status.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/models/structured.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/models/structured_example_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/models/structured_project_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/models/structured_project_settings_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/models/template_request.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/models/template_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/models/text_info.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/models/text_request.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/models/update_content_project_request.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/models/update_content_project_settings_request.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/models/update_structured_project_request.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/models/update_structured_project_settings_request.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/models/valid_information.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/models/version_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/__init__.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/_iso_data/CLDR likelySubtags.xml +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/_iso_data/CLDR supplementalData.xml +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/_iso_data/IANA language subtag registry.txt +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/_iso_data/IANA tlds.txt +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/_iso_data/ISO 15924.csv +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/_iso_data/ISO 3166-1.csv +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/_iso_data/ISO 3166-2.csv +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/_iso_data/ISO 4217 list-one.csv +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/_iso_data/ISO 4217 list-three.csv +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/_iso_data/__init__.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/_iso_data/iso-639-3.tab +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/_iso_data/iso-639-3_Retirements.tab +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/_iso_data/ucum-essence.xml +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/data_validation/__init__.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/data_validation/constants.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/data_validation/data_validation.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/data_validation/models.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/data_validation/types/__init__.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/data_validation/types/_utils.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/data_validation/types/base.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/data_validation/types/country.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/data_validation/types/currency.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/data_validation/types/date_time.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/data_validation/types/duration.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/data_validation/types/geolocation.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/data_validation/types/language.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/data_validation/types/region.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/data_validation/types/script.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/data_validation/types/string_.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/data_validation/types/url.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/data_validation/utils.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/template_conversion/__init__.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/template_conversion/constants.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/template_conversion/pydantic.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/nuextract_utils/template_conversion/validation.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/openapi_client/__init__.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/openapi_client/api/__init__.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/openapi_client/api/content_extraction_api.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/openapi_client/api/content_extraction_project_management_api.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/openapi_client/api/default_api.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/openapi_client/api/documents_api.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/openapi_client/api/files_api.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/openapi_client/api/jobs_api.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/openapi_client/api/project_import_export_api.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/openapi_client/api/structured_extraction_examples_api.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/openapi_client/api/structured_extraction_project_management_api.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/openapi_client/py.typed +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/openapi_client_async/__init__.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/openapi_client_async/api/__init__.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/openapi_client_async/api/content_extraction_api.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/openapi_client_async/api/content_extraction_project_management_api.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/openapi_client_async/api/default_api.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/openapi_client_async/api/documents_api.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/openapi_client_async/api/files_api.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/openapi_client_async/api/jobs_api.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/openapi_client_async/api/project_import_export_api.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/openapi_client_async/api/structured_extraction_examples_api.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/openapi_client_async/api/structured_extraction_project_management_api.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/openapi_client_async/configuration.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/openapi_client_async/py.typed +0 -0
- {numind-0.3.2 → numind-0.4.0}/src/numind/openapi_client_async/rest.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/__init__.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/json_schema_test_cases/1.json +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/nuextract_utils/__init__.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/nuextract_utils/test_error_detection.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/__init__.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_content.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_content_extraction_api.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_content_extraction_project_management_api.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_content_extraction_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_content_project_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_content_project_settings_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_convert_request.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_create_content_project_request.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_create_or_update_structured_example_request.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_create_structured_project_request.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_default_api.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_document_info.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_document_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_documents_api.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_error.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_file_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_files_api.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_health_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_image_info.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_import_project_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_inference_status.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_inference_validation_error.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_information_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_invalid_information.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_job_id_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_job_status_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_jobs_api.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_paginated_response_t.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_project_import_export_api.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_service_status.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_structured.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_structured_example_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_structured_extraction_examples_api.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_structured_extraction_project_management_api.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_structured_extraction_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_structured_project_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_structured_project_settings_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_template_request.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_template_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_text_info.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_text_request.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_update_content_project_request.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_update_content_project_settings_request.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_update_structured_project_request.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_update_structured_project_settings_request.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_valid_information.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client/test_version_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/__init__.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_content.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_content_extraction_api.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_content_extraction_project_management_api.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_content_extraction_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_content_project_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_content_project_settings_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_convert_request.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_create_content_project_request.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_create_or_update_structured_example_request.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_create_structured_project_request.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_default_api.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_document_info.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_document_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_documents_api.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_error.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_file_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_files_api.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_health_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_image_info.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_import_project_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_inference_status.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_inference_validation_error.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_information_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_invalid_information.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_job_id_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_job_status_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_jobs_api.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_paginated_response_t.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_project_import_export_api.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_service_status.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_structured.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_structured_example_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_structured_extraction_examples_api.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_structured_extraction_project_management_api.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_structured_extraction_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_structured_project_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_structured_project_settings_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_template_request.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_template_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_text_info.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_text_request.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_update_content_project_request.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_update_content_project_settings_request.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_update_structured_project_request.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_update_structured_project_settings_request.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_valid_information.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/openapi_client_async/test_version_response.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/test_cases/vacation/examples.csv +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/test_cases/vacation/files/tahiti.docx +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/test_cases/vacation/files_examples/kyoto.docx +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/test_cases/vacation/schema.json +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/test_cases/vacation/texts.csv +0 -0
- {numind-0.3.2 → numind-0.4.0}/tests/test_conversion_pydantic.py +0 -0
- {numind-0.3.2 → numind-0.4.0}/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.0
|
|
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.25.0
|
|
408
371
|
- Build package: org.openapitools.codegen.languages.PythonClientCodegen
|
|
409
372
|
|
|
410
373
|
### Documentation for API Endpoints
|
|
@@ -436,9 +399,7 @@ 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 |
|
|
443
404
|
*JobsApi* | [**get_api_jobs_jobid_status**](docs/JobsApi.md#get_api_jobs_jobid_status) | **GET** /api/jobs/{jobId}/status |
|
|
444
405
|
*JobsApi* | [**get_api_jobs_jobid_stream**](docs/JobsApi.md#get_api_jobs_jobid_stream) | **GET** /api/jobs/{jobId}/stream |
|
|
@@ -446,7 +407,9 @@ Class | Method | HTTP request | Description
|
|
|
446
407
|
*ProjectImportExportApi* | [**get_api_extraction_projectkind_projectid_export**](docs/ProjectImportExportApi.md#get_api_extraction_projectkind_projectid_export) | **GET** /api/extraction/{projectKind}/{projectId}/export |
|
|
447
408
|
*ProjectImportExportApi* | [**post_api_extraction_import**](docs/ProjectImportExportApi.md#post_api_extraction_import) | **POST** /api/extraction/import |
|
|
448
409
|
*StructuredDataExtractionApi* | [**get_api_structured_extraction_jobs_structuredextractionjobid**](docs/StructuredDataExtractionApi.md#get_api_structured_extraction_jobs_structuredextractionjobid) | **GET** /api/structured-extraction/jobs/{structuredExtractionJobId} |
|
|
410
|
+
*StructuredDataExtractionApi* | [**post_api_structured_extraction_jobs**](docs/StructuredDataExtractionApi.md#post_api_structured_extraction_jobs) | **POST** /api/structured-extraction/jobs |
|
|
449
411
|
*StructuredDataExtractionApi* | [**post_api_structured_extraction_structuredprojectid_jobs**](docs/StructuredDataExtractionApi.md#post_api_structured_extraction_structuredprojectid_jobs) | **POST** /api/structured-extraction/{structuredProjectId}/jobs |
|
|
412
|
+
*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
413
|
*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
414
|
*StructuredExtractionExamplesApi* | [**get_api_structured_extraction_structuredprojectid_examples**](docs/StructuredExtractionExamplesApi.md#get_api_structured_extraction_structuredprojectid_examples) | **GET** /api/structured-extraction/{structuredProjectId}/examples |
|
|
452
415
|
*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} |
|
|
@@ -467,6 +430,7 @@ Class | Method | HTTP request | Description
|
|
|
467
430
|
*StructuredExtractionProjectManagementApi* | [**post_api_structured_extraction_structuredprojectid_unshare**](docs/StructuredExtractionProjectManagementApi.md#post_api_structured_extraction_structuredprojectid_unshare) | **POST** /api/structured-extraction/{structuredProjectId}/unshare |
|
|
468
431
|
*TemplateGenerationApi* | [**get_api_template_generation_jobs_templatejobid**](docs/TemplateGenerationApi.md#get_api_template_generation_jobs_templatejobid) | **GET** /api/template-generation/jobs/{templateJobId} |
|
|
469
432
|
*TemplateGenerationApi* | [**post_api_template_generation_jobs**](docs/TemplateGenerationApi.md#post_api_template_generation_jobs) | **POST** /api/template-generation/jobs |
|
|
433
|
+
*TemplateGenerationApi* | [**post_api_template_generation_jobs_text**](docs/TemplateGenerationApi.md#post_api_template_generation_jobs_text) | **POST** /api/template-generation/jobs/text |
|
|
470
434
|
|
|
471
435
|
|
|
472
436
|
### Documentation For Models
|
|
@@ -16,7 +16,6 @@ You must first get an API key on the [NuExtract platform](https://nuextract.ai/a
|
|
|
16
16
|
|
|
17
17
|
```python
|
|
18
18
|
import os
|
|
19
|
-
|
|
20
19
|
from numind import NuMind
|
|
21
20
|
|
|
22
21
|
# Create a client object to interact with the API
|
|
@@ -25,60 +24,30 @@ from numind import NuMind
|
|
|
25
24
|
client = NuMind(api_key=os.environ["NUMIND_API_KEY"])
|
|
26
25
|
```
|
|
27
26
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
You can create an **async** client by using the `NuMindAsync` class:
|
|
31
|
-
|
|
32
|
-
```python
|
|
33
|
-
import asyncio
|
|
34
|
-
from numind import NuMindAsync
|
|
35
|
-
|
|
36
|
-
client = NuMindAsync(api_key="API_KEY")
|
|
37
|
-
requests = [{}]
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
async def main():
|
|
41
|
-
return [
|
|
42
|
-
await client.extract_structured_data(project_id, **request_kwargs)
|
|
43
|
-
for request_kwargs in requests
|
|
44
|
-
]
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
responses = asyncio.run(main())
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
The methods and their usages are the same as for the sync `NuMind` client except that API methods are coroutines that must be awaited.
|
|
27
|
+
You can create an **async** client by using the `NuMindAsync` class.
|
|
28
|
+
The methods and their usages are the same as for the sync `NuMind` client.
|
|
51
29
|
|
|
52
|
-
###
|
|
30
|
+
### Extract structured data
|
|
53
31
|
|
|
54
|
-
If you want to extract structured information
|
|
32
|
+
If you want to extract structured information without a project, provide the template directly to `extract_structured_data`:
|
|
55
33
|
|
|
56
34
|
```python
|
|
57
35
|
template = {
|
|
58
36
|
"destination": {
|
|
59
37
|
"name": "verbatim-string",
|
|
60
38
|
"zip_code": "string",
|
|
61
|
-
"country": "
|
|
39
|
+
"country": "country",
|
|
62
40
|
},
|
|
63
41
|
"accommodation": "verbatim-string",
|
|
64
42
|
"activities": ["verbatim-string"],
|
|
65
|
-
"duration":
|
|
66
|
-
"time_unit": ["day", "week", "month", "year"],
|
|
67
|
-
"time_quantity": "integer",
|
|
68
|
-
},
|
|
43
|
+
"duration": "duration",
|
|
69
44
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
output = client.extract_structured_data(template=template, input_text=input_text)
|
|
77
|
-
print(output)
|
|
78
|
-
|
|
79
|
-
# Can also work with files, replace the path with your own
|
|
80
|
-
# from pathlib import Path
|
|
81
|
-
# output = client.extract(template=template, input_file="file.ppt")
|
|
45
|
+
input_file_path = Path("to", "file.pdf")
|
|
46
|
+
response = client.extract_structured_data(
|
|
47
|
+
template=template,
|
|
48
|
+
input_file=input_file_path,
|
|
49
|
+
)
|
|
50
|
+
print(response.result)
|
|
82
51
|
```
|
|
83
52
|
|
|
84
53
|
```json
|
|
@@ -86,7 +55,7 @@ print(output)
|
|
|
86
55
|
"destination": {
|
|
87
56
|
"name": "Tahiti",
|
|
88
57
|
"zip_code": "98730",
|
|
89
|
-
"country": "
|
|
58
|
+
"country": "FR"
|
|
90
59
|
},
|
|
91
60
|
"accommodation": "overwater bungalow in Bora Bora",
|
|
92
61
|
"activities": [
|
|
@@ -95,16 +64,13 @@ print(output)
|
|
|
95
64
|
"basking",
|
|
96
65
|
"explore lush rainforests, hidden waterfalls, and the rich Polynesian culture"
|
|
97
66
|
],
|
|
98
|
-
"duration":
|
|
99
|
-
"time_unit": null,
|
|
100
|
-
"time_quantity": null
|
|
101
|
-
}
|
|
67
|
+
"duration": null
|
|
102
68
|
}
|
|
103
69
|
```
|
|
104
70
|
|
|
105
71
|
### Create a good template
|
|
106
72
|
|
|
107
|
-
NuExtract uses JSON extraction templates which specify the information to retrieve and their types
|
|
73
|
+
NuExtract uses JSON extraction templates which specify the information to retrieve and their types:
|
|
108
74
|
|
|
109
75
|
* **string**: a text, whose value can be abstract, i.e. totally free and can be deduced from calculations, reasoning, external knowledge;
|
|
110
76
|
* **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;
|
|
@@ -155,16 +121,26 @@ otherwise it is `None`, and `incompatibilities` identifies the affected location
|
|
|
155
121
|
|
|
156
122
|
### Inferring a template
|
|
157
123
|
|
|
158
|
-
|
|
124
|
+
Template generation is asynchronous. Submit a natural-language description, poll the job status, and retrieve the generated template once complete.
|
|
159
125
|
|
|
160
126
|
```python
|
|
161
|
-
|
|
162
|
-
|
|
127
|
+
import time
|
|
128
|
+
|
|
129
|
+
from numind.models import TemplateRequest
|
|
163
130
|
|
|
164
131
|
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."
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
)
|
|
132
|
+
job_id = client.post_api_template_generation_jobs_text(
|
|
133
|
+
TemplateRequest(description=description)
|
|
134
|
+
).job_id
|
|
135
|
+
|
|
136
|
+
job_status = client.get_api_jobs_jobid_status(job_id)
|
|
137
|
+
while job_status.completed_at is None:
|
|
138
|
+
time.sleep(4)
|
|
139
|
+
job_status = client.get_api_jobs_jobid_status(job_id)
|
|
140
|
+
if job_status.status != "completed":
|
|
141
|
+
raise RuntimeError(f"Template generation failed with status {job_status.status}")
|
|
142
|
+
|
|
143
|
+
template = client.get_api_template_generation_jobs_templatejobid(job_id).result
|
|
168
144
|
```
|
|
169
145
|
|
|
170
146
|
### Create a project
|
|
@@ -172,15 +148,16 @@ input_schema = client.post_api_infer_template(
|
|
|
172
148
|
A project allows to define an information extraction task from a template and examples.
|
|
173
149
|
|
|
174
150
|
```python
|
|
175
|
-
from numind.
|
|
151
|
+
from numind.models import CreateStructuredProjectRequest
|
|
176
152
|
|
|
177
153
|
project_id = client.post_api_structured_extraction(
|
|
178
|
-
|
|
154
|
+
CreateStructuredProjectRequest(
|
|
179
155
|
name="vacation",
|
|
180
156
|
description="Extraction of locations and activities",
|
|
181
157
|
template=template,
|
|
158
|
+
instructions="",
|
|
182
159
|
)
|
|
183
|
-
)
|
|
160
|
+
).id
|
|
184
161
|
```
|
|
185
162
|
|
|
186
163
|
The `project_id` can also be found in the "API" tab of a project on the NuExtract website.
|
|
@@ -195,8 +172,7 @@ example_1_input = "This is a text example"
|
|
|
195
172
|
example_1_expected_output = {
|
|
196
173
|
"destination": {"name": None, "zip_code": None, "country": None}
|
|
197
174
|
}
|
|
198
|
-
|
|
199
|
-
example_2_input = file.read()
|
|
175
|
+
example_2_input = Path("example_2.odt")
|
|
200
176
|
example_2_expected_output = {
|
|
201
177
|
"destination": {"name": None, "zip_code": None, "country": None}
|
|
202
178
|
}
|
|
@@ -209,34 +185,21 @@ examples = [
|
|
|
209
185
|
client.add_examples_to_structured_extraction_project(project_id, examples)
|
|
210
186
|
```
|
|
211
187
|
|
|
212
|
-
###
|
|
213
|
-
|
|
214
|
-
```python
|
|
215
|
-
output_schema = client.extract_structured_data(project_id, input_text=input_text)
|
|
216
|
-
```
|
|
217
|
-
|
|
218
|
-
### Extract structured information from a file
|
|
219
|
-
|
|
220
|
-
```python
|
|
221
|
-
from pathlib import Path
|
|
222
|
-
|
|
223
|
-
file_path = Path("document.odt")
|
|
224
|
-
with file_path.open("rb") as file:
|
|
225
|
-
input_file = file.read()
|
|
226
|
-
output_schema = client.extract(project_id, input_file=input_file)
|
|
227
|
-
```
|
|
228
|
-
|
|
229
|
-
### NuMarkdown: Convert a document to a RAG-ready Markdown
|
|
188
|
+
### Convert a document to a RAG-ready Markdown
|
|
230
189
|
|
|
231
190
|
```python
|
|
232
191
|
from pathlib import Path
|
|
233
192
|
|
|
234
193
|
file_path = Path("document.pdf")
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
markdown = client.extract_content(input_file)
|
|
194
|
+
response = client.extract_content(file_path, job_status_polling_delay=2.0)
|
|
195
|
+
print(response.result)
|
|
238
196
|
```
|
|
239
197
|
|
|
198
|
+
`extract_structured_data` and `extract_content` poll job status every four seconds by
|
|
199
|
+
default. Use `job_status_polling_delay` to select a different interval in seconds.
|
|
200
|
+
Failed jobs raise `RuntimeError` by default. Set `raise_on_job_fail=False` to return a
|
|
201
|
+
`FailedJobStatusResponse` containing the complete job status and its failure reason.
|
|
202
|
+
|
|
240
203
|
# Documentation
|
|
241
204
|
|
|
242
205
|
### Extracting Information from Documents
|
|
@@ -328,7 +291,7 @@ This Python package is automatically generated by the [OpenAPI Generator](https:
|
|
|
328
291
|
|
|
329
292
|
- API version:
|
|
330
293
|
- Package version: 1.0.0
|
|
331
|
-
- Generator version: 7.
|
|
294
|
+
- Generator version: 7.25.0
|
|
332
295
|
- Build package: org.openapitools.codegen.languages.PythonClientCodegen
|
|
333
296
|
|
|
334
297
|
### Documentation for API Endpoints
|
|
@@ -360,9 +323,7 @@ Class | Method | HTTP request | Description
|
|
|
360
323
|
*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 |
|
|
361
324
|
*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} |
|
|
362
325
|
*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} |
|
|
363
|
-
*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 |
|
|
364
326
|
*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} |
|
|
365
|
-
*InferenceApi* | [**post_api_template_generation_jobs_text**](docs/InferenceApi.md#post_api_template_generation_jobs_text) | **POST** /api/template-generation/jobs/text |
|
|
366
327
|
*JobsApi* | [**get_api_jobs**](docs/JobsApi.md#get_api_jobs) | **GET** /api/jobs |
|
|
367
328
|
*JobsApi* | [**get_api_jobs_jobid_status**](docs/JobsApi.md#get_api_jobs_jobid_status) | **GET** /api/jobs/{jobId}/status |
|
|
368
329
|
*JobsApi* | [**get_api_jobs_jobid_stream**](docs/JobsApi.md#get_api_jobs_jobid_stream) | **GET** /api/jobs/{jobId}/stream |
|
|
@@ -370,7 +331,9 @@ Class | Method | HTTP request | Description
|
|
|
370
331
|
*ProjectImportExportApi* | [**get_api_extraction_projectkind_projectid_export**](docs/ProjectImportExportApi.md#get_api_extraction_projectkind_projectid_export) | **GET** /api/extraction/{projectKind}/{projectId}/export |
|
|
371
332
|
*ProjectImportExportApi* | [**post_api_extraction_import**](docs/ProjectImportExportApi.md#post_api_extraction_import) | **POST** /api/extraction/import |
|
|
372
333
|
*StructuredDataExtractionApi* | [**get_api_structured_extraction_jobs_structuredextractionjobid**](docs/StructuredDataExtractionApi.md#get_api_structured_extraction_jobs_structuredextractionjobid) | **GET** /api/structured-extraction/jobs/{structuredExtractionJobId} |
|
|
334
|
+
*StructuredDataExtractionApi* | [**post_api_structured_extraction_jobs**](docs/StructuredDataExtractionApi.md#post_api_structured_extraction_jobs) | **POST** /api/structured-extraction/jobs |
|
|
373
335
|
*StructuredDataExtractionApi* | [**post_api_structured_extraction_structuredprojectid_jobs**](docs/StructuredDataExtractionApi.md#post_api_structured_extraction_structuredprojectid_jobs) | **POST** /api/structured-extraction/{structuredProjectId}/jobs |
|
|
336
|
+
*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 |
|
|
374
337
|
*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} |
|
|
375
338
|
*StructuredExtractionExamplesApi* | [**get_api_structured_extraction_structuredprojectid_examples**](docs/StructuredExtractionExamplesApi.md#get_api_structured_extraction_structuredprojectid_examples) | **GET** /api/structured-extraction/{structuredProjectId}/examples |
|
|
376
339
|
*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} |
|
|
@@ -391,6 +354,7 @@ Class | Method | HTTP request | Description
|
|
|
391
354
|
*StructuredExtractionProjectManagementApi* | [**post_api_structured_extraction_structuredprojectid_unshare**](docs/StructuredExtractionProjectManagementApi.md#post_api_structured_extraction_structuredprojectid_unshare) | **POST** /api/structured-extraction/{structuredProjectId}/unshare |
|
|
392
355
|
*TemplateGenerationApi* | [**get_api_template_generation_jobs_templatejobid**](docs/TemplateGenerationApi.md#get_api_template_generation_jobs_templatejobid) | **GET** /api/template-generation/jobs/{templateJobId} |
|
|
393
356
|
*TemplateGenerationApi* | [**post_api_template_generation_jobs**](docs/TemplateGenerationApi.md#post_api_template_generation_jobs) | **POST** /api/template-generation/jobs |
|
|
357
|
+
*TemplateGenerationApi* | [**post_api_template_generation_jobs_text**](docs/TemplateGenerationApi.md#post_api_template_generation_jobs_text) | **POST** /api/template-generation/jobs/text |
|
|
394
358
|
|
|
395
359
|
|
|
396
360
|
### Documentation For Models
|