def respond(user_message, history): if not user_message: return "", history # ✅ Ensure proper message handling try: messages = [{"role": "system", "content": INITIAL_PROMPT}] for user_text, assistant_text in history: if user_text: messages.append({"role": "user", "content": user_text}) if assistant_text: messages.append({"role": "assistant", "content": assistant_text}) # ✅ Handling Method Selection method_selection = user_message.lower().strip() method_prompt = get_prompt_for_method(method_selection) if method_prompt != "I didn’t understand your choice. Please type 'Bar Model,' 'Double Number Line,' or 'Equation' to proceed.": messages.append({"role": "assistant", "content": method_prompt}) history.append((user_message, method_prompt)) return "", history messages.append({"role": "user", "content": user_message}) # ✅ Get AI response completion = client.chat.completions.create( model="gpt-4o", messages=messages, max_tokens=512, temperature=0.7 ) assistant_reply = completion.choices[0].message.content history.append((user_message, assistant_reply)) return "", history except Exception as e: return f"⚠️ An error occurred: {str(e)}", history