diff --git a/ui/litellm-dashboard/src/components/model_dashboard.tsx b/ui/litellm-dashboard/src/components/model_dashboard.tsx
index 89061d9169e..18e29ebd858 100644
--- a/ui/litellm-dashboard/src/components/model_dashboard.tsx
+++ b/ui/litellm-dashboard/src/components/model_dashboard.tsx
@@ -86,6 +86,8 @@ import type { UploadProps } from "antd";
import { Upload } from "antd";
import TimeToFirstToken from "./model_metrics/time_to_first_token";
import DynamicFields from "./model_add/dynamic_form";
+import { Prism as SyntaxHighlighter } from "react-syntax-highlighter";
+
interface ModelDashboardProps {
accessToken: string | null;
token: string | null;
@@ -269,6 +271,8 @@ const ModelDashboard: React.FC = ({
const [selectedProvider, setSelectedProvider] = useState("OpenAI");
const [healthCheckResponse, setHealthCheckResponse] = useState("");
const [editModalVisible, setEditModalVisible] = useState(false);
+ const [infoModalVisible, setInfoModalVisible] = useState(false);
+
const [selectedModel, setSelectedModel] = useState(null);
const [availableModelGroups, setAvailableModelGroups] = useState<
Array
@@ -297,6 +301,15 @@ const ModelDashboard: React.FC = ({
useState(null);
const [defaultRetry, setDefaultRetry] = useState(0);
+ function formatCreatedAt(createdAt: string | null) {
+ if (createdAt) {
+ const date = new Date(createdAt);
+ const options = { month: 'long', day: 'numeric', year: 'numeric' };
+ return date.toLocaleDateString('en-US');
+ }
+ return null;
+ }
+
const EditModelModal: React.FC = ({
visible,
onCancel,
@@ -423,11 +436,21 @@ const ModelDashboard: React.FC = ({
setEditModalVisible(true);
};
+ const handleInfoClick = (model: any) => {
+ setSelectedModel(model);
+ setInfoModalVisible(true);
+ };
+
const handleEditCancel = () => {
setEditModalVisible(false);
setSelectedModel(null);
};
+ const handleInfoCancel = () => {
+ setInfoModalVisible(false);
+ setSelectedModel(null);
+ };
+
const handleEditSubmit = async (formValues: Record) => {
// Call API to update team with teamId and values
@@ -1073,15 +1096,6 @@ const ModelDashboard: React.FC = ({
API Base
)}
-
- Extra litellm Params
-
= ({
/1M Tokens ($)
+
- Max Tokens
+ Created At
+
+
+ Created By
= ({
>
Status
+
+
+
@@ -1140,12 +1167,14 @@ const ModelDashboard: React.FC = ({
- {model.model_name}
+
+ {model.model_name}
+
= ({
wordBreak: "break-word",
}}
>
+
{model.provider}
+
{userRole === "Admin" && (
- {model.api_base}
-
- )}
-
-
-
- Litellm params
-
-
-
- {JSON.stringify(
- model.cleanedLitellmParams,
- null,
- 2
- )}
-
-
-
+
+
+ {model && model.api_base ? model.api_base.slice(0, 20) : null}
+
+
+
+ )}
= ({
model.litellm_params.output_cost_per_token ||
null}
-
-
- Max Tokens: {model.max_tokens}
- Max Input Tokens: {model.max_input_tokens}
+
+
+ {formatCreatedAt(model.model_info.created_at)}
+
+
+
+
+
+ {model.model_info.created_by}
= ({
size="xs"
className="text-white"
>
- DB Model
+ DB Model
) : (
= ({
size="xs"
className="text-black"
>
- Config Model
+ Config Model
)}
+
+
+ handleInfoClick(model)}
+ />
+
+
handleEditClick(model)}
/>
+
+
+
+
+
+
+
))}
@@ -1277,6 +1314,20 @@ const ModelDashboard: React.FC = ({
model={selectedModel}
onSubmit={handleEditSubmit}
/>
+
+
+ Model Info
+
+ {selectedModel && JSON.stringify(selectedModel, null, 2)}
+
+
+
Add new model