from langchain.tools import tool from .base_tool import call_csharp_api, get_tool_prompt def get_mtrl_saleprice_default_config(): """get_mtrl_saleprice 工具的默认配置""" return { "get_mtrl_saleprice": { "基础描述": "获取指定时间范围的销售金额,按月汇总", "入参说明": { "backend_url": "后端API地址", "token": "认证令牌", "mtrlname": "物料名称 或 物料编码, 支持模糊查询", }, "返回值说明": { "格式": "一个包含物料价格的字符串", "字段含义": "listname:价格表,currency:币种, mtrlcode:物料编码, mtrlname:物料名称, unit:单位, price:含税价, unit_buy:辅助单位, rate_buy:转换率,price_unit1:辅助单位含税价,saleqty:销售数量下限,saleqty1:销售数量上限", }, "输出格式要求": [ "以表格输出", "币种、物料编码、物料名称:若所有行该列值完全一致,则整列隐藏", "辅助单位,含税价辅助单位,转换率,数量区间:若所有行该列值为初始值(如'',0),则整列隐藏", "其他列原样显示", ], "使用示例": "用户输入:'查询铜管的销售价格' -> 系统调用此工具获取铜管的销售价格", } } tool_description = get_tool_prompt( "get_mtrl_saleprice", get_mtrl_saleprice_default_config() ) def get_mtrl_saleprice_func(backend_url: str, token: str, mtrlname: str) -> str: """实际的函数实现""" print(f"正在获取物料{mtrlname}的价格") return call_csharp_api( backend_url, token, "price_data_ai", "get_mtrl_saleprice", {"arg_mtrlname": mtrlname}, ) get_mtrl_saleprice_func.__doc__ = tool_description get_mtrl_saleprice = tool(get_mtrl_saleprice_func)