Update app.py
Browse files
app.py
CHANGED
|
@@ -201,17 +201,28 @@ def get_student_profile():
|
|
| 201 |
|
| 202 |
|
| 203 |
import re
|
| 204 |
-
|
|
|
|
|
|
|
| 205 |
print(llm_response)
|
|
|
|
| 206 |
# Extract all the marks using a regular expression
|
| 207 |
marks = re.findall(r'(\d+)/(\d+)', llm_response)
|
|
|
|
|
|
|
|
|
|
|
|
|
| 208 |
|
| 209 |
# Calculate total score and maximum possible score
|
| 210 |
total_score = sum(int(mark[0]) for mark in marks)
|
| 211 |
max_possible_score = sum(int(mark[1]) for mark in marks)
|
| 212 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 213 |
# Calculate the percentage
|
| 214 |
-
percentage = (total_score / max_possible_score) * 100
|
| 215 |
|
| 216 |
# Determine the grade based on the percentage
|
| 217 |
if percentage > 90:
|
|
@@ -234,7 +245,7 @@ def calculate_score_and_grade(llm_response):
|
|
| 234 |
def assign_grade():
|
| 235 |
data = request.json
|
| 236 |
result = data['result']
|
| 237 |
-
total_score, max_possible_score, percentage, grade =
|
| 238 |
return jsonify({
|
| 239 |
'total_score': total_score,
|
| 240 |
'max_possible_score': max_possible_score,
|
|
|
|
| 201 |
|
| 202 |
|
| 203 |
import re
|
| 204 |
+
import re
|
| 205 |
+
|
| 206 |
+
def calculate_score_and_grades(llm_response):
|
| 207 |
print(llm_response)
|
| 208 |
+
|
| 209 |
# Extract all the marks using a regular expression
|
| 210 |
marks = re.findall(r'(\d+)/(\d+)', llm_response)
|
| 211 |
+
|
| 212 |
+
if not marks:
|
| 213 |
+
# Handle the case where no marks are found
|
| 214 |
+
return 0, 0, 0, 'No grade'
|
| 215 |
|
| 216 |
# Calculate total score and maximum possible score
|
| 217 |
total_score = sum(int(mark[0]) for mark in marks)
|
| 218 |
max_possible_score = sum(int(mark[1]) for mark in marks)
|
| 219 |
|
| 220 |
+
# Prevent division by zero
|
| 221 |
+
if max_possible_score == 0:
|
| 222 |
+
return total_score, max_possible_score, 0, 'Fail'
|
| 223 |
+
|
| 224 |
# Calculate the percentage
|
| 225 |
+
percentage = (total_score / max_possible_score) * 100
|
| 226 |
|
| 227 |
# Determine the grade based on the percentage
|
| 228 |
if percentage > 90:
|
|
|
|
| 245 |
def assign_grade():
|
| 246 |
data = request.json
|
| 247 |
result = data['result']
|
| 248 |
+
total_score, max_possible_score, percentage, grade = calculate_score_and_grades(result)
|
| 249 |
return jsonify({
|
| 250 |
'total_score': total_score,
|
| 251 |
'max_possible_score': max_possible_score,
|