Skip to content

Commit 625d428

Browse files
authored
♻️ update options and raw text to latest response format. (#202)
1 parent 9c61f53 commit 625d428

16 files changed

+172
-101
lines changed

lib/mindee/parsing/v2.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@
88
require_relative 'v2/inference_model'
99
require_relative 'v2/inference_response'
1010
require_relative 'v2/inference_result'
11-
require_relative 'v2/inference_result_options'
11+
require_relative 'v2/inference_active_options'
1212
require_relative 'v2/job'
1313
require_relative 'v2/job_response'
1414
require_relative 'v2/job_webhook'
1515
require_relative 'v2/raw_text'
16+
require_relative 'v2/raw_text_page'

lib/mindee/parsing/v2/inference.rb

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,27 +3,31 @@
33
require_relative 'inference_model'
44
require_relative 'inference_file'
55
require_relative 'inference_result'
6+
require_relative 'inference_active_options'
67

78
module Mindee
89
module Parsing
910
module V2
1011
# Complete data returned by an inference request.
1112
class Inference
13+
# @return [String] Identifier of the inference (when provided by API).
14+
attr_reader :id
1215
# @return [InferenceModel] Information about the model used.
1316
attr_reader :model
1417
# @return [InferenceFile] Information about the processed file.
1518
attr_reader :file
19+
# @return [InferenceActiveOptions] Options which were activated during the inference.
20+
attr_reader :active_options
1621
# @return [InferenceResult] Result contents.
1722
attr_reader :result
18-
# @return [String] Identifier of the inference (when provided by API).
19-
attr_reader :id
2023

2124
# @param server_response [Hash] Hash representation of the JSON returned by the service.
2225
def initialize(server_response)
2326
raise ArgumentError, 'server_response must be a Hash' unless server_response.is_a?(Hash)
2427

2528
@model = InferenceModel.new(server_response['model'])
2629
@file = InferenceFile.new(server_response['file'])
30+
@active_options = InferenceActiveOptions.new(server_response['active_options'])
2731
@result = InferenceResult.new(server_response['result'])
2832

2933
@id = server_response['id']
@@ -35,11 +39,9 @@ def to_s
3539
[
3640
'Inference',
3741
'#########',
38-
'Model',
39-
'=====',
40-
":ID: #{@model.id}",
41-
'',
42+
@model.to_s,
4243
@file.to_s,
44+
@active_options.to_s,
4345
@result.to_s,
4446
'',
4547
].join("\n")
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# frozen_string_literal: true
2+
3+
module Mindee
4+
module Parsing
5+
module V2
6+
# Options which were activated during the inference.
7+
class InferenceActiveOptions
8+
# @return [Boolean] Whether the Raw Text feature was activated.
9+
attr_reader :raw_text
10+
# @return [Boolean] Whether the polygon feature was activated.
11+
attr_reader :polygon
12+
# @return [Boolean] Whether the confidence feature was activated.
13+
attr_reader :confidence
14+
# @return [Boolean] Whether the Retrieval-Augmented Generation feature was activated.
15+
attr_reader :rag
16+
17+
# @param server_response [Hash] Raw JSON parsed into a Hash.
18+
def initialize(server_response)
19+
@raw_text = server_response['raw_text']
20+
@polygon = server_response['polygon']
21+
@confidence = server_response['confidence']
22+
@rag = server_response['rag']
23+
end
24+
25+
# String representation.
26+
# @return [String]
27+
def to_s
28+
parts = [
29+
'Active Options',
30+
'==============',
31+
":Raw Text: #{@raw_text ? 'True' : 'False'}",
32+
":Polygon: #{@polygon ? 'True' : 'False'}",
33+
":Confidence: #{@confidence ? 'True' : 'False'}",
34+
":RAG: #{@rag ? 'True' : 'False'}",
35+
'',
36+
]
37+
parts.join("\n")
38+
end
39+
end
40+
end
41+
end
42+
end

lib/mindee/parsing/v2/inference_model.rb

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,18 @@ class InferenceModel
1212
def initialize(server_response)
1313
@id = server_response['id']
1414
end
15+
16+
# String representation.
17+
# @return [String]
18+
def to_s
19+
parts = [
20+
'Model',
21+
'=====',
22+
":ID: #{@id}",
23+
'',
24+
]
25+
parts.join("\n")
26+
end
1527
end
1628
end
1729
end

lib/mindee/parsing/v2/inference_result.rb

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# frozen_string_literal: true
22

33
require_relative 'field/inference_fields'
4-
require_relative 'inference_result_options'
4+
require_relative 'raw_text'
55

66
module Mindee
77
module Parsing
@@ -10,18 +10,16 @@ module V2
1010
class InferenceResult
1111
# @return [Mindee::Parsing::V2::Field::InferenceFields] Fields produced by the model.
1212
attr_reader :fields
13-
# @return [Mindee::Parsing::V2::InferenceResultOptions, nil] Optional extra data.
14-
attr_reader :options
13+
# @return [Mindee::Parsing::V2::RawText, nil] Optional extra data.
14+
attr_reader :raw_text
1515

1616
# @param server_response [Hash] Hash version of the JSON returned by the API.
1717
def initialize(server_response)
1818
raise ArgumentError, 'server_response must be a Hash' unless server_response.is_a?(Hash)
1919

2020
@fields = Field::InferenceFields.new(server_response['fields'])
2121

22-
return unless server_response.key?('options') && server_response['options']
23-
24-
@options = InferenceResultOptions.new(server_response['options'])
22+
@raw_text = server_response['raw_text'] ? RawText.new(server_response['raw_text']) : nil
2523
end
2624

2725
# String representation.
@@ -32,15 +30,6 @@ def to_s
3230
'======',
3331
@fields.to_s,
3432
]
35-
36-
if @options
37-
parts += [
38-
'Options',
39-
'=======',
40-
@options.to_s,
41-
]
42-
end
43-
4433
parts.join("\n")
4534
end
4635
end

