mirror of
https://github.com/BerriAI/litellm.git
synced 2026-08-28 05:25:59 +00:00
chore(ui): remove debug console.log statements from dashboard (#32087)
* chore(ui): remove debug console.log statements from dashboard
Delete 463 leftover console.log/console.debug calls across 87 files in the
Admin dashboard. These logged form payloads, API responses, and render
traces into every user's browser console.
The ESLint policy already encodes the intent (no-console allows only warn
and error), so those are kept, along with the console.log = function(){}
suppression reassignments and the console.log calls that live inside
string/template literals rendered as example code snippets.
Removal used an AST codemod so only standalone console.log/console.debug
expression statements were dropped; non-statement uses (no-op chart
onValueChange props, a placeholder onClick, and a sequence-expression in
TopKeyView) were handled by hand. Ratchets the no-console lint metric from
484 to 15.
* chore(ui): drop empty blocks left after console.log removal
Greptile flagged three empty control-flow blocks (an if and an else in
chat_completion.tsx, an else in networking.tsx) left behind when their
only content was a deleted console.log. Removes those plus one more empty
if in chat_completion.tsx's catch that the review missed.
* test(ui): drop provider_info_helpers test asserting debug log
The getProviderModels debug console.log calls were removed in this PR, so
the test asserting they fire no longer applies. Remove that test and its
now-unused console.log spy; the remaining 57 tests still cover the
function's actual return-value behavior.
This commit is contained in:
parent
1e7dbe52c1
commit
aca2428d3c
89 changed files with 25 additions and 645 deletions
|
|
@ -2,5 +2,5 @@
|
|||
"@typescript-eslint/no-explicit-any": 1991,
|
||||
"complexity": 128,
|
||||
"max-depth": 59,
|
||||
"no-console": 484
|
||||
"no-console": 15
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,9 +38,7 @@ export function AccessGroupCreateModal({ visible, onCancel, onSuccess }: AccessG
|
|||
},
|
||||
});
|
||||
})
|
||||
.catch((info) => {
|
||||
console.log("Validate Failed:", info);
|
||||
});
|
||||
.catch((info) => {});
|
||||
};
|
||||
|
||||
return (
|
||||
|
|
|
|||
|
|
@ -52,9 +52,7 @@ export function AccessGroupEditModal({ visible, accessGroup, onCancel, onSuccess
|
|||
},
|
||||
);
|
||||
})
|
||||
.catch((info) => {
|
||||
console.log("Validate Failed:", info);
|
||||
});
|
||||
.catch((info) => {});
|
||||
};
|
||||
|
||||
return (
|
||||
|
|
|
|||
|
|
@ -150,7 +150,6 @@ const CacheDashboard: React.FC<CachePageProps> = ({ accessToken, token, userRole
|
|||
};
|
||||
|
||||
useEffect(() => {
|
||||
console.log("DATA IN CACHE DASHBOARD", data);
|
||||
let newData: cacheDataItem[] = data;
|
||||
if (selectedApiKeys.length > 0) {
|
||||
newData = newData.filter((item) => selectedApiKeys.includes(item.api_key));
|
||||
|
|
@ -180,16 +179,11 @@ const CacheDashboard: React.FC<CachePageProps> = ({ accessToken, token, userRole
|
|||
// }
|
||||
// ]
|
||||
|
||||
console.log("before processed data in cache dashboard", newData);
|
||||
|
||||
let llm_api_requests = 0;
|
||||
let cache_hits = 0;
|
||||
let cached_tokens = 0;
|
||||
const processedData = newData.reduce((acc: uiData[], item) => {
|
||||
console.log("Processing item:", item);
|
||||
|
||||
if (!item.call_type) {
|
||||
console.log("Item has no call_type:", item);
|
||||
item.call_type = "Unknown";
|
||||
}
|
||||
|
||||
|
|
@ -227,8 +221,6 @@ const CacheDashboard: React.FC<CachePageProps> = ({ accessToken, token, userRole
|
|||
}
|
||||
|
||||
setFilteredData(processedData);
|
||||
|
||||
console.log("PROCESSED DATA IN CACHE DASHBOARD", processedData);
|
||||
}, [selectedApiKeys, selectedModels, dateValue, data]);
|
||||
|
||||
const handleRefreshClick = () => {
|
||||
|
|
@ -242,7 +234,6 @@ const CacheDashboard: React.FC<CachePageProps> = ({ accessToken, token, userRole
|
|||
NotificationsManager.info("Running cache health check...");
|
||||
setHealthCheckResponse("");
|
||||
const response = await cachingHealthCheckCall(accessToken !== null ? accessToken : "");
|
||||
console.log("CACHING HEALTH CHECK RESPONSE", response);
|
||||
setHealthCheckResponse(response);
|
||||
} catch (error: any) {
|
||||
console.error("Error running health check:", error);
|
||||
|
|
|
|||
|
|
@ -24,23 +24,16 @@ const SidebarProvider = ({ setPage, defaultSelectedKey, sidebarCollapsed }: Side
|
|||
useEffect(() => {
|
||||
const fetchUISettings = async () => {
|
||||
if (!accessToken) {
|
||||
console.log("[SidebarProvider] No access token, skipping UI settings fetch");
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
console.log("[SidebarProvider] Fetching UI settings from /get/ui_settings");
|
||||
const settings = await getUISettings(accessToken);
|
||||
console.log("[SidebarProvider] UI settings response:", settings);
|
||||
|
||||
// API returns 'values' not 'settings'
|
||||
if (settings?.values?.enabled_ui_pages_internal_users !== undefined) {
|
||||
console.log("[SidebarProvider] Setting enabled pages:", settings.values.enabled_ui_pages_internal_users);
|
||||
setEnabledPagesInternalUsers(settings.values.enabled_ui_pages_internal_users);
|
||||
} else {
|
||||
console.log(
|
||||
"[SidebarProvider] No enabled_ui_pages_internal_users in response (all pages visible by default)",
|
||||
);
|
||||
}
|
||||
|
||||
if (settings?.values?.enable_projects_ui !== undefined) {
|
||||
|
|
|
|||
|
|
@ -90,7 +90,6 @@ const keyListCall = async (accessToken: string, page: number, pageSize: number,
|
|||
}
|
||||
|
||||
const data = await response.json();
|
||||
console.log("/key/list API Response:", data);
|
||||
return data;
|
||||
} catch (error) {
|
||||
console.error("Failed to list keys:", error);
|
||||
|
|
|
|||
|
|
@ -34,8 +34,6 @@ const getRouterFields = async (accessToken: string): Promise<RouterFieldsRespons
|
|||
try {
|
||||
const url = proxyBaseUrl ? `${proxyBaseUrl}/router/fields` : `/router/fields`;
|
||||
|
||||
console.log("Fetching router fields from:", url);
|
||||
|
||||
const response = await fetch(url, {
|
||||
method: "GET",
|
||||
headers: {
|
||||
|
|
@ -51,7 +49,6 @@ const getRouterFields = async (accessToken: string): Promise<RouterFieldsRespons
|
|||
}
|
||||
|
||||
const data: RouterFieldsResponse = await response.json();
|
||||
console.log("Fetched router fields:", data);
|
||||
return data;
|
||||
} catch (error) {
|
||||
console.error("Failed to fetch router fields:", error);
|
||||
|
|
|
|||
|
|
@ -77,7 +77,6 @@ export const teamListCall = async (
|
|||
}
|
||||
|
||||
const data = await response.json();
|
||||
console.log("/v2/team/list API Response:", data);
|
||||
return data;
|
||||
} catch (error) {
|
||||
console.error("Failed to list teams:", error);
|
||||
|
|
@ -225,7 +224,6 @@ const deletedTeamListCall = async (
|
|||
}
|
||||
|
||||
const data = await response.json();
|
||||
console.log("/team/list?status=deleted API Response:", data);
|
||||
|
||||
// Extract teams array from response if it's wrapped in a response object
|
||||
// Otherwise return the data directly if it's already an array
|
||||
|
|
|
|||
|
|
@ -387,7 +387,6 @@ const ChatUI: React.FC<ChatUIProps> = ({
|
|||
useEffect(() => {
|
||||
let userApiKey = apiKeySource === "session" ? accessToken : apiKey;
|
||||
if (!userApiKey || !token || !userRole || !userID) {
|
||||
console.log("userApiKey or token or userRole or userID is missing = ", userApiKey, token, userRole, userID);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -395,13 +394,10 @@ const ChatUI: React.FC<ChatUIProps> = ({
|
|||
const loadModels = async () => {
|
||||
try {
|
||||
if (!userApiKey) {
|
||||
console.log("userApiKey is missing");
|
||||
return;
|
||||
}
|
||||
const uniqueModels = await fetchAvailableModels(userApiKey);
|
||||
|
||||
console.log("Fetched models:", uniqueModels);
|
||||
|
||||
setModelInfo(uniqueModels);
|
||||
|
||||
// check for selection overlap or empty model list
|
||||
|
|
@ -960,7 +956,6 @@ const ChatUI: React.FC<ChatUIProps> = ({
|
|||
}
|
||||
} catch (error) {
|
||||
if (signal.aborted) {
|
||||
console.log("Request was cancelled");
|
||||
} else {
|
||||
console.error("Error fetching response", error);
|
||||
updateTextUI("assistant", "Error fetching response:" + error);
|
||||
|
|
@ -1009,7 +1004,6 @@ const ChatUI: React.FC<ChatUIProps> = ({
|
|||
}
|
||||
|
||||
const onModelChange = (value: string) => {
|
||||
console.log(`selected ${value}`);
|
||||
setSelectedModel(value);
|
||||
|
||||
setShowCustomModelInput(value === "custom");
|
||||
|
|
|
|||
|
|
@ -226,7 +226,6 @@ export const makeA2ASendMessageRequest = async (
|
|||
}
|
||||
} catch (error) {
|
||||
if (signal?.aborted) {
|
||||
console.log("A2A request was cancelled");
|
||||
return;
|
||||
}
|
||||
console.error("A2A send message error:", error);
|
||||
|
|
@ -407,7 +406,6 @@ export const makeA2AStreamMessageRequest = async (
|
|||
}
|
||||
} catch (error) {
|
||||
if (signal?.aborted) {
|
||||
console.log("A2A streaming request was cancelled");
|
||||
return;
|
||||
}
|
||||
console.error("A2A stream message error:", error);
|
||||
|
|
|
|||
|
|
@ -66,8 +66,6 @@ export async function makeAnthropicMessagesRequest(
|
|||
const stream = client.messages.stream(requestBody, { signal });
|
||||
|
||||
for await (const messageStreamEvent of stream) {
|
||||
console.log("Stream event:", messageStreamEvent);
|
||||
|
||||
// Process content block deltas
|
||||
if (messageStreamEvent.type === "content_block_delta") {
|
||||
const delta = messageStreamEvent.delta;
|
||||
|
|
@ -76,7 +74,6 @@ export async function makeAnthropicMessagesRequest(
|
|||
if (!firstTokenReceived) {
|
||||
firstTokenReceived = true;
|
||||
const timeToFirstToken = Date.now() - startTime;
|
||||
console.log("First token received! Time:", timeToFirstToken, "ms");
|
||||
if (onTimingData) {
|
||||
onTimingData(timeToFirstToken);
|
||||
}
|
||||
|
|
@ -96,7 +93,6 @@ export async function makeAnthropicMessagesRequest(
|
|||
// Process usage data from message_delta events
|
||||
if (messageStreamEvent.type === "message_delta" && (messageStreamEvent as any).usage && onUsageData) {
|
||||
const usage = (messageStreamEvent as any).usage;
|
||||
console.log("Usage data found:", usage);
|
||||
const usageData: TokenUsage = {
|
||||
completionTokens: usage.output_tokens,
|
||||
promptTokens: usage.input_tokens,
|
||||
|
|
@ -107,7 +103,6 @@ export async function makeAnthropicMessagesRequest(
|
|||
}
|
||||
} catch (error) {
|
||||
if (signal?.aborted) {
|
||||
console.log("Anthropic messages request was cancelled");
|
||||
} else {
|
||||
NotificationManager.fromBackend(
|
||||
`Error occurred while generating model response. Please try again. Error: ${error}`,
|
||||
|
|
|
|||
|
|
@ -20,7 +20,6 @@ export async function makeOpenAIAudioSpeechRequest(
|
|||
if (isLocal !== true) {
|
||||
console.log = function () {};
|
||||
}
|
||||
console.log("isLocal:", isLocal);
|
||||
const proxyBaseUrl = customBaseUrl || getProxyBaseUrl();
|
||||
const client = new openai.OpenAI({
|
||||
apiKey: accessToken,
|
||||
|
|
@ -49,7 +48,6 @@ export async function makeOpenAIAudioSpeechRequest(
|
|||
updateUI(audioUrl, selectedModel);
|
||||
} catch (error) {
|
||||
if (signal?.aborted) {
|
||||
console.log("Audio speech request was cancelled");
|
||||
} else {
|
||||
NotificationManager.fromBackend(`Error occurred while generating speech. Please try again. Error: ${error}`);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,7 +20,6 @@ export async function makeOpenAIAudioTranscriptionRequest(
|
|||
if (isLocal !== true) {
|
||||
console.log = function () {};
|
||||
}
|
||||
console.log("isLocal:", isLocal);
|
||||
const proxyBaseUrl = customBaseUrl || getProxyBaseUrl();
|
||||
|
||||
const client = new openai.OpenAI({
|
||||
|
|
@ -31,8 +30,6 @@ export async function makeOpenAIAudioTranscriptionRequest(
|
|||
});
|
||||
|
||||
try {
|
||||
console.log("Processing audio file for transcription:", audioFile.name);
|
||||
|
||||
const response = await client.audio.transcriptions.create(
|
||||
{
|
||||
model: selectedModel,
|
||||
|
|
@ -45,8 +42,6 @@ export async function makeOpenAIAudioTranscriptionRequest(
|
|||
{ signal },
|
||||
);
|
||||
|
||||
console.log("Transcription response:", response);
|
||||
|
||||
// The response is a transcription object with a text field
|
||||
if (response && response.text) {
|
||||
updateUI(response.text, selectedModel);
|
||||
|
|
@ -58,7 +53,6 @@ export async function makeOpenAIAudioTranscriptionRequest(
|
|||
console.error("Error making audio transcription request:", error);
|
||||
|
||||
if (signal?.aborted) {
|
||||
console.log("Audio transcription request was cancelled");
|
||||
} else {
|
||||
let errorMessage = "Failed to transcribe audio";
|
||||
|
||||
|
|
|
|||
|
|
@ -57,7 +57,6 @@ export const fetchAvailableAgents = async (accessToken: string, customBaseUrl?:
|
|||
}
|
||||
|
||||
const agents: Agent[] = await response.json();
|
||||
console.log("Fetched agents:", agents);
|
||||
|
||||
// Sort agents alphabetically by name
|
||||
agents.sort((a, b) => {
|
||||
|
|
|
|||
|
|
@ -17,7 +17,6 @@ export async function makeOpenAIImageEditsRequest(
|
|||
if (isLocal !== true) {
|
||||
console.log = function () {};
|
||||
}
|
||||
console.log("isLocal:", isLocal);
|
||||
const proxyBaseUrl = customBaseUrl || getProxyBaseUrl();
|
||||
|
||||
const client = new openai.OpenAI({
|
||||
|
|
@ -37,7 +36,6 @@ export async function makeOpenAIImageEditsRequest(
|
|||
|
||||
for (let i = 0; i < imagesToProcess.length; i++) {
|
||||
const image = imagesToProcess[i];
|
||||
console.log(`Processing image ${i + 1} of ${imagesToProcess.length}`);
|
||||
|
||||
const response = await client.images.edit(
|
||||
{
|
||||
|
|
@ -48,8 +46,6 @@ export async function makeOpenAIImageEditsRequest(
|
|||
{ signal },
|
||||
);
|
||||
|
||||
console.log(`Response for image ${i + 1}:`, response.data);
|
||||
|
||||
if (response.data && response.data[0]) {
|
||||
// Handle either URL or base64 data from response
|
||||
if (response.data[0].url) {
|
||||
|
|
@ -73,7 +69,6 @@ export async function makeOpenAIImageEditsRequest(
|
|||
console.error("Error making image edit request:", error);
|
||||
|
||||
if (signal?.aborted) {
|
||||
console.log("Image edits request was cancelled");
|
||||
} else {
|
||||
let errorMessage = "Failed to edit image(s)";
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,6 @@ export async function makeOpenAIImageGenerationRequest(
|
|||
if (isLocal !== true) {
|
||||
console.log = function () {};
|
||||
}
|
||||
console.log("isLocal:", isLocal);
|
||||
const proxyBaseUrl = customBaseUrl || getProxyBaseUrl();
|
||||
const client = new openai.OpenAI({
|
||||
apiKey: accessToken,
|
||||
|
|
@ -34,8 +33,6 @@ export async function makeOpenAIImageGenerationRequest(
|
|||
{ signal },
|
||||
);
|
||||
|
||||
console.log(response.data);
|
||||
|
||||
if (response.data && response.data[0]) {
|
||||
// Handle either URL or base64 data from response
|
||||
if (response.data[0].url) {
|
||||
|
|
@ -53,7 +50,6 @@ export async function makeOpenAIImageGenerationRequest(
|
|||
}
|
||||
} catch (error) {
|
||||
if (signal?.aborted) {
|
||||
console.log("Image generation request was cancelled");
|
||||
} else {
|
||||
NotificationManager.fromBackend(`Error occurred while generating image. Please try again. Error: ${error}`);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -113,7 +113,6 @@ export async function makeInteractionsRequest(
|
|||
}
|
||||
} catch (error: unknown) {
|
||||
if (signal?.aborted) {
|
||||
console.log("Interactions request was cancelled");
|
||||
throw error;
|
||||
}
|
||||
NotificationManager.fromBackend(`Error occurred while making Interactions API request. Error: ${error}`);
|
||||
|
|
|
|||
|
|
@ -38,7 +38,6 @@ const AddPromptForm: React.FC<AddPromptFormProps> = ({ visible, onClose, accessT
|
|||
try {
|
||||
const values = await form.validateFields();
|
||||
|
||||
console.log("values: ", values);
|
||||
if (!accessToken) {
|
||||
NotificationsManager.fromBackend("Access token is required");
|
||||
return;
|
||||
|
|
@ -59,7 +58,6 @@ const AddPromptForm: React.FC<AddPromptFormProps> = ({ visible, onClose, accessT
|
|||
|
||||
try {
|
||||
const conversionResult = await convertPromptFileToJson(accessToken, file);
|
||||
console.log("Conversion result:", conversionResult);
|
||||
|
||||
// Prepare prompt data for creation
|
||||
promptData = {
|
||||
|
|
|
|||
|
|
@ -38,7 +38,6 @@ const PromptsPanel: React.FC<PromptsProps> = ({ accessToken, userRole }) => {
|
|||
setIsLoading(true);
|
||||
try {
|
||||
const response: ListPromptsResponse = await getPromptsList(accessToken, selectedEnvironment);
|
||||
console.log(`prompts: ${JSON.stringify(response)}`);
|
||||
setPromptsList(response.prompts);
|
||||
} catch (error) {
|
||||
console.error("Error fetching prompts:", error);
|
||||
|
|
|
|||
|
|
@ -177,7 +177,6 @@ export const useConversation = (prompt: any, accessToken: string | null) => {
|
|||
});
|
||||
} catch (error: any) {
|
||||
if (error.name === "AbortError") {
|
||||
console.log("Request was cancelled");
|
||||
} else {
|
||||
console.error("Error testing prompt:", error);
|
||||
setMessages((prev) => {
|
||||
|
|
|
|||
|
|
@ -100,8 +100,6 @@ const CreateSearchTool: React.FC<CreateSearchToolProps> = ({
|
|||
: undefined,
|
||||
};
|
||||
|
||||
console.log(`Creating search tool with payload:`, payload);
|
||||
|
||||
if (accessToken != null) {
|
||||
const response = await createSearchTool(accessToken, payload);
|
||||
|
||||
|
|
|
|||
|
|
@ -194,7 +194,6 @@ const SearchTools: React.FC<SearchToolsProps> = ({ accessToken, userRole, userID
|
|||
);
|
||||
|
||||
if (!accessToken || !userRole || !userID) {
|
||||
console.log("Missing required authentication parameters", { accessToken, userRole, userID });
|
||||
return <div className="p-6 text-center text-gray-500">Missing required authentication parameters.</div>;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -69,7 +69,6 @@ const BulkEditUserModal: React.FC<BulkEditUserModalProps> = ({
|
|||
);
|
||||
|
||||
const handleSubmit = async (formValues: any) => {
|
||||
console.log("formValues", formValues);
|
||||
if (!accessToken) {
|
||||
NotificationsManager.fromBackend("Access token not found");
|
||||
return;
|
||||
|
|
@ -150,8 +149,6 @@ const BulkEditUserModal: React.FC<BulkEditUserModalProps> = ({
|
|||
updateAllUsers,
|
||||
);
|
||||
|
||||
console.log("result", result);
|
||||
|
||||
teamResults.push({
|
||||
teamId,
|
||||
success: true,
|
||||
|
|
|
|||
|
|
@ -120,7 +120,6 @@ const ViewUserDashboard: React.FC<ViewUserDashboardProps> = ({
|
|||
|
||||
const model_available = await modelAvailableCall(accessToken, userID, userRole);
|
||||
let available_model_names = model_available["data"].map((element: { id: string }) => element.id);
|
||||
console.log("available_model_names:", available_model_names);
|
||||
setUserModels(available_model_names);
|
||||
} catch (error) {
|
||||
console.error("Error fetching user models:", error);
|
||||
|
|
@ -193,8 +192,6 @@ const ViewUserDashboard: React.FC<ViewUserDashboardProps> = ({
|
|||
};
|
||||
|
||||
const handleEditSubmit = async (editedUser: any) => {
|
||||
console.log("inside handleEditSubmit:", editedUser);
|
||||
|
||||
if (!accessToken || !token || !userRole || !userID) {
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -97,7 +97,6 @@ export default function UserInfoView({
|
|||
}, []);
|
||||
|
||||
React.useEffect(() => {
|
||||
console.log(`userId: ${userId}, userRole: ${userRole}, accessToken: ${accessToken}`);
|
||||
const fetchData = async () => {
|
||||
try {
|
||||
if (!accessToken) return;
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ function PublicModelHubTableContent() {
|
|||
const searchParams = useSearchParams()!;
|
||||
const key = searchParams.get("key");
|
||||
const [accessToken, setAccessToken] = useState<string | null>(null);
|
||||
console.log("PublicModelHubTable accessToken:", accessToken);
|
||||
|
||||
useEffect(() => {
|
||||
if (!key) {
|
||||
|
|
|
|||
|
|
@ -120,12 +120,10 @@ const ModelHubTable: React.FC<ModelHubTableProps> = ({ accessToken, publicPage,
|
|||
try {
|
||||
setLoading(true);
|
||||
const _modelHubData = await modelHubCall(accessToken);
|
||||
console.log("ModelHubData:", _modelHubData);
|
||||
setModelHubData(_modelHubData.data);
|
||||
|
||||
getConfigFieldSetting(accessToken, "enable_public_model_hub")
|
||||
.then((data) => {
|
||||
console.log(`data: ${JSON.stringify(data)}`);
|
||||
if (data.field_value == true) {
|
||||
setPublicPageAllowed(true);
|
||||
}
|
||||
|
|
@ -145,10 +143,6 @@ const ModelHubTable: React.FC<ModelHubTableProps> = ({ accessToken, publicPage,
|
|||
setLoading(true);
|
||||
await getUiConfig();
|
||||
const _modelHubData = await modelHubPublicModelsCall();
|
||||
console.log("ModelHubData:", _modelHubData);
|
||||
console.log("First model structure:", _modelHubData[0]);
|
||||
console.log("Model has model_group?", _modelHubData[0]?.model_group);
|
||||
console.log("Model has providers?", _modelHubData[0]?.providers);
|
||||
setModelHubData(_modelHubData);
|
||||
setPublicPageAllowed(true);
|
||||
} catch (error) {
|
||||
|
|
@ -175,7 +169,6 @@ const ModelHubTable: React.FC<ModelHubTableProps> = ({ accessToken, publicPage,
|
|||
try {
|
||||
setAgentLoading(true);
|
||||
const response = await getAgentsList(accessToken);
|
||||
console.log("AgentHubData:", response);
|
||||
let agents = response.agents;
|
||||
let agent_card_list = agents.map((agent: any) => ({
|
||||
agent_id: agent.agent_id,
|
||||
|
|
@ -205,7 +198,6 @@ const ModelHubTable: React.FC<ModelHubTableProps> = ({ accessToken, publicPage,
|
|||
try {
|
||||
setMcpLoading(true);
|
||||
const response = await fetchMCPServers(accessToken);
|
||||
console.log("MCPHubData:", response);
|
||||
setMcpHubData(response);
|
||||
} catch (error) {
|
||||
console.error("There was an error fetching the MCP server data", error);
|
||||
|
|
@ -384,9 +376,6 @@ const ModelHubTable: React.FC<ModelHubTableProps> = ({ accessToken, publicPage,
|
|||
setFilteredData(newFilteredData);
|
||||
}, []);
|
||||
|
||||
console.log("publicPage: ", publicPage);
|
||||
console.log("publicPageAllowed: ", publicPageAllowed);
|
||||
|
||||
// If this is a public page, use the dedicated PublicModelHub component
|
||||
if (publicPage && publicPageAllowed) {
|
||||
return <PublicModelHub accessToken={accessToken} />;
|
||||
|
|
|
|||
|
|
@ -94,7 +94,6 @@ const getOrganizationModels = (organization: Organization | null, userModels: st
|
|||
|
||||
if (organization) {
|
||||
if (organization.models.length > 0) {
|
||||
console.log(`organization.models: ${organization.models}`);
|
||||
tempModelsToPick = organization.models;
|
||||
} else {
|
||||
// show all available models if the team has no models set
|
||||
|
|
@ -251,9 +250,7 @@ const Teams: React.FC<TeamProps> = ({ accessToken, userID, userRole, premiumUser
|
|||
const [routerSettingsKey, setRouterSettingsKey] = useState<number>(0);
|
||||
|
||||
useEffect(() => {
|
||||
console.log(`currentOrgForCreateTeam: ${currentOrgForCreateTeam}`);
|
||||
const models = getOrganizationModels(currentOrgForCreateTeam, userModels);
|
||||
console.log(`models: ${models}`);
|
||||
setModelsToPick(models);
|
||||
form.setFieldValue("models", []);
|
||||
}, [currentOrgForCreateTeam, userModels]);
|
||||
|
|
@ -431,7 +428,6 @@ const Teams: React.FC<TeamProps> = ({ accessToken, userID, userRole, premiumUser
|
|||
|
||||
const handleCreate = async (formValues: Record<string, any>) => {
|
||||
try {
|
||||
console.log(`formValues: ${JSON.stringify(formValues)}`);
|
||||
if (accessToken != null) {
|
||||
const newTeamAlias = formValues?.team_alias;
|
||||
const existingTeamAliases = teams?.map((t) => t.team_alias) ?? [];
|
||||
|
|
|
|||
|
|
@ -121,11 +121,7 @@ const SSOModals: React.FC<SSOModalsProps> = ({
|
|||
if (isAddSSOModalVisible && accessToken) {
|
||||
try {
|
||||
const ssoData = await getSSOSettings(accessToken);
|
||||
console.log("Raw SSO data received:", ssoData); // Debug log
|
||||
if (ssoData && ssoData.values) {
|
||||
console.log("SSO values:", ssoData.values); // Debug log
|
||||
console.log("user_email from API:", ssoData.values.user_email); // Debug log
|
||||
|
||||
// Determine which SSO provider is configured
|
||||
let selectedProvider = null;
|
||||
if (ssoData.values.google_client_id) {
|
||||
|
|
@ -175,13 +171,10 @@ const SSOModals: React.FC<SSOModalsProps> = ({
|
|||
...roleMappingFields,
|
||||
};
|
||||
|
||||
console.log("Setting form values:", formValues); // Debug log
|
||||
|
||||
// Clear form first, then set values with a small delay to ensure proper initialization
|
||||
form.resetFields();
|
||||
setTimeout(() => {
|
||||
form.setFieldsValue(formValues);
|
||||
console.log("Form values set, current form values:", form.getFieldsValue()); // Debug log
|
||||
}, 100);
|
||||
}
|
||||
} catch (error) {
|
||||
|
|
|
|||
|
|
@ -24,9 +24,6 @@ const EditSSOSettingsModal: React.FC<EditSSOSettingsModalProps> = ({ isVisible,
|
|||
useEffect(() => {
|
||||
if (isVisible && ssoSettings.data && ssoSettings.data.values) {
|
||||
const ssoData = ssoSettings.data;
|
||||
console.log("Raw SSO data received:", ssoData); // Debug log
|
||||
console.log("SSO values:", ssoData.values); // Debug log
|
||||
console.log("user_email from API:", ssoData.values.user_email); // Debug log
|
||||
|
||||
// Determine which SSO provider is configured
|
||||
let selectedProvider = null;
|
||||
|
|
@ -86,13 +83,10 @@ const EditSSOSettingsModal: React.FC<EditSSOSettingsModalProps> = ({ isVisible,
|
|||
...teamMappingFields,
|
||||
};
|
||||
|
||||
console.log("Setting form values:", formValues); // Debug log
|
||||
|
||||
// Clear form first, then set values with a small delay to ensure proper initialization
|
||||
form.resetFields();
|
||||
setTimeout(() => {
|
||||
form.setFieldsValue(formValues);
|
||||
console.log("Form values set, current form values:", form.getFieldsValue()); // Debug log
|
||||
}, 100);
|
||||
}
|
||||
}, [isVisible, ssoSettings.data, form]);
|
||||
|
|
|
|||
|
|
@ -54,7 +54,6 @@ export default function AddFallbacks({ accessToken, value = [], onChange }: AddF
|
|||
const loadModels = async () => {
|
||||
try {
|
||||
const uniqueModels = await fetchAvailableModels(accessToken);
|
||||
console.log("Fetched models for fallbacks:", uniqueModels);
|
||||
setModelInfo(uniqueModels);
|
||||
} catch (error) {
|
||||
console.error("Error fetching model info for fallbacks:", error);
|
||||
|
|
|
|||
|
|
@ -133,7 +133,6 @@ const Fallbacks: React.FC<FallbacksProps> = ({ accessToken, userRole, userID })
|
|||
return;
|
||||
}
|
||||
getCallbacksCall(accessToken, userID, userRole).then((data) => {
|
||||
console.log("callbacks", data);
|
||||
let router_settings = data.router_settings;
|
||||
if ("model_group_retry_policy" in router_settings) {
|
||||
delete router_settings["model_group_retry_policy"];
|
||||
|
|
|
|||
|
|
@ -216,12 +216,10 @@ const EntityUsage: React.FC<EntityUsageProps> = ({ accessToken, entityType, enti
|
|||
};
|
||||
|
||||
const getTopAPIKeys = () => {
|
||||
console.log("debugTags", { spendData });
|
||||
const keySpend: { [key: string]: KeyMetricWithMetadata } = {};
|
||||
spendData.results.forEach((day) => {
|
||||
const { breakdown } = day;
|
||||
const { entities } = breakdown;
|
||||
console.log("debugTags", { entities });
|
||||
const tagDictionary = Object.keys(entities).reduce((acc: { [key: string]: TagUsage[] }, entity) => {
|
||||
const { api_key_breakdown } = entities[entity];
|
||||
Object.keys(api_key_breakdown).forEach((key) => {
|
||||
|
|
@ -234,7 +232,6 @@ const EntityUsage: React.FC<EntityUsageProps> = ({ accessToken, entityType, enti
|
|||
});
|
||||
return acc;
|
||||
}, {});
|
||||
console.log("debugTags", { tagDictionary });
|
||||
Object.entries(day.breakdown.api_keys || {}).forEach(([key, metrics]) => {
|
||||
if (!keySpend[key]) {
|
||||
keySpend[key] = {
|
||||
|
|
@ -255,7 +252,6 @@ const EntityUsage: React.FC<EntityUsageProps> = ({ accessToken, entityType, enti
|
|||
tags: tagDictionary[key] || [],
|
||||
},
|
||||
};
|
||||
console.log("debugTags", { keySpend });
|
||||
}
|
||||
keySpend[key].metrics.spend += metrics.metrics.spend;
|
||||
keySpend[key].metrics.prompt_tokens += metrics.metrics.prompt_tokens;
|
||||
|
|
|
|||
|
|
@ -257,31 +257,27 @@ const TopKeyView: React.FC<TopKeyViewProps> = ({ topKeys, teams, showTags = fals
|
|||
</div>
|
||||
)}
|
||||
|
||||
{isModalOpen &&
|
||||
selectedKey &&
|
||||
keyData &&
|
||||
(console.log("Rendering modal with:", { isModalOpen, selectedKey, keyData }),
|
||||
(
|
||||
<div className="fixed inset-0 bg-black/50 flex items-center justify-center z-50" onClick={handleOutsideClick}>
|
||||
<div className="bg-white rounded-lg shadow-xl relative w-11/12 max-w-6xl max-h-[90vh] overflow-y-auto min-h-[750px]">
|
||||
{/* Close button */}
|
||||
<button
|
||||
onClick={handleClose}
|
||||
className="absolute top-4 right-4 text-gray-500 hover:text-gray-700 focus:outline-hidden"
|
||||
aria-label="Close"
|
||||
>
|
||||
<svg className="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="M6 18L18 6M6 6l12 12" />
|
||||
</svg>
|
||||
</button>
|
||||
{isModalOpen && selectedKey && keyData && (
|
||||
<div className="fixed inset-0 bg-black/50 flex items-center justify-center z-50" onClick={handleOutsideClick}>
|
||||
<div className="bg-white rounded-lg shadow-xl relative w-11/12 max-w-6xl max-h-[90vh] overflow-y-auto min-h-[750px]">
|
||||
{/* Close button */}
|
||||
<button
|
||||
onClick={handleClose}
|
||||
className="absolute top-4 right-4 text-gray-500 hover:text-gray-700 focus:outline-hidden"
|
||||
aria-label="Close"
|
||||
>
|
||||
<svg className="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="M6 18L18 6M6 6l12 12" />
|
||||
</svg>
|
||||
</button>
|
||||
|
||||
{/* Content */}
|
||||
<div className="p-6 h-full">
|
||||
<KeyInfoView keyId={selectedKey} onClose={handleClose} keyData={keyData} teams={teams} />
|
||||
</div>
|
||||
{/* Content */}
|
||||
<div className="p-6 h-full">
|
||||
<KeyInfoView keyId={selectedKey} onClose={handleClose} keyData={keyData} teams={teams} />
|
||||
</div>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
)}
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
|
|
|||
|
|
@ -110,14 +110,11 @@ const AddModelForm: React.FC<AddModelFormProps> = ({
|
|||
<Form
|
||||
form={form}
|
||||
onFinish={async (values) => {
|
||||
console.log("🔥 Form onFinish triggered with values:", values);
|
||||
await handleOk().then(() => {
|
||||
setTeamAdminSelectedTeam(null);
|
||||
});
|
||||
}}
|
||||
onFinishFailed={(errorInfo) => {
|
||||
console.log("💥 Form onFinishFailed triggered:", errorInfo);
|
||||
}}
|
||||
onFinishFailed={(errorInfo) => {}}
|
||||
labelCol={{ span: 10 }}
|
||||
wrapperCol={{ span: 16 }}
|
||||
labelAlign="left"
|
||||
|
|
@ -260,7 +257,6 @@ const AddModelForm: React.FC<AddModelFormProps> = ({
|
|||
>
|
||||
{({ getFieldValue }) => {
|
||||
const credentialName = getFieldValue("litellm_credential_name");
|
||||
console.log("🔑 Credential Name Changed:", credentialName);
|
||||
// Only show provider specific fields if no credentials selected
|
||||
if (!credentialName) {
|
||||
return (
|
||||
|
|
|
|||
|
|
@ -67,7 +67,6 @@ const AddAutoRouterTab: React.FC<AddAutoRouterTabProps> = ({ form, handleOk, acc
|
|||
const loadModels = async () => {
|
||||
try {
|
||||
const uniqueModels = await fetchAvailableModels(accessToken);
|
||||
console.log("Fetched models for auto router:", uniqueModels);
|
||||
setModelInfo(uniqueModels);
|
||||
} catch (error) {
|
||||
console.error("Error fetching model info for auto router:", error);
|
||||
|
|
@ -87,11 +86,7 @@ const AddAutoRouterTab: React.FC<AddAutoRouterTabProps> = ({ form, handleOk, acc
|
|||
|
||||
// Auto router specific form submit handler
|
||||
const handleAutoRouterSubmit = () => {
|
||||
console.log("Auto router submit triggered!");
|
||||
console.log("Router type:", routerType);
|
||||
|
||||
const currentFormValues = form.getFieldsValue();
|
||||
console.log("Form values:", currentFormValues);
|
||||
|
||||
// Check basic required fields first
|
||||
if (!currentFormValues.auto_router_name) {
|
||||
|
|
@ -123,8 +118,6 @@ const AddAutoRouterTab: React.FC<AddAutoRouterTabProps> = ({ form, handleOk, acc
|
|||
form
|
||||
.validateFields(["auto_router_name"])
|
||||
.then((values) => {
|
||||
console.log("Complexity router validation passed");
|
||||
|
||||
// Build the complexity router config
|
||||
const submitValues = {
|
||||
...values,
|
||||
|
|
@ -138,7 +131,6 @@ const AddAutoRouterTab: React.FC<AddAutoRouterTabProps> = ({ form, handleOk, acc
|
|||
model_access_group: currentFormValues.model_access_group,
|
||||
};
|
||||
|
||||
console.log("Final submit values:", submitValues);
|
||||
handleAddAutoRouterSubmit(submitValues, accessToken, form, handleOk);
|
||||
})
|
||||
.catch((error) => {
|
||||
|
|
@ -179,13 +171,11 @@ const AddAutoRouterTab: React.FC<AddAutoRouterTabProps> = ({ form, handleOk, acc
|
|||
form
|
||||
.validateFields()
|
||||
.then((values) => {
|
||||
console.log("Form validation passed, submitting with values:", values);
|
||||
const submitValues = {
|
||||
...values,
|
||||
auto_router_config: routerConfig,
|
||||
model_type: "semantic_router",
|
||||
};
|
||||
console.log("Final submit values:", submitValues);
|
||||
handleAddAutoRouterSubmit(submitValues, accessToken, form, handleOk);
|
||||
})
|
||||
.catch((error) => {
|
||||
|
|
@ -404,7 +394,6 @@ const AddAutoRouterTab: React.FC<AddAutoRouterTabProps> = ({ form, handleOk, acc
|
|||
<Button
|
||||
type="primary"
|
||||
onClick={() => {
|
||||
console.log("Add Auto Router button clicked!");
|
||||
handleAutoRouterSubmit();
|
||||
}}
|
||||
>
|
||||
|
|
|
|||
|
|
@ -3,15 +3,10 @@ import NotificationManager from "../molecules/notifications_manager";
|
|||
|
||||
export const handleAddAutoRouterSubmit = async (values: any, accessToken: string, form: any, callback?: () => void) => {
|
||||
try {
|
||||
console.log("=== AUTO ROUTER SUBMIT HANDLER CALLED ===");
|
||||
console.log("handling auto router submit for formValues:", values);
|
||||
console.log("Model type:", values.model_type);
|
||||
|
||||
let autoRouterConfig: any;
|
||||
|
||||
if (values.model_type === "complexity_router") {
|
||||
// Complexity Router configuration
|
||||
console.log("Creating complexity router configuration");
|
||||
|
||||
autoRouterConfig = {
|
||||
model_name: values.auto_router_name,
|
||||
|
|
@ -25,11 +20,8 @@ export const handleAddAutoRouterSubmit = async (values: any, accessToken: string
|
|||
},
|
||||
model_info: {},
|
||||
};
|
||||
|
||||
console.log("Complexity router config:", values.complexity_router_config);
|
||||
} else {
|
||||
// Semantic Router configuration (existing behavior)
|
||||
console.log("Creating semantic router configuration");
|
||||
|
||||
autoRouterConfig = {
|
||||
model_name: values.auto_router_name,
|
||||
|
|
@ -47,8 +39,6 @@ export const handleAddAutoRouterSubmit = async (values: any, accessToken: string
|
|||
} else if (values.custom_embedding_model) {
|
||||
autoRouterConfig.litellm_params.auto_router_embedding_model = values.custom_embedding_model;
|
||||
}
|
||||
|
||||
console.log("Semantic router config (stringified):", autoRouterConfig.litellm_params.auto_router_config);
|
||||
}
|
||||
|
||||
// Add team information if provided
|
||||
|
|
@ -61,12 +51,8 @@ export const handleAddAutoRouterSubmit = async (values: any, accessToken: string
|
|||
autoRouterConfig.model_info.access_groups = values.model_access_group;
|
||||
}
|
||||
|
||||
console.log("Auto router configuration to be created:", autoRouterConfig);
|
||||
|
||||
// Create the auto router using the same model creation endpoint
|
||||
console.log("Calling modelCreateCall...");
|
||||
const response: any = await modelCreateCall(accessToken, autoRouterConfig as Model);
|
||||
console.log(`response for auto router create call:`, response);
|
||||
|
||||
// Show success notification
|
||||
const routerTypeName = values.model_type === "complexity_router" ? "Complexity Router" : "Semantic Router";
|
||||
|
|
|
|||
|
|
@ -4,8 +4,6 @@ import { provider_map } from "../provider_info_helpers";
|
|||
|
||||
export const prepareModelAddRequest = async (formValues: Record<string, any>, accessToken: string, form: any) => {
|
||||
try {
|
||||
console.log("handling submit for formValues:", formValues);
|
||||
|
||||
// Get model mappings and safely remove from formValues
|
||||
const modelMappings = formValues["model_mappings"] || [];
|
||||
if ("model_mappings" in formValues) {
|
||||
|
|
@ -88,7 +86,6 @@ export const prepareModelAddRequest = async (formValues: Record<string, any>, ac
|
|||
|
||||
// Iterate through the key-value pairs in formValues
|
||||
litellmParamsObj["model"] = mapping.litellm_model;
|
||||
console.log("formValues add deployment:", formValues);
|
||||
for (const [key, value] of Object.entries(formValues)) {
|
||||
if (value === "") {
|
||||
continue;
|
||||
|
|
@ -100,11 +97,9 @@ export const prepareModelAddRequest = async (formValues: Record<string, any>, ac
|
|||
if (key == "model_name") {
|
||||
litellmParamsObj["model"] = value;
|
||||
} else if (key == "custom_llm_provider") {
|
||||
console.log("custom_llm_provider:", value);
|
||||
const providerKey = value as string;
|
||||
const mappingResult = provider_map[providerKey as keyof typeof provider_map] ?? providerKey.toLowerCase();
|
||||
litellmParamsObj["custom_llm_provider"] = mappingResult;
|
||||
console.log("custom_llm_provider mappingResult:", mappingResult);
|
||||
} else if (key == "model") {
|
||||
continue;
|
||||
}
|
||||
|
|
@ -117,7 +112,6 @@ export const prepareModelAddRequest = async (formValues: Record<string, any>, ac
|
|||
} else if (key === "model_access_group") {
|
||||
modelInfoObj["access_groups"] = value;
|
||||
} else if (key == "mode") {
|
||||
console.log("placing mode in modelInfo");
|
||||
modelInfoObj["mode"] = value;
|
||||
|
||||
// remove "mode" from litellmParams
|
||||
|
|
@ -125,7 +119,6 @@ export const prepareModelAddRequest = async (formValues: Record<string, any>, ac
|
|||
} else if (key === "custom_model_name") {
|
||||
litellmParamsObj["model"] = value;
|
||||
} else if (key == "litellm_extra_params") {
|
||||
console.log("litellm_extra_params:", value);
|
||||
let litellmExtraParams = {};
|
||||
if (value && value != undefined) {
|
||||
try {
|
||||
|
|
@ -142,7 +135,6 @@ export const prepareModelAddRequest = async (formValues: Record<string, any>, ac
|
|||
}
|
||||
}
|
||||
} else if (key == "model_info_params") {
|
||||
console.log("model_info_params:", value);
|
||||
let modelInfoParams = {};
|
||||
if (value && value != undefined) {
|
||||
try {
|
||||
|
|
@ -206,7 +198,6 @@ export const handleAddModelSubmit = async (values: any, accessToken: string, for
|
|||
};
|
||||
|
||||
const response: any = await modelCreateCall(accessToken, new_model);
|
||||
console.log(`response for model create call: ${response["data"]}`);
|
||||
}
|
||||
|
||||
callback && callback();
|
||||
|
|
|
|||
|
|
@ -42,19 +42,15 @@ const ModelConnectionTest: React.FC<ModelConnectionTestProps> = ({
|
|||
await new Promise((resolve) => setTimeout(resolve, 100));
|
||||
|
||||
try {
|
||||
console.log("Testing connection with form values:", formValues);
|
||||
const result = await prepareModelAddRequest(formValues, accessToken, null);
|
||||
|
||||
if (!result) {
|
||||
console.log("No result from prepareModelAddRequest");
|
||||
setError("Failed to prepare model data. Please check your form inputs.");
|
||||
setIsSuccess(false);
|
||||
setIsLoading(false);
|
||||
return;
|
||||
}
|
||||
|
||||
console.log("Result from prepareModelAddRequest:", result);
|
||||
|
||||
const { litellmParamsObj, modelInfoObj, modelName: returnedModelName } = result[0];
|
||||
|
||||
const response = await testConnectionRequest(accessToken, litellmParamsObj, modelInfoObj, modelInfoObj?.mode);
|
||||
|
|
|
|||
|
|
@ -70,8 +70,6 @@ const mapFieldMetadataToUiField = (field: ProviderCredentialFieldMetadata): Prov
|
|||
const providerFieldsByDisplayName: Record<string, ProviderCredentialField[]> = {};
|
||||
|
||||
export const createCredentialFromModel = (provider: string, modelData: any): CredentialItem => {
|
||||
console.log("provider", provider);
|
||||
console.log("modelData", modelData);
|
||||
const enumKey = Object.keys(provider_map).find((key) => provider_map[key].toLowerCase() === provider.toLowerCase());
|
||||
if (!enumKey) {
|
||||
throw new Error(`Provider ${provider} not found in provider_map`);
|
||||
|
|
@ -80,13 +78,9 @@ export const createCredentialFromModel = (provider: string, modelData: any): Cre
|
|||
const providerFields = providerFieldsByDisplayName[providerDisplayName] || [];
|
||||
const credentialValues: object = {};
|
||||
|
||||
console.log("providerFields", providerFields);
|
||||
|
||||
// Go through each field defined for this provider
|
||||
providerFields.forEach((field) => {
|
||||
const value = modelData.litellm_params[field.key];
|
||||
console.log("field", field);
|
||||
console.log("value", value);
|
||||
if (value !== undefined) {
|
||||
(credentialValues as Record<string, string>)[field.key] = value.toString();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -67,7 +67,6 @@ const AddPassThroughEndpoint: React.FC<AddFallbacksProps> = ({
|
|||
};
|
||||
|
||||
const addPassThrough = async (formValues: Record<string, any>) => {
|
||||
console.log("addPassThrough called with:", formValues);
|
||||
setIsLoading(true);
|
||||
try {
|
||||
// Remove auth field if not premium user
|
||||
|
|
@ -85,8 +84,6 @@ const AddPassThroughEndpoint: React.FC<AddFallbacksProps> = ({
|
|||
formValues.methods = selectedMethods;
|
||||
}
|
||||
|
||||
console.log(`formValues: ${JSON.stringify(formValues)}`);
|
||||
|
||||
const response = await createPassThroughEndpoint(accessToken, formValues);
|
||||
|
||||
// Use the created endpoint from the API response (includes the generated ID)
|
||||
|
|
@ -384,7 +381,6 @@ const AddPassThroughEndpoint: React.FC<AddFallbacksProps> = ({
|
|||
variant="primary"
|
||||
loading={isLoading}
|
||||
onClick={() => {
|
||||
console.log("Submit button clicked");
|
||||
form.submit();
|
||||
}}
|
||||
>
|
||||
|
|
|
|||
|
|
@ -40,7 +40,6 @@ const AlertingSettings: React.FC<AlertingSettingsProps> = ({ accessToken, premiu
|
|||
setting.field_name === fieldName ? { ...setting, field_value: newValue } : setting,
|
||||
);
|
||||
|
||||
console.log(`updatedSettings: ${JSON.stringify(updatedSettings)}`);
|
||||
setAlertingSettings(updatedSettings);
|
||||
};
|
||||
|
||||
|
|
@ -49,7 +48,6 @@ const AlertingSettings: React.FC<AlertingSettingsProps> = ({ accessToken, premiu
|
|||
return;
|
||||
}
|
||||
|
||||
console.log(`formValues: ${formValues}`);
|
||||
let fieldValue = formValues;
|
||||
|
||||
if (fieldValue == null || fieldValue == undefined) {
|
||||
|
|
@ -64,9 +62,7 @@ const AlertingSettings: React.FC<AlertingSettingsProps> = ({ accessToken, premiu
|
|||
|
||||
// Merge initialFormValues with actual formValues
|
||||
const mergedFormValues = { ...formValues, ...initialFormValues };
|
||||
console.log(`mergedFormValues: ${JSON.stringify(mergedFormValues)}`);
|
||||
const { slack_alerting, ...alertingArgs } = mergedFormValues;
|
||||
console.log(`slack_alerting: ${slack_alerting}, alertingArgs: ${JSON.stringify(alertingArgs)}`);
|
||||
try {
|
||||
updateConfigFieldSetting(accessToken, "alerting_args", alertingArgs);
|
||||
if (typeof slack_alerting === "boolean") {
|
||||
|
|
@ -104,7 +100,6 @@ const AlertingSettings: React.FC<AlertingSettingsProps> = ({ accessToken, premiu
|
|||
setAlertingSettings(updatedSettings);
|
||||
} catch (error) {
|
||||
// do something
|
||||
console.log("ERROR OCCURRED!");
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@ const DynamicForm: React.FC<DynamicFormProps> = ({
|
|||
const [form] = Form.useForm();
|
||||
|
||||
const onFinish = () => {
|
||||
console.log(`INSIDE ONFINISH`);
|
||||
const formData = form.getFieldsValue();
|
||||
const isEmpty = Object.entries(formData).every(([key, value]) => {
|
||||
if (typeof value === "boolean") {
|
||||
|
|
@ -37,11 +36,9 @@ const DynamicForm: React.FC<DynamicFormProps> = ({
|
|||
}
|
||||
return value === "" || value === null || value === undefined;
|
||||
});
|
||||
console.log(`formData: ${JSON.stringify(formData)}, isEmpty: ${isEmpty}`);
|
||||
if (!isEmpty) {
|
||||
handleSubmit(formData);
|
||||
} else {
|
||||
console.log("Some form fields are empty.");
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -349,14 +349,11 @@ const BulkCreateUsersButton: React.FC<BulkCreateUsersProps> = ({
|
|||
cleanUser.metadata = user.metadata.trim();
|
||||
}
|
||||
|
||||
console.log("Sending user data:", cleanUser);
|
||||
const response = await userCreateCall(accessToken, null, cleanUser);
|
||||
console.log("Full response:", response);
|
||||
|
||||
// Check if response has key or user_id, indicating success
|
||||
if (response && (response.key || response.user_id)) {
|
||||
anySuccessful = true;
|
||||
console.log("Success case triggered");
|
||||
const user_id = response.data?.user_id || response.user_id;
|
||||
|
||||
// Create invitation link for the user
|
||||
|
|
@ -411,9 +408,7 @@ const BulkCreateUsersButton: React.FC<BulkCreateUsersProps> = ({
|
|||
);
|
||||
}
|
||||
} else {
|
||||
console.log("Error case triggered");
|
||||
const errorMessage = response?.error || "Failed to create user";
|
||||
console.log("Error message:", errorMessage);
|
||||
setParsedData((current) =>
|
||||
current.map((u, i) => (i === index ? { ...u, status: "failed", error: errorMessage } : u)),
|
||||
);
|
||||
|
|
|
|||
|
|
@ -11,10 +11,7 @@ interface MCPEventsDisplayProps {
|
|||
}
|
||||
|
||||
const MCPEventsDisplay: React.FC<MCPEventsDisplayProps> = ({ events, className }) => {
|
||||
console.log("MCPEventsDisplay: Received events:", events);
|
||||
|
||||
if (!events || events.length === 0) {
|
||||
console.log("MCPEventsDisplay: No events, returning null");
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
@ -32,11 +29,7 @@ const MCPEventsDisplay: React.FC<MCPEventsDisplayProps> = ({ events, className }
|
|||
(event) => event.type === "response.output_item.done" && event.item?.type === "mcp_call",
|
||||
);
|
||||
|
||||
console.log("MCPEventsDisplay: toolsEvent:", toolsEvent);
|
||||
console.log("MCPEventsDisplay: mcpCallEvents:", mcpCallEvents);
|
||||
|
||||
if (!toolsEvent && mcpCallEvents.length === 0) {
|
||||
console.log("MCPEventsDisplay: No valid events found, returning null");
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -46,10 +46,8 @@ export const litellmModeMapping: Record<ModelMode, EndpointType> = {
|
|||
|
||||
export const getEndpointType = (mode: string): EndpointType => {
|
||||
// Check if the string mode exists as a key in ModelMode enum
|
||||
console.log("getEndpointType:", mode);
|
||||
if (Object.values(ModelMode).includes(mode as ModelMode)) {
|
||||
const endpointType = litellmModeMapping[mode as ModelMode];
|
||||
console.log("endpointType:", endpointType);
|
||||
return endpointType;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -42,7 +42,6 @@ const ModelSelector: React.FC<ModelSelectorProps> = ({
|
|||
const loadModels = async () => {
|
||||
try {
|
||||
const uniqueModels = await fetchAvailableModels(accessToken);
|
||||
console.log("Fetched models for selector:", uniqueModels);
|
||||
|
||||
if (uniqueModels.length > 0) {
|
||||
setModelInfo(uniqueModels);
|
||||
|
|
|
|||
|
|
@ -14,7 +14,5 @@ export const fetchTeams = async (
|
|||
givenTeams = await teamListCall(accessToken, currentOrg?.organization_id || null);
|
||||
}
|
||||
|
||||
console.log(`givenTeams: ${givenTeams}`);
|
||||
|
||||
setTeams(givenTeams);
|
||||
};
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@ const EmailSettings: React.FC<EmailSettingsProps> = ({ accessToken, premiumUser,
|
|||
});
|
||||
});
|
||||
|
||||
console.log("updatedVariables", updatedVariables);
|
||||
//filter out null / undefined values for updatedVariables
|
||||
|
||||
const payload = {
|
||||
|
|
|
|||
|
|
@ -57,7 +57,6 @@ const GuardrailsPanel: React.FC<GuardrailsPanelProps> = ({ accessToken, userRole
|
|||
setIsLoading(true);
|
||||
try {
|
||||
const response: GuardrailsResponse = await getGuardrailsList(accessToken);
|
||||
console.log(`guardrails: ${JSON.stringify(response)}`);
|
||||
setGuardrailsList(response.guardrails);
|
||||
} catch (error) {
|
||||
console.error("Error fetching guardrails:", error);
|
||||
|
|
|
|||
|
|
@ -22,9 +22,7 @@ const GuardrailSelector: React.FC<GuardrailSelectorProps> = ({ onChange, value,
|
|||
setLoading(true);
|
||||
try {
|
||||
const response = await getGuardrailsList(accessToken);
|
||||
console.log("Guardrails response:", response);
|
||||
if (response.guardrails) {
|
||||
console.log("Guardrails data:", response.guardrails);
|
||||
setGuardrails(response.guardrails);
|
||||
}
|
||||
} catch (error) {
|
||||
|
|
@ -38,7 +36,6 @@ const GuardrailSelector: React.FC<GuardrailSelectorProps> = ({ onChange, value,
|
|||
}, [accessToken]);
|
||||
|
||||
const handleGuardrailChange = (selectedValues: string[]) => {
|
||||
console.log("Selected guardrails:", selectedValues);
|
||||
onChange(selectedValues);
|
||||
};
|
||||
|
||||
|
|
@ -54,7 +51,6 @@ const GuardrailSelector: React.FC<GuardrailSelectorProps> = ({ onChange, value,
|
|||
className={className}
|
||||
allowClear
|
||||
options={guardrails.map((guardrail) => {
|
||||
console.log("Mapping guardrail:", guardrail);
|
||||
return {
|
||||
label: `${guardrail.guardrail_name}`,
|
||||
value: guardrail.guardrail_name,
|
||||
|
|
|
|||
|
|
@ -594,19 +594,14 @@ const AddGuardrailForm: React.FC<AddGuardrailFormProps> = ({ visible, onClose, a
|
|||
* the selected provider and ONLY pass those recognised params.
|
||||
******************************/
|
||||
|
||||
console.log("values: ", JSON.stringify(values));
|
||||
|
||||
// Use pre-fetched provider params to copy recognised params
|
||||
// Skip for providers that handle their own litellm_params (llm_as_a_judge, tool_permission, content filter, PII)
|
||||
if (providerParams && selectedProvider && guardrailProvider !== "llm_as_a_judge") {
|
||||
const providerKey = guardrail_provider_map[selectedProvider]?.toLowerCase();
|
||||
console.log("providerKey: ", providerKey);
|
||||
const providerSpecificParams = providerParams[providerKey] || {};
|
||||
|
||||
const allowedParams = new Set<string>();
|
||||
|
||||
console.log("providerSpecificParams: ", JSON.stringify(providerSpecificParams));
|
||||
|
||||
// Add root-level parameters (like api_key, api_base, api_version)
|
||||
Object.keys(providerSpecificParams).forEach((paramName) => {
|
||||
if (paramName !== "optional_params") {
|
||||
|
|
@ -621,7 +616,6 @@ const AddGuardrailForm: React.FC<AddGuardrailFormProps> = ({ visible, onClose, a
|
|||
});
|
||||
}
|
||||
|
||||
console.log("allowedParams: ", allowedParams);
|
||||
allowedParams.forEach((paramName) => {
|
||||
// Check for both direct parameter name and nested optional_params object
|
||||
let paramValue = values[paramName];
|
||||
|
|
@ -639,7 +633,6 @@ const AddGuardrailForm: React.FC<AddGuardrailFormProps> = ({ visible, onClose, a
|
|||
throw new Error("No access token available");
|
||||
}
|
||||
|
||||
console.log("Sending guardrail data:", JSON.stringify(guardrailData));
|
||||
await createGuardrailCall(accessToken, guardrailData);
|
||||
|
||||
NotificationsManager.success("Guardrail created successfully");
|
||||
|
|
@ -917,8 +910,6 @@ const AddGuardrailForm: React.FC<AddGuardrailFormProps> = ({ visible, onClose, a
|
|||
return null;
|
||||
}
|
||||
|
||||
console.log("guardrail_provider_map: ", guardrail_provider_map);
|
||||
console.log("selectedProvider: ", selectedProvider);
|
||||
const providerKey = guardrail_provider_map[selectedProvider]?.toLowerCase();
|
||||
const providerFields = providerParams && providerParams[providerKey];
|
||||
|
||||
|
|
|
|||
|
|
@ -127,12 +127,8 @@ const ContentCategoryConfiguration: React.FC<ContentCategoryConfigurationProps>
|
|||
|
||||
// Fetch the content for preview
|
||||
setLoadingPreviewYaml(true);
|
||||
console.log(`Fetching content for category: ${selectedCategoryName}`, {
|
||||
accessToken: accessToken ? "present" : "missing",
|
||||
});
|
||||
getCategoryYaml(accessToken, selectedCategoryName)
|
||||
.then((data) => {
|
||||
console.log(`Successfully fetched content for ${selectedCategoryName}:`, data);
|
||||
let content = data.yaml_content;
|
||||
|
||||
// Format JSON content for better readability
|
||||
|
|
|
|||
|
|
@ -264,9 +264,7 @@ const ContentFilterManager: React.FC<ContentFilterManagerProps> = ({
|
|||
onBlockedWordUpdate={(id, field, value) =>
|
||||
setBlockedWords(blockedWords.map((w) => (w.id === id ? { ...w, [field]: value } : w)))
|
||||
}
|
||||
onFileUpload={(content: string) => {
|
||||
console.log("File uploaded:", content);
|
||||
}}
|
||||
onFileUpload={(content: string) => {}}
|
||||
accessToken={accessToken}
|
||||
contentCategories={guardrailSettings.content_filter_settings.content_categories || []}
|
||||
selectedContentCategories={selectedContentCategories}
|
||||
|
|
|
|||
|
|
@ -205,8 +205,6 @@ const EditGuardrailForm: React.FC<EditGuardrailFormProps> = ({
|
|||
throw new Error("No access token available");
|
||||
}
|
||||
|
||||
console.log("Sending guardrail update data:", JSON.stringify(guardrailData));
|
||||
|
||||
// Call the update endpoint
|
||||
const url = `/guardrails/${guardrailId}`;
|
||||
const response = await fetch(url, {
|
||||
|
|
|
|||
|
|
@ -383,9 +383,6 @@ const GuardrailInfoView: React.FC<GuardrailInfoProps> = ({ guardrailId, onClose,
|
|||
(key) => guardrail_provider_map[key] === guardrailData.litellm_params?.guardrail,
|
||||
);
|
||||
|
||||
console.log("values: ", JSON.stringify(values));
|
||||
console.log("currentProvider: ", currentProvider);
|
||||
|
||||
// Use pre-fetched provider params to copy recognised params
|
||||
const isToolPermissionGuardrail = guardrailData.litellm_params?.guardrail === "tool_permission";
|
||||
if (guardrailProviderSpecificParams && currentProvider && !isToolPermissionGuardrail) {
|
||||
|
|
@ -394,8 +391,6 @@ const GuardrailInfoView: React.FC<GuardrailInfoProps> = ({ guardrailId, onClose,
|
|||
|
||||
const allowedParams = new Set<string>();
|
||||
|
||||
console.log("providerSpecificParams: ", JSON.stringify(providerSpecificParams));
|
||||
|
||||
// Add root-level parameters (like api_key, api_base, api_version)
|
||||
Object.keys(providerSpecificParams).forEach((paramName) => {
|
||||
if (paramName !== "optional_params") {
|
||||
|
|
@ -410,7 +405,6 @@ const GuardrailInfoView: React.FC<GuardrailInfoProps> = ({ guardrailId, onClose,
|
|||
});
|
||||
}
|
||||
|
||||
console.log("allowedParams: ", allowedParams);
|
||||
allowedParams.forEach((paramName) => {
|
||||
if (paramName === "patterns" || paramName === "blocked_words" || paramName === "categories") {
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -134,7 +134,6 @@ const GuardrailOptionalParams: React.FC<GuardrailOptionalParamsProps> = ({
|
|||
const renderField = (fieldKey: string, field: ProviderParam) => {
|
||||
const fullFieldKey = `${parentFieldKey}.${fieldKey}`;
|
||||
const value = values?.[fieldKey];
|
||||
console.log("value", value);
|
||||
// Handle dict fields separately since they manage their own Form.Items
|
||||
if (field.type === "dict" && field.dict_key_options) {
|
||||
return (
|
||||
|
|
|
|||
|
|
@ -61,7 +61,6 @@ const GuardrailProviderFields: React.FC<GuardrailProviderFieldsProps> = ({
|
|||
|
||||
try {
|
||||
const data = await getGuardrailProviderSpecificParams(accessToken);
|
||||
console.log("Provider params API response:", data);
|
||||
setProviderParams(data);
|
||||
|
||||
// Populate dynamic providers from API response
|
||||
|
|
@ -102,15 +101,10 @@ const GuardrailProviderFields: React.FC<GuardrailProviderFieldsProps> = ({
|
|||
// Get parameters for the selected provider
|
||||
const providerFields = providerParams && providerParams[providerKey];
|
||||
|
||||
console.log("Provider key:", providerKey);
|
||||
console.log("Provider fields:", providerFields);
|
||||
|
||||
if (!providerFields || Object.keys(providerFields).length === 0) {
|
||||
return <div>No configuration fields available for this provider.</div>;
|
||||
}
|
||||
|
||||
console.log("Value:", value);
|
||||
|
||||
// Fields to skip for content filter provider (handled in dedicated steps)
|
||||
const contentFilterFieldsToSkip = new Set([
|
||||
"patterns",
|
||||
|
|
@ -129,7 +123,6 @@ const GuardrailProviderFields: React.FC<GuardrailProviderFieldsProps> = ({
|
|||
return Object.entries(fields).map(([fieldKey, field]) => {
|
||||
const fullFieldKey = parentKey ? `${parentKey}.${fieldKey}` : fieldKey;
|
||||
const fieldValue = parentValue ? parentValue[fieldKey] : value?.[fieldKey];
|
||||
console.log("Field value:", fieldValue);
|
||||
// Skip ui_friendly_name - it's metadata for the UI dropdown, not a user configuration field
|
||||
if (fieldKey === "ui_friendly_name") {
|
||||
return null;
|
||||
|
|
|
|||
|
|
@ -49,8 +49,6 @@ export const getModelDisplayName = (model: string) => {
|
|||
export const unfurlWildcardModelsInList = (teamModels: string[], allModels: string[]): string[] => {
|
||||
const wildcardDisplayNames: string[] = [];
|
||||
const expandedModels: string[] = [];
|
||||
console.log("teamModels", teamModels);
|
||||
console.log("allModels", allModels);
|
||||
|
||||
teamModels.forEach((teamModel) => {
|
||||
if (teamModel.endsWith("/*")) {
|
||||
|
|
|
|||
|
|
@ -166,9 +166,7 @@ const useKeyList = ({
|
|||
|
||||
const fetchKeys = async (params: Record<string, unknown> = {}): Promise<void> => {
|
||||
try {
|
||||
console.log("calling fetchKeys");
|
||||
if (!accessToken) {
|
||||
console.log("accessToken", accessToken);
|
||||
return;
|
||||
}
|
||||
setIsLoading(true);
|
||||
|
|
@ -189,7 +187,6 @@ const useKeyList = ({
|
|||
null,
|
||||
expand.join(","),
|
||||
);
|
||||
console.log("data", data);
|
||||
setKeyData(data);
|
||||
setError(null);
|
||||
} catch (err) {
|
||||
|
|
@ -201,16 +198,6 @@ const useKeyList = ({
|
|||
|
||||
useEffect(() => {
|
||||
fetchKeys();
|
||||
console.log(
|
||||
"selectedTeam",
|
||||
selectedTeam,
|
||||
"currentOrg",
|
||||
currentOrg,
|
||||
"accessToken",
|
||||
accessToken,
|
||||
"selectedKeyAlias",
|
||||
selectedKeyAlias,
|
||||
);
|
||||
}, [selectedTeam, currentOrg, accessToken, selectedKeyAlias, createClicked]);
|
||||
|
||||
const setKeys = (newKeysOrUpdater: KeyResponse[] | ((prevKeys: KeyResponse[]) => KeyResponse[])) => {
|
||||
|
|
|
|||
|
|
@ -476,11 +476,6 @@ const Sidebar: React.FC<SidebarProps> = ({
|
|||
|
||||
// Debug logging
|
||||
if (enabledPagesInternalUsers !== null && enabledPagesInternalUsers !== undefined) {
|
||||
console.log("[LeftNav] Filtering with enabled pages:", {
|
||||
userRole,
|
||||
isAdmin,
|
||||
enabledPagesInternalUsers,
|
||||
});
|
||||
}
|
||||
|
||||
return items
|
||||
|
|
@ -497,7 +492,6 @@ const Sidebar: React.FC<SidebarProps> = ({
|
|||
// Check enabled pages for internal users (non-admins)
|
||||
if (!isAdmin && enabledPagesInternalUsers !== null && enabledPagesInternalUsers !== undefined) {
|
||||
const isIncluded = enabledPagesInternalUsers.includes(item.page);
|
||||
console.log(`[LeftNav] Page "${item.page}" (${item.key}): ${isIncluded ? "VISIBLE" : "HIDDEN"}`);
|
||||
return isIncluded;
|
||||
}
|
||||
return true;
|
||||
|
|
@ -535,13 +529,11 @@ const Sidebar: React.FC<SidebarProps> = ({
|
|||
if (item.children && item.children.length > 0) {
|
||||
const hasVisibleChildren = item.children.some((child) => enabledPagesInternalUsers.includes(child.page));
|
||||
if (hasVisibleChildren) {
|
||||
console.log(`[LeftNav] Parent "${item.page}" (${item.key}): VISIBLE (has visible children)`);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
const isIncluded = enabledPagesInternalUsers.includes(item.page);
|
||||
console.log(`[LeftNav] Page "${item.page}" (${item.key}): ${isIncluded ? "VISIBLE" : "HIDDEN"}`);
|
||||
return isIncluded;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -37,7 +37,6 @@ export async function makeOpenAIChatCompletionRequest(
|
|||
if (isLocal !== true) {
|
||||
console.log = function () {};
|
||||
}
|
||||
console.log("isLocal:", isLocal);
|
||||
const proxyBaseUrl = customBaseUrl || getProxyBaseUrl();
|
||||
// Prepare headers with tags and trace ID
|
||||
const headers: Record<string, string> = {};
|
||||
|
|
@ -134,25 +133,17 @@ export async function makeOpenAIChatCompletionRequest(
|
|||
);
|
||||
|
||||
for await (const chunk of response) {
|
||||
console.log("Stream chunk:", chunk);
|
||||
|
||||
// Process content and measure time to first token
|
||||
const delta = chunk.choices[0]?.delta as any;
|
||||
|
||||
// Debug what's in the delta
|
||||
console.log("Delta content:", chunk.choices[0]?.delta?.content);
|
||||
console.log("Delta reasoning content:", delta?.reasoning_content);
|
||||
|
||||
// Measure time to first token for either content or reasoning_content
|
||||
if (!firstTokenReceived && (chunk.choices[0]?.delta?.content || (delta && delta.reasoning_content))) {
|
||||
firstTokenReceived = true;
|
||||
timeToFirstToken = Date.now() - startTime;
|
||||
console.log("First token received! Time:", timeToFirstToken, "ms");
|
||||
if (onTimingData) {
|
||||
console.log("Calling onTimingData with:", timeToFirstToken);
|
||||
onTimingData(timeToFirstToken);
|
||||
} else {
|
||||
console.log("onTimingData callback is not defined!");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -165,7 +156,6 @@ export async function makeOpenAIChatCompletionRequest(
|
|||
|
||||
// Process image generation if present
|
||||
if (delta && delta.image && onImageGenerated) {
|
||||
console.log("Image generated:", delta.image);
|
||||
onImageGenerated(delta.image.url, chunk.model);
|
||||
}
|
||||
|
||||
|
|
@ -180,7 +170,6 @@ export async function makeOpenAIChatCompletionRequest(
|
|||
|
||||
// Check for search results in provider_specific_fields
|
||||
if (delta && delta.provider_specific_fields?.search_results && onSearchResults) {
|
||||
console.log("Search results found:", delta.provider_specific_fields.search_results);
|
||||
onSearchResults(delta.provider_specific_fields.search_results);
|
||||
}
|
||||
|
||||
|
|
@ -208,7 +197,6 @@ export async function makeOpenAIChatCompletionRequest(
|
|||
timestamp: Date.now(),
|
||||
};
|
||||
onMCPEvent(toolsEvent);
|
||||
console.log("MCP list_tools event sent:", toolsEvent);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -219,20 +207,11 @@ export async function makeOpenAIChatCompletionRequest(
|
|||
if (providerFields.mcp_call_results) {
|
||||
mcpMetadata.mcp_call_results = providerFields.mcp_call_results;
|
||||
}
|
||||
|
||||
if (providerFields.mcp_list_tools || providerFields.mcp_tool_calls || providerFields.mcp_call_results) {
|
||||
console.log("MCP metadata found in chunk:", {
|
||||
mcp_list_tools: providerFields.mcp_list_tools ? "present" : "absent",
|
||||
mcp_tool_calls: providerFields.mcp_tool_calls ? "present" : "absent",
|
||||
mcp_call_results: providerFields.mcp_call_results ? "present" : "absent",
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// Check for usage data using type assertion
|
||||
const chunkWithUsage = chunk as any;
|
||||
if (chunkWithUsage.usage && onUsageData) {
|
||||
console.log("Usage data found:", chunkWithUsage.usage);
|
||||
const usageData: TokenUsage = {
|
||||
completionTokens: chunkWithUsage.usage.completion_tokens,
|
||||
promptTokens: chunkWithUsage.usage.prompt_tokens,
|
||||
|
|
@ -284,7 +263,6 @@ export async function makeOpenAIChatCompletionRequest(
|
|||
timestamp: Date.now(),
|
||||
};
|
||||
onMCPEvent(callEvent);
|
||||
console.log("MCP call event sent:", callEvent);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
@ -295,9 +273,6 @@ export async function makeOpenAIChatCompletionRequest(
|
|||
onTotalLatency(totalLatency);
|
||||
}
|
||||
} catch (error) {
|
||||
if (signal?.aborted) {
|
||||
console.log("Chat completion request was cancelled");
|
||||
}
|
||||
throw error; // Re-throw to allow the caller to handle the error
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@ export interface CodeInterpreterState {
|
|||
*/
|
||||
export function handleCodeInterpreterCall(event: any, state: CodeInterpreterState): CodeInterpreterState {
|
||||
if (event.type === "response.output_item.done" && event.item?.type === "code_interpreter_call") {
|
||||
console.log("Code interpreter call completed:", event.item);
|
||||
return {
|
||||
code: event.item.code || "",
|
||||
containerId: event.item.container_id || "",
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@ export interface ModelGroup {
|
|||
export const fetchAvailableModels = async (accessToken: string): Promise<ModelGroup[]> => {
|
||||
try {
|
||||
const fetchedModels = await modelHubCall(accessToken);
|
||||
console.log("model_info:", fetchedModels);
|
||||
|
||||
if (fetchedModels?.data.length > 0) {
|
||||
const models: ModelGroup[] = fetchedModels.data.map((item: any) => ({
|
||||
|
|
|
|||
|
|
@ -164,8 +164,6 @@ export async function makeOpenAIResponsesRequest(
|
|||
let codeInterpreterState: CodeInterpreterState = { code: "", containerId: "" };
|
||||
|
||||
for await (const event of response) {
|
||||
console.log("Response event:", event);
|
||||
|
||||
// Use a type-safe approach to handle events
|
||||
if (typeof event === "object" && event !== null) {
|
||||
// Handle MCP events first
|
||||
|
|
@ -174,8 +172,6 @@ export async function makeOpenAIResponsesRequest(
|
|||
(event.type === "response.output_item.done" &&
|
||||
(event.item?.type === "mcp_list_tools" || event.item?.type === "mcp_call"))
|
||||
) {
|
||||
console.log("MCP event received:", event);
|
||||
|
||||
if (onMCPEvent) {
|
||||
const mcpEvent: MCPEvent = {
|
||||
type: event.type,
|
||||
|
|
@ -196,7 +192,6 @@ export async function makeOpenAIResponsesRequest(
|
|||
// Check for MCP tool usage
|
||||
if (event.type === "response.output_item.done" && event.item?.type === "mcp_call" && event.item?.name) {
|
||||
mcpToolUsed = event.item.name;
|
||||
console.log("MCP tool used:", mcpToolUsed);
|
||||
}
|
||||
|
||||
// Handle code interpreter events
|
||||
|
|
@ -212,7 +207,6 @@ export async function makeOpenAIResponsesRequest(
|
|||
// 2) only handle actual text deltas
|
||||
if (event.type === "response.output_text.delta" && typeof event.delta === "string") {
|
||||
const delta = event.delta;
|
||||
console.log("Text delta", delta);
|
||||
if (delta.length > 0) {
|
||||
updateTextUI("assistant", delta, selectedModel);
|
||||
|
||||
|
|
@ -220,7 +214,6 @@ export async function makeOpenAIResponsesRequest(
|
|||
if (!firstTokenReceived) {
|
||||
firstTokenReceived = true;
|
||||
const timeToFirstToken = Date.now() - startTime;
|
||||
console.log("First token received! Time:", timeToFirstToken, "ms");
|
||||
|
||||
if (onTimingData) {
|
||||
onTimingData(timeToFirstToken);
|
||||
|
|
@ -241,18 +234,13 @@ export async function makeOpenAIResponsesRequest(
|
|||
if (event.type === "response.completed" && "response" in event) {
|
||||
const response_obj = event.response;
|
||||
const usage = response_obj.usage;
|
||||
console.log("Usage data:", usage);
|
||||
console.log("Response completed event:", response_obj);
|
||||
|
||||
// Extract response_id for session management
|
||||
if (response_obj.id && onResponseId) {
|
||||
console.log("Response ID for session management:", response_obj.id);
|
||||
onResponseId(response_obj.id);
|
||||
}
|
||||
|
||||
if (usage && onUsageData) {
|
||||
console.log("Usage data:", usage);
|
||||
|
||||
// Extract usage data safely
|
||||
const usageData: TokenUsage = {
|
||||
completionTokens: usage.output_tokens,
|
||||
|
|
@ -274,7 +262,6 @@ export async function makeOpenAIResponsesRequest(
|
|||
return response;
|
||||
} catch (error) {
|
||||
if (signal?.aborted) {
|
||||
console.log("Responses API request was cancelled");
|
||||
} else {
|
||||
NotificationManager.fromBackend(
|
||||
`Error occurred while generating model response. Please try again. Error: ${error}`,
|
||||
|
|
|
|||
|
|
@ -397,8 +397,6 @@ const CreateMCPServer: React.FC<CreateMCPServerProps> = ({
|
|||
args: actualConfig.args,
|
||||
env: actualConfig.env,
|
||||
};
|
||||
|
||||
console.log("Parsed stdio config:", stdioFields);
|
||||
} catch (error) {
|
||||
NotificationsManager.fromBackend("Invalid JSON in stdio configuration");
|
||||
return;
|
||||
|
|
@ -456,8 +454,6 @@ const CreateMCPServer: React.FC<CreateMCPServerProps> = ({
|
|||
payload.credentials = credentialsPayload;
|
||||
}
|
||||
|
||||
console.log(`Payload: ${JSON.stringify(payload)}`);
|
||||
|
||||
if (accessToken != null) {
|
||||
const response = isAdmin
|
||||
? await createMCPServer(accessToken, payload)
|
||||
|
|
|
|||
|
|
@ -380,7 +380,6 @@ const MCPServers: React.FC<MCPServerProps> = ({ accessToken, userRole, userID })
|
|||
}, [refetch]);
|
||||
|
||||
if (!accessToken || !userRole || !userID) {
|
||||
console.log("Missing required authentication parameters", { accessToken, userRole, userID });
|
||||
return <div className="p-6 text-center text-gray-500">Missing required authentication parameters.</div>;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -21,8 +21,6 @@ const ReuseCredentialsModal: React.FC<ReuseCredentialsModalProps> = ({
|
|||
}) => {
|
||||
const [form] = Form.useForm();
|
||||
|
||||
console.log(`existingCredential in add credentials tab: ${JSON.stringify(existingCredential)}`);
|
||||
|
||||
const handleSubmit = (values: any) => {
|
||||
onAddCredential(values);
|
||||
form.resetFields();
|
||||
|
|
|
|||
|
|
@ -312,9 +312,7 @@ const HealthCheckComponent: React.FC<HealthCheckComponentProps> = ({
|
|||
},
|
||||
}));
|
||||
}
|
||||
} catch (dbError) {
|
||||
console.debug("Could not fetch updated status from database (non-critical):", dbError);
|
||||
}
|
||||
} catch (dbError) {}
|
||||
} catch (error) {
|
||||
const currentTime = new Date().toLocaleString();
|
||||
const rawError = error instanceof Error ? error.message : String(error);
|
||||
|
|
|
|||
|
|
@ -57,7 +57,6 @@ const ModelGroupAliasSettings: React.FC<ModelGroupAliasSettingsProps> = ({
|
|||
},
|
||||
};
|
||||
|
||||
console.log("Saving model group alias:", aliasObject);
|
||||
await setCallbacksCall(accessToken, payload);
|
||||
|
||||
if (onAliasUpdate) {
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -90,8 +90,6 @@ interface UserOption {
|
|||
const getPredefinedTags = (data: any[] | null) => {
|
||||
let allTags = [];
|
||||
|
||||
console.log("data:", JSON.stringify(data));
|
||||
|
||||
if (data) {
|
||||
for (let key of data) {
|
||||
if (key["metadata"] && key["metadata"]["tags"]) {
|
||||
|
|
@ -106,7 +104,6 @@ const getPredefinedTags = (data: any[] | null) => {
|
|||
label: tag,
|
||||
}));
|
||||
|
||||
console.log("uniqueTags:", uniqueTags);
|
||||
return uniqueTags;
|
||||
};
|
||||
|
||||
|
|
@ -124,7 +121,6 @@ export const fetchTeamModels = async (
|
|||
if (accessToken !== null) {
|
||||
const model_available = await modelAvailableCall(accessToken, userID, userRole, true, teamID, true);
|
||||
let available_model_names = model_available["data"].map((element: { id: string }) => element.id);
|
||||
console.log("available_model_names:", available_model_names);
|
||||
return available_model_names;
|
||||
}
|
||||
return [];
|
||||
|
|
@ -148,7 +144,6 @@ export const fetchUserModels = async (
|
|||
if (accessToken !== null) {
|
||||
const model_available = await modelAvailableCall(accessToken, userID, userRole);
|
||||
let available_model_names = model_available["data"].map((element: { id: string }) => element.id);
|
||||
console.log("available_model_names:", available_model_names);
|
||||
setUserModels(available_model_names);
|
||||
}
|
||||
} catch (error) {
|
||||
|
|
@ -554,8 +549,6 @@ const CreateKey: React.FC<CreateKeyProps> = ({ team, teams, data, addKey, autoOp
|
|||
response = await keyCreateCall(accessToken, userID, formValues);
|
||||
}
|
||||
|
||||
console.log("key create Response:", response);
|
||||
|
||||
// Add the data to the state in the parent component
|
||||
// Also directly update the keys list in VirtualKeysTable without an API call
|
||||
addKey(response);
|
||||
|
|
@ -573,7 +566,6 @@ const CreateKey: React.FC<CreateKeyProps> = ({ team, teams, data, addKey, autoOp
|
|||
setBudgetFallbacksKey((k) => k + 1);
|
||||
localStorage.removeItem("userData" + userID);
|
||||
} catch (error) {
|
||||
console.log("error in create key:", error);
|
||||
const simplifiedError = simplifyKeyGenerateError(error);
|
||||
NotificationsManager.fromBackend(simplifiedError);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -133,8 +133,6 @@ const OrganizationsTable: React.FC<OrganizationsTableProps> = ({
|
|||
try {
|
||||
if (!accessToken) return;
|
||||
|
||||
console.log(`values in organizations new create call: ${JSON.stringify(values)}`);
|
||||
|
||||
// Transform allowed_vector_store_ids and allowed_mcp_servers_and_groups into object_permission
|
||||
if (
|
||||
(values.allowed_vector_store_ids && values.allowed_vector_store_ids.length > 0) ||
|
||||
|
|
|
|||
|
|
@ -228,8 +228,6 @@ const PassThroughSettings: React.FC<GeneralSettingsPageProps> = ({
|
|||
// If a specific endpoint is selected, show the info view
|
||||
if (selectedEndpointId) {
|
||||
// Find the endpoint by ID to get the endpoint data for the info view
|
||||
console.log("selectedEndpointId", selectedEndpointId);
|
||||
console.log("generalSettings", generalSettings);
|
||||
const selectedEndpoint = generalSettings.find((endpoint) => endpoint.id === selectedEndpointId);
|
||||
|
||||
if (!selectedEndpoint) {
|
||||
|
|
|
|||
|
|
@ -299,7 +299,6 @@ const PoliciesPanel: React.FC<PoliciesPanelProps> = ({ accessToken, userRole })
|
|||
try {
|
||||
await createGuardrailCall(accessToken, guardrailDef);
|
||||
createdGuardrails.push(guardrailName);
|
||||
console.log(`Successfully created guardrail: ${guardrailName}`);
|
||||
} catch (error) {
|
||||
console.error(`Failed to create guardrail "${guardrailName}":`, error);
|
||||
failedGuardrails.push(guardrailName);
|
||||
|
|
|
|||
|
|
@ -83,9 +83,7 @@ const PriceDataReload: React.FC<PriceDataReloadProps> = ({
|
|||
|
||||
setLoadingStatus(true);
|
||||
try {
|
||||
console.log("Fetching reload status...");
|
||||
const status = await getModelCostMapReloadStatus(accessToken);
|
||||
console.log("Received status:", status);
|
||||
setReloadStatus(status);
|
||||
} catch (error) {
|
||||
console.error("Failed to fetch reload status:", error);
|
||||
|
|
|
|||
|
|
@ -217,12 +217,6 @@ describe("provider_info_helpers", () => {
|
|||
});
|
||||
|
||||
describe("getProviderModels", () => {
|
||||
const consoleSpy = vi.spyOn(console, "log").mockImplementation(() => {});
|
||||
|
||||
afterEach(() => {
|
||||
consoleSpy.mockClear();
|
||||
});
|
||||
|
||||
it("should return empty array when provider is not provided", () => {
|
||||
const modelMap = {};
|
||||
const result = getProviderModels(undefined as any, modelMap);
|
||||
|
|
@ -404,13 +398,6 @@ describe("provider_info_helpers", () => {
|
|||
expect(result).toEqual(["valid-model"]);
|
||||
});
|
||||
|
||||
it("should log provider key and mapped provider when called", () => {
|
||||
const modelMap = { "gpt-3.5-turbo": { litellm_provider: "openai" } };
|
||||
getProviderModels(Providers.OpenAI, modelMap);
|
||||
expect(consoleSpy).toHaveBeenCalledWith(`Provider key: ${Providers.OpenAI}`);
|
||||
expect(consoleSpy).toHaveBeenCalledWith(`Provider mapped to: ${provider_map[Providers.OpenAI]}`);
|
||||
});
|
||||
|
||||
it("should return empty array for provider with no matching models", () => {
|
||||
const modelMap = {
|
||||
"gpt-3.5-turbo": { litellm_provider: "openai" },
|
||||
|
|
|
|||
|
|
@ -386,9 +386,7 @@ export const getPlaceholder = (selectedProvider: string): string => {
|
|||
|
||||
export const getProviderModels = (provider: Providers, modelMap: any): Array<string> => {
|
||||
let providerKey = provider;
|
||||
console.log(`Provider key: ${providerKey}`);
|
||||
let custom_llm_provider = provider_map[providerKey];
|
||||
console.log(`Provider mapped to: ${custom_llm_provider}`);
|
||||
|
||||
let providerModels: Array<string> = [];
|
||||
|
||||
|
|
@ -411,7 +409,6 @@ export const getProviderModels = (provider: Providers, modelMap: any): Array<str
|
|||
// Special case for cohere
|
||||
// we need both cohere_chat and cohere models to show on dropdown
|
||||
if (providerKey == Providers.Cohere) {
|
||||
console.log("Adding cohere chat models");
|
||||
Object.entries(modelMap).forEach(([key, value]) => {
|
||||
if (
|
||||
value !== null &&
|
||||
|
|
@ -427,7 +424,6 @@ export const getProviderModels = (provider: Providers, modelMap: any): Array<str
|
|||
// Special case for sagemaker
|
||||
// we need both sagemaker and sagemaker_chat models to show on dropdown
|
||||
if (providerKey == Providers.SageMaker) {
|
||||
console.log("Adding sagemaker chat models");
|
||||
Object.entries(modelMap).forEach(([key, value]) => {
|
||||
if (
|
||||
value !== null &&
|
||||
|
|
|
|||
|
|
@ -206,7 +206,6 @@ const PublicModelHub: React.FC<PublicModelHubProps> = ({ accessToken, isEmbedded
|
|||
try {
|
||||
setLoading(true);
|
||||
const _modelHubData = await modelHubPublicModelsCall();
|
||||
console.log("ModelHubData:", _modelHubData);
|
||||
setModelHubData(Array.isArray(_modelHubData) ? _modelHubData : []);
|
||||
} catch (error) {
|
||||
console.error("There was an error fetching the public model data", error);
|
||||
|
|
@ -220,7 +219,6 @@ const PublicModelHub: React.FC<PublicModelHubProps> = ({ accessToken, isEmbedded
|
|||
try {
|
||||
setAgentLoading(true);
|
||||
const _agentHubData = await agentHubPublicModelsCall();
|
||||
console.log("AgentHubData:", _agentHubData);
|
||||
setAgentHubData(Array.isArray(_agentHubData) ? _agentHubData : []);
|
||||
} catch (error) {
|
||||
console.error("There was an error fetching the public agent data", error);
|
||||
|
|
@ -233,7 +231,6 @@ const PublicModelHub: React.FC<PublicModelHubProps> = ({ accessToken, isEmbedded
|
|||
try {
|
||||
setMcpLoading(true);
|
||||
const _mcpHubData = await mcpHubPublicServersCall();
|
||||
console.log("MCPHubData:", _mcpHubData);
|
||||
setMcpHubData(Array.isArray(_mcpHubData) ? _mcpHubData : []);
|
||||
} catch (error) {
|
||||
console.error("There was an error fetching the public MCP server data", error);
|
||||
|
|
@ -244,7 +241,6 @@ const PublicModelHub: React.FC<PublicModelHubProps> = ({ accessToken, isEmbedded
|
|||
|
||||
const fetchPublicModelHubInfo = async () => {
|
||||
const publicModelHubInfo = await getPublicModelHubInfo();
|
||||
console.log("Public Model Hub Info:", publicModelHubInfo);
|
||||
setPageTitle(publicModelHubInfo.docs_title);
|
||||
setCustomDocsDescription(publicModelHubInfo.custom_docs_description);
|
||||
setLitellmVersion(publicModelHubInfo.litellm_version);
|
||||
|
|
|
|||
|
|
@ -30,7 +30,6 @@ const RouterSettings: React.FC<RouterSettingsProps> = ({ accessToken, userRole,
|
|||
return;
|
||||
}
|
||||
getCallbacksCall(accessToken, userID, userRole).then((data) => {
|
||||
console.log("callbacks", data);
|
||||
let router_settings = data.router_settings;
|
||||
if ("model_group_retry_policy" in router_settings) {
|
||||
delete router_settings["model_group_retry_policy"];
|
||||
|
|
@ -44,7 +43,6 @@ const RouterSettings: React.FC<RouterSettingsProps> = ({ accessToken, userRole,
|
|||
}));
|
||||
});
|
||||
getRouterSettingsCall(accessToken).then((data) => {
|
||||
console.log("router settings from API", data);
|
||||
if (data.fields) {
|
||||
// Build metadata map for easy lookup
|
||||
const fieldsMap: { [key: string]: any } = {};
|
||||
|
|
@ -87,7 +85,6 @@ const RouterSettings: React.FC<RouterSettingsProps> = ({ accessToken, userRole,
|
|||
}
|
||||
|
||||
const router_settings = formValue.routerSettings;
|
||||
console.log("router_settings", router_settings);
|
||||
|
||||
const numberKeys = new Set(["allowed_fails", "cooldown_time", "num_retries", "timeout", "retry_after"]);
|
||||
const jsonKeys = new Set(["model_group_alias"]);
|
||||
|
|
@ -158,14 +155,12 @@ const RouterSettings: React.FC<RouterSettingsProps> = ({ accessToken, userRole,
|
|||
setRoutingStrategyArgs["ttl"] = Number(ttlElement.value);
|
||||
}
|
||||
|
||||
console.log(`setRoutingStrategyArgs: ${setRoutingStrategyArgs}`);
|
||||
return ["routing_strategy_args", setRoutingStrategyArgs];
|
||||
}
|
||||
return null;
|
||||
})
|
||||
.filter((entry) => entry !== null && entry !== undefined) as Iterable<[string, unknown]>,
|
||||
);
|
||||
console.log("updatedVariables", updatedVariables);
|
||||
|
||||
const payload = {
|
||||
router_settings: updatedVariables,
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@ const TagSelector: React.FC<TagSelectorProps> = ({ onChange, value, className, a
|
|||
if (!accessToken) return;
|
||||
try {
|
||||
const response = await tagListCall(accessToken);
|
||||
console.log("List tags response:", response);
|
||||
setTags(Object.values(response));
|
||||
} catch (error) {
|
||||
console.error("Error fetching tags:", error);
|
||||
|
|
|
|||
|
|
@ -39,7 +39,6 @@ const TagManagement: React.FC<TagProps> = ({ accessToken, userID, userRole }) =>
|
|||
if (!accessToken) return;
|
||||
try {
|
||||
const response = await tagListCall(accessToken);
|
||||
console.log("List tags response:", response);
|
||||
setTags(Object.values(response));
|
||||
} catch (error) {
|
||||
console.error("Error fetching tags:", error);
|
||||
|
|
|
|||
|
|
@ -51,8 +51,6 @@ const MemberModal = <T extends BaseMember>({
|
|||
const [form] = Form.useForm();
|
||||
const [isSubmitting, setIsSubmitting] = useState(false);
|
||||
|
||||
console.log("Initial Data:", initialData);
|
||||
|
||||
// Reset form and set initial values when modal becomes visible or initialData changes
|
||||
useEffect(() => {
|
||||
if (visible) {
|
||||
|
|
@ -70,7 +68,6 @@ const MemberModal = <T extends BaseMember>({
|
|||
// Keep array values for multi-select fields
|
||||
allowed_models: (initialData as any).allowed_models || [],
|
||||
};
|
||||
console.log("Setting form values:", formValues);
|
||||
form.setFieldsValue(formValues);
|
||||
} else {
|
||||
// For add mode, reset to defaults
|
||||
|
|
@ -99,7 +96,6 @@ const MemberModal = <T extends BaseMember>({
|
|||
return { ...acc, [key]: value };
|
||||
}, {}) as T;
|
||||
|
||||
console.log("Submitting form data:", formData);
|
||||
await Promise.resolve(onSubmit(formData));
|
||||
form.resetFields();
|
||||
// NotificationsManager.success(`Successfully ${mode === 'add' ? 'added' : 'updated'} member`);
|
||||
|
|
|
|||
|
|
@ -51,7 +51,6 @@ import {
|
|||
} from "./networking";
|
||||
import TopKeyView from "./UsagePage/components/EntityUsage/TopKeyView";
|
||||
import { formatNumberWithCommas } from "@/utils/dataUtils";
|
||||
console.log("process.env.NODE_ENV", process.env.NODE_ENV);
|
||||
|
||||
interface UsagePageProps {
|
||||
accessToken: string | null;
|
||||
|
|
@ -121,7 +120,6 @@ function getTopKeys(data: Array<{ [key: string]: unknown }>): any[] {
|
|||
spendKeys.sort((a, b) => Number(b.spend) - Number(a.spend));
|
||||
|
||||
const topKeys = spendKeys.slice(0, 5).map((k) => k.key);
|
||||
console.log(`topKeys: ${Object.keys(topKeys[0])}`);
|
||||
return topKeys;
|
||||
}
|
||||
type DataDict = { [key: string]: unknown };
|
||||
|
|
@ -161,9 +159,6 @@ const UsagePage: React.FC<UsagePageProps> = ({ accessToken, token, userRole, use
|
|||
let startTime = formatDate(firstDay);
|
||||
let endTime = formatDate(lastDay);
|
||||
|
||||
console.log("keys in usage", keys);
|
||||
console.log("premium user in usage", premiumUser);
|
||||
|
||||
function valueFormatterNumbers(number: number) {
|
||||
const formatter = new Intl.NumberFormat("en-US", {
|
||||
maximumFractionDigits: 0,
|
||||
|
|
@ -178,7 +173,6 @@ const UsagePage: React.FC<UsagePageProps> = ({ accessToken, token, userRole, use
|
|||
if (accessToken) {
|
||||
try {
|
||||
const proxy_settings: ProxySettings = await getProxyUISettings(accessToken);
|
||||
console.log("usage tab: proxy_settings", proxy_settings);
|
||||
return proxy_settings;
|
||||
} catch (error) {
|
||||
console.error("Error fetching proxy settings:", error);
|
||||
|
|
@ -199,15 +193,12 @@ const UsagePage: React.FC<UsagePageProps> = ({ accessToken, token, userRole, use
|
|||
return;
|
||||
}
|
||||
|
||||
console.log("uiSelectedKey", uiSelectedKey);
|
||||
|
||||
let newTopUserData = await adminTopEndUsersCall(
|
||||
accessToken,
|
||||
uiSelectedKey,
|
||||
startTime.toISOString(),
|
||||
endTime.toISOString(),
|
||||
);
|
||||
console.log("End user data updated successfully", newTopUserData);
|
||||
setTopUsers(newTopUserData);
|
||||
};
|
||||
|
||||
|
|
@ -230,7 +221,6 @@ const UsagePage: React.FC<UsagePageProps> = ({ accessToken, token, userRole, use
|
|||
selectedTags.length === 0 ? undefined : selectedTags,
|
||||
);
|
||||
setTopTagsData(top_tags.spend_per_tag);
|
||||
console.log("Tag spend data updated successfully");
|
||||
};
|
||||
|
||||
function formatDate(date: Date) {
|
||||
|
|
@ -245,9 +235,6 @@ const UsagePage: React.FC<UsagePageProps> = ({ accessToken, token, userRole, use
|
|||
return `${year}-${monthStr}-${dayStr}`;
|
||||
}
|
||||
|
||||
console.log(`Start date is ${startTime}`);
|
||||
console.log(`End date is ${endTime}`);
|
||||
|
||||
const valueFormatter = (number: number) => `$ ${formatNumberWithCommas(number, 2)}`;
|
||||
|
||||
const fetchAndSetData = async (
|
||||
|
|
@ -515,8 +502,6 @@ const UsagePage: React.FC<UsagePageProps> = ({ accessToken, token, userRole, use
|
|||
}
|
||||
}
|
||||
|
||||
console.log("fetching data - valiue of proxySettings", proxySettings);
|
||||
|
||||
fetchOverallSpend();
|
||||
fetchProviderSpend();
|
||||
fetchTopKeys();
|
||||
|
|
@ -690,7 +675,6 @@ const UsagePage: React.FC<UsagePageProps> = ({ accessToken, token, userRole, use
|
|||
index="date"
|
||||
colors={["cyan"]}
|
||||
categories={["api_requests"]}
|
||||
onValueChange={(v) => console.log(v)}
|
||||
/>
|
||||
</Col>
|
||||
<Col>
|
||||
|
|
@ -704,7 +688,6 @@ const UsagePage: React.FC<UsagePageProps> = ({ accessToken, token, userRole, use
|
|||
index="date"
|
||||
colors={["cyan"]}
|
||||
categories={["total_tokens"]}
|
||||
onValueChange={(v) => console.log(v)}
|
||||
/>
|
||||
</Col>
|
||||
</Grid>
|
||||
|
|
@ -726,7 +709,6 @@ const UsagePage: React.FC<UsagePageProps> = ({ accessToken, token, userRole, use
|
|||
colors={["cyan"]}
|
||||
categories={["api_requests"]}
|
||||
valueFormatter={valueFormatterNumbers}
|
||||
onValueChange={(v) => console.log(v)}
|
||||
/>
|
||||
</Col>
|
||||
<Col>
|
||||
|
|
@ -740,7 +722,6 @@ const UsagePage: React.FC<UsagePageProps> = ({ accessToken, token, userRole, use
|
|||
colors={["cyan"]}
|
||||
categories={["total_tokens"]}
|
||||
valueFormatter={valueFormatterNumbers}
|
||||
onValueChange={(v) => console.log(v)}
|
||||
/>
|
||||
</Col>
|
||||
</Grid>
|
||||
|
|
|
|||
|
|
@ -108,7 +108,6 @@ const UserDashboard: React.FC<UserDashboardProps> = ({
|
|||
if (!userRole) {
|
||||
return "Undefined Role";
|
||||
}
|
||||
console.log(`Received user role: ${userRole}`);
|
||||
switch (userRole.toLowerCase()) {
|
||||
case "app_owner":
|
||||
return "App Owner";
|
||||
|
|
@ -138,25 +137,20 @@ const UserDashboard: React.FC<UserDashboardProps> = ({
|
|||
const decoded = jwtDecode(token) as { [key: string]: any };
|
||||
if (decoded) {
|
||||
// cast decoded to dictionary
|
||||
console.log("Decoded token:", decoded);
|
||||
|
||||
console.log("Decoded key:", decoded.key);
|
||||
// set accessToken
|
||||
setAccessToken(decoded.key);
|
||||
|
||||
// check if userRole is defined
|
||||
if (decoded.user_role) {
|
||||
const formattedUserRole = formatUserRole(decoded.user_role);
|
||||
console.log("Decoded user_role:", formattedUserRole);
|
||||
setUserRole(formattedUserRole);
|
||||
} else {
|
||||
console.log("User role not defined");
|
||||
}
|
||||
|
||||
if (decoded.user_email) {
|
||||
setUserEmail(decoded.user_email);
|
||||
} else {
|
||||
console.log(`User Email is not set ${decoded}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -165,7 +159,6 @@ const UserDashboard: React.FC<UserDashboardProps> = ({
|
|||
if (cachedUserModels) {
|
||||
setUserModels(JSON.parse(cachedUserModels));
|
||||
} else {
|
||||
console.log(`currentOrg: ${JSON.stringify(currentOrg)}`);
|
||||
const fetchData = async () => {
|
||||
try {
|
||||
const proxy_settings: ProxySettings = await getProxyUISettings(accessToken);
|
||||
|
|
@ -180,11 +173,8 @@ const UserDashboard: React.FC<UserDashboardProps> = ({
|
|||
const model_available = await modelAvailableCall(accessToken, userID, userRole);
|
||||
// loop through model_info["data"] and create an array of element.model_name
|
||||
let available_model_names = model_available["data"].map((element: { id: string }) => element.id);
|
||||
console.log("available_model_names:", available_model_names);
|
||||
setUserModels(available_model_names);
|
||||
|
||||
console.log("userModels:", userModels);
|
||||
|
||||
sessionStorage.setItem("userModels" + userID, JSON.stringify(available_model_names));
|
||||
} catch (error: any) {
|
||||
console.error("There was an error fetching the data", error);
|
||||
|
|
@ -206,7 +196,6 @@ const UserDashboard: React.FC<UserDashboardProps> = ({
|
|||
const fetchKeyInfo = async () => {
|
||||
try {
|
||||
const keyInfo = await keyInfoCall(accessToken, [accessToken]);
|
||||
console.log("keyInfo: ", keyInfo);
|
||||
} catch (error: any) {
|
||||
if (error.message.includes("Invalid proxy server token passed")) {
|
||||
gotoLogin();
|
||||
|
|
@ -218,11 +207,7 @@ const UserDashboard: React.FC<UserDashboardProps> = ({
|
|||
}, [accessToken]);
|
||||
|
||||
useEffect(() => {
|
||||
console.log(
|
||||
`currentOrg: ${JSON.stringify(currentOrg)}, accessToken: ${accessToken}, userID: ${userID}, userRole: ${userRole}`,
|
||||
);
|
||||
if (accessToken) {
|
||||
console.log(`fetching teams`);
|
||||
fetchTeams(accessToken, userID, userRole, currentOrg, setTeams);
|
||||
}
|
||||
}, [currentOrg]);
|
||||
|
|
@ -231,13 +216,11 @@ const UserDashboard: React.FC<UserDashboardProps> = ({
|
|||
// This code will run every time selectedTeam changes
|
||||
if (keys !== null && selectedTeam !== null && selectedTeam !== undefined && selectedTeam.team_id !== null) {
|
||||
let sum = 0;
|
||||
console.log(`keys: ${JSON.stringify(keys)}`);
|
||||
for (const key of keys) {
|
||||
if (selectedTeam.hasOwnProperty("team_id") && key.team_id !== null && key.team_id === selectedTeam.team_id) {
|
||||
sum += key.spend;
|
||||
}
|
||||
}
|
||||
console.log(`sum: ${sum}`);
|
||||
setTeamSpend(sum);
|
||||
} else if (keys !== null) {
|
||||
// sum the keys which don't have team-id set (default team)
|
||||
|
|
@ -259,11 +242,8 @@ const UserDashboard: React.FC<UserDashboardProps> = ({
|
|||
|
||||
const baseUrl = getProxyBaseUrl();
|
||||
|
||||
console.log("proxyBaseUrl:", baseUrl);
|
||||
|
||||
const url = baseUrl ? `${baseUrl}/sso/key/generate` : `/sso/key/generate`;
|
||||
|
||||
console.log("Full URL:", url);
|
||||
window.location.href = url;
|
||||
|
||||
return null;
|
||||
|
|
@ -271,7 +251,6 @@ const UserDashboard: React.FC<UserDashboardProps> = ({
|
|||
|
||||
if (token == null) {
|
||||
// user is not logged in as yet
|
||||
console.log("All cookies before redirect:", document.cookie);
|
||||
|
||||
// Clear token cookies using the utility function
|
||||
gotoLogin();
|
||||
|
|
@ -280,13 +259,10 @@ const UserDashboard: React.FC<UserDashboardProps> = ({
|
|||
// Check if token is expired
|
||||
try {
|
||||
const decoded = jwtDecode(token) as { [key: string]: any };
|
||||
console.log("Decoded token:", decoded);
|
||||
const expTime = decoded.exp;
|
||||
const currentTime = Math.floor(Date.now() / 1000);
|
||||
|
||||
if (expTime && currentTime >= expTime) {
|
||||
console.log("Token expired, redirecting to login");
|
||||
|
||||
gotoLogin();
|
||||
|
||||
return null;
|
||||
|
|
@ -319,8 +295,6 @@ const UserDashboard: React.FC<UserDashboardProps> = ({
|
|||
// other role keeps its existing ability to create keys.
|
||||
const canCreateKey = userRole !== "Admin Viewer" && userRole !== "proxy_admin_viewer";
|
||||
|
||||
console.log("inside user dashboard, selected team", selectedTeam);
|
||||
console.log("All cookies after redirect:", document.cookie);
|
||||
return (
|
||||
<div className="w-full mx-4 h-[75vh]">
|
||||
<Grid numItems={1} className="gap-2 p-8 w-full mt-2">
|
||||
|
|
|
|||
|
|
@ -60,10 +60,7 @@ const DocumentsTable: React.FC<DocumentsTableProps> = ({ documents, onRemove })
|
|||
render: (_: any, record: DocumentUpload) => (
|
||||
<div className="flex items-center space-x-2">
|
||||
<Tooltip title="View details">
|
||||
<EyeOutlined
|
||||
className="cursor-pointer text-gray-600 hover:text-blue-500"
|
||||
onClick={() => console.log("View", record)}
|
||||
/>
|
||||
<EyeOutlined className="cursor-pointer text-gray-600 hover:text-blue-500" onClick={() => {}} />
|
||||
</Tooltip>
|
||||
<Tooltip title="Copy ID">
|
||||
<CopyOutlined
|
||||
|
|
|
|||
|
|
@ -44,7 +44,6 @@ const VectorStoreManagement: React.FC<VectorStoreProps> = ({ accessToken, userID
|
|||
if (!accessToken) return;
|
||||
try {
|
||||
const response = await vectorStoreListCall(accessToken);
|
||||
console.log("List vector stores response:", response);
|
||||
setVectorStores(response.data || []);
|
||||
} catch (error) {
|
||||
console.error("Error fetching vector stores:", error);
|
||||
|
|
@ -56,7 +55,6 @@ const VectorStoreManagement: React.FC<VectorStoreProps> = ({ accessToken, userID
|
|||
if (!accessToken) return;
|
||||
try {
|
||||
const response = await credentialListCall(accessToken);
|
||||
console.log("List credentials response:", response);
|
||||
setCredentials(response.credentials || []);
|
||||
} catch (error) {
|
||||
console.error("Error fetching credentials:", error);
|
||||
|
|
@ -115,7 +113,6 @@ const VectorStoreManagement: React.FC<VectorStoreProps> = ({ accessToken, userID
|
|||
};
|
||||
|
||||
const handleVectorStoreCreated = (vectorStoreId: string) => {
|
||||
console.log("Vector store created:", vectorStoreId);
|
||||
fetchVectorStores();
|
||||
// Optionally switch to the manage tab
|
||||
};
|
||||
|
|
|
|||
|
|
@ -67,7 +67,6 @@ const VectorStoreInfoView: React.FC<VectorStoreInfoViewProps> = ({
|
|||
if (!accessToken) return;
|
||||
try {
|
||||
const response = await credentialListCall(accessToken);
|
||||
console.log("List credentials response:", response);
|
||||
setCredentials(response.credentials || []);
|
||||
} catch (error) {
|
||||
console.error("Error fetching credentials:", error);
|
||||
|
|
|
|||
|
|
@ -80,7 +80,6 @@ const ViewUserSpend: React.FC<ViewUserSpendProps> = ({ userSpend, userMaxBudget,
|
|||
if (accessToken !== null) {
|
||||
const model_available = await modelAvailableCall(accessToken, userID, userRole);
|
||||
let available_model_names = model_available["data"].map((element: { id: string }) => element.id);
|
||||
console.log("available_model_names:", available_model_names);
|
||||
setUserModels(available_model_names);
|
||||
}
|
||||
} catch (error) {
|
||||
|
|
@ -106,7 +105,6 @@ const ViewUserSpend: React.FC<ViewUserSpendProps> = ({ userSpend, userMaxBudget,
|
|||
|
||||
// check if "all-proxy-models" is in modelsToDisplay
|
||||
if (modelsToDisplay && modelsToDisplay.includes("all-proxy-models")) {
|
||||
console.log("user models:", userModels);
|
||||
modelsToDisplay = userModels;
|
||||
} else if (modelsToDisplay && modelsToDisplay.includes("all-team-models")) {
|
||||
modelsToDisplay = selectedTeam.models;
|
||||
|
|
@ -118,7 +116,6 @@ const ViewUserSpend: React.FC<ViewUserSpendProps> = ({ userSpend, userMaxBudget,
|
|||
|
||||
const roundedSpend = spend !== undefined ? formatNumberWithCommas(spend, 4) : null;
|
||||
|
||||
console.log(`spend in view user spend: ${spend}`);
|
||||
return (
|
||||
<div className="flex items-center">
|
||||
<div className="flex justify-between gap-x-6">
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue