mindcontrol_types/
openai.rs1use litty::literal;
2use serde::{Deserialize, Serialize};
3use std::collections::BTreeMap;
4
5#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
7#[serde(untagged)]
8pub enum OpenAIModelV1 {
9 Gpt4o(OpenAiModelV1Gpt4o),
10 Gpt4o20241120(OpenAiModelV1Gpt4o20241120),
11 Gpt4o20240806(OpenAiModelV1Gpt4o20240806),
12 Gpt4o20240513(OpenAiModelV1Gpt4o20240513),
13 Chatgpt4oLatest(OpenAiModelV1Chatgpt4oLatest),
14 Gpt4oMini(OpenAiModelV1Gpt4oMini),
15 Gpt4oMini20240718(OpenAiModelV1Gpt4oMini20240718),
16 O1(OpenAiModelV1O1),
17 O120241217(OpenAiModelV1O120241217),
18 O1Mini(OpenAiModelV1O1Mini),
19 O1Mini20240912(OpenAiModelV1O1Mini20240912),
20 O1Preview(OpenAiModelV1O1Preview),
21 O1Preview20240912(OpenAiModelV1O1Preview20240912),
22 O3Mini(OpenAiModelV1O3Mini),
23 O3Mini20250131(OpenAiModelV1O3Mini20250131),
24 Gpt4Turbo(OpenAiModelV1Gpt4Turbo),
25 Gpt4Turbo20240409(OpenAiModelV1Gpt4Turbo20240409),
26 Gpt4TurboPreview(OpenAiModelV1Gpt4TurboPreview),
27 Gpt40125Preview(OpenAiModelV1Gpt40125Preview),
28 Gpt41106Preview(OpenAiModelV1Gpt41106Preview),
29 Gpt4(OpenAiModelV1Gpt4),
30 Gpt40613(OpenAiModelV1Gpt40613),
31 Gpt40314(OpenAiModelV1Gpt40314),
32 Gpt35Turbo(OpenAiModelV1Gpt35Turbo),
33 Gpt35Turbo0125(OpenAiModelV1Gpt35Turbo0125),
34 Gpt35Turbo1106(OpenAiModelV1Gpt35Turbo1106),
35 String(String),
36}
37
38#[literal("gpt-4o")]
39pub struct OpenAiModelV1Gpt4o;
40
41#[literal("gpt-4o-2024-11-20")]
42pub struct OpenAiModelV1Gpt4o20241120;
43
44#[literal("gpt-4o-2024-08-06")]
45pub struct OpenAiModelV1Gpt4o20240806;
46
47#[literal("gpt-4o-2024-05-13")]
48pub struct OpenAiModelV1Gpt4o20240513;
49
50#[literal("chatgpt-4o-latest")]
51pub struct OpenAiModelV1Chatgpt4oLatest;
52
53#[literal("gpt-4o-mini")]
54pub struct OpenAiModelV1Gpt4oMini;
55
56#[literal("gpt-4o-mini-2024-07-18")]
57pub struct OpenAiModelV1Gpt4oMini20240718;
58
59#[literal("o1")]
60pub struct OpenAiModelV1O1;
61
62#[literal("o1-2024-12-17")]
63pub struct OpenAiModelV1O120241217;
64
65#[literal("o1-mini")]
66pub struct OpenAiModelV1O1Mini;
67
68#[literal("o1-mini-2024-09-12")]
69pub struct OpenAiModelV1O1Mini20240912;
70
71#[literal("o1-preview")]
72pub struct OpenAiModelV1O1Preview;
73
74#[literal("o1-preview-2024-09-12")]
75pub struct OpenAiModelV1O1Preview20240912;
76
77#[literal("o3-mini")]
78pub struct OpenAiModelV1O3Mini;
79
80#[literal("o3-mini-2025-01-31")]
81pub struct OpenAiModelV1O3Mini20250131;
82
83#[literal("gpt-4-turbo")]
84pub struct OpenAiModelV1Gpt4Turbo;
85
86#[literal("gpt-4-turbo-2024-04-09")]
87pub struct OpenAiModelV1Gpt4Turbo20240409;
88
89#[literal("gpt-4-turbo-preview")]
90pub struct OpenAiModelV1Gpt4TurboPreview;
91
92#[literal("gpt-4-0125-preview")]
93pub struct OpenAiModelV1Gpt40125Preview;
94
95#[literal("gpt-4-1106-preview")]
96pub struct OpenAiModelV1Gpt41106Preview;
97
98#[literal("gpt-4")]
99pub struct OpenAiModelV1Gpt4;
100
101#[literal("gpt-4-0613")]
102pub struct OpenAiModelV1Gpt40613;
103
104#[literal("gpt-4-0314")]
105pub struct OpenAiModelV1Gpt40314;
106
107#[literal("gpt-3.5-turbo")]
108pub struct OpenAiModelV1Gpt35Turbo;
109
110#[literal("gpt-3.5-turbo-0125")]
111pub struct OpenAiModelV1Gpt35Turbo0125;
112
113#[literal("gpt-3.5-turbo-1106")]
114pub struct OpenAiModelV1Gpt35Turbo1106;
115
116#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
118pub struct OpenAISettingsV1 {
119 pub r#type: OpenAiSettingsV1TypeOpenai,
121 pub model: Option<OpenAIModelV1>,
123}
124
125#[literal("openai")]
126pub struct OpenAiSettingsV1TypeOpenai;
127
128#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
130#[serde(untagged)]
131pub enum OpenAIProvider {
132 Openai(OpenAiProviderOpenai),
133 Azure(OpenAiProviderAzure),
134}
135
136#[literal("openai")]
137pub struct OpenAiProviderOpenai;
138
139#[literal("azure")]
140pub struct OpenAiProviderAzure;
141
142#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
144pub struct OpenAIProviderSettingsV1 {
145 pub default: Option<OpenAIProvider>,
146 pub models: Option<BTreeMap<String, OpenAIProvider>>,
147}