completion-kit 0.28.10 → 0.28.11

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8eb41960ab1c047932e577095faa9bd23518a82b2a23ee30c84f862a32afc2d5
4
- data.tar.gz: e4d577875390f29ca7b5ddd78415734fabe9d1b1de910a83ad925248d9a14809
3
+ metadata.gz: 6f1cd3f910ce4c3f45e96973a76be5d1bbc3e95ad5ac89eb5a685b8c128bd9e6
4
+ data.tar.gz: 3b464cf7ccf32f68f83f0356f11b77e8329260b1b72c56e8dea1748f760a89a4
5
5
  SHA512:
6
- metadata.gz: 3e820588ee5b204628a8b317d4ce9d66f66053795d9159c6c90ea325c9ac45cf940cb01ba09878cc85cd298b452090f6309654afe3a4db946bff9212a88ee85f
7
- data.tar.gz: 351ea8ff2c5012dfc5221d5dd4daf27e454b90d7c7cf63ac9839e76bc69e3f9e3b6e363331a257d9c65ba8bb73e375e1c9953cba36b875fbeb6f3c38583a1735
6
+ metadata.gz: 367e68a324e65f9c868e437a9c9d7ff0ec75e0da3cad77c3f717d2c970f024240a85d182df333735e0b8b455d1981949132f96c39298f7ae41b7f0e2a6d226cd
7
+ data.tar.gz: 149ec67cef9b3a3ae6bc1b071dc4c0e4f293b7dd2db12a7ab44a53338918ac8a199159f38610fc610bf4fb06d38c912c2186e4524cb3f62de721f002d5f91165
@@ -19,9 +19,13 @@ module CompletionKit
19
19
  return 0 if csv_data.blank?
20
20
 
21
21
  require "csv"
22
- ::CSV.parse(csv_data, headers: true).length
23
- rescue ::CSV::MalformedCSVError
24
- 0
22
+ @row_count ||= begin
23
+ count = 0
24
+ ::CSV.new(csv_data, headers: true).each { count += 1 }
25
+ count
26
+ rescue ::CSV::MalformedCSVError
27
+ 0
28
+ end
25
29
  end
26
30
 
27
31
  def headers
@@ -116,16 +116,19 @@ module CompletionKit
116
116
  end
117
117
  end
118
118
 
119
+ def reviews_for_summary
120
+ @reviews_for_summary ||= Review.where(response_id: responses.select(:id)).to_a
121
+ end
122
+
119
123
  def avg_score
120
- all_reviews = responses.flat_map(&:reviews)
121
- scores = all_reviews.map(&:ai_score).compact.map(&:to_f)
124
+ scores = reviews_for_summary.map(&:ai_score).compact.map(&:to_f)
122
125
  return nil if scores.empty?
123
126
 
124
127
  (scores.sum / scores.length).round(2)
125
128
  end
126
129
 
127
130
  def metric_averages
128
- responses.flat_map(&:reviews).group_by(&:metric_name).filter_map do |name, reviews|
131
+ reviews_for_summary.group_by(&:metric_name).filter_map do |name, reviews|
129
132
  scored = reviews.select { |r| r.ai_score.present? }
130
133
  if scored.any?
131
134
  scores = scored.map { |r| r.ai_score.to_f }
@@ -141,7 +144,7 @@ module CompletionKit
141
144
  end
142
145
 
143
146
  def check_pass_rate
144
- resolved = responses.flat_map(&:reviews).reject { |r| r.passed.nil? }
147
+ resolved = reviews_for_summary.reject { |r| r.passed.nil? }
145
148
  return nil if resolved.empty?
146
149
 
147
150
  passed = resolved.count { |r| r.passed == true }
@@ -14,10 +14,6 @@
14
14
  </div>
15
15
  <% end %>
16
16
 
17
- <% if @run.dataset %>
18
- <% dataset_lines = @run.dataset.csv_data.to_s.lines %>
19
- <% dataset_preview_lines = dataset_lines.first(50) %>
20
- <% end %>
21
17
 
22
18
  <% if CompletionKit.config.judge_agreement_enabled %>
23
19
  <% stale_summary = @run.stale_review_summary %>
@@ -130,16 +126,22 @@
130
126
  <div class="ck-modal__body">
131
127
  <%
132
128
  require "csv"
133
- parsed_rows = []
134
129
  parse_error = nil
130
+ headers = []
131
+ body_rows = []
132
+ remaining = 0
135
133
  begin
136
- parsed_rows = ::CSV.parse(@run.dataset.csv_data.to_s)
134
+ reader = ::CSV.new(@run.dataset.csv_data.to_s)
135
+ headers = reader.shift || []
136
+ 50.times do
137
+ row = reader.shift
138
+ break unless row
139
+ body_rows << row
140
+ end
141
+ remaining = [@run.dataset.row_count - body_rows.length, 0].max
137
142
  rescue ::CSV::MalformedCSVError => e
138
143
  parse_error = e.message
139
144
  end
140
- headers = parsed_rows.first || []
141
- body_rows = parsed_rows.drop(1).first(50)
142
- remaining = parsed_rows.drop(1).count - body_rows.count
143
145
  %>
144
146
  <% if parse_error %>
145
147
  <p class="ck-field-hint" style="color: var(--ck-warning); padding: 1rem;">Could not parse CSV: <%= parse_error %></p>
@@ -1,3 +1,3 @@
1
1
  module CompletionKit
2
- VERSION = "0.28.10"
2
+ VERSION = "0.28.11"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: completion-kit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.28.10
4
+ version: 0.28.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Damien Bastin