import gradio as gr import openai # Replace with your OpenAI API key openai.api_key = "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" def generate_question(text_content): response = openai.Completion.create( engine="gpt-3.5-turbo-0301", prompt=f"Based on the following text, generate a question:\n{text_content}\nQuestion:", max_tokens=50, ) question = response.choices[0].text.strip() return question def check_answer(question, answer, text_content): response = openai.Completion.create( engine="gpt-3.5-turbo-0301", prompt=f"The text is: \n{text_content}\nThe question is: {question}\nThe answer given is: {answer}\nIs the answer correct?", max_tokens=5, ) feedback = response.choices[0].text.strip() return feedback.lower() == "yes" def interactive_quiz(file, answer=None, continue_quiz='yes'): if file is None: return "Please upload a txt file to start.", "", "hidden" text_content = file.read().decode("utf-8") if continue_quiz.lower() == 'yes': question = generate_question(text_content) if answer is not None: is_correct = check_answer(question, answer, text_content) feedback = "Correct!" if is_correct else "Incorrect." return question, feedback, "text" else: return question, "", "text" else: return "Thank you for participating!", "", "hidden" iface = gr.Interface( fn=interactive_quiz, inputs=["file", "text", "text"], outputs=[ {"type": "text", "label": "Question", "name": "question_output"}, {"type": "text", "label": "Feedback", "name": "feedback_output"}, {"type": "text", "label": "Continue? (yes/no)", "name": "continue_output"} ], live=True ) iface.launch()