From a67e0242c51850b1b849dec4a6cc9b6f20afda99 Mon Sep 17 00:00:00 2001 From: maojian <550076202@qq.com> Date: Wed, 23 Jul 2025 14:31:11 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=82=E6=95=B0=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/bfd/qanda/entity/Constants.java | 1 + .../java/com/bfd/qanda/process/QandaPorcess.java | 7 +- src/main/java/com/bfd/qanda/utils/DataUtil.java | 77 +++++++++++++--------- 3 files changed, 53 insertions(+), 32 deletions(-) diff --git a/src/main/java/com/bfd/qanda/entity/Constants.java b/src/main/java/com/bfd/qanda/entity/Constants.java index b0456f4..3da9ce0 100644 --- a/src/main/java/com/bfd/qanda/entity/Constants.java +++ b/src/main/java/com/bfd/qanda/entity/Constants.java @@ -159,4 +159,5 @@ public class Constants { public static final String STATUS_CODE = "status_code"; public static final String FILE_ID = "file_id"; public static final String TRACE = "trace"; + public static final String THINKING = "thinking"; } diff --git a/src/main/java/com/bfd/qanda/process/QandaPorcess.java b/src/main/java/com/bfd/qanda/process/QandaPorcess.java index 373e51c..d0a9f25 100644 --- a/src/main/java/com/bfd/qanda/process/QandaPorcess.java +++ b/src/main/java/com/bfd/qanda/process/QandaPorcess.java @@ -134,6 +134,7 @@ public class QandaPorcess implements Runnable { log.info("数据流转至下游-------"); } catch (Throwable e) { log.error("问答处理异常,", e); + log.error("异常任务:{}",JSONObject.toJSONString(task)); //结果集 Map results = new HashMap(16); Map result = new HashMap(16); @@ -171,7 +172,7 @@ public class QandaPorcess implements Runnable { chatContent.append(map.get(Constants.VALUE)); } else { String jsonPath = (String) map.get(Constants.VALUE); - chatContent.append(DataUtil.getValue(jsonPath, data).toString()); + chatContent.append(DataUtil.getValue(jsonPath, data)); } } Map headers = new HashMap(16); @@ -182,6 +183,10 @@ public class QandaPorcess implements Runnable { params.put(Constants.MESSAGES, prompts); params.put(Constants.TEMPERATURE, temperature); params.put(Constants.TOP_P, topP); + //推理字段 enabled 启用,disabled禁用 + Map thinking = new HashMap(); + thinking.put(Constants.TYPE, "disabled"); + params.put(Constants.THINKING, thinking); headers.put(Constants.AUTHORIZATION, authorization); headers.put("Content-Type", "application/json"); String html = DownLoadUtil.doPost(Constants.DOUBAO_TURBO_URL, JSONObject.toJSONString(params), headers); diff --git a/src/main/java/com/bfd/qanda/utils/DataUtil.java b/src/main/java/com/bfd/qanda/utils/DataUtil.java index 6ca3666..b1f420e 100644 --- a/src/main/java/com/bfd/qanda/utils/DataUtil.java +++ b/src/main/java/com/bfd/qanda/utils/DataUtil.java @@ -1,10 +1,13 @@ package com.bfd.qanda.utils; +import java.util.Map; + import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONPath; +import com.bfd.qanda.entity.Constants; -import java.util.Map; +import lombok.extern.slf4j.Slf4j; /** * @author:jinming @@ -13,36 +16,48 @@ import java.util.Map; * @description: 获取dataValue的值 * @Date:2023/11/1 9:54 */ +@Slf4j public class DataUtil { /** - * - * @param key 传入的key - * @param dataMap 数据map - * @return 根据传入的参数进行判断解析,返回正确的dataValue - */ - public static Object getValue(String key, Map dataMap) { - Object dataValue; - String isJson = "#json#"; - if (key.contains(isJson)) { - //进行第一次拆分,获取#json#前面的部分 - String[] keySplit = key.split(isJson); - String firstDataKey = keySplit[0]; - String[] firstDataKeySplit = firstDataKey.split(":"); - //取出前半部分对应的JSON数据并转换为JSONObject - String dataJson = (String) dataMap.get(firstDataKeySplit[0]); - JSONObject dataJsonObject = JSON.parseObject(dataJson); - //根据key的后半部分取出对应JSONObject中的值 - String firstDataKeyJson = (String) JSONPath.eval(dataJsonObject, firstDataKeySplit[1]); - String secDataKey = keySplit[1]; - JSONObject firstDataJsonObject = JSON.parseObject(firstDataKeyJson); - dataValue = JSONPath.eval(firstDataJsonObject, secDataKey); - return dataValue; - } - String[] keySplit = key.split(":"); - String jsonPath = keySplit[1]; - String dataJson = (String) dataMap.get(keySplit[0]); - JSONObject dataJsonObject = JSON.parseObject(dataJson); - dataValue = JSONPath.eval(dataJsonObject, jsonPath); - return dataValue; - } + * + * @param key 传入的key + * @param dataMap 数据map + * @return 根据传入的参数进行判断解析,返回正确的dataValue + */ + public static Object getValue(String key, Map dataMap) { + try { + //公式为空直接就返回 + if(key.equals(Constants.EMPTY)){ + return Constants.EMPTY; + } + Object dataValue; + String isJson = "#json#"; + if (key.contains(isJson)) { + //进行第一次拆分,获取#json#前面的部分 + String[] keySplit = key.split(isJson); + String firstDataKey = keySplit[0]; + String[] firstDataKeySplit = firstDataKey.split(":"); + //取出前半部分对应的JSON数据并转换为JSONObject + String dataJson = (String) dataMap.get(firstDataKeySplit[0]); + JSONObject dataJsonObject = JSON.parseObject(dataJson); + //根据key的后半部分取出对应JSONObject中的值 + String firstDataKeyJson = (String) JSONPath.eval(dataJsonObject, firstDataKeySplit[1]); + String secDataKey = keySplit[1]; + JSONObject firstDataJsonObject = JSON.parseObject(firstDataKeyJson); + dataValue = JSONPath.eval(firstDataJsonObject, secDataKey); + return dataValue; + } + String[] keySplit = key.split(":"); + String jsonPath = keySplit[1]; + String dataJson = (String) dataMap.get(keySplit[0]); + JSONObject dataJsonObject = JSON.parseObject(dataJson); + dataValue = JSONPath.eval(dataJsonObject, jsonPath); + return dataValue; + } catch (Exception e) { + // TODO: handle exception + log.error("jsonpath公式取值异常,",e); + return null; + } + + } } \ No newline at end of file