active_genie 0.30.3 → 0.30.9

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 (55) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +7 -5
  3. data/VERSION +1 -1
  4. data/lib/active_genie/comparator/debate.rb +13 -36
  5. data/lib/active_genie/comparator/fight.rb +3 -3
  6. data/lib/active_genie/comparator.rb +0 -2
  7. data/lib/active_genie/configs/base_config.rb +25 -0
  8. data/lib/active_genie/configs/extractor_config.rb +6 -14
  9. data/lib/active_genie/configs/lister_config.rb +6 -10
  10. data/lib/active_genie/configs/llm_config.rb +12 -26
  11. data/lib/active_genie/configs/log_config.rb +19 -16
  12. data/lib/active_genie/configs/providers/anthropic_config.rb +16 -1
  13. data/lib/active_genie/configs/providers/deepseek_config.rb +8 -2
  14. data/lib/active_genie/configs/providers/google_config.rb +8 -2
  15. data/lib/active_genie/configs/providers/openai_config.rb +8 -2
  16. data/lib/active_genie/configs/providers/provider_base.rb +22 -31
  17. data/lib/active_genie/configs/providers_config.rb +35 -16
  18. data/lib/active_genie/configs/ranker_config.rb +6 -12
  19. data/lib/active_genie/configuration.rb +23 -60
  20. data/lib/active_genie/{ranker/entities → entities}/player.rb +13 -4
  21. data/lib/active_genie/{ranker/entities → entities}/players.rb +5 -3
  22. data/lib/active_genie/entities/result.rb +29 -0
  23. data/lib/active_genie/errors/provider_server_error.rb +8 -5
  24. data/lib/active_genie/errors/without_available_provider_error.rb +39 -0
  25. data/lib/active_genie/extractor/data.json +9 -0
  26. data/lib/active_genie/extractor/data.prompt.md +12 -0
  27. data/lib/active_genie/extractor/data.rb +71 -0
  28. data/lib/active_genie/extractor/explanation.rb +19 -47
  29. data/lib/active_genie/extractor/litote.rb +8 -14
  30. data/lib/active_genie/extractor.rb +5 -0
  31. data/lib/active_genie/lister/feud.json +5 -1
  32. data/lib/active_genie/lister/feud.rb +10 -24
  33. data/lib/active_genie/lister/juries.rb +27 -21
  34. data/lib/active_genie/logger.rb +16 -28
  35. data/lib/active_genie/providers/anthropic_provider.rb +11 -5
  36. data/lib/active_genie/providers/base_provider.rb +15 -17
  37. data/lib/active_genie/providers/deepseek_provider.rb +17 -9
  38. data/lib/active_genie/providers/google_provider.rb +10 -4
  39. data/lib/active_genie/providers/openai_provider.rb +6 -4
  40. data/lib/active_genie/providers/unified_provider.rb +47 -17
  41. data/lib/active_genie/ranker/elo.rb +41 -36
  42. data/lib/active_genie/ranker/free_for_all.rb +45 -28
  43. data/lib/active_genie/ranker/scoring.rb +20 -11
  44. data/lib/active_genie/ranker/tournament.rb +23 -35
  45. data/lib/active_genie/scorer/jury_bench.rb +15 -29
  46. data/lib/active_genie/utils/base_module.rb +34 -0
  47. data/lib/active_genie/utils/call_wrapper.rb +20 -0
  48. data/lib/active_genie/utils/deep_merge.rb +12 -0
  49. data/lib/active_genie/utils/fiber_by_batch.rb +2 -2
  50. data/lib/active_genie/utils/text_case.rb +18 -0
  51. data/lib/active_genie.rb +16 -18
  52. data/lib/tasks/test.rake +61 -3
  53. metadata +19 -8
  54. data/lib/active_genie/configs/comparator_config.rb +0 -10
  55. data/lib/active_genie/configs/scorer_config.rb +0 -10
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_genie
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.30.3
4
+ version: 0.30.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Radamés Roriz
@@ -24,8 +24,11 @@ dependencies:
24
24
  - !ruby/object:Gem::Version
25
25
  version: '2.0'
26
26
  description: |
