Update app.py
Browse files
app.py
CHANGED
|
@@ -1,5 +1,4 @@
|
|
| 1 |
import os
|
| 2 |
-
import difflib
|
| 3 |
from groq import Groq
|
| 4 |
import gradio as gr
|
| 5 |
from transformers import pipeline
|
|
@@ -57,7 +56,7 @@ def extract_text_from_image(filepath: str, languages: List[str]):
|
|
| 57 |
def get_embedding(text):
|
| 58 |
return model1.encode(text, convert_to_tensor=True)
|
| 59 |
|
| 60 |
-
# Calculate similarity between two texts
|
| 61 |
def calculate_similarity(text1, text2):
|
| 62 |
embedding1 = get_embedding(text1)
|
| 63 |
embedding2 = get_embedding(text2)
|
|
@@ -75,13 +74,21 @@ def assign_badge(grade):
|
|
| 75 |
else:
|
| 76 |
return "Keep Improving Badge 💪"
|
| 77 |
|
| 78 |
-
# Generate
|
| 79 |
-
def
|
| 80 |
-
|
| 81 |
-
|
| 82 |
-
|
| 83 |
-
|
| 84 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 85 |
|
| 86 |
# Categorize feedback into clarity, completeness, and accuracy
|
| 87 |
def detailed_feedback(similarity_score):
|
|
@@ -113,7 +120,7 @@ def evaluate_answer(image, languages, model_answer):
|
|
| 113 |
similarity_score = calculate_similarity(student_answer, model_answer)
|
| 114 |
grade = get_grade(similarity_score)
|
| 115 |
feedback = f"Student's answer: {student_answer}\nTeacher's answer: {model_answer}"
|
| 116 |
-
visual_feedback =
|
| 117 |
badge = assign_badge(grade)
|
| 118 |
detailed_feedback_msg = detailed_feedback(similarity_score)
|
| 119 |
prompt = f"The student got grade: {grade} when the student's answer is: {student_answer} and the teacher's answer is: {model_answer}. Justify the grade given to the student."
|
|
|
|
| 1 |
import os
|
|
|
|
| 2 |
from groq import Groq
|
| 3 |
import gradio as gr
|
| 4 |
from transformers import pipeline
|
|
|
|
| 56 |
def get_embedding(text):
|
| 57 |
return model1.encode(text, convert_to_tensor=True)
|
| 58 |
|
| 59 |
+
# Calculate similarity between two texts focusing on sequence
|
| 60 |
def calculate_similarity(text1, text2):
|
| 61 |
embedding1 = get_embedding(text1)
|
| 62 |
embedding2 = get_embedding(text2)
|
|
|
|
| 74 |
else:
|
| 75 |
return "Keep Improving Badge 💪"
|
| 76 |
|
| 77 |
+
# Generate sequence-based feedback
|
| 78 |
+
def generate_sequence_feedback(student_answer, model_answer):
|
| 79 |
+
student_words = student_answer.split()
|
| 80 |
+
model_words = model_answer.split()
|
| 81 |
+
common_sequences = []
|
| 82 |
+
|
| 83 |
+
for i in range(len(student_words)):
|
| 84 |
+
sequence = ' '.join(student_words[i:i+3]) # Compare sequences of 3 words at a time
|
| 85 |
+
if sequence in model_answer:
|
| 86 |
+
common_sequences.append(f"**{sequence}**")
|
| 87 |
+
else:
|
| 88 |
+
common_sequences.append(sequence)
|
| 89 |
+
|
| 90 |
+
highlighted_feedback = ' '.join(common_sequences)
|
| 91 |
+
return highlighted_feedback
|
| 92 |
|
| 93 |
# Categorize feedback into clarity, completeness, and accuracy
|
| 94 |
def detailed_feedback(similarity_score):
|
|
|
|
| 120 |
similarity_score = calculate_similarity(student_answer, model_answer)
|
| 121 |
grade = get_grade(similarity_score)
|
| 122 |
feedback = f"Student's answer: {student_answer}\nTeacher's answer: {model_answer}"
|
| 123 |
+
visual_feedback = generate_sequence_feedback(student_answer, model_answer)
|
| 124 |
badge = assign_badge(grade)
|
| 125 |
detailed_feedback_msg = detailed_feedback(similarity_score)
|
| 126 |
prompt = f"The student got grade: {grade} when the student's answer is: {student_answer} and the teacher's answer is: {model_answer}. Justify the grade given to the student."
|