mtrl_data_tools.py 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. from langchain.tools import tool
  2. from .base_tool import call_csharp_api, get_tool_prompt
  3. from typing import Optional
  4. def get_mtrl_info_default_config():
  5. """get_mtrl_info 工具的默认配置"""
  6. return {
  7. "get_mtrl_info": {
  8. "基础描述": "获取指定产品的详细信息",
  9. "入参说明": {
  10. "backend_url": "后端API地址",
  11. "token": "认证令牌",
  12. "mtrlname": "产品名称",
  13. },
  14. "返回值说明": {"格式": "一个包含产品信息的字符串"},
  15. "输出格式要求": [
  16. "**产品编码:**{mtrlcode}",
  17. "**产品名称:**{mtrlname}",
  18. "**产品规格:**{mtrlmode}",
  19. "**当前库存:**{noallocqty}{unit}",
  20. "**销售分析**",
  21. "销售周期:最近一年",
  22. "*销售概况*",
  23. "| 指标 | 数据 | 同比 |",
  24. "| :--- | :--- | :--- |",
  25. "| indicator | current_value | last_year_value |",
  26. "*客户排名*",
  27. "| 排名 | 客户名称 | 销售量 | 销售额(万元) | 占比 |",
  28. "| :--- | :--- | :--- | :--- | :--- |",
  29. "| rank_no | cusname | saleqty | amt | percentage |",
  30. "*业务员排名*",
  31. "| 排名 | 业务员 | 销售量 | 销售额(万元) | 占比 |",
  32. "| :--- | :--- | :--- | :--- | :--- |",
  33. "| rank_no | saler | saleqty | amt | percentage |",
  34. ],
  35. "使用示例": "查产品 A388餐椅",
  36. }
  37. }
  38. tool_description = get_tool_prompt("get_mtrl_info", get_mtrl_info_default_config())
  39. def get_mtrl_info_func(
  40. backend_url: str,
  41. token: str,
  42. mtrlname: str = "",
  43. ) -> str:
  44. """实际的函数实现"""
  45. print(f"正在获取产品信息{mtrlname}")
  46. return call_csharp_api(
  47. backend_url,
  48. token,
  49. "mtrl_data_ai",
  50. "get_mtrl_info",
  51. {"arg_mtrlname": mtrlname},
  52. )
  53. get_mtrl_info_func.__doc__ = tool_description
  54. get_mtrl_info = tool(get_mtrl_info_func)