mindee 4.7.2 → 4.9.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.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +13 -0
  3. data/README.md +6 -6
  4. data/Rakefile +1 -0
  5. data/lib/mindee/errors/mindee_http_error_v2.rb +23 -4
  6. data/lib/mindee/errors/mindee_http_unknown_error_v2.rb +18 -0
  7. data/lib/mindee/http/endpoint.rb +1 -0
  8. data/lib/mindee/http/mindee_api_v2.rb +20 -10
  9. data/lib/mindee/input/inference_parameters.rb +6 -0
  10. data/lib/mindee/parsing/v2/error_item.rb +21 -0
  11. data/lib/mindee/parsing/v2/error_response.rb +18 -3
  12. data/lib/mindee/parsing/v2/inference_active_options.rb +3 -0
  13. data/lib/mindee/parsing/v2/inference_result.rb +4 -0
  14. data/lib/mindee/parsing/v2/rag_metadata.rb +17 -0
  15. data/lib/mindee/version.rb +1 -1
  16. data/mindee.gemspec +1 -0
  17. data/sig/mindee/errors/mindee_http_error_v2.rbs +4 -1
  18. data/sig/mindee/errors/mindee_http_unknown_error_v2.rbs +9 -0
  19. data/sig/mindee/http/endpoint.rbs +1 -0
  20. data/sig/mindee/http/mindee_api_v2.rbs +4 -0
  21. data/sig/mindee/input/inference_parameters.rbs +2 -0
  22. data/sig/mindee/input/local_response.rbs +1 -1
  23. data/sig/mindee/parsing/v2/error_item.rbs +13 -0
  24. data/sig/mindee/parsing/v2/error_response.rbs +3 -0
  25. data/sig/mindee/parsing/v2/inference_active_options.rbs +1 -0
  26. data/sig/mindee/parsing/v2/inference_result.rbs +1 -0
  27. data/sig/mindee/parsing/v2/rag_metadata.rbs +13 -0
  28. metadata +22 -34
  29. data/docs/advanced_file_operations.md +0 -109
  30. data/docs/getting_started.md +0 -257
  31. data/docs/global_products/barcode_reader_v1.md +0 -125
  32. data/docs/global_products/bill_of_lading_v1.md +0 -276
  33. data/docs/global_products/business_card_v1.md +0 -194
  34. data/docs/global_products/cropper_v1.md +0 -123
  35. data/docs/global_products/delivery_notes_v1.md +0 -168
  36. data/docs/global_products/driver_license_v1.md +0 -212
  37. data/docs/global_products/expense_receipts_v5.md +0 -415
  38. data/docs/global_products/financial_document_v1.md +0 -615
  39. data/docs/global_products/international_id_v2.md +0 -264
  40. data/docs/global_products/invoice_splitter_v1.md +0 -127
  41. data/docs/global_products/invoices_v4.md +0 -576
  42. data/docs/global_products/multi_receipts_detector_v1.md +0 -131
  43. data/docs/global_products/nutrition_facts_v1.md +0 -399
  44. data/docs/global_products/passport_v1.md +0 -207
  45. data/docs/global_products/resume_v1.md +0 -384
  46. data/docs/global_products/universal.md +0 -113
  47. data/docs/global_products.md +0 -6
  48. data/docs/loading_a_document.md +0 -330
  49. data/docs/localized_products/bank_account_details_v2.md +0 -158
  50. data/docs/localized_products/bank_check_v1.md +0 -205
  51. data/docs/localized_products/bank_statement_fr_v2.md +0 -269
  52. data/docs/localized_products/carte_grise_v1.md +0 -475
  53. data/docs/localized_products/energy_bill_fra_v1.md +0 -342
  54. data/docs/localized_products/french_healthcard_v1.md +0 -142
  55. data/docs/localized_products/idcard_fr_v2.md +0 -284
  56. data/docs/localized_products/ind_passport_v1.md +0 -307
  57. data/docs/localized_products/payslip_fra_v3.md +0 -344
  58. data/docs/localized_products/us_healthcare_cards_v1.md +0 -258
  59. data/docs/localized_products/us_mail_v3.md +0 -152
  60. data/docs/localized_products.md +0 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2279aaa45f25ab506ab861d139c93029ddcffe5899ca448041fbbe02ef422058
