use crate::batch::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct SummarizationConfig {
#[serde(rename = "content_type", skip_serializing_if = "Option::is_none")]
pub content_type: Option<ContentType>,
#[serde(rename = "summary_length", skip_serializing_if = "Option::is_none")]
pub summary_length: Option<SummaryLength>,
#[serde(rename = "summary_type", skip_serializing_if = "Option::is_none")]
pub summary_type: Option<SummaryType>,
}
impl SummarizationConfig {
pub fn new() -> SummarizationConfig {
SummarizationConfig {
content_type: None,
summary_length: None,
summary_type: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum ContentType {
#[serde(rename = "auto")]
Auto,
#[serde(rename = "informative")]
Informative,
#[serde(rename = "conversational")]
Conversational,
}
impl Default for ContentType {
fn default() -> ContentType {
Self::Auto
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum SummaryLength {
#[serde(rename = "brief")]
Brief,
#[serde(rename = "detailed")]
Detailed,
}
impl Default for SummaryLength {
fn default() -> SummaryLength {
Self::Brief
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum SummaryType {
#[serde(rename = "paragraphs")]
Paragraphs,
#[serde(rename = "bullets")]
Bullets,
}
impl Default for SummaryType {
fn default() -> SummaryType {
Self::Paragraphs
}
}