mindee 5.3.1 → 5.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.git-hooks/pre_commit/gitleaks.rb +19 -0
- data/.overcommit.yml +46 -0
- data/CHANGELOG.md +14 -0
- data/CONTRIBUTING.md +128 -0
- data/bin/mindee.rb +4 -1
- data/bin/v2/parser.rb +40 -45
- data/bin/v2/search_commands.rb +100 -0
- data/lib/mindee/http/cancellation_token.rb +24 -0
- data/lib/mindee/http.rb +1 -0
- data/lib/mindee/v1/client.rb +15 -1
- data/lib/mindee/v2/client.rb +25 -10
- data/lib/mindee/v2/client_options/base_product_parameters.rb +162 -0
- data/lib/mindee/v2/client_options/base_search_parameters.rb +51 -0
- data/lib/mindee/v2/client_options.rb +4 -0
- data/lib/mindee/v2/http/mindee_api_v2.rb +28 -32
- data/lib/mindee/v2/parsing/field/field_confidence.rb +37 -2
- data/lib/mindee/v2/parsing/search/base_search_response.rb +47 -0
- data/lib/mindee/v2/parsing/search/model_webhook.rb +3 -3
- data/lib/mindee/v2/parsing/search/pagination_metadata.rb +1 -1
- data/lib/mindee/v2/parsing/search/search_models.rb +2 -1
- data/lib/mindee/v2/parsing/search/search_rag_document.rb +60 -0
- data/lib/mindee/v2/parsing/search/search_rag_documents.rb +39 -0
- data/lib/mindee/v2/parsing/search/search_response.rb +2 -29
- data/lib/mindee/v2/parsing/search.rb +5 -1
- data/lib/mindee/v2/product/base_product.rb +2 -2
- data/lib/mindee/v2/product/classification/classification_classifier.rb +1 -2
- data/lib/mindee/v2/product/classification/params/classification_parameters.rb +1 -1
- data/lib/mindee/v2/product/crop/crop_item.rb +1 -2
- data/lib/mindee/v2/product/crop/params/crop_parameters.rb +1 -1
- data/lib/mindee/v2/product/extraction/params/extraction_parameters.rb +2 -2
- data/lib/mindee/v2/product/ocr/params/ocr_parameters.rb +1 -1
- data/lib/mindee/v2/product/split/params/split_parameters.rb +1 -1
- data/lib/mindee/v2/product/split/split_range.rb +1 -2
- data/lib/mindee/v2/search/models/model_search_parameters.rb +51 -0
- data/lib/mindee/v2/search/models/model_search_response.rb +28 -0
- data/lib/mindee/v2/search/rag_documents/rag_document_search_parameters.rb +52 -0
- data/lib/mindee/v2/search/rag_documents/rag_document_search_response.rb +28 -0
- data/lib/mindee/v2/search.rb +6 -0
- data/lib/mindee/v2.rb +2 -0
- data/lib/mindee/version.rb +1 -1
- data/mindee.gemspec +1 -0
- data/sig/custom/net_http.rbs +1 -1
- data/sig/mindee/http/cancellation_token.rbs +15 -0
- data/sig/mindee/v2/client.rbs +7 -4
- data/sig/mindee/v2/client_options/base_product_parameters.rbs +41 -0
- data/sig/mindee/v2/client_options/base_search_parameters.rbs +19 -0
- data/sig/mindee/v2/http/mindee_api_v2.rbs +12 -6
- data/sig/mindee/v2/parsing/field/field_confidence.rbs +9 -0
- data/sig/mindee/v2/parsing/search/base_search_response.rbs +19 -0
- data/sig/mindee/v2/parsing/search/search_rag_document.rbs +23 -0
- data/sig/mindee/v2/parsing/search/search_rag_documents.rbs +16 -0
- data/sig/mindee/v2/parsing/search/search_response.rbs +4 -9
- data/sig/mindee/v2/product/base_product.rbs +3 -3
- data/sig/mindee/v2/product/classification/params/classification_parameters/classification_parameters.rbs +1 -1
- data/sig/mindee/v2/product/crop/params/crop_parameters/crop_parameters.rbs +1 -1
- data/sig/mindee/v2/product/extraction/params/extraction_parameters.rbs +1 -1
- data/sig/mindee/v2/product/ocr/params/ocr_parameters/ocr_parameters.rbs +1 -1
- data/sig/mindee/v2/product/split/params/split_parameters/split_parameters.rbs +1 -1
- data/sig/mindee/v2/search/models/model_search_parameters.rbs +22 -0
- data/sig/mindee/v2/search/models/model_search_response.rbs +17 -0
- data/sig/mindee/v2/search/rag_documents/rag_document_search_parameters.rbs +22 -0
- data/sig/mindee/v2/search/rag_documents/rag_document_search_response.rbs +17 -0
- metadata +41 -5
- data/.pre-commit-config.yaml +0 -36
- data/lib/mindee/input/base_parameters.rb +0 -156
- data/sig/mindee/input/base_parameters.rbs +0 -36
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# lib/mindee/v2/search/models/model_search_response.rb
|
|
2
|
+
|
|
3
|
+
module Mindee
|
|
4
|
+
module V2
|
|
5
|
+
module Search
|
|
6
|
+
module Models
|
|
7
|
+
class ModelSearchResponse < V2::Parsing::Search::BaseSearchResponse
|
|
8
|
+
attr_reader models: V2::Parsing::Search::SearchModels
|
|
9
|
+
|
|
10
|
+
def initialize: (Hash[String|Symbol, untyped]) -> void
|
|
11
|
+
|
|
12
|
+
def body_lines: -> Array[String]
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# lib/mindee/v2/search/rag_documents/rag_document_search_parameters.rb
|
|
2
|
+
|
|
3
|
+
module Mindee
|
|
4
|
+
module V2
|
|
5
|
+
module Search
|
|
6
|
+
module RAGDocuments
|
|
7
|
+
class RAGDocumentSearchParameters < ClientOptions::BaseSearchParameters
|
|
8
|
+
attr_reader filename: String?
|
|
9
|
+
attr_reader model_id: String
|
|
10
|
+
|
|
11
|
+
def initialize: (model_id: String, ?filename: String?, ?page: Integer?, ?per_page: Integer?) -> void
|
|
12
|
+
|
|
13
|
+
def self.slug: -> String
|
|
14
|
+
def self.response_class: -> singleton(RAGDocumentSearchResponse)
|
|
15
|
+
def response_class: -> singleton(RAGDocumentSearchResponse)
|
|
16
|
+
|
|
17
|
+
def request_parameters: -> Hash[String, String | Array[String]]
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# lib/mindee/v2/search/rag_documents/rag_document_search_response.rb
|
|
2
|
+
|
|
3
|
+
module Mindee
|
|
4
|
+
module V2
|
|
5
|
+
module Search
|
|
6
|
+
module RAGDocuments
|
|
7
|
+
class RAGDocumentSearchResponse < V2::Parsing::Search::BaseSearchResponse
|
|
8
|
+
attr_reader rag_documents: V2::Parsing::Search::SearchRAGDocuments
|
|
9
|
+
|
|
10
|
+
def initialize: (Hash[String|Symbol, untyped]) -> void
|
|
11
|
+
|
|
12
|
+
def body_lines: -> Array[String]
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: mindee
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 5.
|
|
4
|
+
version: 5.5.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Mindee, SA
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-
|
|
11
|
+
date: 2026-09-30 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: base64
|
|
@@ -114,6 +114,20 @@ dependencies:
|
|
|
114
114
|
- - "~>"
|
|
115
115
|
- !ruby/object:Gem::Version
|
|
116
116
|
version: 0.2.0
|
|
117
|
+
- !ruby/object:Gem::Dependency
|
|
118
|
+
name: overcommit
|
|
119
|
+
requirement: !ruby/object:Gem::Requirement
|
|
120
|
+
requirements:
|
|
121
|
+
- - "~>"
|
|
122
|
+
- !ruby/object:Gem::Version
|
|
123
|
+
version: '0.71'
|
|
124
|
+
type: :development
|
|
125
|
+
prerelease: false
|
|
126
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
127
|
+
requirements:
|
|
128
|
+
- - "~>"
|
|
129
|
+
- !ruby/object:Gem::Version
|
|
130
|
+
version: '0.71'
|
|
117
131
|
- !ruby/object:Gem::Dependency
|
|
118
132
|
name: rbs
|
|
119
133
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -180,10 +194,11 @@ extensions: []
|
|
|
180
194
|
extra_rdoc_files: []
|
|
181
195
|
files:
|
|
182
196
|
- ".editorconfig"
|
|
197
|
+
- ".git-hooks/pre_commit/gitleaks.rb"
|
|
183
198
|
- ".gitattributes"
|
|
184
199
|
- ".gitignore"
|
|
185
200
|
- ".gitmodules"
|
|
186
|
-
- ".
|
|
201
|
+
- ".overcommit.yml"
|
|
187
202
|
- ".rubocop.yml"
|
|
188
203
|
- ".yardopts"
|
|
189
204
|
- CHANGELOG.md
|
|
@@ -201,6 +216,7 @@ files:
|
|
|
201
216
|
- bin/v1/products.rb
|
|
202
217
|
- bin/v2/parser.rb
|
|
203
218
|
- bin/v2/products.rb
|
|
219
|
+
- bin/v2/search_commands.rb
|
|
204
220
|
- docs/code_samples/bank_account_details_v1.txt
|
|
205
221
|
- docs/code_samples/bank_account_details_v2.txt
|
|
206
222
|
- docs/code_samples/bank_statement_fr_v2_async.txt
|
|
@@ -247,6 +263,7 @@ files:
|
|
|
247
263
|
- lib/mindee/geometry/utils.rb
|
|
248
264
|
- lib/mindee/http.rb
|
|
249
265
|
- lib/mindee/http/.rubocop.yml
|
|
266
|
+
- lib/mindee/http/cancellation_token.rb
|
|
250
267
|
- lib/mindee/http/http_error_handler.rb
|
|
251
268
|
- lib/mindee/http/response_validation.rb
|
|
252
269
|
- lib/mindee/image.rb
|
|
@@ -256,7 +273,6 @@ files:
|
|
|
256
273
|
- lib/mindee/image/image_extractor.rb
|
|
257
274
|
- lib/mindee/image/image_utils.rb
|
|
258
275
|
- lib/mindee/input.rb
|
|
259
|
-
- lib/mindee/input/base_parameters.rb
|
|
260
276
|
- lib/mindee/input/local_response.rb
|
|
261
277
|
- lib/mindee/input/polling_options.rb
|
|
262
278
|
- lib/mindee/input/sources.rb
|
|
@@ -399,6 +415,9 @@ files:
|
|
|
399
415
|
- lib/mindee/v1/product/universal/universal_prediction.rb
|
|
400
416
|
- lib/mindee/v2.rb
|
|
401
417
|
- lib/mindee/v2/client.rb
|
|
418
|
+
- lib/mindee/v2/client_options.rb
|
|
419
|
+
- lib/mindee/v2/client_options/base_product_parameters.rb
|
|
420
|
+
- lib/mindee/v2/client_options/base_search_parameters.rb
|
|
402
421
|
- lib/mindee/v2/file_operations.rb
|
|
403
422
|
- lib/mindee/v2/file_operations/crop.rb
|
|
404
423
|
- lib/mindee/v2/file_operations/split.rb
|
|
@@ -432,10 +451,13 @@ files:
|
|
|
432
451
|
- lib/mindee/v2/parsing/raw_text.rb
|
|
433
452
|
- lib/mindee/v2/parsing/raw_text_page.rb
|
|
434
453
|
- lib/mindee/v2/parsing/search.rb
|
|
454
|
+
- lib/mindee/v2/parsing/search/base_search_response.rb
|
|
435
455
|
- lib/mindee/v2/parsing/search/model_webhook.rb
|
|
436
456
|
- lib/mindee/v2/parsing/search/pagination_metadata.rb
|
|
437
457
|
- lib/mindee/v2/parsing/search/search_model.rb
|
|
438
458
|
- lib/mindee/v2/parsing/search/search_models.rb
|
|
459
|
+
- lib/mindee/v2/parsing/search/search_rag_document.rb
|
|
460
|
+
- lib/mindee/v2/parsing/search/search_rag_documents.rb
|
|
439
461
|
- lib/mindee/v2/parsing/search/search_response.rb
|
|
440
462
|
- lib/mindee/v2/product.rb
|
|
441
463
|
- lib/mindee/v2/product/base_product.rb
|
|
@@ -472,6 +494,11 @@ files:
|
|
|
472
494
|
- lib/mindee/v2/product/split/split_range.rb
|
|
473
495
|
- lib/mindee/v2/product/split/split_response.rb
|
|
474
496
|
- lib/mindee/v2/product/split/split_result.rb
|
|
497
|
+
- lib/mindee/v2/search.rb
|
|
498
|
+
- lib/mindee/v2/search/models/model_search_parameters.rb
|
|
499
|
+
- lib/mindee/v2/search/models/model_search_response.rb
|
|
500
|
+
- lib/mindee/v2/search/rag_documents/rag_document_search_parameters.rb
|
|
501
|
+
- lib/mindee/v2/search/rag_documents/rag_document_search_response.rb
|
|
475
502
|
- lib/mindee/version.rb
|
|
476
503
|
- mindee-lite.gemspec
|
|
477
504
|
- mindee.gemspec
|
|
@@ -491,6 +518,7 @@ files:
|
|
|
491
518
|
- sig/mindee/geometry/polygon.rbs
|
|
492
519
|
- sig/mindee/geometry/quadrilateral.rbs
|
|
493
520
|
- sig/mindee/geometry/utils.rbs
|
|
521
|
+
- sig/mindee/http/cancellation_token.rbs
|
|
494
522
|
- sig/mindee/http/http_error_handler.rbs
|
|
495
523
|
- sig/mindee/http/response_validation.rbs
|
|
496
524
|
- sig/mindee/image/extracted_image.rbs
|
|
@@ -498,7 +526,6 @@ files:
|
|
|
498
526
|
- sig/mindee/image/image_compressor.rbs
|
|
499
527
|
- sig/mindee/image/image_extractor.rbs
|
|
500
528
|
- sig/mindee/image/image_utils.rbs
|
|
501
|
-
- sig/mindee/input/base_parameters.rbs
|
|
502
529
|
- sig/mindee/input/local_response.rbs
|
|
503
530
|
- sig/mindee/input/polling_options.rbs
|
|
504
531
|
- sig/mindee/input/sources/base64_input_source.rbs
|
|
@@ -625,6 +652,8 @@ files:
|
|
|
625
652
|
- sig/mindee/v1/product/universal/universal_page.rbs
|
|
626
653
|
- sig/mindee/v1/product/universal/universal_prediction.rbs
|
|
627
654
|
- sig/mindee/v2/client.rbs
|
|
655
|
+
- sig/mindee/v2/client_options/base_product_parameters.rbs
|
|
656
|
+
- sig/mindee/v2/client_options/base_search_parameters.rbs
|
|
628
657
|
- sig/mindee/v2/file_operation/crop.rbs
|
|
629
658
|
- sig/mindee/v2/file_operation/split.rbs
|
|
630
659
|
- sig/mindee/v2/http/api_v2_settings.rbs
|
|
@@ -652,10 +681,13 @@ files:
|
|
|
652
681
|
- sig/mindee/v2/parsing/rag_metadata.rbs
|
|
653
682
|
- sig/mindee/v2/parsing/raw_text.rbs
|
|
654
683
|
- sig/mindee/v2/parsing/raw_text_page.rbs
|
|
684
|
+
- sig/mindee/v2/parsing/search/base_search_response.rbs
|
|
655
685
|
- sig/mindee/v2/parsing/search/model_webhook.rbs
|
|
656
686
|
- sig/mindee/v2/parsing/search/pagination_metadata.rbs
|
|
657
687
|
- sig/mindee/v2/parsing/search/search_model.rbs
|
|
658
688
|
- sig/mindee/v2/parsing/search/search_models.rbs
|
|
689
|
+
- sig/mindee/v2/parsing/search/search_rag_document.rbs
|
|
690
|
+
- sig/mindee/v2/parsing/search/search_rag_documents.rbs
|
|
659
691
|
- sig/mindee/v2/parsing/search/search_response.rbs
|
|
660
692
|
- sig/mindee/v2/parsing/search_models.rbs
|
|
661
693
|
- sig/mindee/v2/product/base_product.rbs
|
|
@@ -692,6 +724,10 @@ files:
|
|
|
692
724
|
- sig/mindee/v2/product/split/split_range.rbs
|
|
693
725
|
- sig/mindee/v2/product/split/split_response.rbs
|
|
694
726
|
- sig/mindee/v2/product/split/split_result.rbs
|
|
727
|
+
- sig/mindee/v2/search/models/model_search_parameters.rbs
|
|
728
|
+
- sig/mindee/v2/search/models/model_search_response.rbs
|
|
729
|
+
- sig/mindee/v2/search/rag_documents/rag_document_search_parameters.rbs
|
|
730
|
+
- sig/mindee/v2/search/rag_documents/rag_document_search_response.rbs
|
|
695
731
|
- sig/mindee/version.rbs
|
|
696
732
|
homepage: https://github.com/mindee/mindee-api-ruby
|
|
697
733
|
licenses:
|
data/.pre-commit-config.yaml
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
repos:
|
|
2
|
-
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
3
|
-
rev: v6.0.0
|
|
4
|
-
hooks:
|
|
5
|
-
- id: check-merge-conflict
|
|
6
|
-
- id: check-yaml
|
|
7
|
-
- id: end-of-file-fixer
|
|
8
|
-
- id: trailing-whitespace
|
|
9
|
-
- id: check-added-large-files
|
|
10
|
-
args: ["--maxkb=1024"]
|
|
11
|
-
|
|
12
|
-
- repo: https://github.com/gitleaks/gitleaks
|
|
13
|
-
rev: v8.30.0
|
|
14
|
-
hooks:
|
|
15
|
-
- id: gitleaks
|
|
16
|
-
exclude: ^(spec/data/|docs/code_samples/|local_test/)
|
|
17
|
-
|
|
18
|
-
- repo: local
|
|
19
|
-
hooks:
|
|
20
|
-
- id: rubocop
|
|
21
|
-
name: RuboCop
|
|
22
|
-
entry: bundle exec rubocop --force-exclusion --no-server
|
|
23
|
-
language: system
|
|
24
|
-
pass_filenames: false
|
|
25
|
-
- id: steep
|
|
26
|
-
name: Steep
|
|
27
|
-
entry: bundle exec steep check
|
|
28
|
-
language: system
|
|
29
|
-
pass_filenames: false
|
|
30
|
-
stages: [pre-commit, pre-push]
|
|
31
|
-
- id: bundle-audit
|
|
32
|
-
name: Bundle Audit
|
|
33
|
-
entry: bundle exec bundle-audit check
|
|
34
|
-
language: system
|
|
35
|
-
pass_filenames: false
|
|
36
|
-
stages: [pre-commit, pre-push]
|
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Mindee
|
|
4
|
-
module Input
|
|
5
|
-
# Base class for parameters accepted by all V2 endpoints.
|
|
6
|
-
class BaseParameters
|
|
7
|
-
# @return [String] ID of the model (required).
|
|
8
|
-
attr_reader :model_id
|
|
9
|
-
|
|
10
|
-
# @return [String, nil] Optional alias for the file.
|
|
11
|
-
attr_reader :file_alias
|
|
12
|
-
|
|
13
|
-
# @return [Array<String>, nil] Optional list of Webhooks IDs to propagate the API response to.
|
|
14
|
-
attr_reader :webhook_ids
|
|
15
|
-
|
|
16
|
-
# @return [PollingOptions] Options for polling. Set only if having timeout issues.
|
|
17
|
-
attr_reader :polling_options
|
|
18
|
-
|
|
19
|
-
# @return [Boolean, nil] Whether to close the file after parsing.
|
|
20
|
-
attr_reader :close_file
|
|
21
|
-
|
|
22
|
-
# @param [String] model_id ID of the model
|
|
23
|
-
# @param [String, nil] file_alias File alias, if applicable.
|
|
24
|
-
# @param [Array<String>, nil] webhook_ids List of webhook IDs to propagate the API response to.
|
|
25
|
-
# @param [Hash, PollingOptions, nil] polling_options Options for polling. Set only if having timeout issues.
|
|
26
|
-
# @param [Boolean, nil] close_file Whether to close the file after parsing.
|
|
27
|
-
def initialize(
|
|
28
|
-
model_id,
|
|
29
|
-
file_alias: nil,
|
|
30
|
-
webhook_ids: nil,
|
|
31
|
-
polling_options: nil,
|
|
32
|
-
close_file: true
|
|
33
|
-
)
|
|
34
|
-
raise Error::MindeeInputError, 'Model ID is required.' if model_id.empty? || model_id.nil?
|
|
35
|
-
|
|
36
|
-
@model_id = model_id
|
|
37
|
-
@file_alias = file_alias
|
|
38
|
-
@webhook_ids = webhook_ids || []
|
|
39
|
-
@polling_options = get_clean_polling_options(polling_options)
|
|
40
|
-
@close_file = close_file.nil? || close_file
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
# Sets polling options after normalizing hash inputs.
|
|
44
|
-
# @param [Hash, PollingOptions, nil] polling_options
|
|
45
|
-
# @return [PollingOptions]
|
|
46
|
-
def polling_options=(polling_options)
|
|
47
|
-
@polling_options = get_clean_polling_options(polling_options)
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
# @return [String] Slug for the endpoint.
|
|
51
|
-
def self.slug
|
|
52
|
-
if self == BaseParameters
|
|
53
|
-
raise NotImplementedError, 'Cannot access `slug` directly on the BaseParameters class.'
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
''
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
# @return [String] Slug for the endpoint.
|
|
60
|
-
def slug
|
|
61
|
-
self.class.slug
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
# Load from a hash
|
|
65
|
-
# @param [Hash] params Parameters to provide as a hash.
|
|
66
|
-
# @return [BaseParameters]
|
|
67
|
-
def self.from_hash(params: {})
|
|
68
|
-
load_from_hash(params: params)
|
|
69
|
-
new(
|
|
70
|
-
params[:model_id],
|
|
71
|
-
file_alias: params[:file_alias],
|
|
72
|
-
webhook_ids: params[:webhook_ids],
|
|
73
|
-
polling_options: params[:polling_options],
|
|
74
|
-
close_file: params[:close_file]
|
|
75
|
-
)
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
# Loads a prediction from a Hash.
|
|
79
|
-
# @param [Hash] params Parameters to provide as a hash.
|
|
80
|
-
# @return [Hash]
|
|
81
|
-
def self.load_from_hash(params: {})
|
|
82
|
-
params.transform_keys!(&:to_sym)
|
|
83
|
-
|
|
84
|
-
if params.empty? || params[:model_id].nil? || params[:model_id].empty?
|
|
85
|
-
raise Error::MindeeInputError, 'Model ID is required.'
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
polling_options_input = params.fetch(:page_options, PollingOptions.new)
|
|
89
|
-
if polling_options_input.is_a?(Hash)
|
|
90
|
-
polling_options_input = polling_options_input.transform_keys(&:to_sym)
|
|
91
|
-
PollingOptions.new(
|
|
92
|
-
initial_delay_sec: polling_options_input.fetch(:initial_delay_sec, 2.0),
|
|
93
|
-
delay_sec: polling_options_input.fetch(:delay_sec, 1.5),
|
|
94
|
-
max_retries: polling_options_input.fetch(:max_retries, 80)
|
|
95
|
-
)
|
|
96
|
-
end
|
|
97
|
-
params
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
# Appends base form data to the provided array.
|
|
101
|
-
# @param [Array] form_data Array of form fields
|
|
102
|
-
# @return [Array]
|
|
103
|
-
def append_form_data(form_data)
|
|
104
|
-
form_data.push(['alias', @file_alias]) if @file_alias
|
|
105
|
-
webhook_ids = @webhook_ids || []
|
|
106
|
-
form_data.push(['webhook_ids', webhook_ids.join(',')]) unless @webhook_ids.nil? || webhook_ids.empty?
|
|
107
|
-
form_data
|
|
108
|
-
end
|
|
109
|
-
|
|
110
|
-
# Validates the parameters for async auto-polling
|
|
111
|
-
def validate_async_params
|
|
112
|
-
min_delay_sec = 1
|
|
113
|
-
min_initial_delay_sec = 1
|
|
114
|
-
min_retries = 2
|
|
115
|
-
|
|
116
|
-
if @polling_options.delay_sec < min_delay_sec
|
|
117
|
-
raise ArgumentError,
|
|
118
|
-
"Cannot set auto-poll delay to less than #{min_delay_sec} second(s)"
|
|
119
|
-
end
|
|
120
|
-
if @polling_options.initial_delay_sec < min_initial_delay_sec
|
|
121
|
-
raise ArgumentError,
|
|
122
|
-
"Cannot set initial parsing delay to less than #{min_initial_delay_sec} second(s)"
|
|
123
|
-
end
|
|
124
|
-
return unless @polling_options.max_retries < min_retries
|
|
125
|
-
|
|
126
|
-
raise ArgumentError,
|
|
127
|
-
"Cannot set auto-poll retries to less than #{min_retries}"
|
|
128
|
-
end
|
|
129
|
-
|
|
130
|
-
private
|
|
131
|
-
|
|
132
|
-
# Cleans a proper polling options object potentially from a hash.
|
|
133
|
-
# @param [Hash, PollingOptions, nil] polling_options Polling options.
|
|
134
|
-
# @return [PollingOptions] Valid polling options object.
|
|
135
|
-
def get_clean_polling_options(polling_options)
|
|
136
|
-
return PollingOptions.new if polling_options.is_a?(PollingOptions)
|
|
137
|
-
|
|
138
|
-
if polling_options.is_a?(Hash)
|
|
139
|
-
polling_options = polling_options.transform_keys(&:to_sym)
|
|
140
|
-
output_polling_options = PollingOptions.new(
|
|
141
|
-
initial_delay_sec: polling_options.fetch(:initial_delay_sec, 2.0),
|
|
142
|
-
delay_sec: polling_options.fetch(:delay_sec, 1.5),
|
|
143
|
-
max_retries: polling_options.fetch(:max_retries, 80)
|
|
144
|
-
)
|
|
145
|
-
else
|
|
146
|
-
output_polling_options = if polling_options.is_a?(PollingOptions)
|
|
147
|
-
polling_options || PollingOptions.new
|
|
148
|
-
else
|
|
149
|
-
PollingOptions.new
|
|
150
|
-
end
|
|
151
|
-
end
|
|
152
|
-
output_polling_options
|
|
153
|
-
end
|
|
154
|
-
end
|
|
155
|
-
end
|
|
156
|
-
end
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
# lib/mindee/input/base_parameters.rb
|
|
2
|
-
|
|
3
|
-
module Mindee
|
|
4
|
-
module Input
|
|
5
|
-
class BaseParameters
|
|
6
|
-
attr_reader self.slug: String
|
|
7
|
-
|
|
8
|
-
def self.from_hash: (params: Hash[String | Symbol, untyped]) -> BaseParameters
|
|
9
|
-
def self.load_from_hash: (params: Hash[String | Symbol, untyped]) -> Hash[String | Symbol, untyped]
|
|
10
|
-
|
|
11
|
-
def slug: -> String
|
|
12
|
-
|
|
13
|
-
attr_reader model_id: String
|
|
14
|
-
attr_reader file_alias: String?
|
|
15
|
-
attr_reader webhook_ids: Array[String]?
|
|
16
|
-
attr_reader polling_options: PollingOptions
|
|
17
|
-
attr_reader close_file: bool
|
|
18
|
-
|
|
19
|
-
def initialize: (
|
|
20
|
-
String,
|
|
21
|
-
?file_alias: String?,
|
|
22
|
-
?webhook_ids: Array[String]?,
|
|
23
|
-
?polling_options: Hash[Symbol | String, untyped] | PollingOptions | nil,
|
|
24
|
-
?close_file: bool?
|
|
25
|
-
) -> void
|
|
26
|
-
|
|
27
|
-
def append_form_data: (Array[Array[untyped]]) -> Array[Array[untyped]]
|
|
28
|
-
def validate_async_params: () -> void
|
|
29
|
-
def polling_options=: (Hash[Symbol | String, untyped] | PollingOptions | nil) -> PollingOptions
|
|
30
|
-
|
|
31
|
-
private
|
|
32
|
-
|
|
33
|
-
def get_clean_polling_options: (Hash[String | Symbol, untyped] | PollingOptions | nil) -> PollingOptions
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
end
|