完善过滤sql的函数

This commit is contained in:
Zixiao Wang 2025-06-04 15:09:17 +08:00
parent d8917d96c0
commit 165ad823f5

View File

@ -849,11 +849,15 @@ class CreatorSQLSearchAPI(APIView):
return Response(response_data) return Response(response_data)
def _extract_sql(self, text): def _extract_sql(self, text):
# 先去除 <think>...</think> 内容
import re import re
text = re.sub(r"<think>.*?</think>\s*", "", text, flags=re.DOTALL) # 优先提取```sql ... ```代码块
# 再提取SQL语句 codeblock = re.search(r"```sql\s*([\s\S]+?)\s*```", text, re.IGNORECASE)
match = re.search(r"select[\s\S]+?;", text, re.IGNORECASE) if codeblock:
sql = codeblock.group(1).strip()
return sql
# 回退匹配以SELECT开头后面跟任意内容多行
match = re.search(r"(?i)(SELECT[\s\S]*)", text)
if match: if match:
return match.group() sql = match.group(1).strip()
return sql
return text.strip() return text.strip()