diff --git a/admin-compliance/app/sdk/agent/_components/DocCheckTab.tsx b/admin-compliance/app/sdk/agent/_components/DocCheckTab.tsx index 0f9b1b3..33e1c8f 100644 --- a/admin-compliance/app/sdk/agent/_components/DocCheckTab.tsx +++ b/admin-compliance/app/sdk/agent/_components/DocCheckTab.tsx @@ -31,6 +31,7 @@ export function DocCheckTab() { try { const s = localStorage.getItem('doc-check-entries'); return s ? JSON.parse(s) : [newEntry()] } catch { return [newEntry()] } }) const [checkCookieBanner, setCheckCookieBanner] = useState(false) + const [useAgent, setUseAgent] = useState(false) const [loading, setLoading] = useState(false) const [progress, setProgress] = useState('') const [results, setResults] = useState(() => { @@ -92,6 +93,7 @@ export function DocCheckTab() { url: e.url.trim(), })), check_cookie_banner: checkCookieBanner, + use_agent: useAgent, }), }) if (!startRes.ok) throw new Error(`Pruefung konnte nicht gestartet werden: ${startRes.status}`) @@ -192,6 +194,19 @@ export function DocCheckTab() { /> Cookie-Banner pruefen + + {/* Submit */} diff --git a/backend-compliance/compliance/api/agent_doc_check_routes.py b/backend-compliance/compliance/api/agent_doc_check_routes.py index ac1efbe..e13886e 100644 --- a/backend-compliance/compliance/api/agent_doc_check_routes.py +++ b/backend-compliance/compliance/api/agent_doc_check_routes.py @@ -40,6 +40,7 @@ class DocCheckRequest(BaseModel): entries: list[DocCheckEntry] recipient: str = "dsb@breakpilot.local" check_cookie_banner: bool = False + use_agent: bool = False class CheckItem(BaseModel): @@ -193,7 +194,7 @@ async def _run_doc_check(check_id: str, req: DocCheckRequest): f"Dokument {i+1}/{len(req.entries)}: {entry.label}..." ) - doc_results = await _check_single_document(entry) + doc_results = await _check_single_document(entry, use_agent=req.use_agent) results.extend(doc_results) total_findings += sum(r.findings_count for r in doc_results) @@ -231,7 +232,7 @@ async def _run_doc_check(check_id: str, req: DocCheckRequest): _doc_check_jobs[check_id]["error"] = str(e)[:500] -async def _check_single_document(entry: DocCheckEntry) -> list[DocCheckResult]: +async def _check_single_document(entry: DocCheckEntry, use_agent: bool = False) -> list[DocCheckResult]: """Load a single URL, expand content, extract text, split into sections, and check each section against its type-specific checklist. @@ -287,10 +288,10 @@ async def _check_single_document(entry: DocCheckEntry) -> list[DocCheckResult]: # binary pass/fail criteria verified by LLM (Qwen) try: from compliance.services.rag_document_checker import check_document_with_controls - use_agent = os.getenv("COMPLIANCE_USE_AGENT", "false").lower() == "true" + use_agent_flag = use_agent or os.getenv("COMPLIANCE_USE_AGENT", "false").lower() == "true" mc_results = await check_document_with_controls( doc_text, entry.doc_type, entry.label, - max_controls=0, use_agent=use_agent, + max_controls=0, use_agent=use_agent_flag, ) if mc_results: # Add MC results as additional checks to the main result