alibicer's picture
Update prompts/main_prompt.py
c04aee4 verified
raw
history blame
4.78 kB
MAIN_PROMPT = """
### **Module 4: Proportional Thinking with Percentages**
Welcome to this module on proportional reasoning with percentages!
Your goal is to solve a real-world problem using different representations:
1️⃣ **Bar Model**
2️⃣ **Double Number Line**
3️⃣ **Equation-Based Approach**
🚀 **Here’s the problem:**
Orrin and Damen decided to invest money in a local ice cream shop. Orrin invests $1,500, which is 60% of their total investment. How much do Orrin and Damen invest together?
💡 **Before receiving guidance, choose a method and explain your reasoning.**
🚀 **Which method would you like to use first?**
(Type: 'Bar Model,' 'Double Number Line,' or 'Equation' to proceed.)
"""
def get_prompt_for_method(method):
method = method.lower().strip()
prompts = {
"bar model": """
### **Bar Model Approach**
Great choice! The Bar Model is a useful way to visualize proportions and percentages.
📌 **Now, apply the Bar Model and explain your approach:**
- How would you represent the total investment in the bar model?
- How would you use it to find the unknown amount?
✏️ **Go ahead and describe your approach first.** I will provide feedback after hearing your reasoning.
""",
"double number line": """
### **Double Number Line Approach**
Great choice! The Double Number Line helps align percentage values with real-world quantities.
📌 **Now, apply the Double Number Line and explain your approach:**
- How would you structure the number lines?
- How would you align percentages with dollar values?
✏️ **Go ahead and describe your approach first.** I will provide feedback after hearing your reasoning.
""",
"equation": """
### **Equation-Based Approach**
Great choice! Setting up an equation is a powerful way to represent proportional relationships.
📌 **Now, apply the Equation method and explain your approach:**
- How would you write an equation to represent this problem?
- What steps would you take to solve for the unknown?
✏️ **Go ahead and describe your approach first.** I will provide feedback after hearing your reasoning.
"""
}
return prompts.get(method, "I didn’t understand your choice. Please type 'Bar Model,' 'Double Number Line,' or 'Equation' to proceed.")
def get_feedback_for_method(method, teacher_response):
teacher_response = teacher_response.lower().strip() # Normalize input for better matching
feedback_map = {
"bar model": [
("divide", "60%", "Great start! You recognized that the bar should be divided into parts representing percentages. Now, can you calculate how much each part represents?"),
("10%", "Nice work! Each part represents 10% of the total. Now, how much does one part represent in dollars?"),
("250", "Correct! Each part is worth $250. Now, how can you use this to determine the total investment?"),
("", "You're close! Remember, the bar represents the total investment. Try dividing it into 10 equal parts, with 6 parts representing Orrin’s 60%. What would one part represent in percentage and dollars?")
],
"double number line": [
("label", "percentages", "Nice work! You’ve set up the number line correctly. Can you now align the percentage values with the corresponding dollar amounts?"),
("10%", "Good thinking! Each section represents 10% of the total investment. Now, how much is 10% in dollars?"),
("250", "That's right! Each section is worth $250. Now, can you find the total investment?"),
("", "Try labeling your number line with 0%, 60%, and 100% on one side and the corresponding dollar amounts on the other. How do the values align?")
],
"equation": [
("60/100", "1500/x", "You're on the right track! Now, how can you solve for x in your equation?"),
("cross multiply", "Yes! Using cross multiplication will help. What do you get when solving for x?"),
("2500", "Great! The total investment is $2,500. Would you like to reflect on how the equation helped in solving this?"),
("", "Try writing the proportion as (60/100) = (1500/x). What steps would you take to solve for x?")
]
}
for keywords in feedback_map.get(method.lower(), []):
if all(word in teacher_response for word in keywords[:-1]):
return keywords[-1] # Return corresponding feedback
return "Interesting approach! Could you clarify your reasoning a bit more?"