diff --git a/ui/litellm-dashboard/src/components/networking.tsx b/ui/litellm-dashboard/src/components/networking.tsx index 35e713a94c1..905514a69ba 100644 --- a/ui/litellm-dashboard/src/components/networking.tsx +++ b/ui/litellm-dashboard/src/components/networking.tsx @@ -9235,3 +9235,70 @@ export const deleteClaudeCodePlugin = async (accessToken: string, pluginName: st throw error; } }; + +// Compliance check types and functions + +export interface ComplianceCheckResult { + check_name: string; + article: string; + passed: boolean; + detail: string; +} + +export interface ComplianceResponse { + compliant: boolean; + regulation: string; + checks: ComplianceCheckResult[]; +} + +export interface ComplianceCheckRequest { + request_id: string; + user_id?: string; + model?: string; + timestamp?: string; + guardrail_information?: Record[]; +} + +export const checkEuAiActCompliance = async ( + accessToken: string, + payload: ComplianceCheckRequest +): Promise => { + const url = proxyBaseUrl + ? `${proxyBaseUrl}/compliance/eu-ai-act` + : `/compliance/eu-ai-act`; + const response = await fetch(url, { + method: "POST", + headers: { + [globalLitellmHeaderName]: `Bearer ${accessToken}`, + "Content-Type": "application/json", + }, + body: JSON.stringify(payload), + }); + if (!response.ok) { + const errorData = await response.text(); + throw new Error(errorData); + } + return response.json(); +}; + +export const checkGdprCompliance = async ( + accessToken: string, + payload: ComplianceCheckRequest +): Promise => { + const url = proxyBaseUrl + ? `${proxyBaseUrl}/compliance/gdpr` + : `/compliance/gdpr`; + const response = await fetch(url, { + method: "POST", + headers: { + [globalLitellmHeaderName]: `Bearer ${accessToken}`, + "Content-Type": "application/json", + }, + body: JSON.stringify(payload), + }); + if (!response.ok) { + const errorData = await response.text(); + throw new Error(errorData); + } + return response.json(); +};