numind 0.2.2__tar.gz → 0.3.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.
Files changed (411) hide show
  1. {numind-0.2.2 → numind-0.3.1}/.github/workflows/lint.yml +1 -1
  2. {numind-0.2.2 → numind-0.3.1}/.github/workflows/publish-pypi.yml +2 -2
  3. {numind-0.2.2 → numind-0.3.1}/.github/workflows/sdk-auto-update.yml +3 -3
  4. {numind-0.2.2 → numind-0.3.1}/.github/workflows/tests.yml +1 -1
  5. {numind-0.2.2 → numind-0.3.1}/PKG-INFO +98 -40
  6. {numind-0.2.2 → numind-0.3.1}/README.md +94 -38
  7. numind-0.3.1/docs/Content.md +30 -0
  8. {numind-0.2.2 → numind-0.3.1}/docs/ContentExtractionApi.md +57 -26
  9. {numind-0.2.2 → numind-0.3.1}/docs/ContentExtractionProjectManagementApi.md +213 -49
  10. {numind-0.2.2 → numind-0.3.1}/docs/ContentExtractionResponse.md +4 -1
  11. {numind-0.2.2 → numind-0.3.1}/docs/ContentProjectResponse.md +3 -1
  12. {numind-0.2.2 → numind-0.3.1}/docs/ContentProjectSettingsResponse.md +15 -5
  13. {numind-0.2.2 → numind-0.3.1}/docs/CreateContentProjectRequest.md +3 -1
  14. {numind-0.2.2 → numind-0.3.1}/docs/CreateOrUpdateStructuredExampleRequest.md +14 -4
  15. {numind-0.2.2 → numind-0.3.1}/docs/CreateStructuredProjectRequest.md +12 -4
  16. {numind-0.2.2 → numind-0.3.1}/docs/DefaultApi.md +7 -17
  17. {numind-0.2.2 → numind-0.3.1}/docs/DocumentInfo.md +1 -0
  18. {numind-0.2.2 → numind-0.3.1}/docs/DocumentResponse.md +0 -1
  19. {numind-0.2.2 → numind-0.3.1}/docs/DocumentsApi.md +58 -44
  20. {numind-0.2.2 → numind-0.3.1}/docs/FileResponse.md +0 -1
  21. {numind-0.2.2 → numind-0.3.1}/docs/FilesApi.md +31 -28
  22. {numind-0.2.2 → numind-0.3.1}/docs/ImageInfo.md +1 -0
  23. numind-0.3.1/docs/ImportProjectResponse.md +32 -0
  24. {numind-0.2.2 → numind-0.3.1}/docs/InferenceApi.md +104 -57
  25. {numind-0.2.2 → numind-0.3.1}/docs/InferenceValidationError.md +3 -1
  26. {numind-0.2.2 → numind-0.3.1}/docs/InformationResponse.md +3 -1
  27. {numind-0.2.2 → numind-0.3.1}/docs/JobStatusResponse.md +1 -0
  28. {numind-0.2.2 → numind-0.3.1}/docs/JobsApi.md +123 -25
  29. numind-0.3.1/docs/PaginatedResponseT.md +32 -0
  30. numind-0.3.1/docs/ProjectImportExportApi.md +171 -0
  31. numind-0.3.1/docs/Structured.md +30 -0
  32. {numind-0.2.2 → numind-0.3.1}/docs/StructuredDataExtractionApi.md +58 -29
  33. {numind-0.2.2 → numind-0.3.1}/docs/StructuredExampleResponse.md +3 -1
  34. {numind-0.2.2 → numind-0.3.1}/docs/StructuredExtractionExamplesApi.md +94 -40
  35. {numind-0.2.2 → numind-0.3.1}/docs/StructuredExtractionProjectManagementApi.md +376 -111
  36. {numind-0.2.2 → numind-0.3.1}/docs/StructuredExtractionResponse.md +5 -1
  37. {numind-0.2.2 → numind-0.3.1}/docs/StructuredInferenceExample.md +3 -1
  38. {numind-0.2.2 → numind-0.3.1}/docs/StructuredProjectResponse.md +3 -1
  39. {numind-0.2.2 → numind-0.3.1}/docs/StructuredProjectSettingsResponse.md +16 -4
  40. {numind-0.2.2 → numind-0.3.1}/docs/TemplateGenerationApi.md +32 -19
  41. {numind-0.2.2 → numind-0.3.1}/docs/UpdateContentProjectRequest.md +3 -1
  42. {numind-0.2.2 → numind-0.3.1}/docs/UpdateContentProjectSettingsRequest.md +16 -4
  43. {numind-0.2.2 → numind-0.3.1}/docs/UpdateStructuredProjectRequest.md +12 -4
  44. {numind-0.2.2 → numind-0.3.1}/docs/UpdateStructuredProjectSettingsRequest.md +16 -4
  45. {numind-0.2.2 → numind-0.3.1}/pyproject.toml +3 -3
  46. {numind-0.2.2 → numind-0.3.1}/sdk_generation/gen_sdk.sh +35 -16
  47. {numind-0.2.2 → numind-0.3.1}/sdk_generation/pyproject_base.toml +7 -10
  48. {numind-0.2.2 → numind-0.3.1}/sdk_generation/remove_unused_models_from_openapi_spec_file.py +1 -0
  49. {numind-0.2.2 → numind-0.3.1}/src/numind/exceptions.py +1 -1
  50. numind-0.3.1/src/numind/models/__init__.py +68 -0
  51. numind-0.3.1/src/numind/models/content.py +102 -0
  52. numind-0.3.1/src/numind/models/content_extraction_response.py +135 -0
  53. numind-0.3.1/src/numind/models/content_project_response.py +126 -0
  54. numind-0.3.1/src/numind/models/content_project_settings_response.py +114 -0
  55. numind-0.3.1/src/numind/models/convert_request.py +85 -0
  56. numind-0.3.1/src/numind/models/create_content_project_request.py +87 -0
  57. numind-0.3.1/src/numind/models/create_or_update_structured_example_request.py +87 -0
  58. numind-0.3.1/src/numind/models/create_structured_project_request.py +99 -0
  59. {numind-0.2.2 → numind-0.3.1}/src/numind/models/document_info.py +1 -1
  60. numind-0.3.1/src/numind/models/document_response.py +112 -0
  61. numind-0.3.1/src/numind/models/error.py +86 -0
  62. numind-0.3.1/src/numind/models/file_response.py +106 -0
  63. numind-0.3.1/src/numind/models/health_response.py +99 -0
  64. numind-0.3.1/src/numind/models/image_info.py +129 -0
  65. numind-0.3.1/src/numind/models/import_project_response.py +157 -0
  66. numind-0.3.1/src/numind/models/inference_status.py +85 -0
  67. numind-0.3.1/src/numind/models/inference_validation_error.py +89 -0
  68. {numind-0.2.2 → numind-0.3.1}/src/numind/models/information_response.py +1 -1
  69. numind-0.3.1/src/numind/models/invalid_information.py +101 -0
  70. numind-0.3.1/src/numind/models/job_id_response.py +82 -0
  71. numind-0.3.1/src/numind/models/job_status_response.py +127 -0
  72. numind-0.3.1/src/numind/models/paginated_response_t.py +111 -0
  73. numind-0.3.1/src/numind/models/service_status.py +90 -0
  74. numind-0.3.1/src/numind/models/structured.py +102 -0
  75. numind-0.3.1/src/numind/models/structured_example_response.py +128 -0
  76. {numind-0.2.2 → numind-0.3.1}/src/numind/models/structured_extraction_response.py +13 -1
  77. numind-0.3.1/src/numind/models/structured_inference_example.py +106 -0
  78. {numind-0.2.2 → numind-0.3.1}/src/numind/models/structured_project_response.py +1 -1
  79. numind-0.3.1/src/numind/models/structured_project_settings_response.py +137 -0
  80. numind-0.3.1/src/numind/models/template_request.py +82 -0
  81. {numind-0.2.2 → numind-0.3.1}/src/numind/models/template_response.py +1 -1
  82. numind-0.3.1/src/numind/models/text_info.py +123 -0
  83. numind-0.3.1/src/numind/models/text_request.py +82 -0
  84. numind-0.3.1/src/numind/models/update_content_project_request.py +89 -0
  85. numind-0.3.1/src/numind/models/update_content_project_settings_request.py +123 -0
  86. numind-0.3.1/src/numind/models/update_structured_project_request.py +105 -0
  87. numind-0.3.1/src/numind/models/update_structured_project_settings_request.py +158 -0
  88. numind-0.3.1/src/numind/models/valid_information.py +94 -0
  89. numind-0.3.1/src/numind/models/version_response.py +97 -0
  90. numind-0.3.1/src/numind/nuextract_utils/__init__.py +11 -0
  91. numind-0.3.1/src/numind/nuextract_utils/template_conversion/__init__.py +21 -0
  92. numind-0.3.1/src/numind/nuextract_utils/template_conversion/constants.py +72 -0
  93. numind-0.3.1/src/numind/nuextract_utils/template_conversion/json_schema.py +1360 -0
  94. numind-0.3.1/src/numind/nuextract_utils/template_conversion/pydantic.py +156 -0
  95. numind-0.3.1/src/numind/nuextract_utils/template_conversion/utils.py +13 -0
  96. numind-0.3.1/src/numind/nuextract_utils/template_conversion/validation.py +139 -0
  97. {numind-0.2.2 → numind-0.3.1}/src/numind/numind.py +20 -10
  98. {numind-0.2.2 → numind-0.3.1}/src/numind/openapi_client/__init__.py +15 -11
  99. {numind-0.2.2 → numind-0.3.1}/src/numind/openapi_client/api/__init__.py +1 -0
  100. {numind-0.2.2 → numind-0.3.1}/src/numind/openapi_client/api/content_extraction_api.py +128 -34
  101. {numind-0.2.2 → numind-0.3.1}/src/numind/openapi_client/api/content_extraction_project_management_api.py +291 -10
  102. {numind-0.2.2 → numind-0.3.1}/src/numind/openapi_client/api/default_api.py +1 -1
  103. {numind-0.2.2 → numind-0.3.1}/src/numind/openapi_client/api/documents_api.py +52 -19
  104. {numind-0.2.2 → numind-0.3.1}/src/numind/openapi_client/api/files_api.py +1 -1
  105. {numind-0.2.2 → numind-0.3.1}/src/numind/openapi_client/api/inference_api.py +183 -59
  106. {numind-0.2.2 → numind-0.3.1}/src/numind/openapi_client/api/jobs_api.py +285 -13
  107. numind-0.3.1/src/numind/openapi_client/api/project_import_export_api.py +635 -0
  108. {numind-0.2.2 → numind-0.3.1}/src/numind/openapi_client/api/structured_data_extraction_api.py +83 -20
  109. {numind-0.2.2 → numind-0.3.1}/src/numind/openapi_client/api/structured_extraction_examples_api.py +7 -9
  110. {numind-0.2.2 → numind-0.3.1}/src/numind/openapi_client/api/structured_extraction_project_management_api.py +297 -10
  111. {numind-0.2.2 → numind-0.3.1}/src/numind/openapi_client/api/template_generation_api.py +7 -7
  112. {numind-0.2.2 → numind-0.3.1}/src/numind/openapi_client/api_client.py +14 -19
  113. {numind-0.2.2 → numind-0.3.1}/src/numind/openapi_client/configuration.py +2 -2
  114. {numind-0.2.2 → numind-0.3.1}/src/numind/openapi_client/rest.py +1 -1
  115. {numind-0.2.2 → numind-0.3.1}/src/numind/openapi_client_async/__init__.py +15 -11
  116. {numind-0.2.2 → numind-0.3.1}/src/numind/openapi_client_async/api/__init__.py +3 -0
  117. {numind-0.2.2 → numind-0.3.1}/src/numind/openapi_client_async/api/content_extraction_api.py +128 -34
  118. {numind-0.2.2 → numind-0.3.1}/src/numind/openapi_client_async/api/content_extraction_project_management_api.py +291 -10
  119. {numind-0.2.2 → numind-0.3.1}/src/numind/openapi_client_async/api/default_api.py +1 -1
  120. {numind-0.2.2 → numind-0.3.1}/src/numind/openapi_client_async/api/documents_api.py +52 -19
  121. {numind-0.2.2 → numind-0.3.1}/src/numind/openapi_client_async/api/files_api.py +1 -1
  122. {numind-0.2.2 → numind-0.3.1}/src/numind/openapi_client_async/api/inference_api.py +183 -59
  123. {numind-0.2.2 → numind-0.3.1}/src/numind/openapi_client_async/api/jobs_api.py +285 -13
  124. numind-0.3.1/src/numind/openapi_client_async/api/project_import_export_api.py +635 -0
  125. {numind-0.2.2 → numind-0.3.1}/src/numind/openapi_client_async/api/structured_data_extraction_api.py +83 -20
  126. {numind-0.2.2 → numind-0.3.1}/src/numind/openapi_client_async/api/structured_extraction_examples_api.py +7 -9
  127. {numind-0.2.2 → numind-0.3.1}/src/numind/openapi_client_async/api/structured_extraction_project_management_api.py +297 -10
  128. {numind-0.2.2 → numind-0.3.1}/src/numind/openapi_client_async/api/template_generation_api.py +7 -7
  129. {numind-0.2.2 → numind-0.3.1}/src/numind/openapi_client_async/api_client.py +14 -19
  130. {numind-0.2.2 → numind-0.3.1}/src/numind/openapi_client_async/configuration.py +3 -2
  131. {numind-0.2.2 → numind-0.3.1}/src/numind/openapi_client_async/rest.py +3 -1
  132. numind-0.3.1/tests/json_schema_test_cases/1.json +190 -0
  133. numind-0.3.1/tests/openapi_client/test_content.py +81 -0
  134. numind-0.3.1/tests/openapi_client/test_content_extraction_api.py +34 -0
  135. numind-0.3.1/tests/openapi_client/test_content_extraction_project_management_api.py +48 -0
  136. numind-0.3.1/tests/openapi_client/test_content_extraction_response.py +67 -0
  137. numind-0.3.1/tests/openapi_client/test_content_project_response.py +76 -0
  138. numind-0.3.1/tests/openapi_client/test_content_project_settings_response.py +63 -0
  139. numind-0.3.1/tests/openapi_client/test_convert_request.py +53 -0
  140. numind-0.3.1/tests/openapi_client/test_create_content_project_request.py +55 -0
  141. numind-0.3.1/tests/openapi_client/test_create_or_update_structured_example_request.py +57 -0
  142. numind-0.3.1/tests/openapi_client/test_create_structured_project_request.py +61 -0
  143. numind-0.3.1/tests/openapi_client/test_default_api.py +43 -0
  144. numind-0.3.1/tests/openapi_client/test_document_info.py +67 -0
  145. numind-0.3.1/tests/openapi_client/test_document_response.py +58 -0
  146. numind-0.3.1/tests/openapi_client/test_documents_api.py +40 -0
  147. numind-0.3.1/tests/openapi_client/test_error.py +55 -0
  148. numind-0.3.1/tests/openapi_client/test_file_response.py +59 -0
  149. numind-0.3.1/tests/openapi_client/test_files_api.py +40 -0
  150. numind-0.3.1/tests/openapi_client/test_health_response.py +57 -0
  151. numind-0.3.1/tests/openapi_client/test_image_info.py +65 -0
  152. numind-0.3.1/tests/openapi_client/test_import_project_response.py +95 -0
  153. numind-0.3.1/tests/openapi_client/test_inference_api.py +47 -0
  154. numind-0.3.1/tests/openapi_client/test_inference_status.py +55 -0
  155. numind-0.3.1/tests/openapi_client/test_inference_validation_error.py +55 -0
  156. numind-0.3.1/tests/openapi_client/test_information_response.py +57 -0
  157. numind-0.3.1/tests/openapi_client/test_invalid_information.py +57 -0
  158. numind-0.3.1/tests/openapi_client/test_job_id_response.py +53 -0
  159. numind-0.3.1/tests/openapi_client/test_job_status_response.py +69 -0
  160. numind-0.3.1/tests/openapi_client/test_jobs_api.py +40 -0
  161. numind-0.3.1/tests/openapi_client/test_paginated_response_t.py +67 -0
  162. numind-0.3.1/tests/openapi_client/test_project_import_export_api.py +34 -0
  163. numind-0.3.1/tests/openapi_client/test_service_status.py +56 -0
  164. numind-0.3.1/tests/openapi_client/test_structured.py +95 -0
  165. numind-0.3.1/tests/openapi_client/test_structured_data_extraction_api.py +36 -0
  166. numind-0.3.1/tests/openapi_client/test_structured_example_response.py +65 -0
  167. numind-0.3.1/tests/openapi_client/test_structured_extraction_examples_api.py +51 -0
  168. numind-0.3.1/tests/openapi_client/test_structured_extraction_project_management_api.py +71 -0
  169. numind-0.3.1/tests/openapi_client/test_structured_extraction_response.py +79 -0
  170. numind-0.3.1/tests/openapi_client/test_structured_inference_example.py +58 -0
  171. numind-0.3.1/tests/openapi_client/test_structured_project_response.py +90 -0
  172. numind-0.3.1/tests/openapi_client/test_structured_project_settings_response.py +69 -0
  173. numind-0.3.1/tests/openapi_client/test_template_generation_api.py +34 -0
  174. numind-0.3.1/tests/openapi_client/test_template_request.py +53 -0
  175. numind-0.3.1/tests/openapi_client/test_template_response.py +68 -0
  176. numind-0.3.1/tests/openapi_client/test_text_info.py +63 -0
  177. numind-0.3.1/tests/openapi_client/test_text_request.py +53 -0
  178. numind-0.3.1/tests/openapi_client/test_update_content_project_request.py +53 -0
  179. numind-0.3.1/tests/openapi_client/test_update_content_project_settings_request.py +58 -0
  180. numind-0.3.1/tests/openapi_client/test_update_structured_project_request.py +57 -0
  181. numind-0.3.1/tests/openapi_client/test_update_structured_project_settings_request.py +62 -0
  182. numind-0.3.1/tests/openapi_client/test_valid_information.py +55 -0
  183. numind-0.3.1/tests/openapi_client/test_version_response.py +59 -0
  184. numind-0.3.1/tests/openapi_client_async/test_content.py +81 -0
  185. numind-0.3.1/tests/openapi_client_async/test_content_extraction_api.py +34 -0
  186. numind-0.3.1/tests/openapi_client_async/test_content_extraction_project_management_api.py +50 -0
  187. numind-0.3.1/tests/openapi_client_async/test_content_extraction_response.py +67 -0
  188. numind-0.3.1/tests/openapi_client_async/test_content_project_response.py +76 -0
  189. numind-0.3.1/tests/openapi_client_async/test_content_project_settings_response.py +63 -0
  190. numind-0.3.1/tests/openapi_client_async/test_convert_request.py +53 -0
  191. numind-0.3.1/tests/openapi_client_async/test_create_content_project_request.py +55 -0
  192. numind-0.3.1/tests/openapi_client_async/test_create_or_update_structured_example_request.py +57 -0
  193. numind-0.3.1/tests/openapi_client_async/test_create_structured_project_request.py +61 -0
  194. numind-0.3.1/tests/openapi_client_async/test_default_api.py +43 -0
  195. numind-0.3.1/tests/openapi_client_async/test_document_info.py +67 -0
  196. numind-0.3.1/tests/openapi_client_async/test_document_response.py +58 -0
  197. numind-0.3.1/tests/openapi_client_async/test_documents_api.py +40 -0
  198. numind-0.3.1/tests/openapi_client_async/test_error.py +55 -0
  199. numind-0.3.1/tests/openapi_client_async/test_file_response.py +59 -0
  200. numind-0.3.1/tests/openapi_client_async/test_files_api.py +40 -0
  201. numind-0.3.1/tests/openapi_client_async/test_health_response.py +57 -0
  202. numind-0.3.1/tests/openapi_client_async/test_image_info.py +65 -0
  203. numind-0.3.1/tests/openapi_client_async/test_import_project_response.py +95 -0
  204. numind-0.3.1/tests/openapi_client_async/test_inference_api.py +49 -0
  205. numind-0.3.1/tests/openapi_client_async/test_inference_status.py +55 -0
  206. numind-0.3.1/tests/openapi_client_async/test_inference_validation_error.py +55 -0
  207. numind-0.3.1/tests/openapi_client_async/test_information_response.py +57 -0
  208. numind-0.3.1/tests/openapi_client_async/test_invalid_information.py +57 -0
  209. numind-0.3.1/tests/openapi_client_async/test_job_id_response.py +53 -0
  210. numind-0.3.1/tests/openapi_client_async/test_job_status_response.py +69 -0
  211. numind-0.3.1/tests/openapi_client_async/test_jobs_api.py +40 -0
  212. numind-0.3.1/tests/openapi_client_async/test_paginated_response_t.py +67 -0
  213. numind-0.3.1/tests/openapi_client_async/test_project_import_export_api.py +36 -0
  214. numind-0.3.1/tests/openapi_client_async/test_service_status.py +56 -0
  215. numind-0.3.1/tests/openapi_client_async/test_structured.py +95 -0
  216. numind-0.3.1/tests/openapi_client_async/test_structured_data_extraction_api.py +40 -0
  217. numind-0.3.1/tests/openapi_client_async/test_structured_example_response.py +65 -0
  218. numind-0.3.1/tests/openapi_client_async/test_structured_extraction_examples_api.py +55 -0
  219. numind-0.3.1/tests/openapi_client_async/test_structured_extraction_project_management_api.py +85 -0
  220. numind-0.3.1/tests/openapi_client_async/test_structured_extraction_response.py +79 -0
  221. numind-0.3.1/tests/openapi_client_async/test_structured_inference_example.py +58 -0
  222. numind-0.3.1/tests/openapi_client_async/test_structured_project_response.py +90 -0
  223. numind-0.3.1/tests/openapi_client_async/test_structured_project_settings_response.py +69 -0
  224. numind-0.3.1/tests/openapi_client_async/test_template_generation_api.py +36 -0
  225. numind-0.3.1/tests/openapi_client_async/test_template_request.py +53 -0
  226. numind-0.3.1/tests/openapi_client_async/test_template_response.py +68 -0
  227. numind-0.3.1/tests/openapi_client_async/test_text_info.py +63 -0
  228. numind-0.3.1/tests/openapi_client_async/test_text_request.py +53 -0
  229. numind-0.3.1/tests/openapi_client_async/test_update_content_project_request.py +53 -0
  230. numind-0.3.1/tests/openapi_client_async/test_update_content_project_settings_request.py +58 -0
  231. numind-0.3.1/tests/openapi_client_async/test_update_structured_project_request.py +57 -0
  232. numind-0.3.1/tests/openapi_client_async/test_update_structured_project_settings_request.py +62 -0
  233. numind-0.3.1/tests/openapi_client_async/test_valid_information.py +55 -0
  234. numind-0.3.1/tests/openapi_client_async/test_version_response.py +59 -0
  235. numind-0.3.1/tests/test_conversion_json_schema.py +1215 -0
  236. numind-0.3.1/tests/test_conversion_pydantic.py +193 -0
  237. numind-0.3.1/tests/test_json_schema_descriptions.py +117 -0
  238. {numind-0.2.2 → numind-0.3.1}/tests/test_project.py +12 -4
  239. numind-0.2.2/docs/JobResponse.md +0 -41
  240. numind-0.2.2/docs/PaginatedResponseJobResponse.md +0 -32
  241. numind-0.2.2/docs/PaginatedResponseStructuredExampleResponse.md +0 -32
  242. numind-0.2.2/src/numind/models/__init__.py +0 -69
  243. numind-0.2.2/src/numind/models/content_extraction_response.py +0 -130
  244. numind-0.2.2/src/numind/models/content_project_response.py +0 -126
  245. numind-0.2.2/src/numind/models/content_project_settings_response.py +0 -103
  246. numind-0.2.2/src/numind/models/convert_request.py +0 -85
  247. numind-0.2.2/src/numind/models/create_content_project_request.py +0 -87
  248. numind-0.2.2/src/numind/models/create_or_update_structured_example_request.py +0 -87
  249. numind-0.2.2/src/numind/models/create_structured_project_request.py +0 -99
  250. numind-0.2.2/src/numind/models/document_response.py +0 -117
  251. numind-0.2.2/src/numind/models/error.py +0 -86
  252. numind-0.2.2/src/numind/models/file_response.py +0 -111
  253. numind-0.2.2/src/numind/models/health_response.py +0 -99
  254. numind-0.2.2/src/numind/models/image_info.py +0 -124
  255. numind-0.2.2/src/numind/models/inference_status.py +0 -85
  256. numind-0.2.2/src/numind/models/inference_validation_error.py +0 -89
  257. numind-0.2.2/src/numind/models/invalid_information.py +0 -101
  258. numind-0.2.2/src/numind/models/job_id_response.py +0 -82
  259. numind-0.2.2/src/numind/models/job_response.py +0 -140
  260. numind-0.2.2/src/numind/models/job_status_response.py +0 -122
  261. numind-0.2.2/src/numind/models/paginated_response_job_response.py +0 -109
  262. numind-0.2.2/src/numind/models/paginated_response_structured_example_response.py +0 -111
  263. numind-0.2.2/src/numind/models/service_status.py +0 -90
  264. numind-0.2.2/src/numind/models/structured_example_response.py +0 -128
  265. numind-0.2.2/src/numind/models/structured_inference_example.py +0 -106
  266. numind-0.2.2/src/numind/models/structured_project_settings_response.py +0 -126
  267. numind-0.2.2/src/numind/models/template_request.py +0 -82
  268. numind-0.2.2/src/numind/models/text_info.py +0 -123
  269. numind-0.2.2/src/numind/models/text_request.py +0 -82
  270. numind-0.2.2/src/numind/models/update_content_project_request.py +0 -89
  271. numind-0.2.2/src/numind/models/update_content_project_settings_request.py +0 -109
  272. numind-0.2.2/src/numind/models/update_structured_project_request.py +0 -105
  273. numind-0.2.2/src/numind/models/update_structured_project_settings_request.py +0 -144
  274. numind-0.2.2/src/numind/models/valid_information.py +0 -94
  275. numind-0.2.2/src/numind/models/version_response.py +0 -97
  276. numind-0.2.2/tests/openapi_client/test_content_extraction_api.py +0 -34
  277. numind-0.2.2/tests/openapi_client/test_content_extraction_project_management_api.py +0 -45
  278. numind-0.2.2/tests/openapi_client/test_content_extraction_response.py +0 -65
  279. numind-0.2.2/tests/openapi_client/test_content_project_response.py +0 -72
  280. numind-0.2.2/tests/openapi_client/test_content_project_settings_response.py +0 -59
  281. numind-0.2.2/tests/openapi_client/test_convert_request.py +0 -53
  282. numind-0.2.2/tests/openapi_client/test_create_content_project_request.py +0 -55
  283. numind-0.2.2/tests/openapi_client/test_create_or_update_structured_example_request.py +0 -57
  284. numind-0.2.2/tests/openapi_client/test_create_structured_project_request.py +0 -61
  285. numind-0.2.2/tests/openapi_client/test_default_api.py +0 -43
  286. numind-0.2.2/tests/openapi_client/test_document_info.py +0 -65
  287. numind-0.2.2/tests/openapi_client/test_document_response.py +0 -60
  288. numind-0.2.2/tests/openapi_client/test_documents_api.py +0 -40
  289. numind-0.2.2/tests/openapi_client/test_error.py +0 -55
  290. numind-0.2.2/tests/openapi_client/test_file_response.py +0 -61
  291. numind-0.2.2/tests/openapi_client/test_files_api.py +0 -40
  292. numind-0.2.2/tests/openapi_client/test_health_response.py +0 -57
  293. numind-0.2.2/tests/openapi_client/test_image_info.py +0 -63
  294. numind-0.2.2/tests/openapi_client/test_inference_api.py +0 -47
  295. numind-0.2.2/tests/openapi_client/test_inference_status.py +0 -55
  296. numind-0.2.2/tests/openapi_client/test_inference_validation_error.py +0 -55
  297. numind-0.2.2/tests/openapi_client/test_information_response.py +0 -57
  298. numind-0.2.2/tests/openapi_client/test_invalid_information.py +0 -57
  299. numind-0.2.2/tests/openapi_client/test_job_id_response.py +0 -53
  300. numind-0.2.2/tests/openapi_client/test_job_response.py +0 -72
  301. numind-0.2.2/tests/openapi_client/test_job_status_response.py +0 -67
  302. numind-0.2.2/tests/openapi_client/test_jobs_api.py +0 -37
  303. numind-0.2.2/tests/openapi_client/test_paginated_response_job_response.py +0 -73
  304. numind-0.2.2/tests/openapi_client/test_paginated_response_structured_example_response.py +0 -71
  305. numind-0.2.2/tests/openapi_client/test_service_status.py +0 -56
  306. numind-0.2.2/tests/openapi_client/test_structured_data_extraction_api.py +0 -36
  307. numind-0.2.2/tests/openapi_client/test_structured_example_response.py +0 -65
  308. numind-0.2.2/tests/openapi_client/test_structured_extraction_examples_api.py +0 -51
  309. numind-0.2.2/tests/openapi_client/test_structured_extraction_project_management_api.py +0 -68
  310. numind-0.2.2/tests/openapi_client/test_structured_extraction_response.py +0 -76
  311. numind-0.2.2/tests/openapi_client/test_structured_inference_example.py +0 -58
  312. numind-0.2.2/tests/openapi_client/test_structured_project_response.py +0 -86
  313. numind-0.2.2/tests/openapi_client/test_structured_project_settings_response.py +0 -65
  314. numind-0.2.2/tests/openapi_client/test_template_generation_api.py +0 -34
  315. numind-0.2.2/tests/openapi_client/test_template_request.py +0 -53
  316. numind-0.2.2/tests/openapi_client/test_template_response.py +0 -68
  317. numind-0.2.2/tests/openapi_client/test_text_info.py +0 -63
  318. numind-0.2.2/tests/openapi_client/test_text_request.py +0 -53
  319. numind-0.2.2/tests/openapi_client/test_update_content_project_request.py +0 -53
  320. numind-0.2.2/tests/openapi_client/test_update_content_project_settings_request.py +0 -56
  321. numind-0.2.2/tests/openapi_client/test_update_structured_project_request.py +0 -57
  322. numind-0.2.2/tests/openapi_client/test_update_structured_project_settings_request.py +0 -60
  323. numind-0.2.2/tests/openapi_client/test_valid_information.py +0 -55
  324. numind-0.2.2/tests/openapi_client/test_version_response.py +0 -59
  325. numind-0.2.2/tests/openapi_client_async/test_content_extraction_api.py +0 -34
  326. numind-0.2.2/tests/openapi_client_async/test_content_extraction_project_management_api.py +0 -47
  327. numind-0.2.2/tests/openapi_client_async/test_content_extraction_response.py +0 -65
  328. numind-0.2.2/tests/openapi_client_async/test_content_project_response.py +0 -72
  329. numind-0.2.2/tests/openapi_client_async/test_content_project_settings_response.py +0 -59
  330. numind-0.2.2/tests/openapi_client_async/test_convert_request.py +0 -53
  331. numind-0.2.2/tests/openapi_client_async/test_create_content_project_request.py +0 -55
  332. numind-0.2.2/tests/openapi_client_async/test_create_or_update_structured_example_request.py +0 -57
  333. numind-0.2.2/tests/openapi_client_async/test_create_structured_project_request.py +0 -61
  334. numind-0.2.2/tests/openapi_client_async/test_default_api.py +0 -43
  335. numind-0.2.2/tests/openapi_client_async/test_document_info.py +0 -65
  336. numind-0.2.2/tests/openapi_client_async/test_document_response.py +0 -60
  337. numind-0.2.2/tests/openapi_client_async/test_documents_api.py +0 -40
  338. numind-0.2.2/tests/openapi_client_async/test_error.py +0 -55
  339. numind-0.2.2/tests/openapi_client_async/test_file_response.py +0 -61
  340. numind-0.2.2/tests/openapi_client_async/test_files_api.py +0 -40
  341. numind-0.2.2/tests/openapi_client_async/test_health_response.py +0 -57
  342. numind-0.2.2/tests/openapi_client_async/test_image_info.py +0 -63
  343. numind-0.2.2/tests/openapi_client_async/test_inference_api.py +0 -49
  344. numind-0.2.2/tests/openapi_client_async/test_inference_status.py +0 -55
  345. numind-0.2.2/tests/openapi_client_async/test_inference_validation_error.py +0 -55
  346. numind-0.2.2/tests/openapi_client_async/test_information_response.py +0 -57
  347. numind-0.2.2/tests/openapi_client_async/test_invalid_information.py +0 -57
  348. numind-0.2.2/tests/openapi_client_async/test_job_id_response.py +0 -53
  349. numind-0.2.2/tests/openapi_client_async/test_job_response.py +0 -72
  350. numind-0.2.2/tests/openapi_client_async/test_job_status_response.py +0 -67
  351. numind-0.2.2/tests/openapi_client_async/test_jobs_api.py +0 -37
  352. numind-0.2.2/tests/openapi_client_async/test_paginated_response_job_response.py +0 -73
  353. numind-0.2.2/tests/openapi_client_async/test_paginated_response_structured_example_response.py +0 -71
  354. numind-0.2.2/tests/openapi_client_async/test_service_status.py +0 -56
  355. numind-0.2.2/tests/openapi_client_async/test_structured_data_extraction_api.py +0 -40
  356. numind-0.2.2/tests/openapi_client_async/test_structured_example_response.py +0 -65
  357. numind-0.2.2/tests/openapi_client_async/test_structured_extraction_examples_api.py +0 -55
  358. numind-0.2.2/tests/openapi_client_async/test_structured_extraction_project_management_api.py +0 -80
  359. numind-0.2.2/tests/openapi_client_async/test_structured_extraction_response.py +0 -76
  360. numind-0.2.2/tests/openapi_client_async/test_structured_inference_example.py +0 -58
  361. numind-0.2.2/tests/openapi_client_async/test_structured_project_response.py +0 -86
  362. numind-0.2.2/tests/openapi_client_async/test_structured_project_settings_response.py +0 -65
  363. numind-0.2.2/tests/openapi_client_async/test_template_generation_api.py +0 -36
  364. numind-0.2.2/tests/openapi_client_async/test_template_request.py +0 -53
  365. numind-0.2.2/tests/openapi_client_async/test_template_response.py +0 -68
  366. numind-0.2.2/tests/openapi_client_async/test_text_info.py +0 -63
  367. numind-0.2.2/tests/openapi_client_async/test_text_request.py +0 -53
  368. numind-0.2.2/tests/openapi_client_async/test_update_content_project_request.py +0 -53
  369. numind-0.2.2/tests/openapi_client_async/test_update_content_project_settings_request.py +0 -56
  370. numind-0.2.2/tests/openapi_client_async/test_update_structured_project_request.py +0 -57
  371. numind-0.2.2/tests/openapi_client_async/test_update_structured_project_settings_request.py +0 -60
  372. numind-0.2.2/tests/openapi_client_async/test_valid_information.py +0 -55
  373. numind-0.2.2/tests/openapi_client_async/test_version_response.py +0 -59
  374. {numind-0.2.2 → numind-0.3.1}/.github/codecov.yml +0 -0
  375. {numind-0.2.2 → numind-0.3.1}/.github/dependabot.yml +0 -0
  376. {numind-0.2.2 → numind-0.3.1}/.github/workflows/update-api-build-version-repo-var.yml +0 -0
  377. {numind-0.2.2 → numind-0.3.1}/.gitignore +0 -0
  378. {numind-0.2.2 → numind-0.3.1}/LICENSE +0 -0
  379. {numind-0.2.2 → numind-0.3.1}/docs/ConvertRequest.md +0 -0
  380. {numind-0.2.2 → numind-0.3.1}/docs/Error.md +0 -0
  381. {numind-0.2.2 → numind-0.3.1}/docs/HealthResponse.md +0 -0
  382. {numind-0.2.2 → numind-0.3.1}/docs/InferenceStatus.md +0 -0
  383. {numind-0.2.2 → numind-0.3.1}/docs/InvalidInformation.md +0 -0
  384. {numind-0.2.2 → numind-0.3.1}/docs/JobIdResponse.md +0 -0
  385. {numind-0.2.2 → numind-0.3.1}/docs/ServiceStatus.md +0 -0
  386. {numind-0.2.2 → numind-0.3.1}/docs/TemplateRequest.md +0 -0
  387. {numind-0.2.2 → numind-0.3.1}/docs/TemplateResponse.md +0 -0
  388. {numind-0.2.2 → numind-0.3.1}/docs/TextInfo.md +0 -0
  389. {numind-0.2.2 → numind-0.3.1}/docs/TextRequest.md +0 -0
  390. {numind-0.2.2 → numind-0.3.1}/docs/ValidInformation.md +0 -0
  391. {numind-0.2.2 → numind-0.3.1}/docs/VersionResponse.md +0 -0
  392. {numind-0.2.2 → numind-0.3.1}/sdk_generation/.openapi-generator-ignore +0 -0
  393. {numind-0.2.2 → numind-0.3.1}/sdk_generation/adapt_openapi_client_init.py +0 -0
  394. {numind-0.2.2 → numind-0.3.1}/sdk_generation/adapt_pyproject.py +0 -0
  395. {numind-0.2.2 → numind-0.3.1}/sdk_generation/collate_documentation_readme.py +0 -0
  396. {numind-0.2.2 → numind-0.3.1}/sdk_generation/config.json +0 -0
  397. {numind-0.2.2 → numind-0.3.1}/src/numind/__init__.py +0 -0
  398. {numind-0.2.2 → numind-0.3.1}/src/numind/api_response.py +0 -0
  399. {numind-0.2.2 → numind-0.3.1}/src/numind/constants.py +0 -0
  400. {numind-0.2.2 → numind-0.3.1}/src/numind/openapi_client/py.typed +0 -0
  401. {numind-0.2.2 → numind-0.3.1}/src/numind/openapi_client_async/py.typed +0 -0
  402. {numind-0.2.2 → numind-0.3.1}/tests/__init__.py +0 -0
  403. {numind-0.2.2 → numind-0.3.1}/tests/conftest.py +0 -0
  404. {numind-0.2.2 → numind-0.3.1}/tests/openapi_client/__init__.py +0 -0
  405. {numind-0.2.2 → numind-0.3.1}/tests/openapi_client_async/__init__.py +0 -0
  406. {numind-0.2.2 → numind-0.3.1}/tests/test_cases/vacation/examples.csv +0 -0
  407. {numind-0.2.2 → numind-0.3.1}/tests/test_cases/vacation/files/tahiti.docx +0 -0
  408. {numind-0.2.2 → numind-0.3.1}/tests/test_cases/vacation/files_examples/kyoto.docx +0 -0
  409. {numind-0.2.2 → numind-0.3.1}/tests/test_cases/vacation/schema.json +0 -0
  410. {numind-0.2.2 → numind-0.3.1}/tests/test_cases/vacation/texts.csv +0 -0
  411. {numind-0.2.2 → numind-0.3.1}/tests/test_numarkdown.py +0 -0
