active_genie 0.0.10 → 0.0.18

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 (47) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +63 -57
  3. data/VERSION +1 -1
  4. data/lib/active_genie/battle/README.md +7 -7
  5. data/lib/active_genie/battle/basic.rb +75 -68
  6. data/lib/active_genie/battle.rb +4 -0
  7. data/lib/active_genie/clients/anthropic_client.rb +110 -0
  8. data/lib/active_genie/clients/google_client.rb +158 -0
  9. data/lib/active_genie/clients/helpers/retry.rb +29 -0
  10. data/lib/active_genie/clients/openai_client.rb +58 -38
  11. data/lib/active_genie/clients/unified_client.rb +5 -5
  12. data/lib/active_genie/concerns/loggable.rb +44 -0
  13. data/lib/active_genie/configuration/log_config.rb +1 -1
  14. data/lib/active_genie/configuration/providers/anthropic_config.rb +54 -0
  15. data/lib/active_genie/configuration/providers/base_config.rb +85 -0
  16. data/lib/active_genie/configuration/providers/deepseek_config.rb +54 -0
  17. data/lib/active_genie/configuration/providers/google_config.rb +56 -0
  18. data/lib/active_genie/configuration/providers/openai_config.rb +54 -0
  19. data/lib/active_genie/configuration/providers_config.rb +7 -4
  20. data/lib/active_genie/configuration/runtime_config.rb +35 -0
  21. data/lib/active_genie/configuration.rb +18 -4
  22. data/lib/active_genie/data_extractor/README.md +0 -1
  23. data/lib/active_genie/data_extractor/basic.rb +22 -19
  24. data/lib/active_genie/data_extractor/from_informal.rb +4 -15
  25. data/lib/active_genie/data_extractor.rb +4 -0
  26. data/lib/active_genie/logger.rb +60 -14
  27. data/lib/active_genie/{league → ranking}/README.md +7 -7
  28. data/lib/active_genie/ranking/elo_round.rb +134 -0
  29. data/lib/active_genie/ranking/free_for_all.rb +93 -0
  30. data/lib/active_genie/ranking/player.rb +92 -0
  31. data/lib/active_genie/{league → ranking}/players_collection.rb +19 -12
  32. data/lib/active_genie/ranking/ranking.rb +153 -0
  33. data/lib/active_genie/ranking/ranking_scoring.rb +71 -0
  34. data/lib/active_genie/ranking.rb +12 -0
  35. data/lib/active_genie/scoring/README.md +1 -1
  36. data/lib/active_genie/scoring/basic.rb +93 -49
  37. data/lib/active_genie/scoring/{recommended_reviews.rb → recommended_reviewers.rb} +18 -7
  38. data/lib/active_genie/scoring.rb +6 -3
  39. data/lib/active_genie.rb +1 -1
  40. data/lib/tasks/benchmark.rake +27 -0
  41. metadata +100 -100
  42. data/lib/active_genie/configuration/openai_config.rb +0 -56
  43. data/lib/active_genie/league/elo_ranking.rb +0 -121
  44. data/lib/active_genie/league/free_for_all.rb +0 -62
  45. data/lib/active_genie/league/league.rb +0 -120
  46. data/lib/active_genie/league/player.rb +0 -59
  47. data/lib/active_genie/league.rb +0 -12
@@ -1,59 +0,0 @@
1
- require 'securerandom'
2
-
3
- module ActiveGenie::Leaderboard
4
- class Player
5
- def initialize(params)
6
- params = { content: params } if params.is_a?(String)
7
-
8
- @id = params.dig(:id) || SecureRandom.uuid
9
- @content = params.dig(:content) || params
10
- @score = params.dig(:score) || nil
11
- @elo = params.dig(:elo) || nil
12
- @free_for_all = {
13
- win: params.dig(:free_for_all, :win) || 0,
14
- lose: params.dig(:free_for_all, :lose) || 0,
15
- draw: params.dig(:free_for_all, :draw) || 0
16
- }
17
- @eliminated = params.dig(:eliminated) || nil
18
- end
19
-
20
- attr_reader :id, :content, :score, :elo, :free_for_all, :eliminated
21
-
22
- def generate_elo_by_score
23
- return if !@elo.nil?
24
-
25
- if @score.nil?
26
- @elo = BASE_ELO
27
- else
28
- @elo = BASE_ELO + (@score - 50)
29
- end
30
- end
31
-
32
- def score=(value)
33
- @score = value
34
- end
35
-
36
- def elo=(value)
37
- @elo = value
38
- end
39
-
40
- def eliminated=(value)
41
- @eliminated = value
42
- end
43
-
44
- def free_for_all_score
45
- @free_for_all[:win] * 3 + @free_for_all[:draw]
46
- end
47
-
48
- def to_h
49
- {
50
- id:, content:, score:, elo:,
51
- eliminated:, free_for_all:, free_for_all_score:
52
- }
53
- end
54
-
55
- private
56
-
57
- BASE_ELO = 1000
58
- end
59
- end
@@ -1,12 +0,0 @@
1
- require_relative 'league/league'
2
-
3
- module ActiveGenie
4
- # See the [league README](lib/active_genie/league/README.md) for more information.
5
- module League
6
- module_function
7
-
8
- def call(...)
9
- league.call(...)
10
- end
11
- end
12
- end