diff --git a/.github/workflows/centos-ci.yml b/.github/workflows/centos-ci.yml index 3ee02579b..c4a78ba8f 100644 --- a/.github/workflows/centos-ci.yml +++ b/.github/workflows/centos-ci.yml @@ -1,5 +1,4 @@ name: supersonic CentOS CI - on: push: branches: @@ -16,7 +15,7 @@ jobs: strategy: matrix: - java-version: [8, 11] # 定义要测试的JDK版本 + java-version: [8, 11, 21] # 定义要测试的JDK版本 steps: - uses: actions/checkout@v2 @@ -36,10 +35,14 @@ jobs: for i in {1..5}; do dnf install -y java-1.8.0-openjdk-devel maven && break || sleep 15 done - else + elif [ ${{ matrix.java-version }} -eq 11 ]; then for i in {1..5}; do dnf install -y java-11-openjdk-devel maven && break || sleep 15 done + elif [ ${{ matrix.java-version }} -eq 21 ]; then + for i in {1..5}; do + dnf install -y java-21-openjdk-devel maven && break || sleep 15 + done fi - name: Verify Java and Maven installation diff --git a/.github/workflows/mac-ci.yml b/.github/workflows/mac-ci.yml index f5d4546ab..3d8bb9407 100644 --- a/.github/workflows/mac-ci.yml +++ b/.github/workflows/mac-ci.yml @@ -14,7 +14,7 @@ jobs: strategy: matrix: - java-version: [8, 11] # Define the JDK versions to test + java-version: [8, 11, 21] # Define the JDK versions to test steps: - uses: actions/checkout@v2 diff --git a/.github/workflows/ubuntu-ci.yml b/.github/workflows/ubuntu-ci.yml index 702226788..d5766b17c 100644 --- a/.github/workflows/ubuntu-ci.yml +++ b/.github/workflows/ubuntu-ci.yml @@ -14,7 +14,7 @@ jobs: strategy: matrix: - java-version: [8, 11] # 定义要测试的JDK版本 + java-version: [8, 11, 21] # 定义要测试的JDK版本 steps: - uses: actions/checkout@v2 diff --git a/.github/workflows/windows-ci.yml b/.github/workflows/windows-ci.yml index 22e016efa..5856dabe7 100644 --- a/.github/workflows/windows-ci.yml +++ b/.github/workflows/windows-ci.yml @@ -14,7 +14,7 @@ jobs: strategy: matrix: - java-version: [8, 11] + java-version: [8, 11, 21] # Add JDK 21 to the matrix steps: - uses: actions/checkout@v2 @@ -23,7 +23,7 @@ jobs: uses: actions/setup-java@v2 with: java-version: ${{ matrix.java-version }} - distribution: 'adopt' + distribution: 'adopt' # You might need to change this if 'adopt' doesn't support JDK 21 - name: Cache Maven packages uses: actions/cache@v2 diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/pojo/ModelCluster.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/pojo/ModelCluster.java index 725632adf..63dd6aab8 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/pojo/ModelCluster.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/pojo/ModelCluster.java @@ -12,10 +12,13 @@ public class ModelCluster { private static final String split = "_"; private Set modelIds = new LinkedHashSet<>(); private String key; - public static ModelCluster build(Set modelIds) { + private boolean containsPartitionDimensions; + + public static ModelCluster build(Set modelIds, Boolean containsPartitionDimensions) { ModelCluster modelCluster = new ModelCluster(); modelCluster.setModelIds(modelIds); modelCluster.setKey(StringUtils.join(modelIds, split)); + modelCluster.setContainsPartitionDimensions(containsPartitionDimensions); return modelCluster; } } \ No newline at end of file diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/MetricServiceImpl.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/MetricServiceImpl.java index 6a182180b..2e733f11b 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/MetricServiceImpl.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/MetricServiceImpl.java @@ -13,6 +13,7 @@ import com.tencent.supersonic.common.pojo.Aggregator; import com.tencent.supersonic.common.pojo.Constants; import com.tencent.supersonic.common.pojo.DataEvent; import com.tencent.supersonic.common.pojo.DataItem; +import com.tencent.supersonic.common.pojo.DateConf; import com.tencent.supersonic.common.pojo.Filter; import com.tencent.supersonic.common.pojo.enums.AuthType; import com.tencent.supersonic.common.pojo.enums.EventType; @@ -750,6 +751,9 @@ public class MetricServiceImpl extends ServiceImpl if (modelCluster == null) { throw new IllegalArgumentException("Invalid input parameters, unable to obtain valid metrics"); } + if (!modelCluster.isContainsPartitionDimensions()) { + queryMetricReq.setDateInfo(null); + } //4. set groups List dimensionBizNames = dimensionResps.stream() .filter(entry -> modelCluster.getModelIds().contains(entry.getModelId())) @@ -759,8 +763,9 @@ public class MetricServiceImpl extends ServiceImpl .map(SchemaItem::getBizName).collect(Collectors.toList()); QueryStructReq queryStructReq = new QueryStructReq(); - if (queryMetricReq.getDateInfo().isGroupByDate()) { - queryStructReq.getGroups().add(queryMetricReq.getDateInfo().getGroupByTimeDimension()); + DateConf dateInfo = queryMetricReq.getDateInfo(); + if (Objects.nonNull(dateInfo) && dateInfo.isGroupByDate()) { + queryStructReq.getGroups().add(dateInfo.getGroupByTimeDimension()); } if (!CollectionUtils.isEmpty(dimensionBizNames)) { queryStructReq.getGroups().addAll(dimensionBizNames); @@ -795,7 +800,7 @@ public class MetricServiceImpl extends ServiceImpl } queryStructReq.setDimensionFilters(filters); //7. set dateInfo - queryStructReq.setDateInfo(queryMetricReq.getDateInfo()); + queryStructReq.setDateInfo(dateInfo); return queryStructReq; } diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/ModelClusterBuilder.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/ModelClusterBuilder.java index 161d34889..a808cd856 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/ModelClusterBuilder.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/ModelClusterBuilder.java @@ -5,10 +5,13 @@ import com.tencent.supersonic.common.util.ContextUtils; import com.tencent.supersonic.headless.api.pojo.response.ModelSchemaResp; import com.tencent.supersonic.headless.server.pojo.ModelCluster; import com.tencent.supersonic.headless.server.service.SchemaService; +import org.apache.commons.collections.CollectionUtils; + import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Set; import java.util.stream.Collectors; @@ -29,12 +32,23 @@ public class ModelClusterBuilder { modelClusters.add(modelCluster); } } - return modelClusters.stream().map(ModelCluster::build) + + return modelClusters.stream() + .map(modelCluster -> getModelCluster(modelIdToModelSchema, modelCluster)) .collect(Collectors.toMap(ModelCluster::getKey, value -> value, (k1, k2) -> k1)); } + private static ModelCluster getModelCluster(Map modelIdToModelSchema, Set modelIds) { + boolean containsPartitionDimensions = modelIds.stream() + .map(modelIdToModelSchema::get) + .filter(Objects::nonNull) + .anyMatch(modelSchemaResp -> CollectionUtils.isNotEmpty(modelSchemaResp.getTimeDimension())); + + return ModelCluster.build(modelIds, containsPartitionDimensions); + } + private static void dfs(ModelSchemaResp model, Map modelMap, - Set visited, Set modelCluster) { + Set visited, Set modelCluster) { visited.add(model.getId()); modelCluster.add(model.getId()); for (Long neighborId : model.getModelClusterSet()) { diff --git a/pom.xml b/pom.xml index 9c1f9bdc8..45a87fe0a 100644 --- a/pom.xml +++ b/pom.xml @@ -36,7 +36,7 @@ 6.1.0 2.1.0 3.5.3 - 1.18.20 + 1.18.30 32.0.0-jre portable-1.8.3 2.7.2 @@ -305,6 +305,16 @@ + + org.apache.maven.plugins + maven-surefire-plugin + 2.22.2 + + + true + + + diff --git a/webapp/packages/chat-sdk/src/components/ChatItem/ParseTip.tsx b/webapp/packages/chat-sdk/src/components/ChatItem/ParseTip.tsx index 1264268e5..617561bb5 100644 --- a/webapp/packages/chat-sdk/src/components/ChatItem/ParseTip.tsx +++ b/webapp/packages/chat-sdk/src/components/ChatItem/ParseTip.tsx @@ -252,34 +252,36 @@ const ParseTip: React.FC = ({ }); return (
-
- 数据时间: - {nativeQuery ? ( - - {startDate === endDate ? startDate : `${startDate} ~ ${endDate}`} - - ) : ( - ( - - {Object.keys(ranges).map(key => ( - - - - ))} - - )} - /> - )} -
+ {!!dateInfo && ( +
+ 数据时间: + {nativeQuery ? ( + + {startDate === endDate ? startDate : `${startDate} ~ ${endDate}`} + + ) : ( + ( + + {Object.keys(ranges).map(key => ( + + + + ))} + + )} + /> + )} +
+ )} {filters?.map((filter: any, index: number) => ( = ({ agentId, queryId, + question, llmReq, llmResp, integrateSystem, @@ -126,6 +128,11 @@ ${format(sqlInfo.querySQL)} const onExportLog = () => { let text = ''; + if (question) { + text += ` +问题:${question} +`; + } if (llmReq) { text += getSchemaMapText(); } diff --git a/webapp/packages/chat-sdk/src/components/ChatItem/index.tsx b/webapp/packages/chat-sdk/src/components/ChatItem/index.tsx index a4e24cac6..1e8e4079c 100644 --- a/webapp/packages/chat-sdk/src/components/ChatItem/index.tsx +++ b/webapp/packages/chat-sdk/src/components/ChatItem/index.tsx @@ -353,6 +353,7 @@ const ChatItem: React.FC = ({