@@ -10,7 +10,7 @@ jobs:
10
10
  lint:
11
11
  runs-on: ubuntu-latest
12
12
  steps:
13
- - uses: actions/checkout@v6
13
+ - uses: actions/checkout@v7
14
14
  - uses: astral-sh/ruff-action@v3
15
15
  with:
16
16
  args: "--version" # added to not run the check command as done by default
@@ -17,9 +17,9 @@ jobs:
17
17
  name: Build distribution
18
18
  runs-on: ubuntu-latest
19
19
  steps:
20
- - uses: actions/checkout@v6
20
+ - uses: actions/checkout@v7
21
21
  - name: Set up Python
22
- uses: actions/setup-python@v6
22
+ uses: actions/setup-python@v7
23
23
  with:
24
24
  python-version: "3.x"
25
25
  - name: Install hatch
@@ -22,7 +22,7 @@ jobs:
22
22
  steps:
23
23
  # Step 1: Check out the repository's code
24
24
  - name: Checkout repository
25
- uses: actions/checkout@v6
25
+ uses: actions/checkout@v7
26
26
 
27
27
  # Step 2: Fetch the latest buildVersion from the API
28
28
  - name: Fetch latest API version
@@ -68,7 +68,7 @@ jobs:
68
68
  # Step 5: Setup Python
