This commit is contained in:
2026-02-26 13:43:44 +08:00
parent 2c2db92ae9
commit 68200cdfe6
51 changed files with 2107 additions and 351 deletions
+5 -5
View File
@@ -3,25 +3,25 @@ from langchain_core.tools import BaseTool
class CalculatorTool(BaseTool):
"""A simple calculator tool for mathematical operations"""
"""用于数学运算的简单计算器工具"""
name: str = "calculator"
description: str = "Perform mathematical calculations. Input should be a mathematical expression like '2 + 2' or '10 * (3 + 5)'"
def _run(self, expression: str) -> str:
"""Evaluate a mathematical expression"""
"""计算数学表达式"""
try:
# Security: Only allow safe mathematical operations
# 安全:仅允许安全的数学运算
allowed_chars = set("0123456789+-*/(). ")
if not all(c in allowed_chars for c in expression):
return "Error: Expression contains invalid characters"
# Evaluate the expression
# 计算表达式
result = eval(expression)
return f"Result: {result}"
except Exception as e:
return f"Error calculating expression: {str(e)}"
async def _arun(self, expression: str) -> str:
"""Async version of the tool"""
"""工具的异步版本"""
return self._run(expression)