sKnowBoard / classes.py
Ludo7127's picture
reorganising the files
e1c7a43
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)