69
69
  - name: Set up Python
70
70
  if: steps.check_pr.outputs.pr_exists == 'false'
71
- uses: actions/setup-python@v6
71
+ uses: actions/setup-python@v7
72
72
  with:
73
73
  python-version: "3.x"
74
74
 
@@ -83,7 +83,7 @@ jobs:
83
83
  run: |
84
84
  set -e # Exit immediately if a command exits with a non-zero status.
85
85
  echo "Generating new SDK for version ${{ steps.fetch_version.outputs.version }}..."
86
- sh sdk_generation/gen_sdk.sh
86
+ bash sdk_generation/gen_sdk.sh
87
87
 
88
88
  # Step 8: Create a Pull Request if there are any changes
89
89
  - name: Create Pull Request
@@ -17,7 +17,7 @@ jobs:
17
17
  os: [ ubuntu-latest, macos-latest, windows-latest ]
18
18
 
19
19
  steps:
20
- - uses: actions/checkout@v6
20
+ - uses: actions/checkout@v7
21
21
 
22
22
  - name: Install uv
23
23
  uses: astral-sh/setup-uv@v7
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.5
2
2
  Name: numind
3
- Version: 0.2.2
3
+ Version: 0.3.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
@@ -45,6 +45,8 @@ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
45
45
  Requires-Python: >=3.9
