import streamlit as st from openai import OpenAI import time # Replace with your Grok API key, considering Hugging Face's secrets management grok_api_key = st.secrets["GROK_API_KEY"] client = OpenAI( api_key=grok_api_key, base_url="https://api.x.ai/v1", ) def generate_question(topic): prompt = f"Generate a multiple-choice question about {topic}" response = client.completions.create( model="grok-beta", prompt=prompt, max_tokens=150, # Limit the response length n=1, # Generate only 1 response stop=None, # No specific stop sequence ) question = response.choices[0].text.split("\n")[0] choices = response.choices[0].text.split("\n")[1:] return question, choices def game_mode(topic): st.write("Game Mode: Answer quickly!") # Start a timer for the game mode (30 seconds per question) start_time = time.time() question, choices = generate_question(topic) st.write(question) # Use session state to track whether the answer has been submitted if 'submitted' not in st.session_state: st.session_state.submitted = False if not st.session_state.submitted: answer = st.radio("Select your answer:", choices) submit_button = st.button("Submit") if submit_button: st.session_state.submitted = True st.write("You selected:", answer) time_elapsed = time.time() - start_time st.write(f"Time taken: {int(time_elapsed)} seconds") if time_elapsed >= 30: st.warning("Time's up!") else: st.success("Good job!") else: st.write("You've already submitted your answer.") def quiz_mode(topic): st.write("Quiz Mode: Take your time!") question, choices = generate_question(topic) st.write(question) # Use session state to track whether the answer has been submitted if 'submitted' not in st.session_state: st.session_state.submitted = False if not st.session_state.submitted: answer = st.radio("Select your answer:", choices) submit_button = st.button("Submit") if submit_button: st.session_state.submitted = True st.write("You selected:", answer) st.success("Great! On to the next question!") else: st.write("You've already submitted your answer.") def main(): st.title("Grok-Powered Quiz App") mode = st.selectbox("Choose the mode", ["Game Mode", "Quiz Mode"]) topic = st.text_input("Enter a topic:") if topic: if mode == "Game Mode": game_mode(topic) else: quiz_mode(topic) if __name__ == "__main__": main()