Spaces:
Sleeping
Sleeping
from langchain.tools import tool | |
class CalculatorTools: | |
def calculate(operation): | |
"""Useful to perform any mathematical calculations, | |
like sum, minus, multiplication, division, etc. | |
The input to this tool should be a mathematical | |
expression, a couple examples are `200*7` or `5000/2*10` | |
""" | |
try: | |
return eval(operation) | |
except SyntaxError: | |
return "Error: Invalid syntax in mathematical expression" | |
from pydantic import BaseModel, Field | |
# from langchain.tools import tool | |
# # Define a Pydantic model for the tool's input parameters | |
# class CalculationInput(BaseModel): | |
# operation: str = Field(..., description="The mathematical operation to perform") | |
# factor: float = Field(..., description="A factor by which to multiply the result of the operation") | |
# # Use the tool decorator with the args_schema parameter pointing to the Pydantic model | |
# @tool("perform_calculation", args_schema=CalculationInput, return_direct=True) | |
# def perform_calculation(operation: str, factor: float) -> str: | |
# """ | |
# Performs a specified mathematical operation and multiplies the result by a given factor. | |
# Parameters: | |
# - operation (str): A string representing a mathematical operation (e.g., "10 + 5"). | |
# - factor (float): A factor by which to multiply the result of the operation. | |
# Returns: | |
# - A string representation of the calculation result. | |
# """ | |
# # Perform the calculation | |
# result = eval(operation) * factor | |
# # Return the result as a string | |
# return f"The result of '{operation}' multiplied by {factor} is {result}." |