@@ -517,26 +517,53 @@ const useAiModelsList = (): UseAiModelsList => {
517517
518518 const getModels = useCallback ( async ( ) => {
519519 let models = null ;
520- setLoading ( true )
520+ setLoading ( true ) ;
521521 try {
522522 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+ }
528549 } 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+ }
532558 }
533559 } catch ( e ) {
534- setError ( e as unknown as Response )
560+ setError ( e as unknown as Response ) ;
535561 }
536- setLoading ( false )
537- return models
562+ setLoading ( false ) ;
563+ return models ;
538564 } , [ ] ) ;
539565
566+
540567 useEffect ( ( ) => {
541568 let isCancelled = false ;
542569
0 commit comments