Spaces:
Sleeping
Sleeping
File size: 1,741 Bytes
217abc3 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | import json
def format_quiz_for_ui(questions_json):
"""Format quiz questions for display in the UI."""
if not questions_json:
return "No questions to format."
try:
questions = json.loads(questions_json)
# Sort questions by rank if available
try:
questions = sorted(questions, key=lambda q: q.get('rank', 999))
except Exception as e:
print(f"Warning: Could not sort by rank: {e}")
formatted_output = ""
for i, question in enumerate(questions, 1):
# Add question with rank if available
rank_info = ""
if 'rank' in question:
rank_info = f" [Rank: {question['rank']}]"
formatted_output += f"**Question {i}{rank_info}:** {question['question_text']}\n\n"
# Add ranking reasoning if available
if 'ranking_reasoning' in question:
formatted_output += f"Ranking Reasoning: {question['ranking_reasoning']}\n\n"
options = question['options']
option_letters = ['A', 'B', 'C', 'D']
# Add each option with its letter
for j, option in enumerate(options):
letter = option_letters[j]
correct_marker = " [Correct]" if option['is_correct'] else ""
formatted_output += f"\t• {letter}{correct_marker}: {option['text']}\n"
formatted_output += f"\t ◦ Feedback: {option['feedback']}\n\n"
formatted_output += "\n"
return formatted_output
except Exception as e:
return f"Error formatting quiz: {str(e)}" |