alibicer's picture
Update prompts/main_prompt.py
20f40f0 verified
raw
history blame
5.83 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.)"
"""
# Function to prompt the teacher to explain before guidance
def get_prompt_for_method(method):
if method.lower() == "bar model":
return """
### **Bar Model Approach**
Great choice! The Bar Model is a useful way to visualize proportions and percentages.
🔹 **Before we proceed, please explain how you would apply the Bar Model to solve this problem.**
- How would you set up the model?
- How would you represent the percentages?
- What steps do you think are needed to find the total investment?
(Type your explanation below, and I’ll provide feedback!)"""
elif method.lower() == "double number line":
return """
### **Double Number Line Approach**
Great choice! The Double Number Line helps align percentage values with real-world quantities.
🔹 **Before we proceed, please explain how you would apply the Double Number Line to solve this problem.**
- How would you structure the number lines?
- What values would you place on each line?
- How do you think this will help you find the total investment?
(Type your explanation below, and I’ll provide feedback!)"""
elif method.lower() == "equation":
return """
### **Equation-Based Approach**
Great choice! Setting up an equation is a powerful way to represent proportional relationships.
🔹 **Before we proceed, please explain how you would write an equation to represent this problem.**
- What variables would you use?
- How would you set up the proportion?
- What would be your first step in solving for the total investment?
(Type your explanation below, and I’ll provide feedback!)"""
return "I didn’t understand your choice. Please type 'Bar Model,' 'Double Number Line,' or 'Equation' to proceed."
# Function to ensure teachers have explained before guidance
def check_explanation_before_guidance(method, teacher_response):
if not teacher_response.strip():
return "I noticed you haven’t explained your reasoning yet! Before I provide guidance, please describe how you would use the {} to solve this problem. How do you set it up?".format(method)
return get_feedback_for_method(method, teacher_response)
# Function to provide feedback based on the teacher's response
def get_feedback_for_method(method, teacher_response):
if method.lower() == "bar model":
if "divide" in teacher_response.lower() and "60%" in teacher_response.lower():
return "Great start! You recognized that the bar should be divided into parts representing percentages. Now, can you calculate how much each part represents?"
elif "10%" in teacher_response.lower():
return "Good thinking! Since 10% is one part of the bar, what happens if you multiply that by 10 to get the full investment?"
else:
return """It looks like you might need some help. Here’s how the Bar Model can be used:
1️⃣ **Draw a bar** representing the total investment.
2️⃣ **Divide it into 10 equal parts**, since percentages work in 10s.
3️⃣ **Shade 6 parts** to represent Orrin’s 60% investment.
4️⃣ **Find the value of 10%**:
- Since 60% = $1,500, divide $1,500 by 6.
5️⃣ **Find 100%** by multiplying the value of 10% by 10.
💡 What do you think about this approach? Would you like to adjust your method?"""
elif method.lower() == "double number line":
if "label" in teacher_response.lower() and "percentages" in teacher_response.lower():
return "Nice work! You’ve set up the number line correctly. Now, can you match the percentage values with the corresponding dollar amounts?"
elif "find 100%" in teacher_response.lower():
return "That's a key step! If you have 60% labeled, what do you need to do to determine 100%?"
else:
return """It looks like you might need some guidance. Here’s how the Double Number Line can be used:
1️⃣ **Draw two parallel number lines** – one for percentages (0% to 100%) and one for dollar amounts.
2️⃣ **Mark 60% on the percentage line** and align it with $1,500 on the dollar line.
3️⃣ **Find 10%** by dividing $1,500 by 6.
4️⃣ **Find 100%** by multiplying 10% by 10.
💡 Does this approach make sense? Let me know what you think!"""
elif method.lower() == "equation":
if "60/100" in teacher_response.lower() and "$1500/x" in teacher_response.lower():
return "You're on the right track! Now, what would you do to solve for x?"
elif "cross multiply" in teacher_response.lower():
return "Good step! Can you complete the cross multiplication and solve for x?"
else:
return """It looks like you might need some help. Here’s how an equation can be set up:
1️⃣ **Write the proportion:**
- (60/100) = (1500/x)
2️⃣ **Solve for x** by cross multiplying:
- 60x = 1500 × 100
3️⃣ **Divide by 60** to find x.
💡 Try solving it using this approach. What do you get?"""
return "Interesting approach! Could you clarify your reasoning a bit more?"