@@ -517,26 +517,53 @@ const useAiModelsList = (): UseAiModelsList => {
517
517
518
518
const getModels = useCallback ( async ( ) => {
519
519
let models = null ;
520
- setLoading ( true )
520
+ setLoading ( true ) ;
521
521
try {
522
522
const { response } = await getAiModels ( ) ;
523
- setLLMModels ( response )
524
- const currentModel = window . localStorage . getItem ( 'bot.ai_model' )
525
- const parsedModel : AiModel = currentModel ? JSON . parse ( currentModel ) : null
526
- if ( currentModel && parsedModel . name !== userModel ?. name ) {
527
- setUserModel ( parsedModel )
523
+ setLLMModels ( response ) ;
524
+ const currentModel = window . localStorage . getItem ( 'bot.ai_model' ) ;
525
+ const parsedModel : AiModel = currentModel ? JSON . parse ( currentModel ) : null ;
526
+
527
+ if ( currentModel && parsedModel . name !== userModel ?. name && response ) {
528
+ // Check if the parsedModel exists in the response models
529
+ const modelInResponse = response . find (
530
+ ( model ) =>
531
+ model . name . includes ( parsedModel . name )
532
+ ) ;
533
+
534
+ if ( modelInResponse ) {
535
+ setUserModel ( modelInResponse ) ;
536
+ window . localStorage . setItem ( 'bot.ai_model' , JSON . stringify ( modelInResponse ) ) ;
537
+ } else {
538
+ // Model from localStorage does not exist in response
539
+ // Find a default model
540
+ const defaultModel = response . find ( ( model ) =>
541
+ model . name . includes ( DEFAULT_MODEL_NAME )
542
+ ) ;
543
+
544
+ if ( defaultModel ) {
545
+ setUserModel ( defaultModel ) ;
546
+ window . localStorage . setItem ( 'bot.ai_model' , JSON . stringify ( defaultModel ) ) ;
547
+ }
548
+ }
528
549
} else if ( response ) {
529
- const regex = new RegExp ( `^${ DEFAULT_MODEL_NAME } ` ) ;
530
- const matchingModel = response . find ( model => regex . test ( model . name ) ) ;
531
- if ( matchingModel ) setModel ( matchingModel )
550
+ // Find a model where the model name includes the DEFAULT_MODEL_NAME
551
+ const matchingModel = response . find ( ( model ) =>
552
+ model . name . includes ( DEFAULT_MODEL_NAME )
553
+ ) ;
554
+ if ( matchingModel ) {
555
+ setModel ( matchingModel ) ;
556
+ window . localStorage . setItem ( 'bot.ai_model' , JSON . stringify ( matchingModel ) ) ;
557
+ }
532
558
}
533
559
} catch ( e ) {
534
- setError ( e as unknown as Response )
560
+ setError ( e as unknown as Response ) ;
535
561
}
536
- setLoading ( false )
537
- return models
562
+ setLoading ( false ) ;
563
+ return models ;
538
564
} , [ ] ) ;
539
565
566
+
540
567
useEffect ( ( ) => {
541
568
let isCancelled = false ;
542
569
0 commit comments