4
- data.tar.gz: 8a531ca5073b775a5b4afdb6e97f001129fb9d1aa4cf3f4f31633580cd9c16aa
3
+ metadata.gz: b3307b74c76a019147939c9d201adcf2d4b2557a9b773475f6b92407ee18f9bf
4
+ data.tar.gz: 4d5f9204fc983bf1e108d1feb04bb3abded3f2d4dad62eba86d714a608af4d48
5
5
  SHA512:
6
- metadata.gz: d3b4a6fb9da9a9b8bd3d14b8b06d7c77e328c7eaa060910578f4e345ebc0a732d2b5c4b6e9117621caa1ff7b5f2633624f383833b80c8e7f81faa16236f9d1ca
7
- data.tar.gz: 4be80490fb4f63677954c770458d9bcfdd237bb7fbd1f72fed286b3414046987c0281d6cb2867490e4261e7c423e3ee8d37a24b7e986de77bf97abfbe96950c4
6
+ metadata.gz: 8e712d0f2cdf6926c50513c0bd499beca98de1774067d637a0aeb915071b18d5004ba214d07f6ebb861eb8ac76e56ad5c13e960f209363bcd6ff31459cfdcacb
7
+ data.tar.gz: f9b117e1087b5b89cc3d957fb150c243b2409a0fb40483df6f4279761a4cf1384905c375a973cb3d3c9d95ca7abdca49d6cc8613738ae5ae6a5374464b26e00f
data/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # Mindee Ruby API Library Changelog
2
2
 
3
+ ## v4.9.0 - 2025-12-02
4
+ ### Changes
5
+ * :sparkles: add support for text_context parameter
6
+
7
+
8
+ ## v4.8.0 - 2025-11-18
9
+ ### Changes
10
+ * :sparkles: add support for better errors
11
+ * :sparkles: add support for RAG metadata
12
+ ### Fixes
13
+ * :recycle: harmonize test structure with other libraries
14
+
15
+
3
16
  ## v4.7.2 - 2025-10-13
4
17
  ### Changes
5
18
  * :recycle: harmonize getting page count from a local input source
data/README.md CHANGED
@@ -7,26 +7,26 @@ Quickly and easily connect to Mindee's API services using Ruby.
7
7
  ## Mindee API Versions
8
8
  This client library has support for both Mindee platform versions.
9
9
 
10
- ### Latest - V2
11
- This is the new platform located here:
10
+ ### V2 - Latest
11
+ This is the latest platform located here:
12
12
 
13
13
  https://app.mindee.com
14
14
 
15
15
  It uses **API version 2**.
16
16
 
17
17
  Consult the
