Class: CompletionKit::Review

Inherits:
ApplicationRecord show all
Defined in:
app/models/completion_kit/review.rb

Constant Summary collapse

STATUSES =
%w[pending retrying succeeded failed].freeze
TERMINAL_STATUSES =
%w[succeeded failed].freeze

Constants inherited from ApplicationRecord

ApplicationRecord::TenantScopedUniquenessValidator

Instance Method Summary collapse

Instance Method Details

#as_json(options = {}) ⇒ Object



37
38
39
40
41
42
43
44
45
# File 'app/models/completion_kit/review.rb', line 37

def as_json(options = {})
  {
    id: id, response_id: response_id, metric_id: metric_id,
    metric_version_id: metric_version_id,
    metric_name: metric_name, ai_score: ai_score,
    ai_feedback: ai_feedback, status: status, attempts: attempts,
    error: error_payload
  }
end

#error_payloadObject



32
33
34
35
# File 'app/models/completion_kit/review.rb', line 32

def error_payload
  return nil if error_class.blank?
  { provider: error_provider, class: error_class, status: error_status, message: error_message }
end

#stale_against_current_judge?Boolean

Returns:

  • (Boolean)


11
12
13
14
15
16
# File 'app/models/completion_kit/review.rb', line 11

def stale_against_current_judge?
  return false unless metric_id && metric_version_id
  current_id = MetricVersion.current.where(metric_id: metric_id).limit(1).pick(:id)
  return false if current_id.nil?
  metric_version_id != current_id
end

#succeeded?Boolean

Returns:

  • (Boolean)


28
29
30
# File 'app/models/completion_kit/review.rb', line 28

def succeeded?
  status == "succeeded"
end

#terminal?Boolean

Returns:

  • (Boolean)


24
25
26
# File 'app/models/completion_kit/review.rb', line 24

def terminal?
  TERMINAL_STATUSES.include?(status)
end