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)