#[derive(Debug, Clone, serde::Serialize, serde::Deserialize, PartialEq)]
pub struct ModerationConfigParam {
pub mode: ModerationMode,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize, PartialEq)]
pub enum ModerationInputType {
#[serde(rename = "text")]
Text,
#[serde(rename = "image")]
Image,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize, PartialEq)]
pub enum ModerationMode {
#[serde(rename = "score")]
Score,
#[serde(rename = "block")]
Block,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize, PartialEq)]
pub struct ModerationParam {
pub model: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub policy: Option<ModerationPolicyParam>,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize, PartialEq)]
pub struct ModerationPolicyParam {
#[serde(skip_serializing_if = "Option::is_none")]
pub input: Option<ModerationConfigParam>,
#[serde(skip_serializing_if = "Option::is_none")]
pub output: Option<ModerationConfigParam>,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize, PartialEq)]
pub struct ModerationResultBody {
pub model: String,
pub flagged: bool,
pub categories: std::collections::HashMap<String, bool>,
pub category_scores: std::collections::HashMap<String, f64>,
pub category_applied_input_types: std::collections::HashMap<String, Vec<ModerationInputType>>,
}