1use serde::{Deserialize, Serialize};
8
9pub const GENERATE_CONTENT: &str = "https://generativelanguage.googleapis.com/v1beta/models/";
11
12pub const STREAM_GENERATE_CONTENT: &str =
14 "https://generativelanguage.googleapis.com/v1beta/models/";
15
16#[derive(Debug, Clone, Serialize, Deserialize, Default)]
21pub enum Models {
22 #[deprecated = "Use custom model instead, if you need to use older models"]
24 #[serde(rename = "gemini-1.5-pro-exp-0827")]
25 Gemini15ProExp0827,
26
27 #[deprecated = "Use custom model instead, if you need to use older models"]
29 #[serde(rename = "gemini-1.5-flash-exp-0827")]
30 Gemini15FlashExp0827,
31
32 #[deprecated = "Use custom model instead, if you need to use older models"]
34 #[serde(rename = "gemini-1.5-flash-8b-exp-0827")]
35 Gemini15Flash8bExp0827,
36
37 #[deprecated = "Use custom model instead, if you need to use older models"]
39 #[serde(rename = "gemini-1.5-pro")]
40 Gemini15Pro,
41
42 #[deprecated = "Use custom model instead, if you need to use older models"]
44 #[serde(rename = "gemini-2.0-flash-exp")]
45 Gemini2FlashExp,
46
47 #[deprecated = "Use custom model instead, if you need to use older models"]
49 #[serde(rename = "gemini-exp-1206")]
50 Gemini2Exp1206,
51
52 #[deprecated = "Use custom model instead, if you need to use older models"]
54 #[serde(rename = "gemini-1.5-flash")]
55 Gemini15Flash,
56
57 #[deprecated = "Use custom model instead, if you need to use older models"]
59 #[serde(rename = "gemini-1.0-pro")]
60 Gemini10Pro,
61
62 #[deprecated = "Use custom model instead, if you need to use older models"]
64 #[serde(rename = "gemma-2-2b-it")]
65 Gemma2_2bIt,
66
67 #[deprecated = "Use custom model instead, if you need to use older models"]
69 #[serde(rename = "gemma-2-9b-it")]
70 Gemma2_9bIt,
71
72 #[deprecated = "Use custom model instead, if you need to use older models"]
74 #[serde(rename = "gemma-2-27b-it")]
75 Gemma2_27bIt,
76
77 #[serde(rename = "gemini-2.0-flash")]
78 Gemini2Flash,
79
80 #[serde(rename = "gemini-2.0-flash-lite")]
81 Gemini2FlashLite,
82
83 #[serde(rename = "gemini-2.5-pro-preview-03-25")]
84 Gemini25ProPreview0325,
85
86 #[serde(rename = "gemini-2.5-pro-exp-03-25")]
87 Gemini25ProExp0325,
88
89 #[default]
90 #[serde(rename = "gemini-2.5-flash-preview-04-17")]
91 Gemini25FlashPreview0417,
92
93 #[serde(rename = "gemma-3-1b-it")]
94 Gemma3_1b,
95
96 #[serde(rename = "gemma-3-4b-it")]
97 Gemma3_4b,
98
99 #[serde(rename = "gemma-3-12b-it")]
100 Gemma3_12b,
101
102 #[serde(rename = "gemma-3-27b-it")]
103 Gemma3_27b,
104
105 Custom(String),
107}
108
109impl ToString for Models {
110 fn to_string(&self) -> String {
111 match self {
112 Models::Custom(model) => model.to_string().replace("\"", ""),
113 _ => serde_json::to_string(self).unwrap().replace("\"", ""),
114 }
115 }
116}