from langchain.tools import tool from .base_tool import call_csharp_api, get_tool_prompt def get_mtrlware_default_config(): """get_mtrlware_data 工具的默认配置""" return { "get_mtrlware_data": { "基础描述": "获取指定物料的库存信息", "入参说明": { "backend_url": "后端API地址", "token": "认证令牌", "mtrlname": "物料名称", }, "返回值说明": { "格式": "一个包含物料库存数据的字符串", "字段含义": "mtrlcode:物料编码, mtrlname:物料名称, storagename:仓库名称, noallocqty:库存数量, unit:单位, noauditingqty:已开单数量, notauditnoallocqty:未开单数量, pzinfo:配置信息, buydays:采购周期天数", }, "输出格式要求": [ "以自然语言描述形式输出,不要使用表格", "重复信息要总结归纳,精简显示", ], } } # 获取工具描述 tool_description = get_tool_prompt("get_mtrlware_data", get_mtrlware_default_config) def get_mtrlware_data_func(backend_url: str, token: str, mtrlname: str) -> str: """实际的函数实现""" print(f"正在获取物料{mtrlname}的库存数据") return call_csharp_api( backend_url, token, "ware_data_ai", "get_mtrlware_data", {"arg_mtrlname": mtrlname}, ) # 3. 设置文档字符串 get_mtrlware_data_func.__doc__ = tool_description # 4. 最后应用装饰器 get_mtrlware_data = tool(get_mtrlware_data_func)