18
- **[Latest Documentation](https://docs.mindee.com/integrations/client-libraries-sdk)**
18
+ **[V2 Documentation](https://docs.mindee.com/integrations/client-libraries-sdk)**
19
19
 
20
20
 
21
- ### Legacy - V1
22
- This is the legacy platform located here:
21
+ ### V1
22
+ This is the platform located here:
23
23
 
24
24
  https://platform.mindee.com/
25
25
 
26
26
  It uses **API version 1**.
27
27
 
28
28
  Consult the
29
- **[Legacy Documentation](https://developers.mindee.com/docs/ruby-getting-started)**
29
+ [V1 Documentation](https://docs.mindee.com/v1/libraries/ruby-sdk)
30
30
 
31
31
  ## Additional Information
32
32
 
data/Rakefile CHANGED
@@ -23,6 +23,7 @@ end
23
23
  desc 'Run integration tests'
24
24
  RSpec::Core::RakeTask.new(:integration) do |t|
25
25
  t.pattern = 'spec/**/*_integration.rb'
26
+ t.rspec_opts = ['--require', 'integration_helper']
26
27
  end
27
28
 
28
29
  Rake::Task[:doc].enhance do
@@ -1,25 +1,44 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative 'mindee_error'
4
+ require_relative '../parsing/v2/error_item'
4
5
 
5
6
  module Mindee
6
7
  module Errors
7
8
  # API V2 HttpError
8
9
  class MindeeHTTPErrorV2 < MindeeError
9
- # @return [Integer]
10
+ # @return [Integer] The HTTP status code returned by the server.
10
11
  attr_reader :status
11
- # @return [String]
12
+ # @return [String] A human-readable explanation specific to the occurrence of the problem.
12
13
  attr_reader :detail
14
+ # @return [String] A short, human-readable summary of the problem.
15
+ attr_reader :title
16
+ # @return [String] A machine-readable code specific to the occurrence of the problem.
17
+ attr_reader :code
18
+ # @return [Array<ErrorItem>] A list of explicit error details.
19
+ attr_reader :errors
13
20
 
14
21
  # @param http_error [Hash, Parsing::V2::ErrorResponse]
15
22
  def initialize(http_error)
16
23
  if http_error.is_a?(Parsing::V2::ErrorResponse)
17
24
  http_error = { 'detail' => http_error.detail,
18
- 'status' => http_error.status }
25
+ 'status' => http_error.status,
26
+ 'title' => http_error.title,
27
+ 'code' => http_error.code,
28
+ 'errors' => http_error.errors }
19
29
  end
20
30
  @status = http_error['status']
21
31
  @detail = http_error['detail']
22
- super("HTTP error: #{@status} - #{@detail}")
32
+ @title = http_error['title']
33
+ @code = http_error['code']
34
+ @errors = if http_error.key?('errors')
35
+ http_error['errors'].map do |error|
36
+ Parsing::V2::ErrorItem.new(error)
37
+ end
38
+ else
39
+ []
40
+ end
41
+ super("HTTP #{@status} - #{@title} :: #{@code} - #{@detail}")
23
42
  end
24
43
  end
25
44
  end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'mindee_error'
4
+
5
+ module Mindee
6
+ module Errors
7
+ # Unknown HTTP error for the V2 API.
8
+ class MindeeHTTPUnknownErrorV2 < MindeeHTTPErrorV2
9
+ def initialize(http_error)
10
+ super({ 'detail' => "Couldn't deserialize server error. Found: #{http_error}",
11
+ 'status' => -1,
12
+ 'title' => 'Unknown Error',
13
+ 'code' => '000-000',
14
+ 'errors' => nil })
15
+ end
16
+ end
17
+ end
18
+ end
@@ -7,6 +7,7 @@ require_relative '../version'
7
7
  require_relative 'response_validation'
8
8
 
9
9
  module Mindee
10
+ # Mindee internal HTTP module.
10
11
  module HTTP
11
12
  # API key's default environment key name.
12
13
  API_KEY_ENV_NAME = 'MINDEE_API_KEY'
@@ -111,8 +111,25 @@ module Mindee
111
111
  poll("#{@settings.base_url}/inferences/#{queue_id}")
112
112
  end
113
113
 
114
+ # Handle parameters for the enqueue form
115
+ # @param form_data [Array] Array of form fields
116
+ # @param params [Input::InferenceParameters] Inference options.
117
+ def enqueue_form_options(form_data, params)
118
+ # deal with optional features
119
+ form_data.push(['rag', params.rag.to_s]) unless params.rag.nil?
120
+ form_data.push(['raw_text', params.raw_text.to_s]) unless params.raw_text.nil?
121
+ form_data.push(['polygon', params.polygon.to_s]) unless params.polygon.nil?
122
+ form_data.push(['confidence', params.confidence.to_s]) unless params.confidence.nil?
123
+ form_data.push ['file_alias', params.file_alias] if params.file_alias
124
+ form_data.push ['text_context', params.text_context] if params.text_context
125
+ unless params.webhook_ids.nil? || params.webhook_ids.empty?
126
+ form_data.push ['webhook_ids', params.webhook_ids.join(',')]
127
+ end
128
+ form_data
129
+ end
130
+
114
131
  # @param input_source [Mindee::Input::Source::LocalInputSource, Mindee::Input::Source::URLInputSource]
115
- # @param params [Input::InferenceParameters] Parse options.
132
+ # @param params [Input::InferenceParameters] Inference options.
116
133
  # @return [Net::HTTPResponse, nil]
117
134
  def enqueue(input_source, params)
118
135
  uri = URI("#{@settings.base_url}/inferences/enqueue")
@@ -125,16 +142,9 @@ module Mindee
125
142
  end
126
143
  form_data.push(['model_id', params.model_id])
127
144
 
128
- # deal with optional features
129
- form_data.push(['rag', params.rag.to_s]) unless params.rag.nil?
130
- form_data.push(['raw_text', params.raw_text.to_s]) unless params.raw_text.nil?
131
- form_data.push(['polygon', params.polygon.to_s]) unless params.polygon.nil?
132
- form_data.push(['confidence', params.confidence.to_s]) unless params.confidence.nil?
145
+ # deal with other parameters
146
+ form_data = enqueue_form_options(form_data, params)
133
147
 
134
- form_data.push ['file_alias', params.file_alias] if params.file_alias
135
- unless params.webhook_ids.nil? || params.webhook_ids.empty?
136
- form_data.push ['webhook_ids', params.webhook_ids.join(',')]
137
- end
138
148
  headers = {
139
149
  'Authorization' => @settings.api_key,
140
150
  'User-Agent' => @settings.user_agent,
@@ -25,6 +25,10 @@ module Mindee
25
25
  # @return [String, nil] Optional alias for the file.
26
26
  attr_reader :file_alias
27
27
 
28
+ # @return [String, nil] Additional text context used by the model during inference.
29
+ # Not recommended, for specific use only.
30
+ attr_reader :text_context
31
+
28
32
  # @return [Array<String>, nil] Optional list of Webhooks IDs to propagate the API response to.
29
33
  attr_reader :webhook_ids
30
34
 
@@ -52,6 +56,7 @@ module Mindee
52
56
  confidence: nil,
53
57
  file_alias: nil,
54
58
  webhook_ids: nil,
59
+ text_context: nil,
55
60
  polling_options: nil,
56
61
  close_file: true
57
62
  )
@@ -64,6 +69,7 @@ module Mindee
64
69
  @confidence = confidence
65
70
  @file_alias = file_alias
66
71
  @webhook_ids = webhook_ids || []
72
+ @text_context = text_context
67
73
  @polling_options = get_clean_polling_options(polling_options)
68
74
  @close_file = close_file.nil? || close_file
69
75
  # rubocop:enable Metrics/ParameterLists
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mindee
4
+ module Parsing
5
+ module V2
6
+ # Individual error item.
7
+ class ErrorItem
8
+ # @return [String, nil] A JSON Pointer to the location of the body property.
9
+ attr_reader :pointer
10
+ # @return [String, nil] Explicit information on the issue.
11
+ attr_reader :detail
12
+
13
+ # @param server_response [Hash] Raw JSON parsed into a Hash.
14
+ def initialize(server_response)
15
+ @pointer = server_response['pointer']
16
+ @detail = server_response['detail']
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -5,21 +5,36 @@ module Mindee
5
5
  module V2
6
6
  # Encapsulates information returned by the API when an error occurs.
7
7
  class ErrorResponse
8
- # @return [Integer] HTTP status code.
8
+ # @return [Integer] The HTTP status code returned by the server.
9
9
  attr_reader :status
10
- # @return [String] Error detail.
10
+ # @return [String] A human-readable explanation specific to the occurrence of the problem.
11
11
  attr_reader :detail
12
+ # @return [String] A short, human-readable summary of the problem.
13
+ attr_reader :title
14
+ # @return [String] A machine-readable code specific to the occurrence of the problem.
15
+ attr_reader :code
16
+ # @return [Array<ErrorItem>] A list of explicit error details.
17
+ attr_reader :errors
12
18
 
13
19
  # @param server_response [Hash] Raw JSON parsed into a Hash.
14
20
  def initialize(server_response)
15
21
  @status = server_response['status']
16
22
  @detail = server_response['detail']
23
+ @title = server_response['title']
24
+ @code = server_response['code']
25
+ @errors = if server_response.key?('errors')
26
+ server_response['errors'].map do |error|
27
+ ErrorItem.new(error)
28
+ end
29
+ else
30
+ []
31
+ end
17
32
  end
18
33
 
19
34
  # String representation.
20
35
  # @return [String]
21
36
  def to_s
22
- "Error\n=====\n:Status: #{@status}\n:Detail: #{@detail}"
37
+ "HTTP #{@status} - #{@title} :: #{@code} - #{@detail}"
23
38
  end
24
39
 
25
40
  # Hash representation
@@ -13,6 +13,8 @@ module Mindee
13
13
  attr_reader :confidence
14
14
  # @return [Boolean] Whether the Retrieval-Augmented Generation feature was activated.
15
15
  attr_reader :rag
16
+ # @return [Boolean] Whether the text context feature was activated.
17
+ attr_reader :text_context
16
18
 
17
19
  # @param server_response [Hash] Raw JSON parsed into a Hash.
18
20
  def initialize(server_response)
@@ -20,6 +22,7 @@ module Mindee
20
22
  @polygon = server_response['polygon']
21
23
  @confidence = server_response['confidence']
22
24
  @rag = server_response['rag']
25
+ @text_context = server_response['text_context']
23
26
  end
24
27
 
25
28
  # String representation.
@@ -2,6 +2,7 @@
2
2
 
3
3
  require_relative 'field/inference_fields'
4
4
  require_relative 'raw_text'
5
+ require_relative 'rag_metadata'
5
6
 
6
7
  module Mindee
7
8
  module Parsing
@@ -12,6 +13,8 @@ module Mindee
12
13
  attr_reader :fields
13
14
  # @return [Mindee::Parsing::V2::RawText, nil] Optional extra data.
14
15
  attr_reader :raw_text
16
+ # @return [Mindee::Parsing::V2::RAGMetadata, nil] Optional RAG metadata.
17
+ attr_reader :rag
15
18
 
16
19
  # @param server_response [Hash] Hash version of the JSON returned by the API.
17
20
  def initialize(server_response)
@@ -20,6 +23,7 @@ module Mindee
20
23
  @fields = Field::InferenceFields.new(server_response['fields'])
21
24
 
22
25
  @raw_text = server_response['raw_text'] ? RawText.new(server_response['raw_text']) : nil
26
+ @rag = (V2::RAGMetadata.new(server_response['rag']) if server_response.key?('rag') && server_response['rag'])
23
27
  end
24
28
 
25
29
  # String representation.
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Mindee
4
+ module Parsing
5
+ module V2
6
+ # Metadata about the RAG operation.
7
+ class RAGMetadata
8
+ # The UUID of the matched document used during the RAG operation.
9
+ attr_accessor :retrieved_document_id
10
+
11
+ def initialize(server_response)
12
+ @retrieved_document_id = server_response.fetch('retrieved_document_id', nil)
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -3,7 +3,7 @@
3
3
  # Mindee
4
4
  module Mindee
5
5
  # Current version.
6
- VERSION = '4.7.2'
6
+ VERSION = '4.9.0'
7
7
 
8
8
  # Finds and return the current platform.
9
9
  # @return [Symbol, Hash[String | Symbol, Regexp], Nil?]
data/mindee.gemspec CHANGED
@@ -33,6 +33,7 @@ Gem::Specification.new do |spec|
33
33
  spec.add_dependency 'origamindee', '~> 4.0'
34
34
  spec.add_dependency 'pdf-reader', '~> 2.14'
35
35
 
36
+ spec.add_development_dependency 'openssl', '~> 3.3.2'
36
37
  spec.add_development_dependency 'prism', '~> 1.3'
37
38
  spec.add_development_dependency 'rake', '~> 13.2'
38
39
  spec.add_development_dependency 'rbs', '~> 3.6'
@@ -3,9 +3,12 @@ module Mindee
3
3
  module Errors
4
4
  # API V2 HttpError
5
5
  class MindeeHTTPErrorV2 < MindeeError
6
-
7
6
  attr_reader detail: String
8
7
  attr_reader status: Integer
8
+ attr_reader code: String
9
+ attr_reader title: String
10
+ attr_reader errors: Array[Parsing::V2::ErrorItem]
11
+
9
12
  def initialize: (Hash[String, untyped] | Parsing::V2::ErrorResponse) -> void
10
13
  end
11
14
  end
@@ -0,0 +1,9 @@
1
+ # lib/mindee/errors/mindee_http_unknown_error_v2.rb
2
+ module Mindee
3
+ module Errors
4
+ # Unknown HTTP error for the V2 API.
5
+ class MindeeHTTPUnknownErrorV2 < MindeeHTTPErrorV2
6
+ def initialize: (Hash[String|Symbol, untyped]) -> void
7
+ end
8
+ end
9
+ end
@@ -23,6 +23,7 @@ module Mindee
23
23
  def document_queue_req_post: (Input::Source::LocalInputSource | Input::Source::URLInputSource, ParseOptions) -> Net::HTTPResponse
24
24
  def document_queue_req_get: (String) -> Net::HTTPResponse
25
25
  def check_api_key: -> void
26
+ def configure_ssl: (Net::HTTP) -> void
26
27
  end
27
28
  end
28
29
  end
@@ -13,6 +13,10 @@ module Mindee
13
13
  def inference_job_req_get: (String) -> Net::HTTPResponse
14
14
  def inference_result_req_get: (String) -> Net::HTTPResponse
15
15
  def enqueue: (Input::Source::LocalInputSource | Input::Source::URLInputSource, Input::InferenceParameters) -> Net::HTTPResponse?
16
+
17
+ private
18
+
19
+ def enqueue_form_options: (Array[untyped], Input::InferenceParameters) -> Array[untyped]
16
20
  end
17
21
  end
18
22
  end
@@ -10,6 +10,7 @@ module Mindee
10
10
  attr_reader polygon: bool?
11
11
  attr_reader rag: bool?
12
12
  attr_reader raw_text: bool?
13
+ attr_reader text_context: String?
13
14
  attr_reader webhook_ids: Array[String]?
14
15
 
15
16
  def initialize: (
@@ -19,6 +20,7 @@ module Mindee
19
20
  ?polygon: bool?,
20
21
  ?confidence: bool?,
21
22
  ?file_alias: String?,
23
+ ?text_context: String?,
22
24
  ?webhook_ids: Array[String]?,
23
25
  ?polling_options: Hash[Symbol | String, untyped] | PollingOptions?,
24
26
  ?close_file: bool?
@@ -3,7 +3,7 @@ module Mindee
3
3
  module Input
4
4
  class LocalResponse
5
5
  def file: -> StringIO
6
- def initialize: (File | IO | StringIO | String | Pathname) -> void
6
+ def initialize: (File | IO | StringIO | String | Pathname | Tempfile) -> void
7
7
  def as_hash: -> Hash[String | Symbol, untyped]
8
8
  def self.process_secret_key: (String) -> String
9
9
  def get_hmac_signature: (String) -> String
@@ -0,0 +1,13 @@
1
+ # lib/mindee/parsing/v2/error_item.rb
2
+ module Mindee
3
+ module Parsing
4
+ module V2
5
+ class ErrorItem
6
+ attr_reader pointer: String
7
+ attr_reader detail: String|nil
8
+
9
+ def initialize: (Hash[String|Symbol, untyped]) -> void
10
+ end
11
+ end
12
+ end
13
+ end
@@ -5,6 +5,9 @@ module Mindee
5
5
  class ErrorResponse
6
6
  attr_reader detail: String
7
7
  attr_reader status: Integer
8
+ attr_reader code: String
9
+ attr_reader title: String
10
+ attr_reader errors: Array[ErrorItem]
8
11
  def initialize: (Hash[String | Symbol, untyped]) -> void
9
12
 
10
13
  def as_hash: -> Hash[Symbol, String | Integer]
@@ -6,6 +6,7 @@ module Mindee
6
6
  attr_reader polygon: bool
7
7
  attr_reader rag: bool
8
8
  attr_reader raw_text: bool
9
+ attr_reader text_context: bool
9
10
 
10
11
  def initialize: (Hash[String | Symbol, untyped]) -> void
11
12
  end
@@ -5,6 +5,7 @@ module Mindee
5
5
  class InferenceResult
6
6
  attr_reader fields: Field::InferenceFields
7
7
  attr_reader raw_text: RawText?
8
+ attr_reader rag: RAGMetadata?
8
9
 
9
10
  def initialize: (Hash[String | Symbol, untyped]) -> void
10
11
  def to_s: -> String
@@ -0,0 +1,13 @@
1
+ # lib/mindee/parsing/v2/rag_metadata.rb
2
+
3
+ module Mindee
4
+ module Parsing
5
+ module V2
6
+ class RAGMetadata
7
+ attr_accessor retrieved_document_id: string | nil
8
+
9
+ def initialize: (Hash[String | Symbol, untyped]) -> void
10
+ end
11
+ end
12
+ end
13
+ 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: 4.7.2
4
+ version: 4.9.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: 2025-10-13 00:00:00.000000000 Z
11
+ date: 2025-12-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: base64
@@ -86,6 +86,20 @@ dependencies:
86
86
  - - "~>"
87
87
  - !ruby/object:Gem::Version
88
88
  version: '2.14'
89
+ - !ruby/object:Gem::Dependency
90
+ name: openssl
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: 3.3.2
96
+ type: :development
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: 3.3.2
89
103
  - !ruby/object:Gem::Dependency
90
104
  name: prism
91
105
  requirement: !ruby/object:Gem::Requirement
@@ -209,7 +223,6 @@ files:
209
223
  - bin/cli_products.rb
210
224
  - bin/console
211
225
  - bin/mindee.rb
212
- - docs/advanced_file_operations.md
213
226
  - docs/code_samples/bank_account_details_v1.txt
214
227
  - docs/code_samples/bank_account_details_v2.txt
215
228
  - docs/code_samples/bank_check_v1.txt
@@ -247,37 +260,6 @@ files:
247
260
  - docs/code_samples/us_mail_v3_async.txt
248
261
  - docs/code_samples/workflow_execution.txt
249
262
  - docs/code_samples/workflow_polling.txt
250
- - docs/getting_started.md
251
- - docs/global_products.md
252
- - docs/global_products/barcode_reader_v1.md
253
- - docs/global_products/bill_of_lading_v1.md
254
- - docs/global_products/business_card_v1.md
255
- - docs/global_products/cropper_v1.md
256
- - docs/global_products/delivery_notes_v1.md
257
- - docs/global_products/driver_license_v1.md
258
- - docs/global_products/expense_receipts_v5.md
259
- - docs/global_products/financial_document_v1.md
260
- - docs/global_products/international_id_v2.md
261
- - docs/global_products/invoice_splitter_v1.md
262
- - docs/global_products/invoices_v4.md
263
- - docs/global_products/multi_receipts_detector_v1.md
264
- - docs/global_products/nutrition_facts_v1.md
265
- - docs/global_products/passport_v1.md
266
- - docs/global_products/resume_v1.md
267
- - docs/global_products/universal.md
268
- - docs/loading_a_document.md
269
- - docs/localized_products.md
270
- - docs/localized_products/bank_account_details_v2.md
271
- - docs/localized_products/bank_check_v1.md
272
- - docs/localized_products/bank_statement_fr_v2.md
273
- - docs/localized_products/carte_grise_v1.md
274
- - docs/localized_products/energy_bill_fra_v1.md
275
- - docs/localized_products/french_healthcard_v1.md
276
- - docs/localized_products/idcard_fr_v2.md
277
- - docs/localized_products/ind_passport_v1.md
278
- - docs/localized_products/payslip_fra_v3.md
279
- - docs/localized_products/us_healthcare_cards_v1.md
280
- - docs/localized_products/us_mail_v3.md
281
263
  - examples/auto_invoice_splitter_extraction.rb
282
264
  - examples/auto_multi_receipts_detector_extraction.rb
283
265
  - lib/mindee.rb
@@ -287,6 +269,7 @@ files:
287
269
  - lib/mindee/errors/mindee_error.rb
288
270
  - lib/mindee/errors/mindee_http_error.rb
289
271
  - lib/mindee/errors/mindee_http_error_v2.rb
272
+ - lib/mindee/errors/mindee_http_unknown_error_v2.rb
290
273
  - lib/mindee/errors/mindee_input_error.rb
291
274
  - lib/mindee/extraction.rb
292
275
  - lib/mindee/extraction/multi_receipts_extractor.rb
@@ -366,6 +349,7 @@ files:
366
349
  - lib/mindee/parsing/universal/universal_object_field.rb
367
350
  - lib/mindee/parsing/v2.rb
368
351
  - lib/mindee/parsing/v2/common_response.rb
352
+ - lib/mindee/parsing/v2/error_item.rb
369
353
  - lib/mindee/parsing/v2/error_response.rb
370
354
  - lib/mindee/parsing/v2/field.rb
371
355
  - lib/mindee/parsing/v2/field/base_field.rb
@@ -384,6 +368,7 @@ files:
384
368
  - lib/mindee/parsing/v2/job.rb
385
369
  - lib/mindee/parsing/v2/job_response.rb
386
370
  - lib/mindee/parsing/v2/job_webhook.rb
371
+ - lib/mindee/parsing/v2/rag_metadata.rb
387
372
  - lib/mindee/parsing/v2/raw_text.rb
388
373
  - lib/mindee/parsing/v2/raw_text_page.rb
389
374
  - lib/mindee/pdf.rb
@@ -571,6 +556,7 @@ files:
571
556
  - sig/mindee/errors/mindee_error.rbs
572
557
  - sig/mindee/errors/mindee_http_error.rbs
573
558
  - sig/mindee/errors/mindee_http_error_v2.rbs
559
+ - sig/mindee/errors/mindee_http_unknown_error_v2.rbs
574
560
  - sig/mindee/errors/mindee_input_error.rbs
575
561
  - sig/mindee/extraction/multi_receipts_extractor.rbs
576
562
  - sig/mindee/geometry/min_max.rbs
@@ -635,6 +621,7 @@ files:
635
621
  - sig/mindee/parsing/universal/universal_list_field.rbs
636
622
  - sig/mindee/parsing/universal/universal_object_field.rbs
637
623
  - sig/mindee/parsing/v2/common_response.rbs
624
+ - sig/mindee/parsing/v2/error_item.rbs
638
625
  - sig/mindee/parsing/v2/error_response.rbs
639
626
  - sig/mindee/parsing/v2/field/base_field.rbs
640
627
  - sig/mindee/parsing/v2/field/field_confidence.rbs
@@ -652,6 +639,7 @@ files:
652
639
  - sig/mindee/parsing/v2/job.rbs
653
640
  - sig/mindee/parsing/v2/job_response.rbs
654
641
  - sig/mindee/parsing/v2/job_webhook.rbs
642
+ - sig/mindee/parsing/v2/rag_metadata.rbs
655
643
  - sig/mindee/parsing/v2/raw_text.rbs
656
644
  - sig/mindee/parsing/v2/raw_text_page.rbs
657
645
  - sig/mindee/pdf/extracted_pdf.rbs