Class: Summarize::Result

Inherits:
Object
  • Object
show all
Defined in:
lib/summarize/result.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(json) ⇒ Result

Returns a new instance of Result.



7
8
9
# File 'lib/summarize/result.rb', line 7

def initialize(json)
  @raw = json
end

Instance Attribute Details

#raw ⇒ Object (readonly)

Returns the value of attribute raw.



5
6
7
# File 'lib/summarize/result.rb', line 5

def raw
  @raw
end

Instance Method Details

#completion_tokens ⇒ Object



71
72
73
# File 'lib/summarize/result.rb', line 71

def completion_tokens
  llm_metrics.sum { |m| m["completionTokens"] || 0 }
end

#content ⇒ Object



27
28
29
# File 'lib/summarize/result.rb', line 27

def content
  dig("extracted", "content")
end

#content_length ⇒ Object



31
32
33
# File 'lib/summarize/result.rb', line 31

def content_length
  dig("extracted", "contentLength")
end

#description ⇒ Object



19
20
21
# File 'lib/summarize/result.rb', line 19

def description
  dig("extracted", "description")
end

#extract_only? ⇒ Boolean

Returns:

  • (Boolean)


87
88
89
# File 'lib/summarize/result.rb', line 87

def extract_only?
  summary.nil? && !content.nil?
end

#input_kind ⇒ Object



75
76
77
# File 'lib/summarize/result.rb', line 75

def input_kind
  dig("input", "kind")
end

#llm_metrics ⇒ Object



59
60
61
# File 'lib/summarize/result.rb', line 59

def llm_metrics
  dig("metrics", "llm") || []
end

#media_type ⇒ Object



35
36
37
# File 'lib/summarize/result.rb', line 35

def media_type
  dig("extracted", "mediaType")
end

#metrics ⇒ Object



55
56
57
# File 'lib/summarize/result.rb', line 55

def metrics
  raw["metrics"]
end

#model ⇒ Object



43
44
45
# File 'lib/summarize/result.rb', line 43

def model
  dig("llm", "model")
end

#prompt ⇒ Object



51
52
53
# File 'lib/summarize/result.rb', line 51

def prompt
  raw["prompt"]
end

#prompt_tokens ⇒ Object



67
68
69
# File 'lib/summarize/result.rb', line 67

def prompt_tokens
  llm_metrics.sum { |m| m["promptTokens"] || 0 }
end

#provider ⇒ Object



47
48
49
# File 'lib/summarize/result.rb', line 47

def provider
  dig("llm", "provider")
end

#site_name ⇒ Object



23
24
25
# File 'lib/summarize/result.rb', line 23

def site_name
  dig("extracted", "siteName")
end

#slides ⇒ Object



79
80
81
# File 'lib/summarize/result.rb', line 79

def slides
  raw["slides"]
end

#source ⇒ Object



39
40
41
# File 'lib/summarize/result.rb', line 39

def source
  dig("extracted", "source")
end

#success? ⇒ Boolean

Returns:

  • (Boolean)


83
84
85
# File 'lib/summarize/result.rb', line 83

def success?
  !summary.nil?
end

#summary ⇒ Object



11
12
13
# File 'lib/summarize/result.rb', line 11

def summary
  raw["summary"]
end

#title ⇒ Object



15
16
17
# File 'lib/summarize/result.rb', line 15

def title
  dig("extracted", "title")
end

#to_h ⇒ Object



91
92
93
# File 'lib/summarize/result.rb', line 91

def to_h
  raw
end

#total_tokens ⇒ Object



63
64
65
# File 'lib/summarize/result.rb', line 63

def total_tokens
  llm_metrics.sum { |m| m["totalTokens"] || 0 }
end