From 18d17ca121c5cd4a20fb53a2ca05409c17f84f61 Mon Sep 17 00:00:00 2001 From: mike Date: Tue, 28 Jul 2026 15:23:42 +0800 Subject: [PATCH] Update server.js via upload script - 2026-07-28 15:23:19 --- server.js | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/server.js b/server.js index 6cabcd6..0f5094a 100644 --- a/server.js +++ b/server.js @@ -498,12 +498,23 @@ const CATALOG_PARSE_SYSTEM_PROMPT = `你是一个电力设备(UPS/逆变器/ OCR识别可能有少量错字或格式错乱,请结合上下文合理判断)。 你的任务:识别文本里有几个不同型号的产品,为每一个产品提取字段,严格按下面的JSON schema输出一个数组,每个元素是一个产品对象: +【特别注意"型号(L)"这种带括号的写法】规格表的型号列里如果出现类似"MS1000(L)"这种写法,代表这里其实是两个型号, +要拆成两条独立的产品记录输出,不能只输出一条: +- 不带L后缀的(如MS1000)是标准机型:machineVariant填"标机" +- 带L后缀的(如MS1000L)是长延机型:machineVariant填"长机" +这两条记录的输入/输出/保护/警告/接口/环境这些参数完全共用同一份数据,只有 batterySpec(电池型号和数量)、 +chargeCurrent(充电电流)、dimensions(尺寸)、netWeight(净重)这几项不同——严格按表格里"Standard Model/标准机型" +和"Long-run Model/长延机型"这两个子分类去分别取值,标机用Standard Model那部分数据,长机用Long-run Model那部分数据。 +如果某个型号在"Standard Model"部分对应列是NA或空、只有"Long-run Model"部分有数据,说明这个型号本身就是长延机型 +(哪怕名字里没有明显的"(L)"标记也一样),直接当长机处理,不要再凭空拆出一个去掉后缀的"标准版";反过来如果只有 +"Standard Model"部分有数据、"Long-run Model"部分是NA或空,说明这个型号只有标准机型,也不要凭空造一个带L的长延版本。 + { "name": "型号,比如 POE-532E", "brand": "品牌中文名,从厂家名称/logo文字判断;看不出就填空字符串", "category": "产品大类中文名,从这些里选最接近的:UPS不间断电源 / 光伏逆变器 / 储能电池;不确定就填 UPS不间断电源", "type": "细分品类中文名。如果是这种带USB/DC/POE多路直流输出口的小型UPS,填 迷你UPS;如果是没有LCD/LED显示、简单的家用小型UPS(型号通常带Offline/后备式字样),填 离线式UPS;如果标注了Line-Interactive/互动式,填 在线互动式UPS;其他常见值:机架式UPS、高频塔式UPS、工频UPS、模块化UPS;不确定就留空字符串", - "machineVariant": "标机 或 长机:标准电池容量版本填标机,型号带L后缀或电池容量明显更大的加长版填长机,不确定就填标机", + "machineVariant": "标机 或 长机:按前面【型号(L)拆分规则】判断,标准机型(内置电池)填标机,长延机型(外接电池,通常型号带L后缀)填长机;不属于这种拆分场景的常规产品,不确定就填标机", "powerOrCapacity": "非UPS大类的功率/容量;如果是迷你UPS,这里填输出功率(如 17W);如果是离线式UPS/在线互动式UPS,这里填Capacity/容量(如 400VA/240W);其他情况不确定就填空字符串", "voltage": "如果是迷你UPS,这里填输入电压,如 100~240Vac/50-60Hz;如果是离线式UPS/在线互动式UPS,这个字段不用填(用下面的inputVoltage/outputVoltage代替);其他情况填常规电压参数,不确定填空字符串", "ratedPower": "", "ratedPowerUnit": "VA", "powerFactor": "", @@ -518,7 +529,7 @@ OCR识别可能有少量错字或格式错乱,请结合上下文合理判断 "transferTime": "离线式UPS/在线互动式UPS专属:Transfer time/转换时间,如 Typical 2-8ms, 13ms max;不适用就填空字符串", "waveform": "离线式UPS/在线互动式UPS专属:Wave form/波形,如 Simulated Sine Wave 或 Sine Wave;不适用就填空字符串", "batteryVoltage": "离线式UPS/在线互动式UPS专属:Battery Voltage/电池电压,如 12V 或 24V;不适用就填空字符串", - "chargeCurrent": "离线式UPS/在线互动式UPS专属:Charge current/充电电流,如 1A;不适用就填空字符串", + "chargeCurrent": "离线式UPS/在线互动式UPS专属:Charge current/充电电流,如 1A;如果涉及【型号(L)拆分规则】,要按标机/长机分别取Standard Model或Long-run Model那部分的数据;不适用就填空字符串", "frequencyRangeBatteryMode": "离线式UPS/在线互动式UPS专属:Frequency range(battery mode)/频率范围(电池模式),如 50/60Hz±1Hz;不适用就填空字符串", "chargeTime": "离线式UPS/在线互动式UPS专属:Charge time/充电时间,如 8 hours recover to 90% capacity;不适用就填空字符串", "lcdDisplay": "离线式UPS/在线互动式UPS专属:LCD display/LCD显示能展示哪些信息,把原文整段抄下来,如 AC mode, Battery mode, Load level, Battery level, Input voltage, Output voltage, Overload and low battery;不适用就填空字符串", @@ -528,9 +539,9 @@ OCR识别可能有少量错字或格式错乱,请结合上下文合理判断 "interfacePort": "离线式UPS/在线互动式UPS专属:Interface/控制管理接口说明,如 USB/RS232 port(optional), Support windows xp/vista, windows 7/8/11 and MAC;不适用就填空字符串", "humidity": "离线式UPS/在线互动式UPS专属:Humidity/湿度,如 0-90% RH@0-40°C(Non-condensing);不适用就填空字符串", "noiseLevel": "离线式UPS/在线互动式UPS专属:Noise Level/噪音,如 Less than 40dB(1m spacing);不适用就填空字符串", - "batterySpec": "电池数量和容量/电池型号和数量,如 2200mAh*4 或 12V4.5AH*1,不确定填空字符串", - "dimensions": "尺寸(mm),如 175*105*30,不确定填空字符串", - "netWeight": "净重(kg),如 0.4,不确定填空字符串", + "batterySpec": "电池数量和容量/电池型号和数量,如 2200mAh*4 或 12V4.5AH*1;如果这个型号涉及【型号(L)拆分规则】,要按这条记录是标机还是长机,分别取Standard Model或Long-run Model那部分的数据,不确定填空字符串", + "dimensions": "尺寸(mm),如 175*105*30;如果涉及【型号(L)拆分规则】,同样要按标机/长机分别取对应子分类的数据,不确定填空字符串", + "netWeight": "净重(kg),如 0.4;如果涉及【型号(L)拆分规则】,同样要按标机/长机分别取对应子分类的数据,不确定填空字符串", "notes": "其他有用但上面字段装不下的信息,一两句话,没有就填空字符串" }