Skip to content

Commit 7cd0944

Browse files
Merge pull request #15197 from ARajan1084/release-1-77-7-test-key-model-selection-fix
fix: Test key view: state on model info update
2 parents 7a41094 + 06d50b5 commit 7cd0944

File tree

4 files changed

+42
-36
lines changed

4 files changed

+42
-36
lines changed

litellm/model_prices_and_context_window_backup.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7023,7 +7023,8 @@
70237023
"cache_read_input_token_cost": 2.16e-07,
70247024
"litellm_provider": "deepinfra",
70257025
"mode": "chat",
7026-
"supports_tool_choice": true
7026+
"supports_tool_choice": true,
7027+
"supports_reasoning": true
70277028
},
70287029
"deepinfra/deepseek-ai/DeepSeek-V3.1-Terminus": {
70297030
"max_tokens": 163840,

model_prices_and_context_window.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7023,7 +7023,8 @@
70237023
"cache_read_input_token_cost": 2.16e-07,
70247024
"litellm_provider": "deepinfra",
70257025
"mode": "chat",
7026-
"supports_tool_choice": true
7026+
"supports_tool_choice": true,
7027+
"supports_reasoning": true
70277028
},
70287029
"deepinfra/deepseek-ai/DeepSeek-V3.1-Terminus": {
70297030
"max_tokens": 163840,

ui/litellm-dashboard/src/app/page.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import SpendLogsTable from "@/components/view_logs"
2222
import ModelHubTable from "@/components/model_hub_table"
2323
import NewUsagePage from "@/components/new_usage"
2424
import APIRef from "@/components/api_ref"
25-
import ChatUI from "@/components/chat_ui"
25+
import ChatUI from "@/components/chat_ui/ChatUI"
2626
import Sidebar from "@/components/leftnav"
2727
import Usage from "@/components/usage"
2828
import CacheDashboard from "@/components/cache_dashboard"

ui/litellm-dashboard/src/components/chat_ui.tsx renamed to ui/litellm-dashboard/src/components/chat_ui/ChatUI.tsx

Lines changed: 37 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -25,34 +25,34 @@ import {
2525
import { v4 as uuidv4 } from 'uuid';
2626

2727
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";
3737
import { Prism as SyntaxHighlighter } from "react-syntax-highlighter";
3838
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";
5656
import {
5757
SendOutlined,
5858
ApiOutlined,
@@ -73,7 +73,7 @@ import {
7373
FilePdfOutlined,
7474
ArrowUpOutlined
7575
} from "@ant-design/icons";
76-
import NotificationsManager from "./molecules/notifications_manager";
76+
import NotificationsManager from "../molecules/notifications_manager";
7777

7878
const { TextArea } = Input;
7979
const { Dragger } = Upload;
@@ -282,13 +282,17 @@ const ChatUI: React.FC<ChatUIProps> = ({
282282
);
283283

284284
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);
291294
}
295+
292296
} catch (error) {
293297
console.error("Error fetching model info:", error);
294298
}

0 commit comments

Comments
 (0)