File size: 3,384 Bytes
e1c7a43
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
53
54
55
56
57
58
59
60
61
62
63
from openai import OpenAI

class LeitnerSystem:
    def __init__(self):
        self.compartments = [[], [], [], []]  # Quatre compartiments pour cet exemple
        
    def add_card(self, question, answer):
        self.compartments[0].append({'question': question, 'answer': answer})
    def compare_semantic_similarity(self, correct_answer, user_answer):
            """Utilise l'API d'OpenAI pour comparer la similarité sémantique des réponses."""
            client = OpenAI()
            try:
                
                response = client.chat.completions.create(
                    model="gpt-4",  # Utilisez "gpt-4" si vous avez accès à GPT-4
                    messages=[
                        {"role": "system", "content": "Vous êtes un assistant hautement intelligent capable d'évaluer la similarité sémantique entre deux phrases en fournissant une valeur de 0 à 10. X est un entier."},
                        {"role": "user", "content": f"""
                         Évaluez la similarité sémantique entre ces deux phrases en fournissant une note sur 10. 
                         Exemple : 7. Cette avaleur est un entier  
                         Phrase 1: '{correct_answer}'. Phrase 2: '{user_answer}'."
                         """}
                    ],   
                    temperature=0.5,
                    max_tokens=600,
                    # seed=10
                )

                score = response.choices[0].message.content
                # print(score)
                    # Utilisation d'une expression régulière pour extraire le score numérique
                # score, analysis = self.extract_score_and_explanation(full_response)
                
                return score
            except Exception as e:
                print("Erreur lors de l'évaluation de la similarité :", e)
                return "0", str(e)
        
    def compare_semantic_similarity_explanation(self, correct_answer, user_answer):
            """Utilise l'API d'OpenAI pour comparer la similarité sémantique des réponses."""
            client = OpenAI()
            try:
                response = client.chat.completions.create(
                    model="gpt-4",  # Utilisez "gpt-4" si vous avez accès à GPT-4
                    messages=[
                        {"role": "system", "content": "Vous êtes un assistant hautement intelligent capable d'évaluer la similarité sémantique entre deux phrases"},
                        {"role": "user", "content": f"Évaluez la similarité sémantique entre ces deux phrases en fournissant un explication en français. Les aspects positifs de la réponse, et les aspects négatifs. Phrase 1: '{correct_answer}'. Phrase 2: '{user_answer}'."}
                    ],   
                    temperature=0.5,
                    max_tokens=600,
                    # seed=10
                )

                explanation = response.choices[0].message.content
                # print(explanation)
                    # Utilisation d'une expression régulière pour extraire le score numérique
                # score, analysis = self.extract_score_and_explanation(full_response)
                
                return explanation
            except Exception as e:
                print("Erreur lors de l'évaluation de la similarité :", e)
                return "0", str(e)