diff --git a/ui/litellm-dashboard/src/components/policies/index.tsx b/ui/litellm-dashboard/src/components/policies/index.tsx index f5fadebdec4..01f6d1e13df 100644 --- a/ui/litellm-dashboard/src/components/policies/index.tsx +++ b/ui/litellm-dashboard/src/components/policies/index.tsx @@ -228,7 +228,10 @@ const PoliciesPanel: React.FC = ({ return JSON.parse(templateStr); }; - const handleParameterConfirm = async (parameters: Record) => { + const handleParameterConfirm = async ( + parameters: Record, + enrichmentOptions?: { model?: string; competitors?: string[] } + ) => { if (!accessToken || !pendingTemplate) return; setIsEnrichingTemplate(true); @@ -237,14 +240,20 @@ const PoliciesPanel: React.FC = ({ let enrichedTemplate = pendingTemplate; if (pendingTemplate.llm_enrichment) { - // Call backend to enrich template with LLM-discovered data + // Call backend to enrich template with LLM-discovered data (or user-provided competitors) const enrichResult = await enrichPolicyTemplate( accessToken, pendingTemplate.id, - parameters + parameters, + enrichmentOptions?.model, + enrichmentOptions?.competitors ); - // The backend returns the enriched guardrailDefinitions - enrichedTemplate = { ...pendingTemplate, guardrailDefinitions: enrichResult.guardrailDefinitions }; + // The backend returns the enriched guardrailDefinitions + discovered competitors + enrichedTemplate = { + ...pendingTemplate, + guardrailDefinitions: enrichResult.guardrailDefinitions, + discoveredCompetitors: enrichResult.competitors || [], + }; } // Substitute parameters in template @@ -491,6 +500,7 @@ const PoliciesPanel: React.FC = ({ onConfirm={handleParameterConfirm} onCancel={handleParameterCancel} isLoading={isEnrichingTemplate} + accessToken={accessToken || ""} />