remove unnecessary clones from code

This commit is contained in:
Adil Hafeez 2026-01-08 13:24:09 -08:00
parent 40b9780774
commit c9c2aef72e
No known key found for this signature in database
GPG key ID: 9B18EF7691369645
7 changed files with 35 additions and 40 deletions

View file

@ -97,13 +97,13 @@ async fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
let router_service: Arc<RouterService> = Arc::new(RouterService::new( let router_service: Arc<RouterService> = Arc::new(RouterService::new(
arch_config.model_providers.clone(), arch_config.model_providers.clone(),
llm_provider_url.clone() + CHAT_COMPLETIONS_PATH, format!("{llm_provider_url}{CHAT_COMPLETIONS_PATH}"),
routing_model_name.clone(), routing_model_name,
routing_llm_provider.clone(), routing_llm_provider,
)); ));
let orchestrator_service: Arc<OrchestratorService> = Arc::new(OrchestratorService::new( let orchestrator_service: Arc<OrchestratorService> = Arc::new(OrchestratorService::new(
llm_provider_url.clone() + CHAT_COMPLETIONS_PATH, format!("{llm_provider_url}{CHAT_COMPLETIONS_PATH}"),
PLANO_ORCHESTRATOR_MODEL_NAME.to_string(), PLANO_ORCHESTRATOR_MODEL_NAME.to_string(),
)); ));

View file