46
46
  Requires-Dist: aiohttp-retry>=2.8.3
47
47
  Requires-Dist: aiohttp>=3.8.4
48
+ Requires-Dist: jsonschema
49
+ Requires-Dist: orjson
48
50
  Requires-Dist: pydantic>=2.11
49
51
  Requires-Dist: python-dateutil>=2.8.2
50
52
  Requires-Dist: typing-extensions>=4.7.1
@@ -99,6 +101,7 @@ from numind import NuMindAsync
99
101
  client = NuMindAsync(api_key="API_KEY")
100
102
  requests = [{}]
101
103
 
104
+
102
105
  async def main():
103
106
  return [
104
107
  await client.extract_structured_data(project_id, **request_kwargs)
@@ -120,14 +123,14 @@ template = {
120
123
  "destination": {
121
124
  "name": "verbatim-string",
122
125
  "zip_code": "string",
123
- "country": "string"
126
+ "country": "string",
124
127
  },
125
128
  "accommodation": "verbatim-string",
126
129
  "activities": ["verbatim-string"],
127
130
  "duration": {
128
131
  "time_unit": ["day", "week", "month", "year"],
129
- "time_quantity": "integer"
130
- }
132
+ "time_quantity": "integer",
133
+ },
131
134
  }
132
135
  input_text = """My dream vacation would be a month-long escape to the stunning islands of Tahiti.
133
136
  I’d stay in an overwater bungalow in Bora Bora, waking up to crystal-clear turquoise waters and breathtaking sunrises.
@@ -166,7 +169,7 @@ print(output)
166
169
 
167
170
  ### Create a good template
168
171
 
169
- NuExtract uses JSON schemas as extraction templates which specify the information to retrieve and their types, which are:
172
+ NuExtract uses JSON extraction templates which specify the information to retrieve and their types, which are:
170
173
 
171
174
  * **string**: a text, whose value can be abstract, i.e. totally free and can be deduced from calculations, reasoning, external knowledge;
172
175
  * **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;
@@ -182,7 +185,33 @@ Additionally, the value of a field can be:
182
185
  * an **enum**, i.e. a list of elements to choose from of the form `["choice1", "choice2", ...]`. For values of this type, just set the value of the item to choose, e.g. "choice1", and do not set the value as an array containing the item such as `["choice1"]`;
183
186
  * a **multi-enum**, i.e. a list from which multiple elements can be picked, of the form `[["choice1", "choice2", ...]]` (double square brackets).
184
187
 
185
- #### Inferring a template
188
+ ### Converting JSON schema / Pydantic models to NuExtract template
189
+
190
+ The SDK offers a method to convert JSON schemas to NuExtract templates:
191
+
192
+ ```Python
193
+ from typing import Literal
194
+
195
+ from pydantic import Field, BaseModel
196
+ from numind.nuextract_utils import convert_json_schema_to_nuextract_template
197
+
198
+
199
+ class HotelBooking(BaseModel):
200
+ city: str
201
+ check_in_date: str = Field(description="date")
202
+ check_out_date: str = Field(description="date")
203
+ number_of_guests: int
204
+ room_type: Literal["single", "double", "suite"]
205
+
206
+
207
+ template, dropped_branches, descriptions = convert_json_schema_to_nuextract_template(
208
+ HotelBooking.model_json_schema()
209
+ )
210
+
211
+ # {'check_in_date': 'date', 'check_out_date': 'date', 'city': 'string', 'number_of_guests': 'integer', 'room_type': ['single', 'double', 'suite']}
212
+ ```
213
+
214
+ ### Inferring a template
186
215
 
187
216
  The "infer_template" method allows to quickly create a template that you can start to work with from a text description.
188
217
 
@@ -270,41 +299,52 @@ markdown = client.extract_content(input_file)
270
299
 
271
300
  ### Extracting Information from Documents
272
301
 
273
- Once your project is ready, you can use it to extract information from documents in real time via this RESTful API.
274
-
275
- Each project has its own extraction endpoint:
302
+ Once your structured extraction project is ready, submit a document to the endpoint:
276
303
 
277
- `https://nuextract.ai/api/projects/{projectId}/extract`
304
+ `https://nuextract.ai/api/structured-extraction/{structuredProjectId}/jobs`
278
305
 
279
- You provide it a document and it returns the extracted information according to the task defined in the project. To use it, you need:
306
+ To use it, you need:
280
307
 
281
308
  - To create an API key in the [Account section](https://nuextract.ai/app/user?content=api)
282
- - To replace `{projectId}` by the project ID found in the API tab of the project
309
+ - To replace `{structuredProjectId}` by the project ID found in the API tab of the structured extraction project
283
310
 
284
- You can test your extraction endpoint in your terminal using this command-line example with curl (make sure that you replace values of `PROJECT_ID` and `NUEXTRACT_API_KEY`):
311
+ This endpoint creates an asynchronous extraction job. Use the returned `jobId` to retrieve the result from:
312
+
313
+ `https://nuextract.ai/api/structured-extraction/jobs/{structuredExtractionJobId}`
314
+
315
+ You can test your extraction endpoint in your terminal using this command-line example with curl (make sure that you replace values of `STRUCTURED_PROJECT_ID` and `NUEXTRACT_API_KEY`):
285
316
 
286
317
  ```bash
287
318
  NUEXTRACT_API_KEY=\"_your_api_key_here_\"; \\
288
- PROJECT_ID=\"a24fd84a-44ab-4fd4-95a9-bebd46e4768b\"; \\
289
- curl \"https://nuextract.ai/api/projects/${PROJECT_ID}/extract\" \\
319
+ STRUCTURED_PROJECT_ID=\"a24fd84a-44ab-4fd4-95a9-bebd46e4768b\"; \\
320
+ JOB_ID=$(curl \"https://nuextract.ai/api/structured-extraction/${STRUCTURED_PROJECT_ID}/jobs\" \\
290
321
  -X POST \\
291
322
  -H \"Authorization: Bearer ${NUEXTRACT_API_KEY}\" \\
292
- -H \"Content-Type: application/octet-stream\" \\
293
- --data-binary @\"${FILE_NAME}\"
323
+ -F \"file=@${FILE_NAME}\" | jq -r '.jobId')
324
+
325
+ curl \"https://nuextract.ai/api/structured-extraction/jobs/${JOB_ID}\" \\
326
+ -H \"Authorization: Bearer ${NUEXTRACT_API_KEY}\"
294
327
  ```
295
328
 
296
329
  You can also use the [Python SDK](https://github.com/numindai/nuextract-platform-sdk#documentation), by replacing the
297
- `project_id`, `api_key` and `file_path` variables in the following code:
330
+ `project_id`, `api_key` and request values in the following code:
298
331
 
299
332
  ```python
300
- from numind import NuMind
301
- from pathlib import Path
333
+ import asyncio
334
+ from numind import NuMindAsync
302
335
 
303
- client = NuMind(api_key=api_key)
304
- file_path = Path(\"path\", \"to\", \"document.odt\")
305
- with file_path.open(\"rb\") as file:
306
- input_file = file.read()
307
- output_schema = client.post_api_projects_projectid_extract(project_id, input_file)
336
+ client = NuMindAsync(api_key=api_key)
337
+ requests = [{}]
338
+
339
+
340
+ async def main():
341
+ return [
342
+ await client.extract_structured_data(project_id, **request_kwargs)
343
+ for request_kwargs in requests
344
+ ]
345
+
346
+
347
+ responses = asyncio.run(main())
308
348
  ```
309
349
 
310
350
  ### Using the Platform via API
@@ -315,26 +355,38 @@ Everything you can do on the web platform can be done via API -
315
355
 
316
356
  #### Main resources
317
357
 
318
- - **Project** - user project, identified by `projectId`
358
+ - **Structured Extraction Project** - user project for structured extraction, identified by `structuredProjectId`
359
+ - **Content Extraction Project** - user project for content extraction, identified by `contentProjectId`
319
360
  - **File** - uploaded file, identified by `fileId`, stored up to two weeks if not tied to an **Example**
320
- - **Document** - internal representation of a document, identified by `documentId`, created from a File or a text, stored up to two weeks if not tied to an Example
321
- - **Example** - document-extraction pair given to teach NuExtract, identified by `exampleId`, created from a Document
361
+ - **Document** - internal representation of a document, identified by `documentId`, created from a File, stored up to two weeks if not tied to an Example
362
+ - **Example** - document-extraction pair given to teach NuExtract, identified by `structuredExampleId`, created from a Document
363
+ - **Job** - asynchronous extraction task, identified by `structuredExtractionJobId`
322
364
 
323
365
  #### Most common API operations
324
366
 
325
- - Creating a **Project** via `POST /api/projects`
326
- - Changing the template of a **Project** via `PATCH /api/projects/{projectId}`
367
+ ##### Structured extraction
368
+
369
+ - Creating a **Structured Extraction Project** via `POST /api/structured-extraction`
370
+ - Changing the template of a **Structured Extraction Project** via `PATCH /api/structured-extraction/{structuredProjectId}`
371
+ - Changing settings of a **Structured Extraction Project** via `PATCH /api/structured-extraction/{structuredProjectId}/settings`
372
+ - Uploading a file to a **File** via `POST /api/files` (up to 2 weeks storage)
373
+ - Starting a structured extraction **Job** via `POST /api/structured-extraction/{structuredProjectId}/jobs`
374
+ - Reading a structured extraction **Job** result via `GET /api/structured-extraction/jobs/{structuredExtractionJobId}`
375
+ - Adding an **Example** to a **Structured Extraction Project** via `POST /api/structured-extraction/{structuredProjectId}/examples`
376
+
377
+ ##### Content extraction
378
+
379
+ - Creating a **Content Extraction Project** via `POST /api/content-extraction`
380
+ - Changing settings of a **Content Extraction Project** via `PATCH /api/content-extraction/{contentProjectId}/settings`
327
381
  - Uploading a file to a **File** via `POST /api/files` (up to 2 weeks storage)
328
- - Creating a **Document** via `POST /api/documents/text` and `POST /api/files/{fileID}/convert-to-document` from a text or a **File**
329
- - Adding an **Example** to a **Project** via `POST /api/projects/{projectId}/examples`
330
- - Changing Project settings via `POST /api/projects/{projectId}/settings`
331
- - Locking a **Project** via `POST /api/projects/{projectId}/lock`
382
+ - Starting a content extraction **Job** via `POST /api/content-extraction/jobs`
383
+ - Reading a content extraction **Job** result via `GET /api/content-extraction/jobs/{contentExtractionJobId}`
332
384
 
333
385
  This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
334
386
 
335
387
  - API version:
336
388
  - Package version: 1.0.0
337
- - Generator version: 7.21.0
389
+ - Generator version: 7.22.0
338
390
  - Build package: org.openapitools.codegen.languages.PythonClientCodegen
339
391
 
340
392
  ### Documentation for API Endpoints
@@ -345,6 +397,7 @@ Class | Method | HTTP request | Description
345
397
  ------------ | ------------- | ------------- | -------------
346
398
  *ContentExtractionApi* | [**get_api_content_extraction_jobs_contentextractionjobid**](docs/ContentExtractionApi.md#get_api_content_extraction_jobs_contentextractionjobid) | **GET** /api/content-extraction/jobs/{contentExtractionJobId} |
347
399
  *ContentExtractionApi* | [**post_api_content_extraction_jobs**](docs/ContentExtractionApi.md#post_api_content_extraction_jobs) | **POST** /api/content-extraction/jobs |
400
+ *ContentExtractionProjectManagementApi* | [**delete_api_content_extraction_contentprojectid**](docs/ContentExtractionProjectManagementApi.md#delete_api_content_extraction_contentprojectid) | **DELETE** /api/content-extraction/{contentProjectId} |
348
401
  *ContentExtractionProjectManagementApi* | [**get_api_content_extraction**](docs/ContentExtractionProjectManagementApi.md#get_api_content_extraction) | **GET** /api/content-extraction |
349
402
  *ContentExtractionProjectManagementApi* | [**patch_api_content_extraction_contentprojectid**](docs/ContentExtractionProjectManagementApi.md#patch_api_content_extraction_contentprojectid) | **PATCH** /api/content-extraction/{contentProjectId} |
350
403
  *ContentExtractionProjectManagementApi* | [**patch_api_content_extraction_contentprojectid_settings**](docs/ContentExtractionProjectManagementApi.md#patch_api_content_extraction_contentprojectid_settings) | **PATCH** /api/content-extraction/{contentProjectId}/settings |
@@ -356,7 +409,7 @@ Class | Method | HTTP request | Description
356
409
  *DefaultApi* | [**get_api_ping**](docs/DefaultApi.md#get_api_ping) | **GET** /api/ping |
357
410
  *DefaultApi* | [**get_api_version**](docs/DefaultApi.md#get_api_version) | **GET** /api/version |
358
411
  *DocumentsApi* | [**get_api_documents_documentid**](docs/DocumentsApi.md#get_api_documents_documentid) | **GET** /api/documents/{documentId} |
359
- *DocumentsApi* | [**get_api_documents_documentid_content**](docs/DocumentsApi.md#get_api_documents_documentid_content) | **GET** /api/documents/{documentId}/content |
412
+ *DocumentsApi* | [**get_api_documents_documentid_parts_partindex_image**](docs/DocumentsApi.md#get_api_documents_documentid_parts_partindex_image) | **GET** /api/documents/{documentId}/parts/{partIndex}/image |
360
413
  *DocumentsApi* | [**post_api_documents_documentid_new_owner**](docs/DocumentsApi.md#post_api_documents_documentid_new_owner) | **POST** /api/documents/{documentId}/new-owner |
361
414
  *DocumentsApi* | [**post_api_documents_text**](docs/DocumentsApi.md#post_api_documents_text) | **POST** /api/documents/text |
362
415
  *FilesApi* | [**get_api_files_fileid**](docs/FilesApi.md#get_api_files_fileid) | **GET** /api/files/{fileId} |
@@ -371,6 +424,9 @@ Class | Method | HTTP request | Description
371
424
  *JobsApi* | [**get_api_jobs**](docs/JobsApi.md#get_api_jobs) | **GET** /api/jobs |
372
425
  *JobsApi* | [**get_api_jobs_jobid_status**](docs/JobsApi.md#get_api_jobs_jobid_status) | **GET** /api/jobs/{jobId}/status |
373
426
  *JobsApi* | [**get_api_jobs_jobid_stream**](docs/JobsApi.md#get_api_jobs_jobid_stream) | **GET** /api/jobs/{jobId}/stream |
427
+ *JobsApi* | [**post_api_jobs_jobid_cancel**](docs/JobsApi.md#post_api_jobs_jobid_cancel) | **POST** /api/jobs/{jobId}/cancel |
428
+ *ProjectImportExportApi* | [**get_api_extraction_projectkind_projectid_export**](docs/ProjectImportExportApi.md#get_api_extraction_projectkind_projectid_export) | **GET** /api/extraction/{projectKind}/{projectId}/export |
429
+ *ProjectImportExportApi* | [**post_api_extraction_import**](docs/ProjectImportExportApi.md#post_api_extraction_import) | **POST** /api/extraction/import |
374
430
  *StructuredDataExtractionApi* | [**get_api_structured_extraction_jobs_structuredextractionjobid**](docs/StructuredDataExtractionApi.md#get_api_structured_extraction_jobs_structuredextractionjobid) | **GET** /api/structured-extraction/jobs/{structuredExtractionJobId} |
375
431
  *StructuredDataExtractionApi* | [**post_api_structured_extraction_structuredprojectid_jobs**](docs/StructuredDataExtractionApi.md#post_api_structured_extraction_structuredprojectid_jobs) | **POST** /api/structured-extraction/{structuredProjectId}/jobs |
376
432
  *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} |
@@ -381,6 +437,7 @@ Class | Method | HTTP request | Description
381
437
  *StructuredExtractionProjectManagementApi* | [**delete_api_structured_extraction_structuredprojectid**](docs/StructuredExtractionProjectManagementApi.md#delete_api_structured_extraction_structuredprojectid) | **DELETE** /api/structured-extraction/{structuredProjectId} |
382
438
  *StructuredExtractionProjectManagementApi* | [**get_api_structured_extraction**](docs/StructuredExtractionProjectManagementApi.md#get_api_structured_extraction) | **GET** /api/structured-extraction |
383
439
  *StructuredExtractionProjectManagementApi* | [**get_api_structured_extraction_structuredprojectid**](docs/StructuredExtractionProjectManagementApi.md#get_api_structured_extraction_structuredprojectid) | **GET** /api/structured-extraction/{structuredProjectId} |
440
+ *StructuredExtractionProjectManagementApi* | [**get_api_structured_extraction_structuredprojectid_thumbnail**](docs/StructuredExtractionProjectManagementApi.md#get_api_structured_extraction_structuredprojectid_thumbnail) | **GET** /api/structured-extraction/{structuredProjectId}/thumbnail |
384
441
  *StructuredExtractionProjectManagementApi* | [**patch_api_structured_extraction_structuredprojectid**](docs/StructuredExtractionProjectManagementApi.md#patch_api_structured_extraction_structuredprojectid) | **PATCH** /api/structured-extraction/{structuredProjectId} |
385
442
  *StructuredExtractionProjectManagementApi* | [**patch_api_structured_extraction_structuredprojectid_settings**](docs/StructuredExtractionProjectManagementApi.md#patch_api_structured_extraction_structuredprojectid_settings) | **PATCH** /api/structured-extraction/{structuredProjectId}/settings |
386
443
  *StructuredExtractionProjectManagementApi* | [**post_api_structured_extraction**](docs/StructuredExtractionProjectManagementApi.md#post_api_structured_extraction) | **POST** /api/structured-extraction |
@@ -396,6 +453,7 @@ Class | Method | HTTP request | Description
396
453
 
397
454
  ### Documentation For Models
398
455
 
456
+ - [Content](docs/Content.md)
399
457
  - [ContentExtractionResponse](docs/ContentExtractionResponse.md)
400
458
  - [ContentProjectResponse](docs/ContentProjectResponse.md)
401
459
  - [ContentProjectSettingsResponse](docs/ContentProjectSettingsResponse.md)
@@ -409,16 +467,16 @@ Class | Method | HTTP request | Description
409
467
  - [FileResponse](docs/FileResponse.md)
410
468
  - [HealthResponse](docs/HealthResponse.md)
411
469
  - [ImageInfo](docs/ImageInfo.md)
470
+ - [ImportProjectResponse](docs/ImportProjectResponse.md)
412
471
  - [InferenceStatus](docs/InferenceStatus.md)
413
472
  - [InferenceValidationError](docs/InferenceValidationError.md)
414
473
  - [InformationResponse](docs/InformationResponse.md)
415
474
  - [InvalidInformation](docs/InvalidInformation.md)
416
475
  - [JobIdResponse](docs/JobIdResponse.md)
417
- - [JobResponse](docs/JobResponse.md)
418
476
  - [JobStatusResponse](docs/JobStatusResponse.md)
419
- - [PaginatedResponseJobResponse](docs/PaginatedResponseJobResponse.md)
420
- - [PaginatedResponseStructuredExampleResponse](docs/PaginatedResponseStructuredExampleResponse.md)
477
+ - [PaginatedResponseT](docs/PaginatedResponseT.md)
421
478
  - [ServiceStatus](docs/ServiceStatus.md)
479
+ - [Structured](docs/Structured.md)
422
480
  - [StructuredExampleResponse](docs/StructuredExampleResponse.md)
423
481
  - [StructuredExtractionResponse](docs/StructuredExtractionResponse.md)
424
482
  - [StructuredInferenceExample](docs/StructuredInferenceExample.md)
@@ -36,6 +36,7 @@ from numind import NuMindAsync
36
36
  client = NuMindAsync(api_key="API_KEY")
37
37
  requests = [{}]
38
38
 
39
+
39
40
  async def main():
40
41
  return [
41
42
  await client.extract_structured_data(project_id, **request_kwargs)
@@ -57,14 +58,14 @@ template = {
57
58
  "destination": {
58
59
  "name": "verbatim-string",
59
60
  "zip_code": "string",
60
- "country": "string"
61
+ "country": "string",
61
62
  },
62
63
  "accommodation": "verbatim-string",
63
64
  "activities": ["verbatim-string"],
64
65
  "duration": {
65
66
  "time_unit": ["day", "week", "month", "year"],
66
- "time_quantity": "integer"
67
- }
67
+ "time_quantity": "integer",
68
+ },
68
69
  }
69
70
  input_text = """My dream vacation would be a month-long escape to the stunning islands of Tahiti.
