|
|
|
@ -4,14 +4,13 @@ import requests
|
|
|
|
|
from vanna.base import VannaBase
|
|
|
|
|
from Config import *
|
|
|
|
|
|
|
|
|
|
class DeepSeekVanna(VannaBase):
|
|
|
|
|
|
|
|
|
|
class VannaUtil(VannaBase):
|
|
|
|
|
def __init__(self):
|
|
|
|
|
super().__init__()
|
|
|
|
|
self.api_key = MODEL_API_KEY
|
|
|
|
|
self.base_url = "https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation" # 阿里云专用API地址
|
|
|
|
|
self.base_url = MODEL_GENERATION_TEXT_URL # 阿里云专用API地址
|
|
|
|
|
self.model = QWEN_MODEL_NAME # 根据实际模型名称调整
|
|
|
|
|
#self.base_url= MODEL_API_URL,
|
|
|
|
|
#self.model = MODEL_NAME
|
|
|
|
|
self.training_data = []
|
|
|
|
|
self.chat_history = []
|
|
|
|
|
|
|
|
|
@ -57,14 +56,12 @@ class DeepSeekVanna(VannaBase):
|
|
|
|
|
def get_similar_question_sql(self, question: str, **kwargs) -> List[Dict[str, Any]]:
|
|
|
|
|
return []
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def _clean_sql_output(self, raw_sql: str) -> str:
|
|
|
|
|
"""增强版清洗逻辑"""
|
|
|
|
|
# 移除所有非SQL内容
|
|
|
|
|
cleaned = re.sub(r'^.*?(?=SELECT)', '', raw_sql, flags=re.IGNORECASE|re.DOTALL)
|
|
|
|
|
cleaned = re.sub(r'^.*?(?=SELECT)', '', raw_sql, flags=re.IGNORECASE | re.DOTALL)
|
|
|
|
|
# 提取第一个完整SQL语句
|
|
|
|
|
match = re.search(r'(SELECT\s.+?;)', cleaned, re.IGNORECASE|re.DOTALL)
|
|
|
|
|
match = re.search(r'(SELECT\s.+?;)', cleaned, re.IGNORECASE | re.DOTALL)
|
|
|
|
|
if match:
|
|
|
|
|
# 标准化空格和换行
|
|
|
|
|
clean_sql = re.sub(r'\s+', ' ', match.group(1)).strip()
|