Source code for flexeval.classes.eval_set_run
from datetime import datetime
import peewee as pw
from flexeval.classes.base import BaseModel
from flexeval.classes.dataset import Dataset
[docs]
class EvalSetRun(BaseModel):
"""Class for running set of evaluations"""
id = pw.IntegerField(primary_key=True)
name = pw.CharField(null=True)
notes = pw.TextField(null=True)
metrics = pw.TextField()
metrics_graph_ordered_list = pw.TextField()
do_completion = pw.BooleanField()
completion_llm = pw.TextField(null=True) # JSON string
grader_llm = pw.TextField(null=True) # JSON string
model_name = pw.TextField(null=True) # JSON string
success = pw.BooleanField(null=True)
rubrics = pw.TextField(null=True)
timestamp = pw.DateTimeField(
default=datetime.now
) # Automatically set to current date and time
@property
def dataset_list(self) -> list[Dataset]:
"""Returns the actual Dataset objects linked to this EvalSetRun via the join table."""
return list(
Dataset.select()
.join(EvalSetRunDatasets)
.where(EvalSetRunDatasets.evalsetrun == self)
)
[docs]
class EvalSetRunDatasets(BaseModel):
"""Datasets used by an EvalSetRun."""
id = pw.IntegerField(primary_key=True)
timestamp = pw.DateTimeField(default=datetime.now)
evalsetrun = pw.ForeignKeyField(EvalSetRun, backref="dataset_links")
dataset = pw.ForeignKeyField(Dataset, backref="evalsetrun_links")