Langchain-Chatchat/libs/chatchat-server/chatchat/server/agent/tools_factory/calculate.py

20 lines
536 B
Python

from chatchat.server.pydantic_v1 import Field
from .tools_registry import BaseToolOutput, regist_tool
# @regist_tool(title="数学计算器")
def calculate(text: str = Field(description="a math expression")) -> float:
"""
Useful to answer questions about simple calculations.
translate user question to a math expression that can be evaluated by numexpr.
"""
import numexpr
try:
ret = str(numexpr.evaluate(text))
except Exception as e:
ret = f"wrong: {e}"
return BaseToolOutput(ret)