open_routerer/api/
request.rs1use crate::{Message, Model};
2use serde::Serialize;
3
4#[derive(Debug, Clone, Serialize)]
5#[serde(rename_all = "camelCase")]
6pub struct RequestPayload {
7 pub model: Model,
9 pub messages: Vec<Message>,
11
12 pub max_tokens: Option<u32>,
14}
15
16pub struct RequestBuilder {
17 model: String,
18 messages: Vec<Message>,
19 max_tokens: Option<u32>,
20 pub validate_structured: bool,
22 pub fallback_on_failure: bool,
24}
25
26impl RequestBuilder {
27 pub fn new(model: impl Into<String>, messages: Vec<Message>, max_tokens: Option<u32>) -> Self {
35 Self {
36 model: model.into(),
37 messages,
38 max_tokens,
39 validate_structured: true,
40 fallback_on_failure: false,
41 }
42 }
43
44 pub fn build(self) -> RequestPayload {
45 RequestPayload {
46 model: Model::from(self.model),
47 messages: self.messages,
48 max_tokens: self.max_tokens,
49 }
50 }
51}