Spaces:
Sleeping
Sleeping
| 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) | |