Skip to main content

systemprompt_evaluation/repository/
mod.rs

1//! Repositories over the `eval_*` tables plus the sampling reader over the
2//! `ai_requests` trace owned by `systemprompt-ai`.
3//!
4//! Copyright (c) systemprompt.io — Business Source License 1.1.
5//! See <https://systemprompt.io> for licensing details.
6
7mod cases;
8mod judge_calls;
9mod results;
10mod rubrics;
11mod runs;
12mod sampling;
13
14pub use cases::EvalCaseRepository;
15pub use judge_calls::{EvalJudgeCallRepository, JudgeCallRecord};
16pub use results::EvalResultRepository;
17pub use rubrics::EvalRubricRepository;
18pub use runs::EvalRunRepository;
19pub use sampling::SamplingRepository;
20
21use crate::error::Result;
22use systemprompt_database::DbPool;
23
24#[derive(Debug, Clone)]
25pub struct EvalRepositories {
26    pub runs: EvalRunRepository,
27    pub cases: EvalCaseRepository,
28    pub results: EvalResultRepository,
29    pub rubrics: EvalRubricRepository,
30    pub sampling: SamplingRepository,
31}
32
33impl EvalRepositories {
34    pub fn new(db: &DbPool) -> Result<Self> {
35        Ok(Self {
36            runs: EvalRunRepository::new(db)?,
37            cases: EvalCaseRepository::new(db)?,
38            results: EvalResultRepository::new(db)?,
39            rubrics: EvalRubricRepository::new(db)?,
40            sampling: SamplingRepository::new(db)?,
41        })
42    }
43}