File size: 1,166 Bytes
89c8ad5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from fastapi import FastAPI, HTTPException
from models import AuditResponses
from analyzer import SecurityAuditAnalyzer
from config import settings

app = FastAPI(title="Security Audit API", description="API pour analyser les réponses d'audits de sécurité")

# Initialisation de l'analyseur avec les paramètres de configuration
security_analyzer = SecurityAuditAnalyzer(
    api_key=settings.OPENROUTER_API_KEY,
    model=settings.MODEL,
    api_url=settings.API_URL
)

@app.post("/api/analyze")
async def analyze_audit(responses: AuditResponses):
    """
    Analyse les réponses d'un audit de sécurité.
    
    Args:
        responses: Dictionnaire de questions/réponses
    
    Returns:
        Résultats structurés de l'analyse
    """
    analysis_result = security_analyzer.analyze_responses(responses.responses)
    if analysis_result.get("status") == "error":
        raise HTTPException(status_code=500, detail=analysis_result["error"])
    return analysis_result

@app.get("/api/health")
async def health_check():
    """Vérifie l'état de l'API."""
    return {"status": "ok", "message": "API d'analyse d'audit de sécurité opérationnelle"}