Spaces:
Sleeping
Sleeping
File size: 2,210 Bytes
25ac852 4cabe54 25ac852 4cabe54 25ac852 f049aec 142a1cd 4cabe54 142a1cd ebaeb7c 142a1cd 78d1477 25ac852 1ad69d1 4cabe54 78d1477 142a1cd ce8e40e ebaeb7c 1ad69d1 142a1cd 1ad69d1 142a1cd 1ad69d1 142a1cd 1ad69d1 25ac852 ebaeb7c 142a1cd ebaeb7c ce8e40e 1ad69d1 |
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 |
import os
from dotenv import load_dotenv
from groq import Groq
import streamlit as st
# Load environment variables
load_dotenv()
# Initialize the Groq client with API key
client = Groq(api_key=os.getenv("GROQ_API_KEY"))
# Function to generate MCQs as a 35-year experienced educator
def generate_mcqs_from_text(user_text):
prompt = f"""
You are a 35-year experienced educator specializing in crafting challenging and insightful MCQs.
Based on the following text, generate between 30 to 50 multiple-choice questions (MCQs).
Each question should:
1. Test critical thinking and understanding of the content.
2. Include four options (A, B, C, D), with one correct answer and three well-designed distractors.
3. Provide clear, concise language and avoid ambiguity.
4. Avoid using any special characters or formatting like '*' or '#' in the output.
Format the output as:
Question: [Your question here]
A. [Option 1]
B. [Option 2]
C. [Option 3]
D. [Option 4]
Correct Answer: [Correct Option]
Text: {user_text}
"""
chat_completion = client.chat.completions.create(
messages=[{"role": "user", "content": prompt}],
model="gemma2-9b-it", # Use a valid Groq-supported model
)
return chat_completion.choices[0].message.content
# Function to clean the output and remove unwanted characters
def clean_output(mcqs):
# Remove special characters like '*' and '#'
mcqs = mcqs.replace("*", "").replace("#", "")
return mcqs
# Streamlit App
st.title("MCQ Generator with Correct Answers")
st.write("Paste your text below, and the app will generate MCQs with the correct answers.")
# Input text from user
user_text = st.text_area("Enter the text for generating MCQs:", height=200)
if st.button("Generate MCQs"):
if user_text.strip():
with st.spinner("Generating MCQs..."):
mcqs = generate_mcqs_from_text(user_text)
cleaned_mcqs = clean_output(mcqs) # Clean the MCQs output
st.subheader("Generated MCQs with Correct Answers:")
st.text_area("MCQs", value=cleaned_mcqs, height=600)
else:
st.error("Please enter text for generating MCQs.")
|