Module: Legion::Extensions::Developer::Helpers::FeedbackSummarizer
- Extended by:
- FeedbackSummarizer
- Included in:
- FeedbackSummarizer
- Defined in:
- lib/legion/extensions/developer/helpers/feedback_summarizer.rb
Constant Summary collapse
- DEFAULT_MAX_ENTRIES =
3
Instance Method Summary collapse
- #extract_unique_issues(feedback_history:) ⇒ Object
- #needs_summarization?(feedback_history:, threshold: 2) ⇒ Boolean
- #summarize(feedback_history:, max_entries: DEFAULT_MAX_ENTRIES) ⇒ Object
Instance Method Details
#extract_unique_issues(feedback_history:) ⇒ Object
33 34 35 36 37 |
# File 'lib/legion/extensions/developer/helpers/feedback_summarizer.rb', line 33 def extract_unique_issues(feedback_history:) feedback_history .flat_map { |entry| Array(entry[:issues]) } .uniq end |
#needs_summarization?(feedback_history:, threshold: 2) ⇒ Boolean
29 30 31 |
# File 'lib/legion/extensions/developer/helpers/feedback_summarizer.rb', line 29 def needs_summarization?(feedback_history:, threshold: 2) feedback_history.size >= threshold end |
#summarize(feedback_history:, max_entries: DEFAULT_MAX_ENTRIES) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/legion/extensions/developer/helpers/feedback_summarizer.rb', line 12 def summarize(feedback_history:, max_entries: DEFAULT_MAX_ENTRIES) return feedback_history if feedback_history.size <= max_entries unique_issues = extract_unique_issues(feedback_history: feedback_history) most_recent = feedback_history.last summary_entry = { verdict: 'rejected', issues: unique_issues, round: most_recent[:round], summarized: true, source_rounds: feedback_history.filter_map { |f| f[:round] } } [summary_entry] end |