File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11module AnswerAnalysis
22 class AnswerRelevancyAggregate < ApplicationRecord
3+ include AnalysisResultsRecordable
4+
35 belongs_to :answer
46 has_many :runs , class_name : "AnswerAnalysis::AnswerRelevancyRun"
5-
6- def create_run_from_result ( result )
7- run = runs . build (
8- score : result . score ,
9- reason : result . reason ,
10- )
11-
12- result . llm_responses . stringify_keys . each do |name , llm_response |
13- run . assign_llm_response ( name , llm_response )
14- end
15- result . metrics . stringify_keys . each do |name , metrics |
16- run . assign_metrics ( name , metrics )
17- end
18-
19- run . save!
20- end
217 end
228end
Original file line number Diff line number Diff line change 1+ module AnalysisResultsRecordable
2+ extend ActiveSupport ::Concern
3+
4+ included do
5+ def create_run_from_result ( result )
6+ run = runs . build (
7+ score : result . score ,
8+ reason : result . reason ,
9+ )
10+
11+ result . llm_responses . stringify_keys . each do |name , llm_response |
12+ run . assign_llm_response ( name , llm_response )
13+ end
14+ result . metrics . stringify_keys . each do |name , metrics |
15+ run . assign_metrics ( name , metrics )
16+ end
17+
18+ run . save!
19+ end
20+ end
21+ end
Original file line number Diff line number Diff line change 11RSpec . describe AnswerAnalysis ::AnswerRelevancyAggregate do
2- describe "#create_run_from_result " do
2+ include_examples "analysis results recordable " do
33 let ( :aggregate ) { create ( :answer_relevancy_aggregate ) }
4- let ( :result ) do
5- AutoEvaluation ::AnswerRelevancy ::Result . new (
6- score : 0.85 ,
7- reason : "The answer is relevant to the question." ,
8- success : true ,
9- llm_responses : {
10- "response_1" => { "content" => "LLM response content 1" } ,
11- "response_2" => { "content" => "LLM response content 2" } ,
12- } ,
13- metrics : {
14- "metric_1" => { "detail" => "Metric detail 1" } ,
15- "metric_2" => { "detail" => "Metric detail 2" } ,
16- } ,
17- )
18- end
19-
20- it "creates a run with correct attributes and associations" do
21- expect {
22- aggregate . create_run_from_result ( result )
23- } . to change { aggregate . runs . count } . by ( 1 )
24-
25- run = aggregate . runs . strict_loading ( false ) . last
26- expect ( run ) . to have_attributes (
27- score : 0.85 ,
28- reason : "The answer is relevant to the question." ,
29- llm_responses : {
30- "response_1" => { "content" => "LLM response content 1" } ,
31- "response_2" => { "content" => "LLM response content 2" } ,
32- } ,
33- metrics : {
34- "metric_1" => { "detail" => "Metric detail 1" } ,
35- "metric_2" => { "detail" => "Metric detail 2" } ,
36- } ,
37- )
38- end
394 end
405end
Original file line number Diff line number Diff line change 1+ shared_examples "analysis results recordable" do
2+ describe "#create_run_from_result" do
3+ let ( :result ) do
4+ AutoEvaluation ::AnswerRelevancy ::Result . new (
5+ score : 0.85 ,
6+ reason : "The answer is relevant to the question." ,
7+ success : true ,
8+ llm_responses : {
9+ "response_1" => { "content" => "LLM response content 1" } ,
10+ "response_2" => { "content" => "LLM response content 2" } ,
11+ } ,
12+ metrics : {
13+ "metric_1" => { "detail" => "Metric detail 1" } ,
14+ "metric_2" => { "detail" => "Metric detail 2" } ,
15+ } ,
16+ )
17+ end
18+
19+ it "creates a run with correct attributes and associations" do
20+ expect {
21+ aggregate . create_run_from_result ( result )
22+ } . to change { aggregate . runs . count } . by ( 1 )
23+
24+ run = aggregate . runs . strict_loading ( false ) . last
25+ expect ( run ) . to have_attributes (
26+ score : 0.85 ,
27+ reason : "The answer is relevant to the question." ,
28+ llm_responses : {
29+ "response_1" => { "content" => "LLM response content 1" } ,
30+ "response_2" => { "content" => "LLM response content 2" } ,
31+ } ,
32+ metrics : {
33+ "metric_1" => { "detail" => "Metric detail 1" } ,
34+ "metric_2" => { "detail" => "Metric detail 2" } ,
35+ } ,
36+ )
37+ end
38+ end
39+ end
You can’t perform that action at this time.
0 commit comments