Spaces:
Sleeping
Sleeping
| import uuid | |
| from typing import List | |
| from api.models.pydantic_models import QuizQuestion | |
| def generate_fallback_questions(num_questions: int) -> List[QuizQuestion]: | |
| """ | |
| Generate generic fallback questions when LLM fails | |
| Args: | |
| num_questions: Number of questions to generate | |
| Returns: | |
| List of fallback QuizQuestion objects | |
| """ | |
| fallback_questions = [ | |
| QuizQuestion( | |
| id=str(uuid.uuid4()), | |
| text="What is the main purpose of a RAG (Retrieval-Augmented Generation) system?", | |
| options=[ | |
| "To generate random text without meaning", | |
| "To retrieve documents from a database only", | |
| "To combine document retrieval with language model generation", | |
| "To replace human writing entirely" | |
| ], | |
| correctAnswer="To combine document retrieval with language model generation" | |
| ), | |
| QuizQuestion( | |
| id=str(uuid.uuid4()), | |
| text="Which component is NOT typically part of a RAG system?", | |
| options=[ | |
| "Vector database", | |
| "Language model", | |
| "Blockchain ledger", | |
| "Text splitter" | |
| ], | |
| correctAnswer="Blockchain ledger" | |
| ), | |
| QuizQuestion( | |
| id=str(uuid.uuid4()), | |
| text="What is the benefit of using RAG over a standalone language model?", | |
| options=[ | |
| "It's always faster", | |
| "It provides more up-to-date and accurate information", | |
| "It uses less computational resources", | |
| "It requires no training data" | |
| ], | |
| correctAnswer="It provides more up-to-date and accurate information" | |
| ), | |
| QuizQuestion( | |
| id=str(uuid.uuid4()), | |
| text="What is a vector embedding in the context of RAG?", | |
| options=[ | |
| "A mathematical representation of text in multidimensional space", | |
| "A form of data compression", | |
| "A type of encryption", | |
| "A physical server component" | |
| ], | |
| correctAnswer="A mathematical representation of text in multidimensional space" | |
| ), | |
| QuizQuestion( | |
| id=str(uuid.uuid4()), | |
| text="How does a RAG system determine which text chunks are relevant to a query?", | |
| options=[ | |
| "Random selection", | |
| "Semantic similarity between query and text embeddings", | |
| "Alphabetical ordering", | |
| "Document recency only" | |
| ], | |
| correctAnswer="Semantic similarity between query and text embeddings" | |
| ) | |
| ] | |
| return fallback_questions[:num_questions] |