from chatchat.server.pydantic_v1 import Field from .tools_registry import regist_tool, BaseToolOutput @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)