@ -61,7 +61,7 @@ impl RouterService {
let router_model = Arc::new(router_model_v1::RouterModelV1::new( let router_model = Arc::new(router_model_v1::RouterModelV1::new(
llm_routes, llm_routes,
routing_model_name.clone(), routing_model_name,
router_model_v1::MAX_TOKEN_LEN, router_model_v1::MAX_TOKEN_LEN,
)); ));

View file

@ -666,8 +666,7 @@ If no routes are needed, return an empty list for `route`.
>(orchestrations_str) >(orchestrations_str)
.unwrap(); .unwrap();
let orchestration_model = "test-model".to_string(); let orchestration_model = "test-model".to_string();
let orchestrator = let orchestrator = OrchestratorModelV1::new(agent_orchestrations, orchestration_model, 235);
OrchestratorModelV1::new(agent_orchestrations, orchestration_model.clone(), 235);
let conversation_str = r#" let conversation_str = r#"
[ [
@ -739,8 +738,7 @@ If no routes are needed, return an empty list for `route`.
.unwrap(); .unwrap();
let orchestration_model = "test-model".to_string(); let orchestration_model = "test-model".to_string();
let orchestrator = let orchestrator = OrchestratorModelV1::new(agent_orchestrations, orchestration_model, 200);
OrchestratorModelV1::new(agent_orchestrations, orchestration_model.clone(), 200);
let conversation_str = r#" let conversation_str = r#"
[ [
@ -819,8 +817,7 @@ If no routes are needed, return an empty list for `route`.
>(orchestrations_str) >(orchestrations_str)
.unwrap(); .unwrap();
let orchestration_model = "test-model".to_string(); let orchestration_model = "test-model".to_string();
let orchestrator = let orchestrator = OrchestratorModelV1::new(agent_orchestrations, orchestration_model, 230);
OrchestratorModelV1::new(agent_orchestrations, orchestration_model.clone(), 230);
let conversation_str = r#" let conversation_str = r#"
[ [

View file

@ -322,7 +322,7 @@ Based on your analysis, provide your response in the following JSON formats if y
let llm_routes = let llm_routes =
serde_json::from_str::<HashMap<String, Vec<RoutingPreference>>>(routes_str).unwrap(); serde_json::from_str::<HashMap<String, Vec<RoutingPreference>>>(routes_str).unwrap();
let routing_model = "test-model".to_string(); let routing_model = "test-model".to_string();
let router = RouterModelV1::new(llm_routes, routing_model.clone(), usize::MAX); let router = RouterModelV1::new(llm_routes, routing_model, usize::MAX);
let conversation_str = r#" let conversation_str = r#"
[ [
@ -380,7 +380,7 @@ Based on your analysis, provide your response in the following JSON formats if y
let llm_routes = let llm_routes =
serde_json::from_str::<HashMap<String, Vec<RoutingPreference>>>(routes_str).unwrap(); serde_json::from_str::<HashMap<String, Vec<RoutingPreference>>>(routes_str).unwrap();
let routing_model = "test-model".to_string(); let routing_model = "test-model".to_string();
let router = RouterModelV1::new(llm_routes, routing_model.clone(), usize::MAX); let router = RouterModelV1::new(llm_routes, routing_model, usize::MAX);
let conversation_str = r#" let conversation_str = r#"
[ [
@ -446,7 +446,7 @@ Based on your analysis, provide your response in the following JSON formats if y
let llm_routes = let llm_routes =
serde_json::from_str::<HashMap<String, Vec<RoutingPreference>>>(routes_str).unwrap(); serde_json::from_str::<HashMap<String, Vec<RoutingPreference>>>(routes_str).unwrap();
let routing_model = "test-model".to_string(); let routing_model = "test-model".to_string();
let router = RouterModelV1::new(llm_routes, routing_model.clone(), 235); let router = RouterModelV1::new(llm_routes, routing_model, 235);
let conversation_str = r#" let conversation_str = r#"
[ [
@ -507,7 +507,7 @@ Based on your analysis, provide your response in the following JSON formats if y
serde_json::from_str::<HashMap<String, Vec<RoutingPreference>>>(routes_str).unwrap(); serde_json::from_str::<HashMap<String, Vec<RoutingPreference>>>(routes_str).unwrap();
let routing_model = "test-model".to_string(); let routing_model = "test-model".to_string();
let router = RouterModelV1::new(llm_routes, routing_model.clone(), 200); let router = RouterModelV1::new(llm_routes, routing_model, 200);
let conversation_str = r#" let conversation_str = r#"
[ [
@ -567,7 +567,7 @@ Based on your analysis, provide your response in the following JSON formats if y
let llm_routes = let llm_routes =
serde_json::from_str::<HashMap<String, Vec<RoutingPreference>>>(routes_str).unwrap(); serde_json::from_str::<HashMap<String, Vec<RoutingPreference>>>(routes_str).unwrap();
let routing_model = "test-model".to_string(); let routing_model = "test-model".to_string();
let router = RouterModelV1::new(llm_routes, routing_model.clone(), 230); let router = RouterModelV1::new(llm_routes, routing_model, 230);
let conversation_str = r#" let conversation_str = r#"
[ [
@ -634,7 +634,7 @@ Based on your analysis, provide your response in the following JSON formats if y
let llm_routes = let llm_routes =
serde_json::from_str::<HashMap<String, Vec<RoutingPreference>>>(routes_str).unwrap(); serde_json::from_str::<HashMap<String, Vec<RoutingPreference>>>(routes_str).unwrap();
let routing_model = "test-model".to_string(); let routing_model = "test-model".to_string();
let router = RouterModelV1::new(llm_routes, routing_model.clone(), usize::MAX); let router = RouterModelV1::new(llm_routes, routing_model, usize::MAX);
let conversation_str = r#" let conversation_str = r#"
[ [
@ -703,7 +703,7 @@ Based on your analysis, provide your response in the following JSON formats if y
let llm_routes = let llm_routes =
serde_json::from_str::<HashMap<String, Vec<RoutingPreference>>>(routes_str).unwrap(); serde_json::from_str::<HashMap<String, Vec<RoutingPreference>>>(routes_str).unwrap();
let routing_model = "test-model".to_string(); let routing_model = "test-model".to_string();
let router = RouterModelV1::new(llm_routes, routing_model.clone(), usize::MAX); let router = RouterModelV1::new(llm_routes, routing_model, usize::MAX);
let conversation_str = r#" let conversation_str = r#"
[ [

View file

@ -14,7 +14,7 @@ impl LlmProviders {
} }
pub fn default(&self) -> Option<Rc<LlmProvider>> { pub fn default(&self) -> Option<Rc<LlmProvider>> {
self.default.as_ref().map(|rc| rc.clone()) self.default.clone()
} }
pub fn get(&self, name: &str) -> Option<Rc<LlmProvider>> { pub fn get(&self, name: &str) -> Option<Rc<LlmProvider>> {
@ -58,19 +58,21 @@ impl TryFrom<Vec<LlmProvider>> for LlmProviders {
let name = llm_provider.name.clone(); let name = llm_provider.name.clone();
if llm_providers if llm_providers
.providers .providers
.insert(name.clone(), llm_provider.clone()) .insert(name.clone(), Rc::clone(&llm_provider))
.is_some() .is_some()
{ {
return Err(LlmProvidersNewError::DuplicateName(name)); return Err(LlmProvidersNewError::DuplicateName(name));
} }
// also add model_id as key for provider lookup // also add model_id as key for provider lookup
if llm_providers if let Some(model) = llm_provider.model.clone() {
.providers if llm_providers
.insert(llm_provider.model.clone().unwrap(), llm_provider) .providers
.is_some() .insert(model, llm_provider)
{ .is_some()
return Err(LlmProvidersNewError::DuplicateName(name)); {
return Err(LlmProvidersNewError::DuplicateName(name));
}
} }
} }
Ok(llm_providers) Ok(llm_providers)

View file

@ -20,13 +20,12 @@ pub fn replace_params_in_path(
in_param = true; in_param = true;
} else if c == '}' { } else if c == '}' {
in_param = false; in_param = false;
let param_name = current_param.clone(); if let Some(value) = tool_params.get(&current_param) {
if let Some(value) = tool_params.get(&param_name) {
let value = urlencoding::encode(value); let value = urlencoding::encode(value);
query_string_replaced.push_str(value.into_owned().as_str()); query_string_replaced.push_str(value.into_owned().as_str());
vars_replaced.insert(param_name.clone()); vars_replaced.insert(current_param.clone());
} else { } else {
return Err(format!("Missing value for parameter `{}`", param_name)); return Err(format!("Missing value for parameter `{}`", current_param));
} }
current_param.clear(); current_param.clear();
} else if in_param { } else if in_param {
@ -41,25 +40,22 @@ pub fn replace_params_in_path(
let value = urlencoding::encode(value).into_owned(); let value = urlencoding::encode(value).into_owned();
if !vars_replaced.contains(param_name) { if !vars_replaced.contains(param_name) {
vars_replaced.insert(param_name.clone()); vars_replaced.insert(param_name.clone());
params.insert(param_name.clone(), value.clone());
if query_string_replaced.contains("?") { if query_string_replaced.contains("?") {
query_string_replaced.push_str(&format!("&{}={}", param_name, value)); query_string_replaced.push_str(&format!("&{}={}", param_name, value));
} else { } else {
query_string_replaced.push_str(&format!("?{}={}", param_name, value)); query_string_replaced.push_str(&format!("?{}={}", param_name, value));
} }
params.insert(param_name.clone(), value);
} }
} }
// add default values // add default values
for param in prompt_target_params.iter() { for param in prompt_target_params.iter() {
if !vars_replaced.contains(&param.name) && param.default.is_some() { if !vars_replaced.contains(&param.name) && param.default.is_some() {
params.insert(param.name.clone(), param.default.clone().unwrap()); let default_val = param.default.as_ref().unwrap();
params.insert(param.name.clone(), default_val.clone());
if query_string_replaced.contains("?") { if query_string_replaced.contains("?") {
query_string_replaced.push_str(&format!( query_string_replaced.push_str(&format!("&{}={}", param.name, default_val));
"&{}={}",
param.name,
param.default.as_ref().unwrap()
));
} else { } else {
query_string_replaced.push_str(&format!( query_string_replaced.push_str(&format!(
"?{}={}", "?{}={}",
@ -117,7 +113,7 @@ mod test {
Ok(( Ok((
"/cluster.open-cluster-management.io/v1/managedclusters/test1".to_string(), "/cluster.open-cluster-management.io/v1/managedclusters/test1".to_string(),
"hello=hello%20world&country=US".to_string(), "hello=hello%20world&country=US".to_string(),
out_params.clone() out_params
)) ))
); );

View file

@ -894,7 +894,7 @@ impl HttpContext for StreamContext {
}; };
let model_name = match self.llm_provider.as_ref() { let model_name = match self.llm_provider.as_ref() {
Some(llm_provider) => llm_provider.model.as_ref(), Some(llm_provider) => llm_provider.model.clone(),
None => None, None => None,
}; };
@ -903,7 +903,7 @@ impl HttpContext for StreamContext {
// Apply model name resolution logic using the trait method // Apply model name resolution logic using the trait method
let resolved_model = match model_name { let resolved_model = match model_name {
Some(model_name) => model_name.clone(), Some(model_name) => model_name,
None => { None => {
warn!( warn!(
"[PLANO_REQ_ID:{}] MODEL_RESOLUTION_ERROR: no model specified | req_model='{}' provider='{}' config_model={:?}", "[PLANO_REQ_ID:{}] MODEL_RESOLUTION_ERROR: no model specified | req_model='{}' provider='{}' config_model={:?}",