27
- ActiveGenie is a Ruby gem that helps developers build reliable, future-proof GenAI features without worrying about changing models, prompts, or providers. Like Lodash for GenAI, it offers simple, reusable modules for tasks like extractor, comparator, scorer, and ranker, so you can focus on your app’s logic, not the shifting AI landscape.
28
- Behind the scenes, a custom benchmarking system keeps everything consistent across LLM vendors and versions, release after release.
27
+ ActiveGenie is an enabler for creating reliable GenAI features, offering powerful, model-agnostic tools across any provider. It allows you to settle subjective comparisons with a `ActibeGenie::Comparator` module that stages a political debate, get accurate scores from an AI jury using `ActiveGenie::Scorer`, and rank large datasets using `ActiveGenie::Ranker`'s tournament-style system.
28
+ This reliability is built on three core pillars:
29
+ - Custom Benchmarking: Testing for consistency with every new version and model update.
30
+ - Reasoning Prompting: Utilizing human reasoning techniques (like debate and jury review) to control a model's reasoning.
31
+ - Overfitting Prompts: Highly specialized, and potentially model-specific, prompt for each module's purpose.
29
32
  email:
30
33
  - radames@roriz.dev
31
34
  executables: []
@@ -43,7 +46,7 @@ files:
43
46
  - lib/active_genie/comparator/fight.json
44
47
  - lib/active_genie/comparator/fight.prompt.md
45
48
  - lib/active_genie/comparator/fight.rb
46
- - lib/active_genie/configs/comparator_config.rb
49
+ - lib/active_genie/configs/base_config.rb
47
50
  - lib/active_genie/configs/extractor_config.rb
48
51
  - lib/active_genie/configs/lister_config.rb
49
52
  - lib/active_genie/configs/llm_config.rb
@@ -55,13 +58,19 @@ files:
55
58
  - lib/active_genie/configs/providers/provider_base.rb
56
59
  - lib/active_genie/configs/providers_config.rb
57
60
  - lib/active_genie/configs/ranker_config.rb
58
- - lib/active_genie/configs/scorer_config.rb
59
61
  - lib/active_genie/configuration.rb
62
+ - lib/active_genie/entities/player.rb
63
+ - lib/active_genie/entities/players.rb
64
+ - lib/active_genie/entities/result.rb
60
65
  - lib/active_genie/errors/invalid_log_output_error.rb
61
66
  - lib/active_genie/errors/invalid_model_error.rb
62
67
  - lib/active_genie/errors/invalid_provider_error.rb
63
68
  - lib/active_genie/errors/provider_server_error.rb
69
+ - lib/active_genie/errors/without_available_provider_error.rb
64
70
  - lib/active_genie/extractor.rb
71
+ - lib/active_genie/extractor/data.json
72
+ - lib/active_genie/extractor/data.prompt.md
73
+ - lib/active_genie/extractor/data.rb
65
74
  - lib/active_genie/extractor/explanation.json
66
75
  - lib/active_genie/extractor/explanation.prompt.md
67
76
  - lib/active_genie/extractor/explanation.rb
@@ -82,15 +91,17 @@ files:
82
91
  - lib/active_genie/providers/unified_provider.rb
83
92
  - lib/active_genie/ranker.rb
84
93
  - lib/active_genie/ranker/elo.rb
85
- - lib/active_genie/ranker/entities/player.rb
86
- - lib/active_genie/ranker/entities/players.rb
87
94
  - lib/active_genie/ranker/free_for_all.rb
88
95
  - lib/active_genie/ranker/scoring.rb
89
96
  - lib/active_genie/ranker/tournament.rb
90
97
  - lib/active_genie/scorer.rb
91
98
  - lib/active_genie/scorer/jury_bench.prompt.md
92
99
  - lib/active_genie/scorer/jury_bench.rb
100
+ - lib/active_genie/utils/base_module.rb
101
+ - lib/active_genie/utils/call_wrapper.rb
102
+ - lib/active_genie/utils/deep_merge.rb
93
103
  - lib/active_genie/utils/fiber_by_batch.rb
104
+ - lib/active_genie/utils/text_case.rb
94
105
  - lib/tasks/benchmark.rake
95
106
  - lib/tasks/install.rake
96
107
  - lib/tasks/templates/active_genie.rb
@@ -120,5 +131,5 @@ required_rubygems_version: !ruby/object:Gem::Requirement
120
131
  requirements: []
121
132
  rubygems_version: 3.6.9
122
133
  specification_version: 4
123
- summary: 'The Lodash for GenAI: Real Value + Consistent + Model-Agnostic'
134
+ summary: 'The Lodash for GenAI: Consistent + Model-Agnostic'
124
135
  test_files: []
@@ -1,10 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ActiveGenie
4
- module Config
5
- # rubocop:disable Lint/EmptyClass
6
- class ComparatorConfig
7
- end
8
- # rubocop:enable Lint/EmptyClass
9
- end
10
- end
@@ -1,10 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ActiveGenie
4
- module Config
5
- # rubocop:disable Lint/EmptyClass
6
- class ScorerConfig
7
- end
8
- # rubocop:enable Lint/EmptyClass
9
- end
10
- end