@@ -25,34 +25,34 @@ import {
25
25
import { v4 as uuidv4 } from 'uuid' ;
26
26
27
27
import { message , Select , Spin , Typography , Tooltip , Input , Upload , Modal , Button } from "antd" ;
28
- import { makeOpenAIChatCompletionRequest } from "./chat_ui/ llm_calls/chat_completion" ;
29
- import { makeOpenAIImageGenerationRequest } from "./chat_ui/ llm_calls/image_generation" ;
30
- import { makeOpenAIImageEditsRequest } from "./chat_ui/ llm_calls/image_edits" ;
31
- import { makeOpenAIResponsesRequest } from "./chat_ui/ llm_calls/responses_api" ;
32
- import { makeAnthropicMessagesRequest } from "./chat_ui/ llm_calls/anthropic_messages" ;
33
- import { fetchAvailableModels , ModelGroup } from "./chat_ui/ llm_calls/fetch_models" ;
34
- import { fetchAvailableMCPTools } from "./chat_ui/ llm_calls/fetch_mcp_tools" ;
35
- import type { MCPTool } from "./chat_ui/ llm_calls/fetch_mcp_tools" ;
36
- import { litellmModeMapping , ModelMode , EndpointType , getEndpointType } from "./chat_ui/ mode_endpoint_mapping" ;
28
+ import { makeOpenAIChatCompletionRequest } from "./llm_calls/chat_completion" ;
29
+ import { makeOpenAIImageGenerationRequest } from "./llm_calls/image_generation" ;
30
+ import { makeOpenAIImageEditsRequest } from "./llm_calls/image_edits" ;
31
+ import { makeOpenAIResponsesRequest } from "./llm_calls/responses_api" ;
32
+ import { makeAnthropicMessagesRequest } from "./llm_calls/anthropic_messages" ;
33
+ import { fetchAvailableModels , ModelGroup } from "./llm_calls/fetch_models" ;
34
+ import { fetchAvailableMCPTools } from "./llm_calls/fetch_mcp_tools" ;
35
+ import type { MCPTool } from "./llm_calls/fetch_mcp_tools" ;
36
+ import { litellmModeMapping , ModelMode , EndpointType , getEndpointType } from "./mode_endpoint_mapping" ;
37
37
import { Prism as SyntaxHighlighter } from "react-syntax-highlighter" ;
38
38
import { coy } from 'react-syntax-highlighter/dist/esm/styles/prism' ;
39
- import EndpointSelector from "./chat_ui/ EndpointSelector" ;
40
- import TagSelector from "./tag_management/TagSelector" ;
41
- import VectorStoreSelector from "./vector_store_management/VectorStoreSelector" ;
42
- import GuardrailSelector from "./guardrails/GuardrailSelector" ;
43
- import { determineEndpointType } from "./chat_ui/ EndpointUtils" ;
44
- import { generateCodeSnippet } from "./chat_ui/ CodeSnippets" ;
45
- import { MessageType } from "./chat_ui/ types" ;
46
- import ReasoningContent from "./chat_ui/ ReasoningContent" ;
47
- import ResponseMetrics , { TokenUsage } from "./chat_ui/ ResponseMetrics" ;
48
- import ResponsesImageUpload from "./chat_ui/ ResponsesImageUpload" ;
49
- import ResponsesImageRenderer from "./chat_ui/ ResponsesImageRenderer" ;
50
- import { convertImageToBase64 , createMultimodalMessage , createDisplayMessage } from "./chat_ui/ ResponsesImageUtils" ;
51
- import ChatImageUpload from "./chat_ui/ ChatImageUpload" ;
52
- import ChatImageRenderer from "./chat_ui/ ChatImageRenderer" ;
53
- import { createChatMultimodalMessage , createChatDisplayMessage } from "./chat_ui/ ChatImageUtils" ;
54
- import SessionManagement from "./chat_ui/ SessionManagement" ;
55
- import MCPEventsDisplay , { MCPEvent } from "./chat_ui/ MCPEventsDisplay" ;
39
+ import EndpointSelector from "./EndpointSelector" ;
40
+ import TagSelector from ".. /tag_management/TagSelector" ;
41
+ import VectorStoreSelector from ".. /vector_store_management/VectorStoreSelector" ;
42
+ import GuardrailSelector from ".. /guardrails/GuardrailSelector" ;
43
+ import { determineEndpointType } from "./EndpointUtils" ;
44
+ import { generateCodeSnippet } from "./CodeSnippets" ;
45
+ import { MessageType } from "./types" ;
46
+ import ReasoningContent from "./ReasoningContent" ;
47
+ import ResponseMetrics , { TokenUsage } from "./ResponseMetrics" ;
48
+ import ResponsesImageUpload from "./ResponsesImageUpload" ;
49
+ import ResponsesImageRenderer from "./ResponsesImageRenderer" ;
50
+ import { convertImageToBase64 , createMultimodalMessage , createDisplayMessage } from "./ResponsesImageUtils" ;
51
+ import ChatImageUpload from "./ChatImageUpload" ;
52
+ import ChatImageRenderer from "./ChatImageRenderer" ;
53
+ import { createChatMultimodalMessage , createChatDisplayMessage } from "./ChatImageUtils" ;
54
+ import SessionManagement from "./SessionManagement" ;
55
+ import MCPEventsDisplay , { MCPEvent } from "./MCPEventsDisplay" ;
56
56
import {
57
57
SendOutlined ,
58
58
ApiOutlined ,
@@ -73,7 +73,7 @@ import {
73
73
FilePdfOutlined ,
74
74
ArrowUpOutlined
75
75
} from "@ant-design/icons" ;
76
- import NotificationsManager from "./molecules/notifications_manager" ;
76
+ import NotificationsManager from ".. /molecules/notifications_manager" ;
77
77
78
78
const { TextArea } = Input ;
79
79
const { Dragger } = Upload ;
@@ -282,13 +282,17 @@ const ChatUI: React.FC<ChatUIProps> = ({
282
282
) ;
283
283
284
284
console . log ( "Fetched models:" , uniqueModels ) ;
285
-
286
- if ( uniqueModels . length > 0 ) {
287
- setModelInfo ( uniqueModels ) ;
288
- if ( ! selectedModel ) {
289
- setSelectedModel ( uniqueModels [ 0 ] . model_group ) ;
290
- }
285
+
286
+ setModelInfo ( uniqueModels ) ;
287
+
288
+ // check for selection overlap or empty model list
289
+ const hasSelection = uniqueModels . some ( m => m . model_group === selectedModel ) ;
290
+ if ( ! uniqueModels . length ) {
291
+ setSelectedModel ( undefined ) ;
292
+ } else if ( ! hasSelection ) {
293
+ setSelectedModel ( uniqueModels [ 0 ] . model_group ) ;
291
294
}
295
+
292
296
} catch ( error ) {
293
297
console . error ( "Error fetching model info:" , error ) ;
294
298
}
0 commit comments