dofbi commited on
Commit
afd0ee1
·
verified ·
1 Parent(s): ae42523

Update analyzer.py

Browse files
Files changed (1) hide show
  1. analyzer.py +29 -24
analyzer.py CHANGED
@@ -1,44 +1,49 @@
1
  import requests
2
  import re
3
 
 
 
 
4
  class SecurityAuditAnalyzer:
5
- def __init__(self, api_key, model="deepseek/deepseek-chat:free", api_url="https://openrouter.ai/api/v1/chat/completions"):
6
- self.api_url = api_url
7
- self.api_key = api_key
 
 
8
  self.model = model
9
- self.headers = {
10
- "Content-Type": "application/json",
11
- "Authorization": f"Bearer {self.api_key}",
12
- "HTTP-Referer": "https://security-audit-api.com",
13
  "X-Title": "Security Audit API"
14
  }
15
 
16
  def analyze_responses(self, responses):
17
- """Analyse les réponses d'un audit et retourne une évaluation structurée."""
18
- prompt = self._build_prompt(responses)
19
- payload = {
20
- "model": self.model,
21
- "messages": [
22
- {"role": "system", "content": self._get_system_prompt()},
23
- {"role": "user", "content": prompt}
24
- ],
25
- "temperature": 0.5
26
- }
27
  try:
28
- response = requests.post(self.api_url, headers=self.headers, json=payload)
29
- response.raise_for_status()
30
- result = response.json()
31
- analysis = result['choices'][0]['message']['content']
 
 
 
 
 
 
 
32
  return self._parse_analysis(analysis)
33
- except requests.RequestException as e:
 
34
  return {
35
  "error": str(e),
36
  "status": "error",
37
  "evaluation": {"score": 0, "level": "Inconnu"},
38
- "strengths": [], "weaknesses": [], "recommendations": [],
39
- "summary": "Une erreur s'est produite lors de l'analyse."
 
 
40
  }
41
 
 
42
  def _get_system_prompt(self):
43
  return """Vous êtes un expert en cybersécurité spécialisé dans l'analyse des audits de sécurité.
44
  Votre tâche est d'analyser les réponses fournies à un audit de sécurité et de produire une évaluation détaillée.
 
1
  import requests
2
  import re
3
 
4
+ from openai import OpenAI
5
+
6
+
7
  class SecurityAuditAnalyzer:
8
+ def __init__(self, api_key, model="deepseek/deepseek-chat", api_url="https://openrouter.ai/api/v1"):
9
+ self.client = OpenAI(
10
+ base_url=api_url,
11
+ api_key=api_key
12
+ )
13
  self.model = model
14
+ self.extra_headers = {
15
+ "HTTP-Referer": "https://adisa.africtivistes.com/", # À remplacer par votre URL en prod
 
 
16
  "X-Title": "Security Audit API"
17
  }
18
 
19
  def analyze_responses(self, responses):
20
+ """Analyse les réponses d'un audit en utilisant le client OpenAI"""
 
 
 
 
 
 
 
 
 
21
  try:
22
+ completion = self.client.chat.completions.create(
23
+ extra_headers=self.extra_headers,
24
+ model=self.model,
25
+ messages=[
26
+ {"role": "system", "content": self._get_system_prompt()},
27
+ {"role": "user", "content": self._build_prompt(responses)}
28
+ ],
29
+ temperature=0.5
30
+ )
31
+
32
+ analysis = completion.choices[0].message.content
33
  return self._parse_analysis(analysis)
34
+
35
+ except Exception as e:
36
  return {
37
  "error": str(e),
38
  "status": "error",
39
  "evaluation": {"score": 0, "level": "Inconnu"},
40
+ "strengths": [],
41
+ "weaknesses": [],
42
+ "recommendations": [],
43
+ "summary": "Erreur lors de la communication avec l'API"
44
  }
45
 
46
+ # Gardez les autres méthodes (_get_system_prompt, _build_prompt, etc.) identiques
47
  def _get_system_prompt(self):
48
  return """Vous êtes un expert en cybersécurité spécialisé dans l'analyse des audits de sécurité.
49
  Votre tâche est d'analyser les réponses fournies à un audit de sécurité et de produire une évaluation détaillée.