import os from openai import OpenAI # client = OpenAI( # base_url="https://api.groq.com/openai/v1", # api_key=os.getenv("GROQ_API_KEY") # ) client = OpenAI(api_key = os.getenv("OPENAI_API_KEY")) def beat_the_ai(theme, score): ques_prompt = ( f"Generate a unique, factually accurate quiz question on the theme of {theme} \n" f"The user's current score is {score} out of 100. Use this score to adaptively determine the difficulty of the question — higher scores should correspond to higher difficulty levels.\n" "Ensure that:\n" "1. The question is factually accurate, unique, and not similar to previous questions. Make the question as innovative as possible so that it doesn't get repeated.\n" "2. Options: A, B, C, D.\n" "3. The correct answer is accurate and clearly marked.\n" "4. Difficulty: Easy, Medium, Hard. The difficulty level is dynamically adjusted based on the user’s performance in the challenge:\n" "-If the user score(out of 100) is high: Increase the difficulty of subsequent questions.\n" "-If the user score(out of 100) is low: Lower the difficulty to provide a chance to regain confidence, but maintain a challenge level that requires learning and growth.\n" f"4. Assign a difficulty level (Easy, Medium, or Hard) to the question.\n" f" Evaluate the difficulty using the following weighted criteria (total score out of 10):\n" f" - Concept Complexity (30%):\n" f" * 1 = Basic, 2 = Intermediate, 3 = Advanced\n" f" - Application Level (25%):\n" f" * 1 = Pure recall, 2 = Application-based, 3 = Higher-order thinking\n" f" - Ambiguity (15%):\n" f" * 1 = Clear and straightforward, 2 = Moderate trickiness, 3 = Ambiguous or misleading\n" f" - Time Requirement (15%):\n" f" * 1 = <15 seconds, 2 = 15–45 seconds, 3 = >45 seconds to solve\n" f" - Prerequisite Knowledge (15%):\n" f" * 1 = None or very basic, 2 = Requires some prior understanding, 3 = Requires strong foundational knowledge\n" f" Calculate the total weighted score and assign difficulty as follows:\n" f" * 1.0 - 3.5 = Easy\n" f" * 3.6 - 6.5 = Medium\n" f" * 6.6 - 10.0 = Hard\n\n" "Provide response in this format:\n" "Theme: [Theme]\n" "Question: [Your question here]\n" "A) [Option A]\n" "B) [Option B]\n" "C) [Option C]\n" "D) [Option D]\n" "Correct answer: [Correct option letter]. Just return the option A, B, C or D and nothing else.\n" "Difficulty level: [Easy/Medium/Hard]" "Do not provide the parameter details just consider them for yourself." ) response = client.chat.completions.create( model="gpt-4-1106-preview", messages=[ {"role": "system", "content": "You are a helpful assistant who generates quizzes."}, {"role": "user", "content": ques_prompt} ], temperature=0.5, max_tokens=1024 ) return response.choices[0].message.content.strip() # print(beat_the_ai("Science", 75))