From fdbf7bdd34c51269eefe203c1b78c7fcdfdb20e7 Mon Sep 17 00:00:00 2001 From: TangCheng <tangchengmail@163.com> Date: 星期三, 05 三月 2025 17:54:40 +0800 Subject: [PATCH] 修复问题 --- JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTAIWeixinControl.java | 77 ++++++++++++++++++++------------------ 1 files changed, 41 insertions(+), 36 deletions(-) diff --git a/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTAIWeixinControl.java b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTAIWeixinControl.java index 2c2b918..d6ef453 100644 --- a/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTAIWeixinControl.java +++ b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTAIWeixinControl.java @@ -203,42 +203,47 @@ SMTLLMConnect llm = SMTAIServerApp.getApp().allocLLMConnect(null); String answer = llm.callWithMessage(new String[] {prompt}, question, tranReq); tranReq.traceLLMDebug(answer); - List<Json> jsonASTList = SMTStatic.convLLMAnswerToJson(answer, true).asJsonList(); - if (jsonASTList.size() > 0) { - Json jsonAST = jsonASTList.get(0); - if ("query_water_fee".equals(jsonAST.safeGetStr("call", null))) { - jsonAST = jsonAST.getJson("args"); - try (ASTDBMap dbMap = new ASTDBMap()) { - SMTDatabase db = dbMap.getDatabase("DS_74_CHENGTOU"); - DBRecords recs = - db.querySQL( - " SELECT ROUND(SUM(" - + jsonAST.getJson("value_name").asString() - + ")::NUMERIC(10, 2), 2) AS TOTAL" - + " FROM chengtou_data.bill_data WHERE billing_date BETWEEN ? AND ?", - new Object[] { - SMTStatic.toDate(jsonAST.getJson("start_time").asString()), - SMTStatic.toDate(jsonAST.getJson("end_time").asString()) - }); - - if (recs.getRowCount() == 0) - return "浠�" - + jsonAST.getJson("start_time").asString() - + "鍒�" - + jsonAST.getJson("end_time").asString() - + "鐨�" - + jsonAST.getJson("value_title").asString() - + "鏈煡鍒颁换浣曟暟鎹�"; - - return "浠�" - + jsonAST.getJson("start_time").asString() - + "鍒�" - + jsonAST.getJson("end_time").asString() - + "鐨�" - + jsonAST.getJson("value_title").asString() - + "鎬昏" - + recs.getRecord(0).getString(0); - } + Json ojsonASTList = SMTStatic.convLLMAnswerToJson(answer, true); + if(ojsonASTList != null && ojsonASTList.isArray()) + { + List<Json> jsonASTList = ojsonASTList.asJsonList(); + if (jsonASTList.size() > 0) + { + Json jsonAST = jsonASTList.get(0); + if ("query_water_fee".equals(jsonAST.safeGetStr("call", null))) { + jsonAST = jsonAST.getJson("args"); + try (ASTDBMap dbMap = new ASTDBMap()) { + SMTDatabase db = dbMap.getDatabase("DS_74_CHENGTOU"); + DBRecords recs = + db.querySQL( + " SELECT ROUND(SUM(" + + jsonAST.getJson("value_name").asString() + + ")::NUMERIC(10, 2), 2) AS TOTAL" + + " FROM chengtou_data.bill_data WHERE billing_date BETWEEN ? AND ?", + new Object[] { + SMTStatic.toDate(jsonAST.getJson("start_time").asString()), + SMTStatic.toDate(jsonAST.getJson("end_time").asString()) + }); + + if (recs.getRecord(0).getString(0) == null) + return "浠�" + + jsonAST.getJson("start_time").asString() + + "鍒�" + + jsonAST.getJson("end_time").asString() + + "鐨�" + + jsonAST.getJson("value_title").asString() + + "鏈煡鍒颁换浣曟暟鎹�"; + + return "浠�" + + jsonAST.getJson("start_time").asString() + + "鍒�" + + jsonAST.getJson("end_time").asString() + + "鐨�" + + jsonAST.getJson("value_title").asString() + + "鎬昏" + + recs.getRecord(0).getString(0); + } + } } } answer = llm.callWithMessage(null, question, tranReq); -- Gitblit v1.9.3