File size: 4,209 Bytes
ce5b5d6
bdeb397
dd6ab30
 
 
 
 
8ff790f
af15398
dd6ab30
af15398
308b412
af15398
dd6ab30
 
 
 
 
 
 
 
15f53a0
 
 
 
dd6ab30
 
 
 
 
15f53a0
 
 
 
dd6ab30
 
 
 
 
15f53a0
 
 
 
dd6ab30
 
 
 
 
 
 
15f53a0
 
 
dd6ab30
 
 
15f53a0
 
 
dd6ab30
15f53a0
dd6ab30
 
15f53a0
 
 
dd6ab30
15f53a0
dd6ab30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
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):
    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 go further, 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?"""
    
    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?"""
    
    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?"""
    
    return "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):
    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?"
        return "It looks like you might need some help. Remember, the bar represents the total investment. Try dividing it into 10 equal parts, with 6 parts representing Orrin’s 60%. How much does one part represent? Then, how can we find the total?"

    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%?"
        return "No worries! 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?"

    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?"
        return "Try writing the proportion as (60/100) = (1500/x). What steps would you take to solve for x?"

    return "Interesting approach! Could you clarify your reasoning a bit more?"