| | |
| | | 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 oASTList = SMTStatic.convLLMAnswerToJson(answer, true); |
| | | if(oASTList != null && oASTList.isArray()) |
| | | { |
| | | Json jsonAST = jsonASTList.get(0); |
| | | if("query_water_fee".equals(jsonAST.safeGetStr("call", null))) |
| | | List<Json> jsonASTList = oASTList.asJsonList(); |
| | | if(jsonASTList.size() > 0) |
| | | { |
| | | jsonAST = jsonAST.getJson("args"); |
| | | try(ASTDBMap dbMap = new ASTDBMap()) |
| | | Json jsonAST = jsonASTList.get(0); |
| | | if("query_water_fee".equals(jsonAST.safeGetStr("call", null))) |
| | | { |
| | | 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); |
| | | 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); |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | } |
| | | answer = llm.callWithMessage(null, question, tranReq); |