Spaces:
Sleeping
Sleeping
File size: 2,792 Bytes
73641c0 | 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 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | 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] |