mirror of
https://github.com/tencentmusic/supersonic.git
synced 2026-04-19 13:04:21 +08:00
Compare commits
4 Commits
master
...
825ec63cb4
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
825ec63cb4 | ||
|
|
83ba635bab | ||
|
|
1ad6c9ddd7 | ||
|
|
50ba18d5d6 |
@@ -167,7 +167,7 @@ public class EmbeddingMatchStrategy extends BatchMatchStrategy<EmbeddingResult>
|
|||||||
variable.put("retrievedInfo", JSONObject.toJSONString(results));
|
variable.put("retrievedInfo", JSONObject.toJSONString(results));
|
||||||
|
|
||||||
Prompt prompt = PromptTemplate.from(LLM_FILTER_PROMPT).apply(variable);
|
Prompt prompt = PromptTemplate.from(LLM_FILTER_PROMPT).apply(variable);
|
||||||
ChatLanguageModel chatLanguageModel = ModelProvider.getChatModel();
|
ChatLanguageModel chatLanguageModel = ModelProvider.getChatModel(chatQueryContext.getRequest().getChatAppConfig().get("REWRITE_MULTI_TURN").getChatModelConfig());
|
||||||
String response = chatLanguageModel.generate(prompt.toUserMessage().singleText());
|
String response = chatLanguageModel.generate(prompt.toUserMessage().singleText());
|
||||||
|
|
||||||
if (StringUtils.isBlank(response)) {
|
if (StringUtils.isBlank(response)) {
|
||||||
|
|||||||
@@ -47,12 +47,17 @@ public class SqlQueryParser implements QueryParser {
|
|||||||
SqlQuery sqlQuery = queryStatement.getSqlQuery();
|
SqlQuery sqlQuery = queryStatement.getSqlQuery();
|
||||||
List<String> queryFields = SqlSelectHelper.getAllSelectFields(sqlQuery.getSql());
|
List<String> queryFields = SqlSelectHelper.getAllSelectFields(sqlQuery.getSql());
|
||||||
Set<String> queryAliases = SqlSelectHelper.getAliasFields(sqlQuery.getSql());
|
Set<String> queryAliases = SqlSelectHelper.getAliasFields(sqlQuery.getSql());
|
||||||
|
Set<String> ontologyMetricsDimensions = Collections.synchronizedSet(new HashSet<String>());
|
||||||
|
Set<String> ontologyBizNameMetricsDimensions = Collections.synchronizedSet(new HashSet<String>());
|
||||||
queryFields.removeAll(queryAliases);
|
queryFields.removeAll(queryAliases);
|
||||||
Ontology ontology = queryStatement.getOntology();
|
Ontology ontology = queryStatement.getOntology();
|
||||||
OntologyQuery ontologyQuery = buildOntologyQuery(ontology, queryFields);
|
OntologyQuery ontologyQuery = buildOntologyQuery(ontology, queryFields);
|
||||||
|
Set<String> queryFieldsSet = new HashSet<>(queryFields);
|
||||||
|
ontologyQuery.getMetrics().forEach(m -> {ontologyMetricsDimensions.add(m.getName()); ontologyBizNameMetricsDimensions.add(m.getBizName());});
|
||||||
|
ontologyQuery.getDimensions().forEach(d -> {ontologyMetricsDimensions.add(d.getName()); ontologyBizNameMetricsDimensions.add(d.getBizName());});
|
||||||
// check if there are fields not matched with any metric or dimension
|
// check if there are fields not matched with any metric or dimension
|
||||||
if (queryFields.size() > ontologyQuery.getMetrics().size()
|
|
||||||
+ ontologyQuery.getDimensions().size()) {
|
if (!(queryFieldsSet.containsAll(ontologyMetricsDimensions)||queryFieldsSet.containsAll(ontologyBizNameMetricsDimensions))) {
|
||||||
List<String> semanticFields = Lists.newArrayList();
|
List<String> semanticFields = Lists.newArrayList();
|
||||||
ontologyQuery.getMetrics().forEach(m -> semanticFields.add(m.getName()));
|
ontologyQuery.getMetrics().forEach(m -> semanticFields.add(m.getName()));
|
||||||
ontologyQuery.getDimensions().forEach(d -> semanticFields.add(d.getName()));
|
ontologyQuery.getDimensions().forEach(d -> semanticFields.add(d.getName()));
|
||||||
|
|||||||
Reference in New Issue
Block a user