async_openai/types/shared/
moderation.rs1#[derive(Debug, Clone, serde::Serialize, serde::Deserialize, PartialEq)]
3#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
4#[cfg_attr(feature = "openapi", schema(as = async_openai::ModerationConfigParam))]
5pub struct ModerationConfigParam {
6 pub mode: ModerationMode,
7}
8
9#[derive(Debug, Clone, serde::Serialize, serde::Deserialize, PartialEq)]
10#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
11#[cfg_attr(feature = "openapi", schema(as = async_openai::ModerationInputType))]
12pub enum ModerationInputType {
13 #[serde(rename = "text")]
14 Text,
15 #[serde(rename = "image")]
16 Image,
17}
18
19#[derive(Debug, Clone, serde::Serialize, serde::Deserialize, PartialEq)]
20#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
21#[cfg_attr(feature = "openapi", schema(as = async_openai::ModerationMode))]
22pub enum ModerationMode {
23 #[serde(rename = "score")]
24 Score,
25 #[serde(rename = "block")]
26 Block,
27}
28
29#[derive(Debug, Clone, serde::Serialize, serde::Deserialize, PartialEq)]
31#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
32#[cfg_attr(feature = "openapi", schema(as = async_openai::ModerationParam))]
33pub struct ModerationParam {
34 pub model: String,
36 #[serde(skip_serializing_if = "Option::is_none")]
37 pub policy: Option<ModerationPolicyParam>,
38}
39
40#[derive(Debug, Clone, serde::Serialize, serde::Deserialize, PartialEq)]
42#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
43#[cfg_attr(feature = "openapi", schema(as = async_openai::ModerationPolicyParam))]
44pub struct ModerationPolicyParam {
45 #[serde(skip_serializing_if = "Option::is_none")]
46 pub input: Option<ModerationConfigParam>,
47 #[serde(skip_serializing_if = "Option::is_none")]
48 pub output: Option<ModerationConfigParam>,
49}
50
51#[derive(Debug, Clone, serde::Serialize, serde::Deserialize, PartialEq)]
53#[cfg_attr(feature = "openapi", derive(utoipa::ToSchema))]
54#[cfg_attr(feature = "openapi", schema(as = async_openai::ModerationResultBody))]
55pub struct ModerationResultBody {
56 pub model: String,
58 pub flagged: bool,
60 pub categories: std::collections::HashMap<String, bool>,
62 pub category_scores: std::collections::HashMap<String, f64>,
64 pub category_applied_input_types: std::collections::HashMap<String, Vec<ModerationInputType>>,
66}