File size: 2,533 Bytes
bb0017c
 
 
 
503efa1
 
 
4b5c33b
 
503efa1
 
 
 
 
 
 
 
 
 
 
acfd0ee
593718f
acfd0ee
791138f
acfd0ee
503efa1
 
 
 
 
 
 
 
 
 
 
 
acfd0ee
593718f
acfd0ee
791138f
acfd0ee
503efa1
 
 
 
 
 
 
 
 
 
 
acfd0ee
593718f
acfd0ee
791138f
acfd0ee
503efa1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
acfd0ee
593718f
503efa1
 
 
acfd0ee
791138f
acfd0ee
503efa1
 
 
 
 
 
 
 
 
 
 
 
acfd0ee
593718f
acfd0ee
791138f
acfd0ee
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# References:

# https://docs.crewai.com/introduction

from crewai.tools import tool

class DeterministicTools():
    # Arithmetic

    @tool("Add Tool")
    def add_tool(a: float, b: float) -> float:
        """Add two numbers.
        
        Args:
            a (float): First number
            b (float): Second number

        Returns:
            number: Result
        """
        print(f"πŸ€– DeterministicTools: add_tool: a={a}, b={b}")

        result = a + b
        print(f"πŸ€– DeterministicTools: add_tool: result={result}")
        return result
    
    @tool("Subtract Tool")
    def subtract_tool(a: float, b: float) -> float:
        """Subtract two numbers.
        
        Args:
            a (float): First number
            b (float): Second number

        Returns:
            number: Result
        """
        print(f"πŸ€– DeterministicTools: subtract_tool: a={a}, b={b}")

        result = a - b
        print(f"πŸ€– DeterministicTools: subtract_tool: result={result}")
        return result
    
    @tool("Multiply Tool")
    def multiply_tool(a: float, b: float) -> float:
        """Multiply two numbers.
        Args:
            a (float): First number
            b (float): Second number

        Returns:
            number: Result
        """
        print(f"πŸ€– DeterministicTools: multiply_tool: a={a}, b={b}")

        result = a * b
        print(f"πŸ€– DeterministicTools: multiply_tool: result={result}")
        return result
    
    @tool("Divide Tool")
    def divide_tool(a: float, b: float) -> float:
        """Divide two numbers.
        
        Args:
            a (float): First number
            b (float): Second number

        Returns:
            number: Result

        Raises:
            RuntimeError: If processing fails
        """
        print(f"πŸ€– DeterministicTools: divide_tool: a={a}, b={b}")

        if b == 0:
            raise RuntimeError("Cannot divide by zero.")

        result = a / b
        print(f"πŸ€– DeterministicTools: divide_tool: result={result}")
        return result
    
    @tool("Modulus Tool")
    def modulus_tool(a: float, b: float) -> float:
        """Get the modulus of two numbers.
        
        Args:
            a (float): First number
            b (float): Second number

        Returns:
            number: Result
        """
        print(f"πŸ€– DeterministicTools: modulus_tool: a={a}, b={b}")

        result = a % b
        print(f"πŸ€– DeterministicTools: modulus_tool: result={result}")
        return result