70
71
  I’d stay in an overwater bungalow in Bora Bora, waking up to crystal-clear turquoise waters and breathtaking sunrises.
@@ -103,7 +104,7 @@ print(output)
103
104
 
104
105
  ### Create a good template
105
106
 
106
- NuExtract uses JSON schemas as extraction templates which specify the information to retrieve and their types, which are:
107
+ NuExtract uses JSON extraction templates which specify the information to retrieve and their types, which are:
107
108
 
108
109
  * **string**: a text, whose value can be abstract, i.e. totally free and can be deduced from calculations, reasoning, external knowledge;
109
110
  * **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;
@@ -119,7 +120,33 @@ Additionally, the value of a field can be:
119
120
  * an **enum**, i.e. a list of elements to choose from of the form `["choice1", "choice2", ...]`. For values of this type, just set the value of the item to choose, e.g. "choice1", and do not set the value as an array containing the item such as `["choice1"]`;
120
121
  * a **multi-enum**, i.e. a list from which multiple elements can be picked, of the form `[["choice1", "choice2", ...]]` (double square brackets).
121
122
 
122
- #### Inferring a template
123
+ ### Converting JSON schema / Pydantic models to NuExtract template
124
+
125
+ The SDK offers a method to convert JSON schemas to NuExtract templates:
126
+
127
+ ```Python
128
+ from typing import Literal
129
+
130
+ from pydantic import Field, BaseModel
131
+ from numind.nuextract_utils import convert_json_schema_to_nuextract_template
132
+
133
+
134
+ class HotelBooking(BaseModel):
135
+ city: str
136
+ check_in_date: str = Field(description="date")
137
+ check_out_date: str = Field(description="date")
138
+ number_of_guests: int
139
+ room_type: Literal["single", "double", "suite"]
140
+
141
+
142
+ template, dropped_branches, descriptions = convert_json_schema_to_nuextract_template(
143
+ HotelBooking.model_json_schema()
144
+ )
145
+
146
+ # {'check_in_date': 'date', 'check_out_date': 'date', 'city': 'string', 'number_of_guests': 'integer', 'room_type': ['single', 'double', 'suite']}
147
+ ```
148
+
149
+ ### Inferring a template
123
150
 
