ware_tools.py 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. from langchain.tools import tool
  2. from .base_tool import call_csharp_api, get_tool_prompt
  3. def get_mtrlware_default_config():
  4. """get_mtrlware_data 工具的默认配置"""
  5. return {
  6. "get_mtrlware_data": {
  7. "基础描述": "获取指定物料的库存信息",
  8. "入参说明": {
  9. "backend_url": "后端API地址",
  10. "token": "认证令牌",
  11. "mtrlname": "物料名称 或 物料编码, 支持模糊查询",
  12. },
  13. "返回值说明": {
  14. "格式": "一个包含物料库存数据的字符串",
  15. "字段含义": "mtrlcode:物料编码, mtrlname:物料名称, storagename:仓库名称, noallocqty:库存数量, unit:单位, noauditingqty:已开单数量, notauditnoallocqty:未开单数量, pzinfo:配置信息, buydays:采购周期天数,query_status:查询状态",
  16. },
  17. "输出格式要求": ["重复信息要总结归纳,精简显示"],
  18. "使用示例": "用户输入:'查看铜管的库存' -> 系统调用此工具获取铜管的库存信息",
  19. }
  20. }
  21. # 获取工具描述
  22. tool_description = get_tool_prompt("get_mtrlware_data", get_mtrlware_default_config)
  23. def get_mtrlware_data_func(backend_url: str, token: str, mtrlname: str) -> str:
  24. """实际的函数实现"""
  25. print(f"正在获取物料{mtrlname}的库存数据")
  26. return call_csharp_api(
  27. backend_url,
  28. token,
  29. "ware_data_ai",
  30. "get_mtrlware_data",
  31. {"arg_mtrlname": mtrlname},
  32. )
  33. # 3. 设置文档字符串
  34. get_mtrlware_data_func.__doc__ = tool_description
  35. # 4. 最后应用装饰器
  36. get_mtrlware_data = tool(get_mtrlware_data_func)