完善过滤sql的函数
This commit is contained in:
parent
d8917d96c0
commit
165ad823f5
@ -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()
|
||||||
|
Loading…
Reference in New Issue
Block a user