from flask import Flask, render_template, request, jsonify from huggingface_hub import InferenceClient app = Flask(__name__) client = InferenceClient("mistralai/Mixtral-8x7B-Instruct-v0.1") def system_instructions(context): return f""" [INST] Your are a great teacher and your task is to create 6 questions with answer and 4 choices based on the following context:\n\n{context}\n\n. Each example should be like this Question: "" Choices: A): "" B): "" C): "" D): "" Answer: "A/B/C/D" Explanation: "" \n [/INST] """ def generate_quiz(context): formatted_prompt = system_instructions(context) pre_prompt = [{"role": "system", "content": formatted_prompt}] generate_kwargs = dict( temperature=0.1, max_new_tokens=2048, top_p=0.95, repetition_penalty=1.0, do_sample=True, seed=42,) try: response = client.text_generation( formatted_prompt, **generate_kwargs, stream=False, details=False, return_full_text=False, ) return response except Exception as e: return {"error": str(e)} @app.route("/", methods=["GET", "POST"]) def generate_quiz_page(): if request.method == "POST": context = request.form.get("context") response = generate_quiz(context) if "error" in response: response = generate_quiz(context) if request.headers.get('Content-Type') == 'application/json': return jsonify({"quiz": response}) quiz_html = f""" Generated Quiz

Generated Quiz

{response}
Back to generate another quiz
""" return quiz_html # Default GET request handling default_html = """ Generate Quiz

Generate Quiz




""" return default_html if __name__ == "__main__": app.run(debug=True)