Skip to content

Commit bb85658

Browse files
committed
refactor(config): remove default LLM model and endpoint values
- Remove hardcoded default models ("gpt-4o-mini", "gpt-4o") from LLM configuration structs - Change default model and endpoint values from specific strings to empty strings - Update tests to verify that default models are empty strings instead of predefined values - Remove automatic detection logic for models and endpoints that was previously used to determine defaults - Simplify LLM config structure by removing auto-detection methods and default functions
1 parent 312286f commit bb85658

7 files changed

Lines changed: 39 additions & 150 deletions

File tree

rust/src/config/loader.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -173,8 +173,8 @@ mod tests {
173173
fn test_default_config() {
174174
let config = Config::default();
175175
assert_eq!(config.indexer.subsection_threshold, 300);
176-
assert_eq!(config.summary.model, "gpt-4o-mini");
177-
assert_eq!(config.retrieval.model, "gpt-4o");
176+
assert!(config.summary.model.is_empty());
177+
assert!(config.retrieval.model.is_empty());
178178
}
179179

180180
#[test]
@@ -195,6 +195,6 @@ mod tests {
195195
fn test_config_loader_with_validation() {
196196
let config = ConfigLoader::new().with_validation(true).load().unwrap();
197197

198-
assert_eq!(config.retrieval.model, "gpt-4o");
198+
assert!(config.retrieval.model.is_empty());
199199
}
200200
}

rust/src/config/types/llm.rs

Lines changed: 11 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ use serde::{Deserialize, Serialize};
99
#[derive(Debug, Clone, Serialize, Deserialize)]
1010
pub struct LlmConfig {
1111
/// Model name (e.g., "gpt-4o-mini", "claude-3-haiku").
12-
#[serde(default = "default_model")]
12+
#[serde(default)]
1313
pub model: String,
1414

1515
/// API endpoint.
16-
#[serde(default = "default_endpoint")]
16+
#[serde(default)]
1717
pub endpoint: String,
1818

1919
/// API key.
@@ -29,14 +29,6 @@ pub struct LlmConfig {
2929
pub temperature: f32,
3030
}
3131

32-
fn default_model() -> String {
33-
"gpt-4o-mini".to_string()
34-
}
35-
36-
fn default_endpoint() -> String {
37-
"https://api.openai.com/v1".to_string()
38-
}
39-
4032
fn default_max_tokens() -> usize {
4133
1000
4234
}
@@ -48,8 +40,8 @@ fn default_temperature() -> f32 {
4840
impl Default for LlmConfig {
4941
fn default() -> Self {
5042
Self {
51-
model: default_model(),
52-
endpoint: default_endpoint(),
43+
model: String::new(),
44+
endpoint: String::new(),
5345
api_key: None,
5446
max_tokens: default_max_tokens(),
5547
temperature: default_temperature(),
@@ -103,11 +95,11 @@ impl LlmConfig {
10395
#[derive(Debug, Clone, Serialize, Deserialize)]
10496
pub struct SummaryConfig {
10597
/// Model name for summarization.
106-
#[serde(default = "default_summary_model")]
98+
#[serde(default)]
10799
pub model: String,
108100

109101
/// API endpoint for summary model.
110-
#[serde(default = "default_endpoint")]
102+
#[serde(default)]
111103
pub endpoint: String,
112104

113105
/// API key.
@@ -123,19 +115,15 @@ pub struct SummaryConfig {
123115
pub temperature: f32,
124116
}
125117

126-
fn default_summary_model() -> String {
127-
"gpt-4o-mini".to_string()
128-
}
129-
130118
fn default_max_summary_tokens() -> usize {
131119
200
132120
}
133121

134122
impl Default for SummaryConfig {
135123
fn default() -> Self {
136124
Self {
137-
model: default_summary_model(),
138-
endpoint: default_endpoint(),
125+
model: String::new(),
126+
endpoint: String::new(),
139127
api_key: None,
140128
max_tokens: default_max_summary_tokens(),
141129
temperature: default_temperature(),
@@ -192,8 +180,8 @@ mod tests {
192180
#[test]
193181
fn test_llm_config_defaults() {
194182
let config = LlmConfig::default();
195-
assert_eq!(config.model, "gpt-4o-mini");
196-
assert_eq!(config.endpoint, "https://api.openai.com/v1");
183+
assert!(config.model.is_empty());
184+
assert!(config.endpoint.is_empty());
197185
assert!(config.api_key.is_none());
198186
}
199187

@@ -212,7 +200,7 @@ mod tests {
212200
#[test]
213201
fn test_summary_config() {
214202
let config = SummaryConfig::default();
215-
assert_eq!(config.model, "gpt-4o-mini");
203+
assert!(config.model.is_empty());
216204
assert_eq!(config.max_tokens, 200);
217205
}
218206
}

rust/src/config/types/llm_pool.rs

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ pub struct LlmPoolConfig {
4848

4949
fn default_pilot_config() -> LlmClientConfig {
5050
LlmClientConfig {
51-
model: "gpt-4o-mini".to_string(),
5251
max_tokens: 300,
5352
temperature: 0.0,
5453
..Default::default()
@@ -60,7 +59,6 @@ impl Default for LlmPoolConfig {
6059
Self {
6160
summary: LlmClientConfig::default(),
6261
retrieval: LlmClientConfig {
63-
model: "gpt-4o".to_string(),
6462
max_tokens: 100,
6563
..Default::default()
6664
},
@@ -114,11 +112,11 @@ impl LlmPoolConfig {
114112
#[derive(Debug, Clone, Serialize, Deserialize)]
115113
pub struct LlmClientConfig {
116114
/// Model name.
117-
#[serde(default = "default_model")]
115+
#[serde(default)]
118116
pub model: String,
119117

120118
/// API endpoint.
121-
#[serde(default = "default_endpoint")]
119+
#[serde(default)]
122120
pub endpoint: String,
123121

124122
/// API key (optional, falls back to default).
@@ -134,14 +132,6 @@ pub struct LlmClientConfig {
134132
pub temperature: f32,
135133
}
136134

137-
fn default_model() -> String {
138-
"gpt-4o-mini".to_string()
139-
}
140-
141-
fn default_endpoint() -> String {
142-
"https://api.openai.com/v1".to_string()
143-
}
144-
145135
fn default_max_tokens() -> usize {
146136
200
147137
}
@@ -153,8 +143,8 @@ fn default_temperature() -> f32 {
153143
impl Default for LlmClientConfig {
154144
fn default() -> Self {
155145
Self {
156-
model: default_model(),
157-
endpoint: default_endpoint(),
146+
model: String::new(),
147+
endpoint: String::new(),
158148
api_key: None,
159149
max_tokens: default_max_tokens(),
160150
temperature: default_temperature(),
@@ -420,9 +410,9 @@ mod tests {
420410
#[test]
421411
fn test_llm_pool_config_defaults() {
422412
let config = LlmPoolConfig::default();
423-
assert_eq!(config.summary.model, "gpt-4o-mini");
424-
assert_eq!(config.retrieval.model, "gpt-4o");
425-
assert_eq!(config.pilot.model, "gpt-4o-mini");
413+
assert!(config.summary.model.is_empty());
414+
assert!(config.retrieval.model.is_empty());
415+
assert!(config.pilot.model.is_empty());
426416
assert_eq!(config.retry.max_attempts, 3);
427417
assert_eq!(config.throttle.max_concurrent_requests, 10);
428418
}

rust/src/config/types/mod.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -356,19 +356,19 @@ mod tests {
356356
fn test_config_defaults() {
357357
let config = Config::default();
358358
assert_eq!(config.indexer.subsection_threshold, 300);
359-
assert_eq!(config.summary.model, "gpt-4o-mini");
360-
assert_eq!(config.retrieval.model, "gpt-4o");
359+
assert!(config.summary.model.is_empty());
360+
assert!(config.retrieval.model.is_empty());
361361
assert_eq!(config.concurrency.max_concurrent_requests, 10);
362362
// New fields
363-
assert!(config.llm.summary.model == "gpt-4o-mini");
363+
assert!(config.llm.summary.model.is_empty());
364364
assert!(config.metrics.enabled);
365365
}
366366

367367
#[test]
368368
fn test_llm_pool_config_defaults() {
369369
let config = LlmPoolConfig::default();
370-
assert_eq!(config.summary.model, "gpt-4o-mini");
371-
assert_eq!(config.retrieval.model, "gpt-4o");
370+
assert!(config.summary.model.is_empty());
371+
assert!(config.retrieval.model.is_empty());
372372
assert_eq!(config.retry.max_attempts, 3);
373373
assert_eq!(config.throttle.max_concurrent_requests, 10);
374374
}

rust/src/config/types/retrieval.rs

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@ use super::storage::{CacheConfig, StrategyConfig, SufficiencyConfig};
1212
#[derive(Debug, Clone, Serialize, Deserialize)]
1313
pub struct RetrievalConfig {
1414
/// Model name for retrieval/navigation.
15-
#[serde(default = "default_retrieval_model")]
15+
#[serde(default)]
1616
pub model: String,
1717

1818
/// API endpoint for retrieval model.
19-
#[serde(default = "default_endpoint")]
19+
#[serde(default)]
2020
pub endpoint: String,
2121

2222
/// API key.
@@ -56,14 +56,6 @@ pub struct RetrievalConfig {
5656
pub content: ContentAggregatorConfig,
5757
}
5858

59-
fn default_retrieval_model() -> String {
60-
"gpt-4o".to_string()
61-
}
62-
63-
fn default_endpoint() -> String {
64-
"https://api.openai.com/v1".to_string()
65-
}
66-
6759
fn default_max_retrieval_tokens() -> usize {
6860
1000
6961
}
@@ -79,8 +71,8 @@ fn default_top_k() -> usize {
7971
impl Default for RetrievalConfig {
8072
fn default() -> Self {
8173
Self {
82-
model: default_retrieval_model(),
83-
endpoint: default_endpoint(),
74+
model: String::new(),
75+
endpoint: String::new(),
8476
api_key: None,
8577
max_tokens: default_max_retrieval_tokens(),
8678
temperature: default_temperature(),
@@ -204,7 +196,7 @@ mod tests {
204196
#[test]
205197
fn test_retrieval_config_defaults() {
206198
let config = RetrievalConfig::default();
207-
assert_eq!(config.model, "gpt-4o");
199+
assert!(config.model.is_empty());
208200
assert_eq!(config.top_k, 3);
209201
assert_eq!(config.search.top_k, 5);
210202
}

0 commit comments

Comments
 (0)