You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LangChain/ChatOpenAI自动添加分号:统计SQL中新增分号数量

统计SQL中AI自动新增的分号数量

问题背景

原始SQL语句仅包含1个分号,但ChatGPT返回识别出2个分号,说明AI自动为SQL添加了分号,需要统计新增的分号数量。

解决方案思路

  1. 先统计原始SQL中的分号数量,作为基准值
  2. 获取AI处理后的完整SQL文本,统计其中的分号数量
  3. 用处理后的分号数减去原始基准值,差值即为AI自动新增的分号数量

代码实现

from langchain.chat_models import ChatOpenAI
from langchain.schema import SystemMessage

# 原始SQL语句
sql = "UPDATE users SET name='prasad' where id = 90 UPDATE users SET name = 'john' where id = 88;"
# 统计原始分号数量
original_semicolon_count = sql.count(';')

# 初始化ChatGPT模型
chat_model = ChatOpenAI(
    model_name="gpt-3.5-turbo",
    temperature=0.0,
    verbose=True,
    cache=False,
)

# 调整Prompt,明确要求AI返回处理后的SQL和分号数量
messages = [
    SystemMessage(
        content="请严格按照以下格式输出:\n1. 第一行:输出你识别/处理后的完整SQL语句\n2. 第二行:仅输出该SQL中的分号数量(数字)"
    ),
    SystemMessage(content=sql)
]

# 调用模型并解析结果
result = chat_model.invoke(messages)
result_lines = result.content.strip().split('\n')

# 提取处理后的SQL并统计分号数
processed_sql = result_lines[0]
processed_semicolon_count = processed_sql.count(';')

# 计算新增的分号数量
added_semicolon_count = processed_semicolon_count - original_semicolon_count
print(f"AI自动新增的分号数量:{added_semicolon_count}")

关键说明

  • 原始SQL的分号统计直接使用字符串的count(';')方法,确保基准值准确
  • 通过明确的Prompt约束AI的输出格式,避免后续解析出错
  • 直接统计AI返回的SQL文本中的分号数,而非依赖AI给出的数量,结果更可靠

内容的提问来源于stack exchange,提问作者Prasad Bhanarkar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 12:33:28