use crate::{
codec::{Dict, StrOrList},
multimodal::MultimodalInputs,
sampling::SamplingParams,
value::Value,
};
wire_struct! {
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct SessionParams: array + Default {
pub id: Option<String> = None,
pub rid: Option<String> = None,
pub offset: Option<i64> = None,
pub replace: Option<bool> = None,
}
}
wire_struct! {
#[derive(Debug, Clone, PartialEq)]
pub struct TokenizedGenerateReqInput: array("TokenizedGenerateReqInput") {
pub rid: Option<StrOrList> = None,
pub http_worker_ipc: Option<String> = None,
pub input_text: Option<String> = None,
pub input_ids: Option<Vec<i32>> = None,
pub sampling_params: SamplingParams,
pub return_logprob: bool = false,
pub logprob_start_len: i64 = -1,
pub top_logprobs_num: i64 = 0,
pub token_ids_logprob: Option<Vec<i32>> = None,
pub stream: bool = false,
pub input_embeds: Option<Vec<Value>> = None,
pub session_params: Option<SessionParams> = None,
pub custom_logit_processor: Option<String> = None,
pub return_hidden_states: bool = false,
pub created_time: f64 = 0.0,
pub bootstrap_host: Option<String> = None,
pub bootstrap_port: Option<i64> = None,
pub bootstrap_room: Option<u64> = None,
pub input_multi_ids: Option<Vec<Vec<i32>>> = None,
pub input_extra_infos: Option<Vec<Dict<Value, Value>>> = None,
pub input_ids_unpadded: Option<Vec<i32>> = None,
pub multimodal_inputs: Option<MultimodalInputs> = None,
pub validation_error: Option<String> = None,
pub data_parallel_rank: Option<i64> = None,
}
}
impl TokenizedGenerateReqInput {
pub fn new(rid: impl Into<String>, sampling_params: SamplingParams) -> Self {
Self {
rid: Some(StrOrList::One(rid.into())),
http_worker_ipc: None,
input_text: None,
input_ids: None,
sampling_params,
return_logprob: false,
logprob_start_len: -1,
top_logprobs_num: 0,
token_ids_logprob: None,
stream: false,
input_embeds: None,
session_params: None,
custom_logit_processor: None,
return_hidden_states: false,
created_time: 0.0,
bootstrap_host: None,
bootstrap_port: None,
bootstrap_room: None,
input_multi_ids: None,
input_extra_infos: None,
input_ids_unpadded: None,
multimodal_inputs: None,
validation_error: None,
data_parallel_rank: None,
}
}
}