Spaces:
No application file
No application file
from transformers import Tool | |
def simple_calculator(expression): | |
# Find the index of the operator | |
operator_index = -1 | |
for i, char in enumerate(expression): | |
if char in ('+', '-', '*', '/'): | |
operator_index = i | |
break | |
# Ensure that an operator was found | |
if operator_index == -1: | |
return "Invalid expression" | |
# Split the expression into the operator and operands | |
operator = expression[operator_index] | |
operand1 = float(expression[:operator_index]) | |
operand2 = float(expression[operator_index + 1:]) | |
# Perform the calculation based on the operator | |
if operator == '+': | |
result = operand1 + operand2 | |
elif operator == '-': | |
result = operand1 - operand2 | |
elif operator == '*': | |
result = operand1 * operand2 | |
elif operator == '/': | |
result = operand1 / operand2 | |
else: | |
raise ValueError("Input string is not a valid mathematical expression.") | |
# Convert the result to a string and return it | |
return str(result) | |
# Test the function | |
expression = "1+3" | |
result = simple_calculator(expression) | |
class SimpleCalculatorTool(Tool): | |
name = "simple_calculator" | |
description = ( | |
"This is a tool that returns the result of a simple mathematical expression written in a string." | |
) | |
inputs = ["text"] | |
outputs = ["text"] | |
output_type = "text" | |
def __call__(self, input_str: str): | |
return simple_calculator(input_str) | |