[improvement][supersonic] add text-to-sql evaluation (#696)

* [improvement] llm supports all models

* [improvement] alias convert to SemanticParseInfo

* [improvement] support join

* [improvement] add evaluation.py

* [improvement] add text2sql_evalution.py

* [improvement] add text2sql_evalution.py

* [improvement] add evalution

* [improvement] add evalution

* [improvement] add evalution

---------

Co-authored-by: zuopengge <hwzuopengge@tencent.com>
This commit is contained in:
mainmain
2024-01-30 10:46:45 +08:00
committed by GitHub
parent aae3d6b297
commit c398ac1a84
29 changed files with 3347 additions and 15 deletions

View File

@@ -25,4 +25,4 @@ LLM_PROVIDER_NAME = openai
[LLMModel]
MODEL_NAME = gpt-3.5-turbo-16k
OPENAI_API_KEY = YOUR_API_KEY
TEMPERATURE = 0.0
TEMPERATURE = 0.0

View File

@@ -6,4 +6,4 @@ tiktoken==0.3.3
uvicorn[standard]==0.21.1
pandas==1.5.3
loguru==0.7.2
sqlglot==19.5.1
sqlglot==19.5.1

View File

@@ -102,8 +102,18 @@ public class ParseInfoProcessor implements ParseResultProcessor {
private Set<SchemaElement> getElements(Set<Long> modelIds, List<String> allFields, List<SchemaElement> elements) {
return elements.stream()
.filter(schemaElement -> modelIds.contains(schemaElement.getModel()) && allFields.contains(
schemaElement.getName())
.filter(schemaElement -> {
if (CollectionUtils.isEmpty(schemaElement.getAlias())) {
return modelIds.contains(schemaElement.getModel()) && allFields.contains(
schemaElement.getName());
}
Set<String> allFieldsSet = new HashSet<>(allFields);
Set<String> aliasSet = new HashSet<>(schemaElement.getAlias());
List<String> intersection = allFieldsSet.stream()
.filter(aliasSet::contains).collect(Collectors.toList());
return modelIds.contains(schemaElement.getModel()) && (allFields.contains(
schemaElement.getName()) || !CollectionUtils.isEmpty(intersection));
}
).collect(Collectors.toSet());
}
@@ -208,4 +218,4 @@ public class ParseInfoProcessor implements ParseResultProcessor {
(value1, value2) -> value2));
}
}
}