price_tools.py 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. from langchain.tools import tool
  2. from .base_tool import call_csharp_api, get_tool_prompt
  3. def get_mtrl_saleprice_default_config():
  4. """get_mtrl_saleprice 工具的默认配置"""
  5. return {
  6. "get_mtrl_saleprice": {
  7. "基础描述": "获取指定物料的销售价格",
  8. "功能说明": "从销售管理系统中查询物料的销售价格,包括含税价、辅助单位、转换率等详细信息",
  9. "入参说明": {
  10. "backend_url": "后端API地址",
  11. "token": "用户认证令牌,用于身份验证",
  12. "mtrlname": "物料名称 或 物料编码, 支持模糊查询",
  13. },
  14. "返回值说明": {
  15. "格式": "一个包含物料价格的字符串",
  16. "字段含义": "listname:价格表,currency:币种, mtrlcode:物料编码, mtrlname:物料名称, unit:单位, price:含税价, unit_buy:辅助单位, rate_buy:转换率,price_unit1:辅助单位含税价,saleqty:销售数量下限,saleqty1:销售数量上限",
  17. },
  18. "输出格式要求": [
  19. "以表格输出,标题按字段含义显示",
  20. "币种、物料编码、物料名称:若所有行该列值完全一致,则整列隐藏",
  21. "辅助单位,含税价辅助单位,转换率,数量区间:若所有行该列值为初始值(如'',0),则整列隐藏",
  22. "其他列原样显示",
  23. ],
  24. "使用示例": "用户输入:'查询铜管的销售价格' -> 系统调用此工具获取铜管的销售价格",
  25. }
  26. }
  27. tool_description = get_tool_prompt(
  28. "get_mtrl_saleprice", get_mtrl_saleprice_default_config()
  29. )
  30. def get_mtrl_saleprice_func(backend_url: str, token: str, mtrlname: str) -> str:
  31. """实际的函数实现"""
  32. print(f"正在获取物料{mtrlname}的价格")
  33. return call_csharp_api(
  34. backend_url,
  35. token,
  36. "price_data_ai",
  37. "get_mtrl_saleprice",
  38. {"arg_mtrlname": mtrlname},
  39. )
  40. get_mtrl_saleprice_func.__doc__ = tool_description
  41. get_mtrl_saleprice = tool(get_mtrl_saleprice_func)