diff --git a/ui/litellm-dashboard/src/components/chat_ui/llm_calls/chat_completion.tsx b/ui/litellm-dashboard/src/components/chat_ui/llm_calls/chat_completion.tsx index f7810c07ce3..abe6e2bbf06 100644 --- a/ui/litellm-dashboard/src/components/chat_ui/llm_calls/chat_completion.tsx +++ b/ui/litellm-dashboard/src/components/chat_ui/llm_calls/chat_completion.tsx @@ -2,6 +2,7 @@ import openai from "openai"; import { ChatCompletionMessageParam } from "openai/resources/chat/completions"; import { message } from "antd"; import { TokenUsage } from "../ResponseMetrics"; +import { getProxyBaseUrl } from "@/components/networking"; export async function makeOpenAIChatCompletionRequest( chatHistory: { role: string; content: string }[], @@ -23,10 +24,7 @@ export async function makeOpenAIChatCompletionRequest( console.log = function () {}; } console.log("isLocal:", isLocal); - const proxyBaseUrl = isLocal - ? "http://localhost:4000" - : window.location.origin; - + const proxyBaseUrl = getProxyBaseUrl() // Prepare headers with tags and trace ID const headers: Record = {}; if (tags && tags.length > 0) { diff --git a/ui/litellm-dashboard/src/components/chat_ui/llm_calls/image_edits.tsx b/ui/litellm-dashboard/src/components/chat_ui/llm_calls/image_edits.tsx index 271d945e917..62f4d6bbbd1 100644 --- a/ui/litellm-dashboard/src/components/chat_ui/llm_calls/image_edits.tsx +++ b/ui/litellm-dashboard/src/components/chat_ui/llm_calls/image_edits.tsx @@ -1,5 +1,6 @@ import openai from "openai"; import { message } from "antd"; +import { getProxyBaseUrl } from "@/components/networking"; export async function makeOpenAIImageEditsRequest( imageFile: File, @@ -16,9 +17,7 @@ export async function makeOpenAIImageEditsRequest( console.log = function () {}; } console.log("isLocal:", isLocal); - const proxyBaseUrl = isLocal - ? "http://localhost:4000" - : window.location.origin; + const proxyBaseUrl = getProxyBaseUrl() const client = new openai.OpenAI({ apiKey: accessToken, diff --git a/ui/litellm-dashboard/src/components/chat_ui/llm_calls/image_generation.tsx b/ui/litellm-dashboard/src/components/chat_ui/llm_calls/image_generation.tsx index 254d9621ad4..1d03f82c16f 100644 --- a/ui/litellm-dashboard/src/components/chat_ui/llm_calls/image_generation.tsx +++ b/ui/litellm-dashboard/src/components/chat_ui/llm_calls/image_generation.tsx @@ -1,5 +1,6 @@ import openai from "openai"; import { message } from "antd"; +import { getProxyBaseUrl } from "@/components/networking"; export async function makeOpenAIImageGenerationRequest( prompt: string, @@ -15,9 +16,7 @@ export async function makeOpenAIImageGenerationRequest( console.log = function () {}; } console.log("isLocal:", isLocal); - const proxyBaseUrl = isLocal - ? "http://localhost:4000" - : window.location.origin; + const proxyBaseUrl = getProxyBaseUrl() const client = new openai.OpenAI({ apiKey: accessToken, baseURL: proxyBaseUrl, diff --git a/ui/litellm-dashboard/src/components/chat_ui/llm_calls/responses_api.tsx b/ui/litellm-dashboard/src/components/chat_ui/llm_calls/responses_api.tsx index 7ebf53a2724..9882e91c17b 100644 --- a/ui/litellm-dashboard/src/components/chat_ui/llm_calls/responses_api.tsx +++ b/ui/litellm-dashboard/src/components/chat_ui/llm_calls/responses_api.tsx @@ -2,6 +2,7 @@ import openai from "openai"; import { message } from "antd"; import { MessageType } from "../types"; import { TokenUsage } from "../ResponseMetrics"; +import { getProxyBaseUrl } from "@/components/networking"; export async function makeOpenAIResponsesRequest( messages: MessageType[], @@ -27,10 +28,7 @@ export async function makeOpenAIResponsesRequest( console.log = function () {}; } - const proxyBaseUrl = isLocal - ? "http://localhost:4000" - : window.location.origin; - + const proxyBaseUrl = getProxyBaseUrl() // Prepare headers with tags and trace ID const headers: Record = {}; if (tags && tags.length > 0) { diff --git a/ui/litellm-dashboard/src/components/create_user_button.tsx b/ui/litellm-dashboard/src/components/create_user_button.tsx index 90eae5eac9e..8db7b519a66 100644 --- a/ui/litellm-dashboard/src/components/create_user_button.tsx +++ b/ui/litellm-dashboard/src/components/create_user_button.tsx @@ -18,6 +18,7 @@ import { modelAvailableCall, invitationCreateCall, getProxyUISettings, + getProxyBaseUrl, } from "./networking"; import BulkCreateUsers from "./bulk_create_users_button"; const { Option } = Select; @@ -61,10 +62,7 @@ const Createuser: React.FC = ({ useState(false); const [invitationLinkData, setInvitationLinkData] = useState(null); - const router = useRouter(); - const isLocal = process.env.NODE_ENV === "development"; - - const [baseUrl, setBaseUrl] = useState("http://localhost:4000"); + const baseUrl = getProxyBaseUrl(); // get all models useEffect(() => { const fetchData = async () => { @@ -100,14 +98,6 @@ const Createuser: React.FC = ({ fetchData(); // Call the function to fetch model data when the component mounts }, []); // Empty dependency array to run only once - useEffect(() => { - if (!router) { - return; - } - - const base = new URL("/", window.location.href); - setBaseUrl(base.toString()); - }, [router]); const handleOk = () => { setIsModalVisible(false); form.resetFields(); diff --git a/ui/litellm-dashboard/src/components/navbar.tsx b/ui/litellm-dashboard/src/components/navbar.tsx index b64f72c5475..80c48dbdd47 100644 --- a/ui/litellm-dashboard/src/components/navbar.tsx +++ b/ui/litellm-dashboard/src/components/navbar.tsx @@ -2,7 +2,7 @@ import Link from "next/link"; import React, { useState, useEffect } from "react"; import type { MenuProps } from "antd"; import { Dropdown } from "antd"; -import { Organization } from "@/components/networking"; +import { getProxyBaseUrl, Organization } from "@/components/networking"; import { defaultOrg } from "@/components/common_components/default_org"; import { UserOutlined, @@ -30,8 +30,8 @@ const Navbar: React.FC = ({ setProxySettings, accessToken, }) => { - const isLocal = process.env.NODE_ENV === "development"; - const imageUrl = isLocal ? "http://localhost:4000/get_image" : "/get_image"; + const baseUrl = getProxyBaseUrl(); + const imageUrl = baseUrl + "/get_image"; const [logoutUrl, setLogoutUrl] = useState(""); useEffect(() => { diff --git a/ui/litellm-dashboard/src/components/networking.tsx b/ui/litellm-dashboard/src/components/networking.tsx index f4761bda731..d4506a8f603 100644 --- a/ui/litellm-dashboard/src/components/networking.tsx +++ b/ui/litellm-dashboard/src/components/networking.tsx @@ -19,6 +19,10 @@ export const updateProxyBaseUrl = (serverRootPath: string) => { proxyBaseUrl += serverRootPath; }; +export const getProxyBaseUrl = () => { + return proxyBaseUrl; +}; + const HTTP_REQUEST = { GET: "GET", POST: "POST", diff --git a/ui/litellm-dashboard/src/components/request_model_access.tsx b/ui/litellm-dashboard/src/components/request_model_access.tsx index 22fcafa4e41..c884d03b2c6 100644 --- a/ui/litellm-dashboard/src/components/request_model_access.tsx +++ b/ui/litellm-dashboard/src/components/request_model_access.tsx @@ -12,11 +12,7 @@ interface RequestAccessProps { accessToken: string; userID: string; } -const isLocal = process.env.NODE_ENV === "development"; -const proxyBaseUrl = isLocal ? "http://localhost:4000" : null; -if (isLocal != true) { - console.log = function() {}; -} + function onRequestAccess(formData: Record): void { // This function does nothing for now } diff --git a/ui/litellm-dashboard/src/components/settings.tsx b/ui/litellm-dashboard/src/components/settings.tsx index 4d9bcfe269d..50831adfdd6 100644 --- a/ui/litellm-dashboard/src/components/settings.tsx +++ b/ui/litellm-dashboard/src/components/settings.tsx @@ -35,11 +35,7 @@ import { Modal, Typography, Form, Input, Select, Button as Button2, message } fr import EmailSettings from "./email_settings"; const { Title, Paragraph } = Typography; -const isLocal = process.env.NODE_ENV === "development"; -const proxyBaseUrl = isLocal ? "http://localhost:4000" : null; -if (isLocal != true) { - console.log = function() {}; -} + import { getCallbacksCall, setCallbacksCall, diff --git a/ui/litellm-dashboard/src/components/teams.tsx b/ui/litellm-dashboard/src/components/teams.tsx index 6ad6b73b360..cc8b4220cc6 100644 --- a/ui/litellm-dashboard/src/components/teams.tsx +++ b/ui/litellm-dashboard/src/components/teams.tsx @@ -60,11 +60,7 @@ import AvailableTeamsPanel from "@/components/team/available_teams"; import VectorStoreSelector from "./vector_store_management/VectorStoreSelector"; import PremiumVectorStoreSelector from "./common_components/PremiumVectorStoreSelector"; import type { KeyResponse, Team } from "./key_team_helpers/key_list"; -const isLocal = process.env.NODE_ENV === "development"; -const proxyBaseUrl = isLocal ? "http://localhost:4000" : null; -if (isLocal != true) { - console.log = function() {}; -} + interface TeamProps { teams: Team[] | null; searchParams: any; diff --git a/ui/litellm-dashboard/src/components/usage.tsx b/ui/litellm-dashboard/src/components/usage.tsx index 0f4b46195aa..385e9386021 100644 --- a/ui/litellm-dashboard/src/components/usage.tsx +++ b/ui/litellm-dashboard/src/components/usage.tsx @@ -41,11 +41,6 @@ import { import { start } from "repl"; import TopKeyView from "./top_key_view"; console.log("process.env.NODE_ENV", process.env.NODE_ENV); -const isLocal = process.env.NODE_ENV === "development"; -const proxyBaseUrl = isLocal ? "http://localhost:4000" : null; -if (isLocal !== true) { - console.log = function() {}; -} interface UsagePageProps { accessToken: string | null; diff --git a/ui/litellm-dashboard/src/components/user_dashboard.tsx b/ui/litellm-dashboard/src/components/user_dashboard.tsx index 576cd4f1c2c..b32951f5dbc 100644 --- a/ui/litellm-dashboard/src/components/user_dashboard.tsx +++ b/ui/litellm-dashboard/src/components/user_dashboard.tsx @@ -8,7 +8,8 @@ import { Organization, organizationListCall, DEFAULT_ORGANIZATION, - keyInfoCall + keyInfoCall, + getProxyBaseUrl } from "./networking"; import { fetchTeams } from "./common_components/fetch_teams"; import { Grid, Col, Card, Text, Title } from "@tremor/react"; @@ -23,12 +24,6 @@ import { Team } from "./key_team_helpers/key_list"; import { jwtDecode } from "jwt-decode"; import { Typography } from "antd"; import { clearTokenCookies } from "@/utils/cookieUtils"; -const isLocal = process.env.NODE_ENV === "development"; -if (isLocal != true) { - console.log = function() {}; -} -console.log("isLocal:", isLocal); -const proxyBaseUrl = isLocal ? "http://localhost:4000" : null; export interface ProxySettings { PROXY_BASE_URL: string | null; @@ -326,10 +321,12 @@ const UserDashboard: React.FC = ({ // Clear token cookies using the utility function clearTokenCookies(); - console.log("proxyBaseUrl:", proxyBaseUrl); + const baseUrl = getProxyBaseUrl(); + + console.log("proxyBaseUrl:", baseUrl); - const url = proxyBaseUrl - ? `${proxyBaseUrl}/litellm/sso/key/generate` + const url = baseUrl + ? `${baseUrl}/sso/key/generate` : `/sso/key/generate`; console.log("Full URL:", url); diff --git a/ui/litellm-dashboard/src/components/view_key_table.tsx b/ui/litellm-dashboard/src/components/view_key_table.tsx index c6f801b4911..c1efc2f15c0 100644 --- a/ui/litellm-dashboard/src/components/view_key_table.tsx +++ b/ui/litellm-dashboard/src/components/view_key_table.tsx @@ -73,12 +73,6 @@ import { AllKeysTable } from "./all_keys_table"; import { Team } from "./key_team_helpers/key_list"; import { Setter } from "@/types"; -const isLocal = process.env.NODE_ENV === "development"; -const proxyBaseUrl = isLocal ? "http://localhost:4000" : null; -if (isLocal != true) { - console.log = function () {}; -} - interface EditKeyModalProps { visible: boolean; onCancel: () => void; diff --git a/ui/litellm-dashboard/src/components/view_user_spend.tsx b/ui/litellm-dashboard/src/components/view_user_spend.tsx index b734239f20c..30a55a943ad 100644 --- a/ui/litellm-dashboard/src/components/view_user_spend.tsx +++ b/ui/litellm-dashboard/src/components/view_user_spend.tsx @@ -23,11 +23,6 @@ import { } from "@tremor/react"; import { Statistic } from "antd" import { spendUsersCall, modelAvailableCall } from "./networking"; -const isLocal = process.env.NODE_ENV === "development"; -const proxyBaseUrl = isLocal ? "http://localhost:4000" : null; -if (isLocal != true) { - console.log = function() {}; -} // Define the props type interface UserSpendData { diff --git a/ui/litellm-dashboard/src/components/view_user_team.tsx b/ui/litellm-dashboard/src/components/view_user_team.tsx index bc480af0878..eb846f98f65 100644 --- a/ui/litellm-dashboard/src/components/view_user_team.tsx +++ b/ui/litellm-dashboard/src/components/view_user_team.tsx @@ -21,11 +21,6 @@ import { } from "@tremor/react"; import { Statistic } from "antd" import { modelAvailableCall } from "./networking"; -const isLocal = process.env.NODE_ENV === "development"; -const proxyBaseUrl = isLocal ? "http://localhost:4000" : null; -if (isLocal != true) { - console.log = function() {}; -} interface ViewUserTeamProps { userID: string | null; diff --git a/ui/litellm-dashboard/src/components/view_users.tsx b/ui/litellm-dashboard/src/components/view_users.tsx index 8bf6fd3efed..590d16891bd 100644 --- a/ui/litellm-dashboard/src/components/view_users.tsx +++ b/ui/litellm-dashboard/src/components/view_users.tsx @@ -55,11 +55,6 @@ interface FilterState { sort_order: 'asc' | 'desc'; } -const isLocal = process.env.NODE_ENV === "development"; -const proxyBaseUrl = isLocal ? "http://localhost:4000" : null; -if (isLocal != true) { - console.log = function() {}; -} const DEFAULT_PAGE_SIZE = 25;