File size: 1,564 Bytes
122f90e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# src/llmguardian/api/routes.py
from fastapi import APIRouter, Depends, HTTPException
from typing import List
from .models import (
    SecurityRequest, SecurityResponse,
    PrivacyRequest, VectorRequest
)
from ..data.privacy_guard import PrivacyGuard
from ..vectors.vector_scanner import VectorScanner
from .security import verify_token

router = APIRouter()

@router.post("/scan", response_model=SecurityResponse)
async def scan_content(
    request: SecurityRequest,
    token: str = Depends(verify_token)
):
    try:
        privacy_guard = PrivacyGuard()
        result = privacy_guard.check_privacy(request.content, request.context)
        return SecurityResponse(**result.__dict__)
    except Exception as e:
        raise HTTPException(status_code=400, detail=str(e))

@router.post("/privacy/check")
async def check_privacy(
    request: PrivacyRequest,
    token: str = Depends(verify_token)
):
    try:
        privacy_guard = PrivacyGuard() 
        result = privacy_guard.enforce_privacy(
            request.content,
            request.privacy_level,
            request.context
        )
        return result
    except Exception as e:
        raise HTTPException(status_code=400, detail=str(e))

@router.post("/vectors/scan") 
async def scan_vectors(
    request: VectorRequest,
    token: str = Depends(verify_token)
):
    try:
        scanner = VectorScanner()
        result = scanner.scan_vectors(request.vectors, request.metadata)
        return result
    except Exception as e:
        raise HTTPException(status_code=400, detail=str(e))