use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum EvalTestingCriteriaInner {
EvalGraderLabelModel(Box<models::EvalGraderLabelModel>),
EvalGraderStringCheck(Box<models::EvalGraderStringCheck>),
EvalGraderTextSimilarity(Box<models::EvalGraderTextSimilarity>),
EvalGraderPython(Box<models::EvalGraderPython>),
EvalGraderScoreModel(Box<models::EvalGraderScoreModel>),
}
impl Default for EvalTestingCriteriaInner {
fn default() -> Self {
Self::EvalGraderLabelModel(Default::default())
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Type {
#[serde(rename = "label_model")]
LabelModel,
#[serde(rename = "string_check")]
StringCheck,
#[serde(rename = "text_similarity")]
TextSimilarity,
#[serde(rename = "python")]
Python,
#[serde(rename = "score_model")]
ScoreModel,
}
impl Default for Type {
fn default() -> Type {
Self::LabelModel
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Operation {
#[serde(rename = "eq")]
Eq,
#[serde(rename = "ne")]
Ne,
#[serde(rename = "like")]
Like,
#[serde(rename = "ilike")]
Ilike,
}
impl Default for Operation {
fn default() -> Operation {
Self::Eq
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum EvaluationMetric {
#[serde(rename = "cosine")]
Cosine,
#[serde(rename = "fuzzy_match")]
FuzzyMatch,
#[serde(rename = "bleu")]
Bleu,
#[serde(rename = "gleu")]
Gleu,
#[serde(rename = "meteor")]
Meteor,
#[serde(rename = "rouge_1")]
Rouge1,
#[serde(rename = "rouge_2")]
Rouge2,
#[serde(rename = "rouge_3")]
Rouge3,
#[serde(rename = "rouge_4")]
Rouge4,
#[serde(rename = "rouge_5")]
Rouge5,
#[serde(rename = "rouge_l")]
RougeL,
}
impl Default for EvaluationMetric {
fn default() -> EvaluationMetric {
Self::Cosine
}
}