9
9
from promptflow .core import AzureOpenAIModelConfiguration
10
10
from promptflow .evals .evaluate import evaluate
11
11
from promptflow .evals .evaluators import RelevanceEvaluator
12
+ from promptflow .tracing import start_trace , trace
12
13
13
14
BASE_DIR = Path (__file__ ).absolute ().parent
14
15
@@ -32,6 +33,12 @@ def init_args() -> argparse.Namespace:
32
33
choices = [t .value for t in EvaluatorType ],
33
34
help = "Evaluator type" ,
34
35
)
36
+ parser .add_argument (
37
+ "-r" ,
38
+ "--trace" ,
39
+ action = "store_true" ,
40
+ help = "Enable tracing" ,
41
+ )
35
42
parser .add_argument (
36
43
"-v" ,
37
44
"--verbose" ,
@@ -41,6 +48,7 @@ def init_args() -> argparse.Namespace:
41
48
return parser .parse_args ()
42
49
43
50
51
+ @trace
44
52
def run_relevance_evaluator (model_config ):
45
53
relevance_eval = RelevanceEvaluator (model_config )
46
54
@@ -63,6 +71,7 @@ def __call__(self, *, answer: str, **kwargs):
63
71
return {"answer_length" : len (answer )}
64
72
65
73
74
+ @trace
66
75
def run_answer_length_evaluator ():
67
76
evaluator = AnswerLengthEvaluator ()
68
77
answer_length = evaluator (answer = "What is the speed of light?" )
@@ -76,6 +85,7 @@ def get_apology_evaluator(model_config):
76
85
)
77
86
78
87
88
+ @trace
79
89
def run_apology_evaluator (model_config ):
80
90
apology_eval = get_apology_evaluator (model_config )
81
91
@@ -87,6 +97,7 @@ def run_apology_evaluator(model_config):
87
97
print (apology_score )
88
98
89
99
100
+ @trace
90
101
def run_test_dataset (model_config ):
91
102
result = evaluate (
92
103
data = f"{ BASE_DIR } /data.jsonl" , # provide your data here
@@ -112,6 +123,9 @@ def run_test_dataset(model_config):
112
123
if args .verbose :
113
124
logging .basicConfig (level = logging .DEBUG )
114
125
126
+ if args .trace :
127
+ start_trace ()
128
+
115
129
load_dotenv ()
116
130
117
131
model_config = AzureOpenAIModelConfiguration (
0 commit comments