124
151
  The "infer_template" method allows to quickly create a template that you can start to work with from a text description.
125
152
 
@@ -207,41 +234,52 @@ markdown = client.extract_content(input_file)
207
234
 
208
235
  ### Extracting Information from Documents
209
236
 
210
- Once your project is ready, you can use it to extract information from documents in real time via this RESTful API.
211
-
212
- Each project has its own extraction endpoint:
237
+ Once your structured extraction project is ready, submit a document to the endpoint:
213
238
 
214
- `https://nuextract.ai/api/projects/{projectId}/extract`
239
+ `https://nuextract.ai/api/structured-extraction/{structuredProjectId}/jobs`
215
240
 
216
- You provide it a document and it returns the extracted information according to the task defined in the project. To use it, you need:
241
+ To use it, you need:
217
242
 
218
243
  - To create an API key in the [Account section](https://nuextract.ai/app/user?content=api)
219
- - To replace `{projectId}` by the project ID found in the API tab of the project
244
+ - To replace `{structuredProjectId}` by the project ID found in the API tab of the structured extraction project
220
245
 
221
- You can test your extraction endpoint in your terminal using this command-line example with curl (make sure that you replace values of `PROJECT_ID` and `NUEXTRACT_API_KEY`):
246
+ This endpoint creates an asynchronous extraction job. Use the returned `jobId` to retrieve the result from:
247
+
248
+ `https://nuextract.ai/api/structured-extraction/jobs/{structuredExtractionJobId}`
249
+
250
+ You can test your extraction endpoint in your terminal using this command-line example with curl (make sure that you replace values of `STRUCTURED_PROJECT_ID` and `NUEXTRACT_API_KEY`):
222
251
 
223
252
  ```bash
224
253
  NUEXTRACT_API_KEY=\"_your_api_key_here_\"; \\
225
- PROJECT_ID=\"a24fd84a-44ab-4fd4-95a9-bebd46e4768b\"; \\
226
- curl \"https://nuextract.ai/api/projects/${PROJECT_ID}/extract\" \\
254
+ STRUCTURED_PROJECT_ID=\"a24fd84a-44ab-4fd4-95a9-bebd46e4768b\"; \\
255
+ JOB_ID=$(curl \"https://nuextract.ai/api/structured-extraction/${STRUCTURED_PROJECT_ID}/jobs\" \\
227
256
  -X POST \\
228
257
  -H \"Authorization: Bearer ${NUEXTRACT_API_KEY}\" \\
229
- -H \"Content-Type: application/octet-stream\" \\
230
- --data-binary @\"${FILE_NAME}\"
258
+ -F \"file=@${FILE_NAME}\" | jq -r '.jobId')
259
+
260
+ curl \"https://nuextract.ai/api/structured-extraction/jobs/${JOB_ID}\" \\
261
+ -H \"Authorization: Bearer ${NUEXTRACT_API_KEY}\"
231
262
  ```
232
263
 
233
264
  You can also use the [Python SDK](https://github.com/numindai/nuextract-platform-sdk#documentation), by replacing the
234
- `project_id`, `api_key` and `file_path` variables in the following code:
265
+ `project_id`, `api_key` and request values in the following code:
235
266
 
236
267
  ```python
237
- from numind import NuMind
238
- from pathlib import Path
268
+ import asyncio
269
+ from numind import NuMindAsync
239
270
 
240
- client = NuMind(api_key=api_key)
241
- file_path = Path(\"path\", \"to\", \"document.odt\")
242
- with file_path.open(\"rb\") as file:
243
- input_file = file.read()
244
- output_schema = client.post_api_projects_projectid_extract(project_id, input_file)
271
+ client = NuMindAsync(api_key=api_key)
272
+ requests = [{}]
273
+
274
+
275
+ async def main():
276
+ return [
277
+ await client.extract_structured_data(project_id, **request_kwargs)
278
+ for request_kwargs in requests
279
+ ]
280
+
281
+
282
+ responses = asyncio.run(main())
245
283
  ```
246
284
 
247
285
  ### Using the Platform via API
@@ -252,26 +290,38 @@ Everything you can do on the web platform can be done via API -
252
290
 
253
291
  #### Main resources
254
292
 
255
- - **Project** - user project, identified by `projectId`
293
+ - **Structured Extraction Project** - user project for structured extraction, identified by `structuredProjectId`
294
+ - **Content Extraction Project** - user project for content extraction, identified by `contentProjectId`
256
295
  - **File** - uploaded file, identified by `fileId`, stored up to two weeks if not tied to an **Example**
257
- - **Document** - internal representation of a document, identified by `documentId`, created from a File or a text, stored up to two weeks if not tied to an Example
258
- - **Example** - document-extraction pair given to teach NuExtract, identified by `exampleId`, created from a Document
296
+ - **Document** - internal representation of a document, identified by `documentId`, created from a File, stored up to two weeks if not tied to an Example
297
+ - **Example** - document-extraction pair given to teach NuExtract, identified by `structuredExampleId`, created from a Document
298
+ - **Job** - asynchronous extraction task, identified by `structuredExtractionJobId`
259
299
 
260
300
  #### Most common API operations
261
301
 
262
- - Creating a **Project** via `POST /api/projects`
263
- - Changing the template of a **Project** via `PATCH /api/projects/{projectId}`
302
+ ##### Structured extraction
303
+
304
+ - Creating a **Structured Extraction Project** via `POST /api/structured-extraction`
305
+ - Changing the template of a **Structured Extraction Project** via `PATCH /api/structured-extraction/{structuredProjectId}`
306
+ - Changing settings of a **Structured Extraction Project** via `PATCH /api/structured-extraction/{structuredProjectId}/settings`
307
+ - Uploading a file to a **File** via `POST /api/files` (up to 2 weeks storage)
308
+ - Starting a structured extraction **Job** via `POST /api/structured-extraction/{structuredProjectId}/jobs`
309
+ - Reading a structured extraction **Job** result via `GET /api/structured-extraction/jobs/{structuredExtractionJobId}`
310
+ - Adding an **Example** to a **Structured Extraction Project** via `POST /api/structured-extraction/{structuredProjectId}/examples`
311
+
312
+ ##### Content extraction
313
+
314
+ - Creating a **Content Extraction Project** via `POST /api/content-extraction`
315
+ - Changing settings of a **Content Extraction Project** via `PATCH /api/content-extraction/{contentProjectId}/settings`
264
316
  - Uploading a file to a **File** via `POST /api/files` (up to 2 weeks storage)
265
- - Creating a **Document** via `POST /api/documents/text` and `POST /api/files/{fileID}/convert-to-document` from a text or a **File**
266
- - Adding an **Example** to a **Project** via `POST /api/projects/{projectId}/examples`
267
- - Changing Project settings via `POST /api/projects/{projectId}/settings`
268
- - Locking a **Project** via `POST /api/projects/{projectId}/lock`
317
+ - Starting a content extraction **Job** via `POST /api/content-extraction/jobs`
318
+ - Reading a content extraction **Job** result via `GET /api/content-extraction/jobs/{contentExtractionJobId}`
269
319
 
270
320
  This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
271
321
 
272
322
  - API version:
273
323
  - Package version: 1.0.0
274
- - Generator version: 7.21.0
324
+ - Generator version: 7.22.0
275
325
  - Build package: org.openapitools.codegen.languages.PythonClientCodegen
276
326
 
277
327
  ### Documentation for API Endpoints
@@ -282,6 +332,7 @@ Class | Method | HTTP request | Description
282
332
  ------------ | ------------- | ------------- | -------------
283
333
  *ContentExtractionApi* | [**get_api_content_extraction_jobs_contentextractionjobid**](docs/ContentExtractionApi.md#get_api_content_extraction_jobs_contentextractionjobid) | **GET** /api/content-extraction/jobs/{contentExtractionJobId} |
284
334
  *ContentExtractionApi* | [**post_api_content_extraction_jobs**](docs/ContentExtractionApi.md#post_api_content_extraction_jobs) | **POST** /api/content-extraction/jobs |
335
+ *ContentExtractionProjectManagementApi* | [**delete_api_content_extraction_contentprojectid**](docs/ContentExtractionProjectManagementApi.md#delete_api_content_extraction_contentprojectid) | **DELETE** /api/content-extraction/{contentProjectId} |
285
336
  *ContentExtractionProjectManagementApi* | [**get_api_content_extraction**](docs/ContentExtractionProjectManagementApi.md#get_api_content_extraction) | **GET** /api/content-extraction |
286
337
  *ContentExtractionProjectManagementApi* | [**patch_api_content_extraction_contentprojectid**](docs/ContentExtractionProjectManagementApi.md#patch_api_content_extraction_contentprojectid) | **PATCH** /api/content-extraction/{contentProjectId} |
287
338
  *ContentExtractionProjectManagementApi* | [**patch_api_content_extraction_contentprojectid_settings**](docs/ContentExtractionProjectManagementApi.md#patch_api_content_extraction_contentprojectid_settings) | **PATCH** /api/content-extraction/{contentProjectId}/settings |
@@ -293,7 +344,7 @@ Class | Method | HTTP request | Description
293
344
  *DefaultApi* | [**get_api_ping**](docs/DefaultApi.md#get_api_ping) | **GET** /api/ping |
294
345
  *DefaultApi* | [**get_api_version**](docs/DefaultApi.md#get_api_version) | **GET** /api/version |
295
346
  *DocumentsApi* | [**get_api_documents_documentid**](docs/DocumentsApi.md#get_api_documents_documentid) | **GET** /api/documents/{documentId} |
296
- *DocumentsApi* | [**get_api_documents_documentid_content**](docs/DocumentsApi.md#get_api_documents_documentid_content) | **GET** /api/documents/{documentId}/content |
347
+ *DocumentsApi* | [**get_api_documents_documentid_parts_partindex_image**](docs/DocumentsApi.md#get_api_documents_documentid_parts_partindex_image) | **GET** /api/documents/{documentId}/parts/{partIndex}/image |
297
348
  *DocumentsApi* | [**post_api_documents_documentid_new_owner**](docs/DocumentsApi.md#post_api_documents_documentid_new_owner) | **POST** /api/documents/{documentId}/new-owner |
298
349
  *DocumentsApi* | [**post_api_documents_text**](docs/DocumentsApi.md#post_api_documents_text) | **POST** /api/documents/text |
299
350
  *FilesApi* | [**get_api_files_fileid**](docs/FilesApi.md#get_api_files_fileid) | **GET** /api/files/{fileId} |
@@ -308,6 +359,9 @@ Class | Method | HTTP request | Description
308
359
  *JobsApi* | [**get_api_jobs**](docs/JobsApi.md#get_api_jobs) | **GET** /api/jobs |
309
360
  *JobsApi* | [**get_api_jobs_jobid_status**](docs/JobsApi.md#get_api_jobs_jobid_status) | **GET** /api/jobs/{jobId}/status |
310
361
  *JobsApi* | [**get_api_jobs_jobid_stream**](docs/JobsApi.md#get_api_jobs_jobid_stream) | **GET** /api/jobs/{jobId}/stream |
362
+ *JobsApi* | [**post_api_jobs_jobid_cancel**](docs/JobsApi.md#post_api_jobs_jobid_cancel) | **POST** /api/jobs/{jobId}/cancel |
363
+ *ProjectImportExportApi* | [**get_api_extraction_projectkind_projectid_export**](docs/ProjectImportExportApi.md#get_api_extraction_projectkind_projectid_export) | **GET** /api/extraction/{projectKind}/{projectId}/export |
364
+ *ProjectImportExportApi* | [**post_api_extraction_import**](docs/ProjectImportExportApi.md#post_api_extraction_import) | **POST** /api/extraction/import |
311
365
  *StructuredDataExtractionApi* | [**get_api_structured_extraction_jobs_structuredextractionjobid**](docs/StructuredDataExtractionApi.md#get_api_structured_extraction_jobs_structuredextractionjobid) | **GET** /api/structured-extraction/jobs/{structuredExtractionJobId} |
312
366
  *StructuredDataExtractionApi* | [**post_api_structured_extraction_structuredprojectid_jobs**](docs/StructuredDataExtractionApi.md#post_api_structured_extraction_structuredprojectid_jobs) | **POST** /api/structured-extraction/{structuredProjectId}/jobs |
313
367
  *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} |
@@ -318,6 +372,7 @@ Class | Method | HTTP request | Description
318
372
  *StructuredExtractionProjectManagementApi* | [**delete_api_structured_extraction_structuredprojectid**](docs/StructuredExtractionProjectManagementApi.md#delete_api_structured_extraction_structuredprojectid) | **DELETE** /api/structured-extraction/{structuredProjectId} |
319
373
  *StructuredExtractionProjectManagementApi* | [**get_api_structured_extraction**](docs/StructuredExtractionProjectManagementApi.md#get_api_structured_extraction) | **GET** /api/structured-extraction |
320
374
  *StructuredExtractionProjectManagementApi* | [**get_api_structured_extraction_structuredprojectid**](docs/StructuredExtractionProjectManagementApi.md#get_api_structured_extraction_structuredprojectid) | **GET** /api/structured-extraction/{structuredProjectId} |
375
+ *StructuredExtractionProjectManagementApi* | [**get_api_structured_extraction_structuredprojectid_thumbnail**](docs/StructuredExtractionProjectManagementApi.md#get_api_structured_extraction_structuredprojectid_thumbnail) | **GET** /api/structured-extraction/{structuredProjectId}/thumbnail |
321
376
  *StructuredExtractionProjectManagementApi* | [**patch_api_structured_extraction_structuredprojectid**](docs/StructuredExtractionProjectManagementApi.md#patch_api_structured_extraction_structuredprojectid) | **PATCH** /api/structured-extraction/{structuredProjectId} |
322
377
  *StructuredExtractionProjectManagementApi* | [**patch_api_structured_extraction_structuredprojectid_settings**](docs/StructuredExtractionProjectManagementApi.md#patch_api_structured_extraction_structuredprojectid_settings) | **PATCH** /api/structured-extraction/{structuredProjectId}/settings |
323
378
  *StructuredExtractionProjectManagementApi* | [**post_api_structured_extraction**](docs/StructuredExtractionProjectManagementApi.md#post_api_structured_extraction) | **POST** /api/structured-extraction |
@@ -333,6 +388,7 @@ Class | Method | HTTP request | Description
333
388
 
334
389
  ### Documentation For Models
335
390
 
391
+ - [Content](docs/Content.md)
336
392
  - [ContentExtractionResponse](docs/ContentExtractionResponse.md)
337
393
  - [ContentProjectResponse](docs/ContentProjectResponse.md)
338
394
  - [ContentProjectSettingsResponse](docs/ContentProjectSettingsResponse.md)
@@ -346,16 +402,16 @@ Class | Method | HTTP request | Description
346
402
  - [FileResponse](docs/FileResponse.md)
347
403
  - [HealthResponse](docs/HealthResponse.md)
348
404
  - [ImageInfo](docs/ImageInfo.md)
405
+ - [ImportProjectResponse](docs/ImportProjectResponse.md)
349
406
  - [InferenceStatus](docs/InferenceStatus.md)
350
407
  - [InferenceValidationError](docs/InferenceValidationError.md)
351
408
  - [InformationResponse](docs/InformationResponse.md)
352
409
  - [InvalidInformation](docs/InvalidInformation.md)
353
410
  - [JobIdResponse](docs/JobIdResponse.md)
354
- - [JobResponse](docs/JobResponse.md)
355
411
  - [JobStatusResponse](docs/JobStatusResponse.md)
356
- - [PaginatedResponseJobResponse](docs/PaginatedResponseJobResponse.md)
357
- - [PaginatedResponseStructuredExampleResponse](docs/PaginatedResponseStructuredExampleResponse.md)
412
+ - [PaginatedResponseT](docs/PaginatedResponseT.md)
358
413
  - [ServiceStatus](docs/ServiceStatus.md)
414
+ - [Structured](docs/Structured.md)
359
415
  - [StructuredExampleResponse](docs/StructuredExampleResponse.md)
360
416
  - [StructuredExtractionResponse](docs/StructuredExtractionResponse.md)
361
417
  - [StructuredInferenceExample](docs/StructuredInferenceExample.md)
@@ -0,0 +1,30 @@
1
+ # Content
2
+
3
+
4
+ ## Properties
5
+
6
+ Name | Type | Description | Notes
7
+ ------------ | ------------- | ------------- | -------------
8
+ **project** | [**ContentProjectResponse**](ContentProjectResponse.md) | |
9
+ **type** | **str** | |
10
+
11
+ ## Example
12
+
13
+ ```python
14
+ from numind.models.content import Content
15
+
16
+ # TODO update the JSON string below
17
+ json = "{}"
18
+ # create an instance of Content from a JSON string
19
+ content_instance = Content.from_json(json)
20
+ # print the JSON string representation of the object
21
+ print(Content.to_json())
22
+
23
+ # convert the object into a dict
24
+ content_dict = content_instance.to_dict()
25
+ # create an instance of Content from a dict
26
+ content_from_dict = Content.from_dict(content_dict)
27
+ ```
28
+ [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
29
+
30
+