5 Commits

Author SHA1 Message Date
zyclove
c31a3f04ae Merge b1dadb4a1a into 8abfc923a0 2025-03-26 11:21:23 +08:00
coosir
8abfc923a0 (fix)(supersonic-fe) support needMultiply100 for bar chart to show correct percentage value (#2189)
Some checks failed
supersonic CentOS CI / build (21) (push) Has been cancelled
supersonic mac CI / build (21) (push) Has been cancelled
supersonic ubuntu CI / build (21) (push) Has been cancelled
supersonic windows CI / build (21) (push) Has been cancelled
2025-03-26 10:11:52 +08:00
beat4ocean
e6598a79bb [Fix] Fix MetricServiceImpl and PromptHelper NPE issue (#2191)
Some checks are pending
supersonic CentOS CI / build (21) (push) Waiting to run
supersonic mac CI / build (21) (push) Waiting to run
supersonic ubuntu CI / build (21) (push) Waiting to run
supersonic windows CI / build (21) (push) Waiting to run
2025-03-25 13:34:35 +08:00
zhaoyingchao
b1dadb4a1a Merge remote-tracking branch 'origin/master' into hanlp-upgrade 2025-03-05 10:01:32 +08:00
zhaoyingchao
158a0a802a feat:upgrade 1.8.4 2025-03-04 18:55:31 +08:00
4 changed files with 34 additions and 30 deletions

View File

@@ -33,15 +33,13 @@ public class PromptHelper {
public List<List<Text2SQLExemplar>> getFewShotExemplars(LLMReq llmReq) { public List<List<Text2SQLExemplar>> getFewShotExemplars(LLMReq llmReq) {
int exemplarRecallNumber = int exemplarRecallNumber =
Integer.valueOf(parserConfig.getParameterValue(PARSER_EXEMPLAR_RECALL_NUMBER)); Integer.parseInt(parserConfig.getParameterValue(PARSER_EXEMPLAR_RECALL_NUMBER));
int fewShotNumber = Integer.valueOf(parserConfig.getParameterValue(PARSER_FEW_SHOT_NUMBER)); int fewShotNumber = Integer.parseInt(parserConfig.getParameterValue(PARSER_FEW_SHOT_NUMBER));
int selfConsistencyNumber = int selfConsistencyNumber =
Integer.valueOf(parserConfig.getParameterValue(PARSER_SELF_CONSISTENCY_NUMBER)); Integer.parseInt(parserConfig.getParameterValue(PARSER_SELF_CONSISTENCY_NUMBER));
List<Text2SQLExemplar> exemplars = Lists.newArrayList(); List<Text2SQLExemplar> exemplars = Lists.newArrayList();
llmReq.getDynamicExemplars().stream().forEach(e -> { exemplars.addAll(llmReq.getDynamicExemplars());
exemplars.add(e);
});
int recallSize = exemplarRecallNumber - llmReq.getDynamicExemplars().size(); int recallSize = exemplarRecallNumber - llmReq.getDynamicExemplars().size();
if (recallSize > 0) { if (recallSize > 0) {
@@ -85,60 +83,63 @@ public class PromptHelper {
String tableStr = llmReq.getSchema().getDataSetName(); String tableStr = llmReq.getSchema().getDataSetName();
List<String> metrics = Lists.newArrayList(); List<String> metrics = Lists.newArrayList();
llmReq.getSchema().getMetrics().stream().forEach(metric -> { llmReq.getSchema().getMetrics().forEach(metric -> {
StringBuilder metricStr = new StringBuilder(); StringBuilder metricStr = new StringBuilder();
metricStr.append("<"); metricStr.append("<");
metricStr.append(metric.getName()); metricStr.append(metric.getName());
if (!CollectionUtils.isEmpty(metric.getAlias())) { if (!CollectionUtils.isEmpty(metric.getAlias())) {
StringBuilder alias = new StringBuilder(); StringBuilder alias = new StringBuilder();
metric.getAlias().stream().forEach(a -> alias.append(a + ",")); metric.getAlias().forEach(a -> alias.append(a).append(","));
metricStr.append(" ALIAS '" + alias + "'"); metricStr.append(" ALIAS '").append(alias).append("'");
} }
if (StringUtils.isNotEmpty(metric.getDataFormatType())) { if (StringUtils.isNotEmpty(metric.getDataFormatType())) {
String dataFormatType = metric.getDataFormatType(); String dataFormatType = metric.getDataFormatType();
if (DataFormatTypeEnum.DECIMAL.getName().equalsIgnoreCase(dataFormatType) if (DataFormatTypeEnum.DECIMAL.getName().equalsIgnoreCase(dataFormatType)
|| DataFormatTypeEnum.PERCENT.getName().equalsIgnoreCase(dataFormatType)) { || DataFormatTypeEnum.PERCENT.getName().equalsIgnoreCase(dataFormatType)) {
metricStr.append(" FORMAT '" + dataFormatType + "'"); metricStr.append(" FORMAT '").append(dataFormatType).append("'");
} }
} }
if (StringUtils.isNotEmpty(metric.getDescription())) { if (StringUtils.isNotEmpty(metric.getDescription())) {
metricStr.append(" COMMENT '" + metric.getDescription() + "'"); metricStr.append(" COMMENT '").append(metric.getDescription()).append("'");
} }
if (StringUtils.isNotEmpty(metric.getDefaultAgg())) { if (StringUtils.isNotEmpty(metric.getDefaultAgg())) {
metricStr.append(" AGGREGATE '" + metric.getDefaultAgg().toUpperCase() + "'"); metricStr.append(" AGGREGATE '").append(metric.getDefaultAgg().toUpperCase()).append("'");
} }
metricStr.append(">"); metricStr.append(">");
metrics.add(metricStr.toString()); metrics.add(metricStr.toString());
}); });
List<String> dimensions = Lists.newArrayList(); List<String> dimensions = Lists.newArrayList();
llmReq.getSchema().getDimensions().stream().forEach(dimension -> { llmReq.getSchema().getDimensions().forEach(dimension -> {
StringBuilder dimensionStr = new StringBuilder(); StringBuilder dimensionStr = new StringBuilder();
dimensionStr.append("<"); dimensionStr.append("<");
dimensionStr.append(dimension.getName()); dimensionStr.append(dimension.getName());
if (!CollectionUtils.isEmpty(dimension.getAlias())) { if (!CollectionUtils.isEmpty(dimension.getAlias())) {
StringBuilder alias = new StringBuilder(); StringBuilder alias = new StringBuilder();
dimension.getAlias().stream().forEach(a -> alias.append(a + ";")); dimension.getAlias().forEach(a -> alias.append(a).append(";"));
dimensionStr.append(" ALIAS '" + alias + "'"); dimensionStr.append(" ALIAS '").append(alias).append("'");
} }
if (StringUtils.isNotEmpty(dimension.getTimeFormat())) { if (StringUtils.isNotEmpty(dimension.getTimeFormat())) {
dimensionStr.append(" FORMAT '" + dimension.getTimeFormat() + "'"); dimensionStr.append(" FORMAT '").append(dimension.getTimeFormat()).append("'");
} }
if (StringUtils.isNotEmpty(dimension.getDescription())) { if (StringUtils.isNotEmpty(dimension.getDescription())) {
dimensionStr.append(" COMMENT '" + dimension.getDescription() + "'"); dimensionStr.append(" COMMENT '").append(dimension.getDescription()).append("'");
} }
dimensionStr.append(">"); dimensionStr.append(">");
dimensions.add(dimensionStr.toString()); dimensions.add(dimensionStr.toString());
}); });
List<String> values = Lists.newArrayList(); List<String> values = Lists.newArrayList();
llmReq.getSchema().getValues().stream().forEach(value -> { List<LLMReq.ElementValue> elementValueList = llmReq.getSchema().getValues();
StringBuilder valueStr = new StringBuilder(); if (elementValueList != null) {
String fieldName = value.getFieldName(); elementValueList.forEach(value -> {
String fieldValue = value.getFieldValue(); StringBuilder valueStr = new StringBuilder();
valueStr.append(String.format("<%s='%s'>", fieldName, fieldValue)); String fieldName = value.getFieldName();
values.add(valueStr.toString()); String fieldValue = value.getFieldValue();
}); valueStr.append(String.format("<%s='%s'>", fieldName, fieldValue));
values.add(valueStr.toString());
});
}
String partitionTimeStr = ""; String partitionTimeStr = "";
if (llmReq.getSchema().getPartitionTime() != null) { if (llmReq.getSchema().getPartitionTime() != null) {
@@ -172,14 +173,14 @@ public class PromptHelper {
private String buildTermStr(LLMReq llmReq) { private String buildTermStr(LLMReq llmReq) {
List<LLMReq.Term> terms = llmReq.getTerms(); List<LLMReq.Term> terms = llmReq.getTerms();
List<String> termStr = Lists.newArrayList(); List<String> termStr = Lists.newArrayList();
terms.stream().forEach(term -> { terms.forEach(term -> {
StringBuilder termsDesc = new StringBuilder(); StringBuilder termsDesc = new StringBuilder();
String description = term.getDescription(); String description = term.getDescription();
termsDesc.append(String.format("<%s COMMENT '%s'>", term.getName(), description)); termsDesc.append(String.format("<%s COMMENT '%s'>", term.getName(), description));
termStr.add(termsDesc.toString()); termStr.add(termsDesc.toString());
}); });
String ret = ""; String ret = "";
if (termStr.size() > 0) { if (!termStr.isEmpty()) {
ret = String.join(",", termStr); ret = String.join(",", termStr);
} }

View File

@@ -633,6 +633,9 @@ public class MetricServiceImpl extends ServiceImpl<MetricDOMapper, MetricDO>
private DataItem getDataItem(MetricDO metricDO) { private DataItem getDataItem(MetricDO metricDO) {
ModelResp modelResp = modelService.getModel(metricDO.getModelId()); ModelResp modelResp = modelService.getModel(metricDO.getModelId());
if (modelResp == null) {
return null;
}
MetricResp metricResp = MetricConverter.convert2MetricResp(metricDO, MetricResp metricResp = MetricConverter.convert2MetricResp(metricDO,
ImmutableMap.of(modelResp.getId(), modelResp), Lists.newArrayList()); ImmutableMap.of(modelResp.getId(), modelResp), Lists.newArrayList());
fillDefaultAgg(metricResp); fillDefaultAgg(metricResp);

View File

@@ -37,7 +37,7 @@
<pagehelper.spring.version>2.1.0</pagehelper.spring.version> <pagehelper.spring.version>2.1.0</pagehelper.spring.version>
<mybatis.version>3.5.3</mybatis.version> <mybatis.version>3.5.3</mybatis.version>
<guava.version>32.0.0-jre</guava.version> <guava.version>32.0.0-jre</guava.version>
<hanlp.version>portable-1.8.3</hanlp.version> <hanlp.version>portable-1.8.4</hanlp.version>
<hadoop.version>2.7.2</hadoop.version> <hadoop.version>2.7.2</hadoop.version>
<commons.lang.version>2.6</commons.lang.version> <commons.lang.version>2.6</commons.lang.version>
<commons.lang3.version>3.7</commons.lang3.version> <commons.lang3.version>3.7</commons.lang3.version>

View File

@@ -94,7 +94,7 @@ const BarChart: React.FC<Props> = ({
return value === 0 return value === 0
? 0 ? 0
: metricField.dataFormatType === 'percent' : metricField.dataFormatType === 'percent'
? `${formatByDecimalPlaces(value, metricField.dataFormat?.decimalPlaces || 2)}%` ? `${formatByDecimalPlaces(metricField.dataFormat?.needMultiply100 ? +value * 100 : value, metricField.dataFormat?.decimalPlaces || 2)}%`
: getFormattedValue(value); : getFormattedValue(value);
}, },
}, },
@@ -116,7 +116,7 @@ const BarChart: React.FC<Props> = ({
: metricField.dataFormatType === 'percent' || : metricField.dataFormatType === 'percent' ||
metricField.dataFormatType === 'decimal' metricField.dataFormatType === 'decimal'
? `${formatByDecimalPlaces( ? `${formatByDecimalPlaces(
item.value, metricField.dataFormat?.needMultiply100 ? +item.value * 100 : item.value,
metricField.dataFormat?.decimalPlaces || 2 metricField.dataFormat?.decimalPlaces || 2
)}${metricField.dataFormatType === 'percent' ? '%' : ''}` )}${metricField.dataFormatType === 'percent' ? '%' : ''}`
: getFormattedValue(item.value) : getFormattedValue(item.value)
@@ -151,7 +151,7 @@ const BarChart: React.FC<Props> = ({
return value === 0 return value === 0
? 0 ? 0
: metricField.dataFormatType === 'percent' : metricField.dataFormatType === 'percent'
? `${formatByDecimalPlaces(value, metricField.dataFormat?.decimalPlaces || 2)}%` ? `${formatByDecimalPlaces(metricField.dataFormat?.needMultiply100 ? +value * 100 : value, metricField.dataFormat?.decimalPlaces || 2)}%`
: getFormattedValue(value); : getFormattedValue(value);
}, },
}, },