Skip to main content

entrenar/monitor/llm/
traits.rs

1//! LLM evaluator trait definition.
2
3use crate::monitor::llm::{EvalResult, LLMMetrics, LLMStats, PromptVersion, Result};
4
5/// Trait for LLM evaluation systems
6pub trait LLMEvaluator: Send + Sync {
7    /// Evaluate response quality
8    fn evaluate_response(
9        &self,
10        prompt: &str,
11        response: &str,
12        reference: Option<&str>,
13    ) -> Result<EvalResult>;
14
15    /// Log LLM call metrics
16    fn log_llm_call(&mut self, run_id: &str, metrics: LLMMetrics) -> Result<()>;
17
18    /// Track prompt version
19    fn track_prompt(&mut self, run_id: &str, prompt: &PromptVersion) -> Result<()>;
20
21    /// Get metrics for a run
22    fn get_metrics(&self, run_id: &str) -> Result<Vec<LLMMetrics>>;
23
24    /// Get prompts for a run
25    fn get_prompts(&self, run_id: &str) -> Result<Vec<PromptVersion>>;
26
27    /// Get aggregate statistics
28    fn get_stats(&self, run_id: &str) -> Result<LLMStats>;
29}