gproxy_protocol/openai/create_response/
request.rs1use std::collections::BTreeMap;
2
3use serde::{Deserialize, Serialize};
4
5use crate::openai::create_response::types::{
6 HttpMethod, Metadata, Model, ResponseContextManagementEntry, ResponseConversation,
7 ResponseIncludable, ResponseInput, ResponsePrompt, ResponsePromptCacheRetention,
8 ResponseReasoning, ResponseServiceTier, ResponseStreamOptions, ResponseTextConfig,
9 ResponseTool, ResponseToolChoice, ResponseTruncation,
10};
11
12#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
14pub struct OpenAiCreateResponseRequest {
15 pub method: HttpMethod,
17 pub path: PathParameters,
19 pub query: QueryParameters,
21 pub headers: RequestHeaders,
23 pub body: RequestBody,
25}
26
27impl Default for OpenAiCreateResponseRequest {
28 fn default() -> Self {
29 Self {
30 method: HttpMethod::Post,
31 path: PathParameters::default(),
32 query: QueryParameters::default(),
33 headers: RequestHeaders::default(),
34 body: RequestBody::default(),
35 }
36 }
37}
38
39#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)]
41pub struct PathParameters {}
42
43#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)]
45pub struct QueryParameters {}
46
47#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, Default)]
49pub struct RequestHeaders {
50 #[serde(flatten, default, skip_serializing_if = "BTreeMap::is_empty")]
51 pub extra: BTreeMap<String, String>,
52}
53
54#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
56pub struct RequestBody {
57 #[serde(default, skip_serializing_if = "Option::is_none")]
58 pub background: Option<bool>,
59 #[serde(default, skip_serializing_if = "Option::is_none")]
60 pub context_management: Option<Vec<ResponseContextManagementEntry>>,
61 #[serde(default, skip_serializing_if = "Option::is_none")]
62 pub conversation: Option<ResponseConversation>,
63 #[serde(default, skip_serializing_if = "Option::is_none")]
64 pub include: Option<Vec<ResponseIncludable>>,
65 #[serde(default, skip_serializing_if = "Option::is_none")]
66 pub input: Option<ResponseInput>,
67 #[serde(default, skip_serializing_if = "Option::is_none")]
68 pub instructions: Option<String>,
69 #[serde(default, skip_serializing_if = "Option::is_none")]
70 pub max_output_tokens: Option<u64>,
71 #[serde(default, skip_serializing_if = "Option::is_none")]
72 pub max_tool_calls: Option<u64>,
73 #[serde(default, skip_serializing_if = "Option::is_none")]
74 pub metadata: Option<Metadata>,
75 #[serde(default, skip_serializing_if = "Option::is_none")]
76 pub model: Option<Model>,
77 #[serde(default, skip_serializing_if = "Option::is_none")]
78 pub parallel_tool_calls: Option<bool>,
79 #[serde(default, skip_serializing_if = "Option::is_none")]
80 pub previous_response_id: Option<String>,
81 #[serde(default, skip_serializing_if = "Option::is_none")]
82 pub prompt: Option<ResponsePrompt>,
83 #[serde(default, skip_serializing_if = "Option::is_none")]
84 pub prompt_cache_key: Option<String>,
85 #[serde(default, skip_serializing_if = "Option::is_none")]
86 pub prompt_cache_retention: Option<ResponsePromptCacheRetention>,
87 #[serde(default, skip_serializing_if = "Option::is_none")]
88 pub reasoning: Option<ResponseReasoning>,
89 #[serde(default, skip_serializing_if = "Option::is_none")]
90 pub safety_identifier: Option<String>,
91 #[serde(default, skip_serializing_if = "Option::is_none")]
92 pub service_tier: Option<ResponseServiceTier>,
93 #[serde(default, skip_serializing_if = "Option::is_none")]
94 pub store: Option<bool>,
95 #[serde(default, skip_serializing_if = "Option::is_none")]
96 pub stream: Option<bool>,
97 #[serde(default, skip_serializing_if = "Option::is_none")]
98 pub stream_options: Option<ResponseStreamOptions>,
99 #[serde(default, skip_serializing_if = "Option::is_none")]
100 pub temperature: Option<f64>,
101 #[serde(default, skip_serializing_if = "Option::is_none")]
102 pub text: Option<ResponseTextConfig>,
103 #[serde(default, skip_serializing_if = "Option::is_none")]
104 pub tool_choice: Option<ResponseToolChoice>,
105 #[serde(default, skip_serializing_if = "Option::is_none")]
106 pub tools: Option<Vec<ResponseTool>>,
107 #[serde(default, skip_serializing_if = "Option::is_none")]
108 pub top_logprobs: Option<u32>,
109 #[serde(default, skip_serializing_if = "Option::is_none")]
110 pub top_p: Option<f64>,
111 #[serde(default, skip_serializing_if = "Option::is_none")]
112 pub truncation: Option<ResponseTruncation>,
113 #[serde(default, skip_serializing_if = "Option::is_none")]
114 pub user: Option<String>,
115}