mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-10 19:51:00 +00:00
* 1.refactor the retrieval module. 2.refactor the http service module. 3.upgrade text2sql output format the parse for absolute time related expression in query. * fix bug. * upgrade the config module, now support config llm suppoted by langchain. * fix conflicts. * update text2sql config reload to be compitable with new config format. * modify default config. * 1.add self-consistency feature for text2sql. 2.upgrade llm api call from sync to async. 3.refactor text2sql module. 4. refactor semantical retriever modules. * merege with upstream master * add general retrieve service. * add api service for sql_agent for crud opereations of few-shots examples. * modify requirements * add auto-cot feature --------- Co-authored-by: shaoweigong <shaoweigong@tencent.com>
60 lines
1.8 KiB
Python
60 lines
1.8 KiB
Python
# -*- coding:utf-8 -*-
|
|
import re
|
|
|
|
import os
|
|
import sys
|
|
|
|
sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
|
|
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
|
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
|
|
|
|
from instances.logging_instance import logger
|
|
|
|
|
|
def schema_link_parse(schema_link_output: str):
|
|
try:
|
|
schema_link_output = schema_link_output.strip()
|
|
pattern = r'Schema_links:(.*)'
|
|
schema_link_output = re.findall(pattern, schema_link_output, re.DOTALL)[0].strip()
|
|
except Exception as e:
|
|
logger.exception(e)
|
|
schema_link_output = None
|
|
|
|
return schema_link_output
|
|
|
|
def combo_schema_link_parse(schema_linking_sql_combo_output: str):
|
|
try:
|
|
schema_linking_sql_combo_output = schema_linking_sql_combo_output.strip()
|
|
pattern = r'Schema_links:(\[.*?\])|Schema_links: (\[.*?\])'
|
|
schema_links_match = re.search(pattern, schema_linking_sql_combo_output)
|
|
|
|
if schema_links_match.group(1):
|
|
schema_links = schema_links_match.group(1)
|
|
elif schema_links_match.group(2):
|
|
schema_links = schema_links_match.group(2)
|
|
else:
|
|
schema_links = None
|
|
|
|
except Exception as e:
|
|
logger.exception(e)
|
|
schema_links = None
|
|
|
|
return schema_links
|
|
|
|
def combo_sql_parse(schema_linking_sql_combo_output: str):
|
|
try:
|
|
schema_linking_sql_combo_output = schema_linking_sql_combo_output.strip()
|
|
pattern = r'SQL:(.*)'
|
|
sql_match = re.search(pattern, schema_linking_sql_combo_output)
|
|
|
|
if sql_match:
|
|
sql = sql_match.group(1)
|
|
else:
|
|
sql = None
|
|
except Exception as e:
|
|
logger.exception(e)
|
|
sql = None
|
|
|
|
return sql
|
|
|