Procházet zdrojové kódy

增加售价查询工具

longjoedyy před 1 týdnem
rodič
revize
5679cb7eb6
3 změnil soubory, kde provedl 67 přidání a 1 odebrání
  1. 20 0
      config/tool_config.json
  2. 47 0
      tools/price_tools.py
  3. 0 1
      tools/sale_tools.py

+ 20 - 0
config/tool_config.json

@@ -32,5 +32,25 @@
             "重复信息要总结归纳,精简显示"
         ],
         "使用示例": "用户输入:'查看2023年1月1日至2023年12月31日的销售金额' -> 系统调用此工具获取2023年1月至12月的销售金额;'2024年前5热销产品是哪些?' -> 系统调用此工具获取2024年产品销售额;'2025年前10销售额最高的客户是?' -> 系统调用此工具获取2025年客户销售额"
+    },
+    "get_mtrl_saleprice": {
+        "基础描述": "获取指定物料的销售价格",
+        "功能说明": "从销售管理系统中查询物料的销售价格,包括含税价、辅助单位、转换率等详细信息",
+        "入参说明": {
+            "backend_url": "后端API地址",
+            "token": "用户认证令牌,用于身份验证",
+            "mtrlname": "物料名称 或 物料编码, 支持模糊查询"
+        },
+        "返回值说明": {
+            "格式": "一个包含物料价格的字符串",
+            "字段含义": "listname:价格表,currency:币种, mtrlcode:物料编码, mtrlname:物料名称, unit:单位, price:含税价, unit_buy:辅助单位, rate_buy:转换率,price_unit1:辅助单位含税价,saleqty:销售数量下限,saleqty1:销售数量上限"
+        },
+        "输出格式要求": [
+            "以表格输出",
+            "币种、物料编码、物料名称:若所有行该列值完全一致,则整列隐藏",
+            "辅助单位,含税价辅助单位,转换率,数量区间:若所有行该列值为初始值(如'',0),则整列隐藏",
+            "其他列原样显示"
+        ],
+        "使用示例": "用户输入:'查询铜管的销售价格' -> 系统调用此工具获取铜管的销售价格"
     }
 }

+ 47 - 0
tools/price_tools.py

@@ -0,0 +1,47 @@
+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": "物料名称 或 物料编码, 支持模糊查询",
+            },
+            "返回值说明": {
+                "格式": "一个包含物料价格的字符串",
+            },
+            "输出格式要求": [
+                "以表格输出",
+                "币种、物料编码、物料名称:若所有行该列值完全一致,则整列隐藏",
+                "辅助单位,含税价辅助单位,转换率,数量区间:若所有行该列值为初始值(如'',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)

+ 0 - 1
tools/sale_tools.py

@@ -18,7 +18,6 @@ def get_sale_amt_default_config():
                 "格式": "一个包含销售金额的字符串",
             },
             "输出格式要求": [
-                "以自然语言描述形式输出,不要使用表格",
                 "重复信息要总结归纳,精简显示",
             ],
         }