@@ -16,6 +16,7 @@ mod server_messenger;
1616mod skim_integration;
1717mod token_counter;
1818pub mod tool_manager;
19+ use crate :: cli:: chat:: cli:: model:: find_model;
1920pub mod tools;
2021pub mod util;
2122use std:: borrow:: Cow ;
@@ -315,13 +316,7 @@ impl ChatArgs {
315316 // Otherwise, CLI will use a default model when starting chat
316317 let ( models, default_model_opt) = get_available_models ( os) . await ?;
317318 let model_id: Option < String > = if let Some ( requested) = self . model . as_ref ( ) {
318- let requested_lower = requested. to_lowercase ( ) ;
319- if let Some ( m) = models. iter ( ) . find ( |m| {
320- m. model_name
321- . as_deref ( )
322- . is_some_and ( |n| n. eq_ignore_ascii_case ( & requested_lower) )
323- || m. model_id . eq_ignore_ascii_case ( & requested_lower)
324- } ) {
319+ if let Some ( m) = find_model ( & models, requested) {
325320 Some ( m. model_id . clone ( ) )
326321 } else {
327322 let available = models
@@ -332,14 +327,9 @@ impl ChatArgs {
332327 bail ! ( "Model '{}' does not exist. Available models: {}" , requested, available) ;
333328 }
334329 } else if let Some ( saved) = os. database . settings . get_string ( Setting :: ChatDefaultModel ) {
335- if let Some ( m) = models. iter ( ) . find ( |m| {
336- m. model_name . as_deref ( ) . is_some_and ( |n| n. eq_ignore_ascii_case ( & saved) )
337- || m. model_id . eq_ignore_ascii_case ( & saved)
338- } ) {
339- Some ( m. model_id . clone ( ) )
340- } else {
341- Some ( default_model_opt. model_id . clone ( ) )
342- }
330+ find_model ( & models, & saved)
331+ . map ( |m| m. model_id . clone ( ) )
332+ . or ( Some ( default_model_opt. model_id . clone ( ) ) )
343333 } else {
344334 Some ( default_model_opt. model_id . clone ( ) )
345335 } ;
0 commit comments