lib/mindee/parsing/v2/inference_result_options.rb

Lines changed: 0 additions & 21 deletions
This file was deleted.

lib/mindee/parsing/v2/raw_text.rb

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,17 @@
33
module Mindee
44
module Parsing
55
module V2
6-
# Raw text extracted from a given page.
6+
# Raw text extracted from all pages in the document.
77
class RawText
8-
# @return [Integer] Page number where the text was found.
9-
attr_reader :page
10-
# @return [String] Text content.
11-
attr_reader :content
8+
# @return [Array[Mindee::Parsing::V2::RawTextPage]] List of pages with their extracted text content.
9+
attr_reader :pages
1210

1311
# @param server_response [Hash] Raw JSON parsed into a Hash.
1412
def initialize(server_response)
15-
@page = server_response['page']
16-
@content = server_response['content']
13+
@pages = []
14+
server_response.fetch('pages', []).each do |page|
15+
@pages.push RawTextPage.new(page)
16+
end
1717
end
1818
end
1919
end
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# frozen_string_literal: true
2+
3+
module Mindee
4+
module Parsing
5+
module V2
6+
# Raw text extracted from a single page.
7+
class RawTextPage
8+
# @return [Boolean] Text content of the page as a single string. '\n' is used to separate lines.
9+
attr_reader :content
10+
11+
# @param server_response [Hash] Raw JSON parsed into a Hash.
12+
def initialize(server_response)
13+
@content = server_response['content']
14+
end
15+
end
16+
end
17+
end
18+
end

sig/mindee/parsing/v2/inference.rbs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@ module Mindee
33
module Parsing
44
module V2
55
class Inference
6-
attr_reader file: InferenceFile
76
attr_reader id: String
87
attr_reader model: InferenceModel
8+
attr_reader file: InferenceFile
9+
attr_reader active_options: InferenceActiveOptions
910
attr_reader result: InferenceResult
1011

1112
def initialize: (Hash[String | Symbol, untyped]) -> void
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
module Mindee
2+
module Parsing
3+
module V2
4+
class InferenceActiveOptions
5+
attr_reader confidence: bool
6+
attr_reader polygon: bool
7+
attr_reader rag: bool
8+
attr_reader raw_text: bool
9+
10+
def initialize: (Hash[String | Symbol, untyped]) -> void
11+
end
12+
end
13+
end
14+
end

0 commit comments

Comments
 (0)