use derive_builder::Builder;
use serde::{Deserialize, Serialize};
use super::{SamplingOptions, StopConditions};
use crate::protocols::TokenIdType;
#[derive(Serialize, Deserialize, Debug, Clone, Builder)]
pub struct PreprocessedRequest {
pub token_ids: Vec<TokenIdType>,
pub stop_conditions: StopConditions,
pub sampling_options: SamplingOptions,
#[builder(default)]
pub eos_token_ids: Vec<TokenIdType>,
#[builder(default)]
pub mdc_sum: Option<String>,
#[builder(default)]
pub annotations: Vec<String>,
}
impl PreprocessedRequest {
pub fn has_annotation(&self, annotation: &str) -> bool {
self.annotations.contains(&annotation.to_string())
}
}
impl PreprocessedRequest {
pub fn builder() -> PreprocessedRequestBuilder {
PreprocessedRequestBuilder::default()
}
}