当前位置: 首页 > news >正文

Python使用LLM把自然语言翻译成SQL语句

1. 数据

1.1 原始数据

$ cat sneakers_cleaned.csv 
品牌,型号,类型,上市时间,价格(),重量(g),产品特点
ASICS,MetaSpeed RAY,竞速跑鞋,2025.04,1899,129,超临界发泡中底,史上最轻碳板跑鞋
Nike,Vaporfly 4,马拉松竞速,2025.03,1599,198,全掌ZoomX泡棉+碳纤维板,推进力优化、小体重专属
Saucony,ENDORPHIN ELITE 2,顶级竞速,2025.01,1699,210,PWRRUN PB中底+碳板,暴力回弹、精英破三款
adidas,ADIZERO EVOSL,竞速训练,2025.05,1299,225,LIGHTSTRIKE PRO泡棉,蓝白/灰黑/经典三配色
李宁,飞电4 Ultra,竞速跑鞋,2025.04,1499,185,蹦丝鞋面+全掌碳板,湿地止滑GCU大底
On昂跑,Cloudsurfer 2,缓震跑鞋,2025.02,1299,280,CloudTec Phase中底,柔韧支撑、慢跑优选
New Balance,RCVRY联名款,恢复拖鞋,2025.06,799,150,Fresh Foam X缓震,运动后肌肉放松设计
特步,160X 3.5PRO,马拉松竞速,2025.03,1299,192,XT-ACE碳板,前代改进版、推进效率提升
361°,飞飙FUTURE 2,精英竞速,2025.04,1399,189,收窄后跟设计,专业运动员定制款
Brooks,Hyperion Elite 4 PB,竞速跑鞋,2025.01,1499,195,PEBA发泡中底,能量回馈率提升23%
ASICS,GEL-NIMBUS 26,缓震跑鞋,2025.01,1299,285,FF BLAST PLUS中底,长距离舒适性标杆
Mizuno,WAVE INSPIRE 19,支撑跑鞋,2025.02,999,310,WAVE波浪板+ENERZY泡棉,稳定抗扭、防内翻
安踏,柏油路霸3,赤足训练,2025.04,599,255,分趾压力释放设计,仿自然步态、通勤训练两用
李宁,超轻22,学生跑鞋,2025.03,599,240,蹦轻弹中底,校园通勤轻量化设计
鸿星尔克,强噪3微晶白,通勤跑鞋,2025.05,499,270,抗菌银离子鞋垫,商务休闲无缝切换
亚瑟士,GEL-KAYANO 28,支撑跑鞋,2025.03,1299,295,GEL缓震胶+Air Mesh,足弓支撑强化版
匹克,态极5.0 PRO,缓震跑鞋,2025.04,699,290,自适应中底科技,软弹脚感、日常慢跑优选
New Balance,Fresh Foam 1080v11,顶级缓震,2025.01,1399,300,一体式鞋面设计,长距离缓冲王者
...

1.2 数据库数据

在这里插入图片描述

2. 简单代码查询

import pandas as pd
from sqlalchemy import create_engine
from dotenv import load_dotenv
import os# 加载 .env 文件
load_dotenv()# 获取数据库配置
dbname = os.getenv('DB_NAME')
user = os.getenv('DB_USER')
password = os.getenv('DB_PASSWORD')
host = os.getenv('DB_HOST')
port = os.getenv('DB_PORT')# 创建数据库连接
engine = create_engine(f'postgresql://{user}:{password}@{host}:{port}/{dbname}')# 按条件查询
expensive_sneakers = pd.read_sql('SELECT * FROM sneakers WHERE 价格 > 3000', engine)
print("\n价格高于3000的跑鞋:")
print(expensive_sneakers)

输出:


价格高于3000的跑鞋:品牌                 型号     类型        上市时间    价格   重量                    产品特点
0      Miu Miu            科技织物运动鞋    厚底鞋  2025-05-01  7400  410     动态针织鞋面,奢侈品户外风增高显瘦设计
1   Balenciaga           Hamptons  复古运动鞋  2025-06-01  6500  390  做旧皮革+涂鸦鞋带,Demna遗作限量艺术款
2  Gucci x NBA              篮球文化鞋    休闲鞋  2025-03-01  8900  380     红蓝编织带,NBA 75周年纪念收藏款
3        Prada  Cloudbust Thunder    厚底鞋  2025-04-01  7200  420     锯齿外底+网面,未来主义机能风增高设计

3. 基于规则的查询

import pandas as pd
from sqlalchemy import create_engine
from dotenv import load_dotenv
import os
import re# 加载 .env 文件
load_dotenv()# 获取数据库配置
dbname = os.getenv('DB_NAME')
user = os.getenv('DB_USER')
password = os.getenv('DB_PASSWORD')
host = os.getenv('DB_HOST')
port = os.getenv('DB_PORT')# 创建数据库连接
engine = create_engine(f'postgresql://{user}:{password}@{host}:{port}/{dbname}')def translate_to_sql(natural_query):"""将自然语言查询转换为SQL语句"""# 转换为小写便于处理query = natural_query.lower()# 定义字段映射field_mapping = {'价格': '价格','品牌': '品牌','重量': '重量','上市时间': '上市时间'}# 构建基础SQLbase_sql = "SELECT * FROM sneakers"# 处理条件where_conditions = []# 处理品牌相关的查询brands = ['ASICS', 'Nike', 'Saucony', 'adidas', '李宁', 'On昂跑', 'New Balance', '特步', '361°', 'Brooks', 'Mizuno', '安踏', '鸿星尔克', '亚瑟士', '匹克', 'Skechers', 'HOKA', 'Asics', 'Puma', 'Salomon', '凯乐石', 'The North Face', 'Lowa', 'Oakley', 'Columbia', 'Merrell', 'Altra', 'La Sportiva', 'Arc\'teryx', 'Scarpa', '索康尼', 'Salewa', 'Mammut', 'Topo Athletic', 'Inov8', 'Kith x Salomon','CLOT x adidas', 'Nike x Apron Records', 'Crocs x 宝可梦', 'Converse x Tyler','adidas x 皇马', 'Miu Miu', 'Balenciaga', 'PUMA x A$AP Rocky', 'The North Face x HYKE','Joe Freshgoods x NB', 'Gucci x NBA', 'Prada', 'Vans x Van Gogh', 'Salomon x MM6','Nike x Wu-Tang Clan', 'Birkenstock x Union LA', 'Travis Scott x Jordan','Song for the Mute x adidas', 'Corteiz x Nike', 'BAPE®', 'Jordan', 'Crocs x G-SHOCK','FILA x Hailey Bieber', 'Valentino x Vans', 'PUMA x NOFAITH', 'ASICS x Kiko Kostadinov','New Balance x JJJJound', 'HOKA x Engineered Garments', 'Concepts x Nike','UNDERCOVER x Nike', 'Stüssy x Birkenstock', 'On昂跑 x LOEWE', 'Salomon x BEAMS','adidas x Wales Bonner', 'Nike x Sacai', 'Reebok x Vetements', 'Puma x Rhude','Columbia x Snow Peak', 'Vans x Supreme', 'Under Armour', '咕咚', 'Reebok', 'Cree']for brand in brands:if brand.lower() in query or brand in query:where_conditions.append(f"品牌 = '{brand}'")break# 处理上市时间相关的查询# 处理上市时间相关的查询if '上市时间' in query or '什么时候' in query:# 优先查找年月格式,如"2025年5月"year_month_match = re.search(r'(\d{4})年[^\d]{0,3}(\d{1,2})月', natural_query)if year_month_match:year = year_month_match.group(1)month = year_month_match.group(2).zfill(2)  # 补齐为两位数where_conditions.append(f"上市时间 >= '{year}-{month}-01' AND 上市时间 <= '{year}-{month}-31'")else:# 查找年份格式的上市时间year_match = re.search(r'(\d{4})年', natural_query)if year_match:year = year_match.group(1)where_conditions.append(f"上市时间 >= '{year}-01-01' AND 上市时间 <= '{year}-12-31'")else:# 查找月份格式month_match = re.search(r'(\d{4})\.(\d{2})', natural_query)if month_match:year = month_match.group(1)month = month_match.group(2)where_conditions.append(f"上市时间 >= '{year}-{month}-01' AND 上市时间 <= '{year}-{month}-31'")# 处理价格相关的查询if '价格' in query or '多少钱' in query or '元' in query:# 查找价格数值price_match = re.search(r'(\d+)(?:块|元)?', query)if price_match:price = price_match.group(1)if '高于' in query or '大于' in query or '超过' in query:where_conditions.append(f"价格 > {price}")elif '低于' in query or '小于' in query:where_conditions.append(f"价格 < {price}")elif '等于' in query or '是' in query:where_conditions.append(f"价格 = {price}")# 处理重量相关的查询if '重量' in query or '轻' in query or '重' in query or '克' in query or 'g' in query:weight_match = re.search(r'(\d+)(?:克|g)', query)if weight_match:weight = weight_match.group(1)if '轻于' in query or '小于' in query:where_conditions.append(f"重量 < {weight}")elif '重于' in query or '大于' in query:where_conditions.append(f"重量 > {weight}")elif '等于' in query or '是' in query:where_conditions.append(f"重量 = {weight}")# 组装SQL语句if where_conditions:sql_query = base_sql + " WHERE " + " AND ".join(where_conditions)else:sql_query = base_sqlreturn sql_querydef execute_query(sql_query):"""执行SQL查询并返回结果"""try:df = pd.read_sql(sql_query, engine)return dfexcept Exception as e:print(f"查询执行出错: {e}")return Nonedef format_output(df, natural_query):"""格式化输出结果"""if df is None or df.empty:return "未找到符合条件的数据。"print(f"\n根据您的查询 '{natural_query}',查询结果如下:")print(df.to_string(index=False))return f"共找到 {len(df)} 条记录。"def natural_language_query(natural_query):"""主函数:处理自然语言查询"""print(f"原始查询: {natural_query}")# 翻译为SQLsql_query = translate_to_sql(natural_query)print(f"生成的SQL: {sql_query}")# 执行查询result_df = execute_query(sql_query)# 格式化输出return format_output(result_df, natural_query)# 示例使用
if __name__ == "__main__":# 示例查询queries = ["价格超过3000元的跑鞋","Nike品牌的跑鞋","重量小于180克的跑鞋","李宁品牌的跑鞋,价格高于1000元","上市时间是2025年5月的运动鞋",]for query in queries:natural_language_query(query)print("-" * 50)

输出结果:

原始查询: 价格超过3000元的跑鞋
生成的SQL: SELECT * FROM sneakers WHERE 价格 > 3000根据您的查询 '价格超过3000元的跑鞋',查询结果如下:品牌                型号    类型       上市时间   价格  重量                   产品特点Miu Miu           科技织物运动鞋   厚底鞋 2025-05-01 7400 410    动态针织鞋面,奢侈品户外风增高显瘦设计Balenciaga          Hamptons 复古运动鞋 2025-06-01 6500 390 做旧皮革+涂鸦鞋带,Demna遗作限量艺术款
Gucci x NBA             篮球文化鞋   休闲鞋 2025-03-01 8900 380    红蓝编织带,NBA 75周年纪念收藏款Prada Cloudbust Thunder   厚底鞋 2025-04-01 7200 420    锯齿外底+网面,未来主义机能风增高设计
--------------------------------------------------
原始查询: Nike品牌的跑鞋
生成的SQL: SELECT * FROM sneakers WHERE 品牌 = 'Nike'根据您的查询 'Nike品牌的跑鞋',查询结果如下:品牌               型号    类型       上市时间   价格  重量                         产品特点
Nike       Vaporfly 4 马拉松竞速 2025-03-01 1599 198   全掌ZoomX泡棉+碳纤维板,推进力优化、小体重专属
Nike     Air Max 1000  缓震跑鞋 2025-06-01 1499 320        3D打印一体成型,雕塑感透气鞋面轻量化设计
Nike React Infinity 5  稳定跑鞋 2025-01-01 1199 310             ReactX泡棉,防受伤设计升级
Nike     Invincible 4  顶级缓震 2025-03-01 1499 330             ZoomX加厚,极致缓冲保护膝盖
Nike     Air Max 1000  缓震跑鞋 2025-06-01 1499 320        3D打印一体成型,雕塑感透气鞋面轻量化设计
Nike React Infinity 5  稳定跑鞋 2025-01-01 1199 310             ReactX泡棉,防受伤设计升级
Nike     Invincible 4  顶级缓震 2025-03-01 1499 330             ZoomX加厚,极致缓冲保护膝盖
Nike Vaporfly Next% 3 马拉松竞速 2025-03-01 2399 185 ZoomX泡棉2.0+弧形碳板,能量回馈88%的破三神器
--------------------------------------------------
原始查询: 重量小于180克的跑鞋
生成的SQL: SELECT * FROM sneakers WHERE 重量 < 180根据您的查询 '重量小于180克的跑鞋',查询结果如下:品牌                  型号   类型       上市时间   价格  重量                     产品特点ASICS       MetaSpeed RAY 竞速跑鞋 2025-04-01 1899 129         超临界发泡中底,史上最轻碳板跑鞋
New Balance            RCVRY联名款 恢复拖鞋 2025-06-01  799 150 Fresh Foam X缓震,运动后肌肉放松设计On昂跑 Cloudboom Strike LS 环保竞速 2025-01-01 2199 175     机器人喷涂热塑性鞋面,3分钟成型极轻量化
--------------------------------------------------
原始查询: 李宁品牌的跑鞋,价格高于1000元
生成的SQL: SELECT * FROM sneakers WHERE 品牌 = '李宁' AND 价格 > 1000根据您的查询 '李宁品牌的跑鞋,价格高于1000元',查询结果如下:
品牌               型号    类型       上市时间   价格  重量                   产品特点
李宁        飞电4 Ultra  竞速跑鞋 2025-04-01 1499 185    蹦丝鞋面+全掌碳板,湿地止滑GCU大底
李宁          心流·胡迪联名  复古越野 2025-04-01 1299 285 薄底皮革+弹性网布,玩具总动员30周年限量款
李宁            龙雀Pro  竞速跑鞋 2025-03-01 1899 180 超临界发泡+异构碳板,精英竞速能量回馈85%
李宁              绝影4  弹射跑鞋 2025-06-01 1599 295         双层强结构,高弹缓震能量循环
李宁 飞电4.0 Challenger  训练跑鞋 2025-03-01 1099 200    蹦丝鞋面+3/4碳板,竞训两用高性价比
李宁            龙雀Pro  竞速跑鞋 2025-03-01 1899 180 超临界发泡+异构碳板,精英竞速能量回馈85%
李宁              绝影4  弹射跑鞋 2025-06-01 1599 295       双层强结构,高弹缓震能量循环系统
李宁 飞电4.0 Challenger  训练跑鞋 2025-03-01 1099 200    蹦丝鞋面+3/4碳板,竞训两用高性价比
李宁   飞电4 Challenger 碳板训练鞋 2025-02-01 1099 200 蹦丝鞋面+3/4碳板,500元档国产碳板之光
--------------------------------------------------
原始查询: 上市时间是2025年5月的运动鞋
生成的SQL: SELECT * FROM sneakers WHERE 上市时间 >= '2025-05-01' AND 上市时间 <= '2025-05-31'根据您的查询 '上市时间是2025年5月的运动鞋',查询结果如下:品牌                   型号    类型       上市时间   价格  重量                          产品特点adidas        ADIZERO EVOSL  竞速训练 2025-05-01 1299 225 LIGHTSTRIKE PRO泡棉,蓝白/灰黑/经典三配色鸿星尔克               强噪3微晶白  通勤跑鞋 2025-05-01  499 270              抗菌银离子鞋垫,商务休闲无缝切换安踏                  劲风2   体训鞋 2025-05-01  459 245           A-WEB呼吸网面,学生体测多场景适用鸿星尔克                强噪3正黑  全能跑鞋 2025-05-01  499 275               防泼水处理,雨天通勤+夜跑反光Saucony             TEMPUS 2  支撑跑鞋 2025-05-01  999 290           PWRRUN PB中底,轻量支撑防内翻亚瑟士        MAGIC SPEED 4  竞速训练 2025-05-01 1199 205           FF TURBO中底,前掌碳板提速设计The North Face    Altamesa 500 HYKE  户外徒步 2025-05-01 1799 380     DREAM MID SOLE中底,联名款砂石棕配色Merrell         Moab Speed 2  轻量徒步 2025-05-01  899 310      Vibram Megagrip,湿地防滑平衡支撑Scarpa          Ribelle Run  高山越野 2025-05-01 1899 340       Vibram Litebase,冰雪岩混合地形Salomon         Thundercross  泥地越野 2025-05-01 1199 315               深齿耳齿设计,泥泞地形脱泥强化Adidas   Terrex Speed Ultra  轻量越野 2025-05-01 1299 285      LIGHTSTRIKE PRO,竞速级轻量化设计The North Face    Altamesa 500 HYKE  户外徒步 2025-05-01 1799 380   DREAM MID SOLE中底,联名砂石棕配色山地靴Merrell         Moab Speed 2  轻量徒步 2025-05-01  899 310     Vibram Megagrip,湿地防滑平衡支撑鞋Scarpa          Ribelle Run  高山越野 2025-05-01 1899 340    Vibram Litebase,冰雪岩混合地形专业款Salomon         Thundercross  泥地越野 2025-05-01 1199 315              深齿耳齿设计,泥泞地形脱泥强化款Adidas   Terrex Speed Ultra  轻量越野 2025-05-01 1299 285      LIGHTSTRIKE PRO,竞速级轻量化设计Salomon         Cross Hike 2   徒步鞋 2025-05-01 1399 355     Advanced Chassis,多日重装支撑系统ASICS         Gel-Sonoma 7  入门越野 2025-05-01  799 300             GEL缓震胶,初阶越野训练性价比款CLOT x adidas    SUPERSTAR BREATHE   休闲鞋 2025-05-01 1399 350          海军蓝麂皮+网眼,呼吸主题联名轻量化设计Miu Miu              科技织物运动鞋   厚底鞋 2025-05-01 7400 410           动态针织鞋面,奢侈品户外风增高显瘦设计The North Face x HYKE         Altamesa 500 户外潮流鞋 2025-05-01 1799 370               鞋带盖模块,日系极简风山系穿搭Vans x Van Gogh            星空Slip-On    板鞋 2025-05-01 1299 350             油画印花鞋面,艺术博物馆联名限量款
New Balance x JJJJound                990v6   休闲鞋 2025-05-01 1899 330                 元祖灰麂皮,极简主义联名款UNDERCOVER x Nike             Daybreak  复古跑鞋 2025-05-01 1499 290                  拼色网眼,高桥盾解构美学Salomon x BEAMS     ACS Pro Advanced   机能鞋 2025-05-01 1799 330                金属银涂层,未来感城市通勤款Reebok x Vetements       Instapump Fury   潮流鞋 2025-05-01 1999 370              充气模块+荧光色,颠覆性重构设计Vans x Supreme            Old Skool    板鞋 2025-05-01  899 310           红白Box Logo,街头文化符号经典adidas              4DFWD 3  科技跑鞋 2025-05-01 1699 300             光固化中底,能量推进效率提升23%Salomon             Index.03  可回收鞋 2025-05-01 1299 280                 单一材料结构,环保拆解设计安踏                柏油路霸4  赤足训练 2025-05-01  569 250            分趾压力释放2.0,仿自然步态进阶款New Balance SuperComp Trainer v3  厚底训练 2025-05-01 1299 300           FuelCell+碳板,长距离推进强化Brooks    Adrenaline GTS 23  支撑跑鞋 2025-05-01 1099 320           DNA LOFT v3,平衡支撑防内翻李宁                 吾适6S  休闲跑鞋 2025-05-01  799 310            蹦轻弹+GCU,潮流设计+全天候防滑鸿星尔克                极风2.0  竞速训练 2025-05-01  569 265                银离子抗菌鞋垫,防臭透气设计Under Armour         HOVR Sonic 6  竞速训练 2025-05-01  999 275               HOVR+碳板,轻量化速度反馈adidas              4DFWD 3  科技跑鞋 2025-05-01 1699 300             光固化中底,能量推进效率提升23%Salomon             Index.03  可回收鞋 2025-05-01 1299 280                 单一材料结构,环保拆解设计安踏                柏油路霸4  赤足训练 2025-05-01  569 250            分趾压力释放2.0,仿自然步态进阶款New Balance SuperComp Trainer v3  厚底训练 2025-05-01 1299 300           FuelCell+碳板,长距离推进强化Brooks    Adrenaline GTS 23  支撑跑鞋 2025-05-01 1099 320           DNA LOFT v3,平衡支撑防内翻李宁                 吾适6S  休闲跑鞋 2025-05-01  799 310               蹦轻弹+GCU,全天候防滑设计鸿星尔克                极风2.0  竞速训练 2025-05-01  569 265                银离子抗菌鞋垫,防臭透气设计Under Armour         HOVR Sonic 6  竞速训练 2025-05-01  999 275               HOVR+碳板,轻量化速度反馈安踏              C10 Pro 材料科技鞋 2025-05-01 1299 240           嵌段聚醚酰胺树脂中底,航空材料减震验证鸿星尔克                极风2.0  竞速训练 2025-05-01  569 265                银离子抗菌鞋垫,防臭透气设计
--------------------------------------------------

4. 基于LLM翻译

import pandas as pd
from sqlalchemy import create_engine
from dotenv import load_dotenv
import os
import re
from openai import OpenAI# 加载 .env 文件
load_dotenv()# 获取数据库配置
dbname = os.getenv('DB_NAME')
user = os.getenv('DB_USER')
password = os.getenv('DB_PASSWORD')
host = os.getenv('DB_HOST')
port = os.getenv('DB_PORT')# 从环境变量获取 DeepSeek API Key
api_key = os.getenv("DEEPSEEK_API_KEY")
if not api_key:raise ValueError("请设置 DEEPSEEK_API_KEY 环境变量")# 初始化 OpenAI 客户端
client = OpenAI(api_key=api_key,base_url="https://api.siliconflow.cn/v1",  # DeepSeek API 的基地址
)# 创建数据库连接
engine = create_engine(f'postgresql://{user}:{password}@{host}:{port}/{dbname}')def translate_to_sql_with_llm(natural_query):"""使用大模型将自然语言查询转换为SQL语句"""# 构建提示词prompt = f"""你是一个专业的数据库管理员,擅长将自然语言查询转换为SQL语句。数据库表名为 sneakers,包含以下字段:- 品牌 (文本)- 型号 (文本)- 类型 (文本)- 上市时间 (日期,格式如: 2025-04-01, 2024-11-24)- 价格 (数字,单位:元)- 重量 (数字,单位:克)- 产品特点 (文本)请将以下自然语言查询转换为PostgreSQL SQL查询语句,只返回SQL语句,不要包含其他内容:"{natural_query}"注意事项:0. 忽略大小写1. 品牌字段是"品牌",不是brand2. 价格字段是"价格",不是price3. 重量字段是"重量",不是weight4. 上市时间字段是"上市时间",不是launch_time5. 日期格式在数据库中是类似2025-04-01这样的格式,比较时需要使用字符串比较6. 忽略鞋的类型示例:输入:价格超过2000的跑鞋输出:SELECT * FROM sneakers WHERE 价格 > 2000输入:Nike品牌的跑鞋输出:SELECT * FROM sneakers WHERE 品牌 = 'Nike'输入:上市时间是2025年5月的运动鞋输出:SELECT * FROM sneakers WHERE 上市时间 >= '2025-05-01' AND 上市时间 <= '2025-05-31'"""try:response = client.chat.completions.create(model="Pro/deepseek-ai/DeepSeek-V3",messages=[{"role": "system", "content": "你是一个专业的数据库管理员,擅长将自然语言查询转换为SQL语句。严格按照用户要求的格式输出SQL语句,不要添加任何额外说明。"},{"role": "user", "content": prompt}],temperature=0.1,stream=False)sql_query = response.choices[0].message.content.strip()# 移除可能的 Markdown 格式标记sql_query = re.sub(r'^```sql\s*', '', sql_query)sql_query = re.sub(r'\s*```$', '', sql_query)return sql_queryexcept Exception as e:print(f"大模型转换出错: {e}")return Nonedef execute_query(sql_query):"""执行SQL查询并返回结果"""try:df = pd.read_sql(sql_query, engine)return dfexcept Exception as e:print(f"查询执行出错: {e}")return Nonedef summarize_with_llm(df, natural_query):"""使用大模型对查询结果进行总结"""if df is None or df.empty:return "未找到符合条件的数据。"# 将数据转换为文本格式data_text = df.to_string(index=False)# 构建提示词prompt = f"""你是一个专业的数据分析员,请对以下查询结果进行简洁明了的总结。用户的查询是:"{natural_query}"查询结果如下:{data_text}请用中文回答,总结要点:1. 符合条件的记录总数2. 主要特征或趋势(如价格范围、主要品牌等)3. 其他值得注意的信息回答要简洁明了,不要超过2000字。"""try:response = client.chat.completions.create(model="Pro/deepseek-ai/DeepSeek-V3",messages=[{"role": "system", "content": "你是一个专业的数据分析员,擅长对数据进行总结分析。"},{"role": "user", "content": prompt}],temperature=0.3,stream=False)summary = response.choices[0].message.content.strip()return summaryexcept Exception as e:print(f"大模型总结出错: {e}")# 返回基本的统计信息return f"共找到 {len(df)} 条记录。\n\n数据预览:\n{data_text[:500]}..."def format_output(df, natural_query):"""格式化输出结果"""if df is None or df.empty:return "未找到符合条件的数据。"print(f"\n根据您的查询 '{natural_query}',查询结果如下:")print(df.to_string(index=False))return f"共找到 {len(df)} 条记录。"def natural_language_query(natural_query):"""主函数:处理自然语言查询"""print(f"原始查询: {natural_query}")# 使用大模型翻译为SQLsql_query = translate_to_sql_with_llm(natural_query)if not sql_query:return "无法生成SQL查询语句。"print(f"生成的SQL: {sql_query}")# 执行查询result_df = execute_query(sql_query)# 格式化输出return format_output(result_df, natural_query)    # 示例使用
if __name__ == "__main__":# 示例查询queries = ["价格超过3000元的跑鞋","Nike品牌的跑鞋","重量小于180克的跑鞋","李宁品牌的跑鞋,价格高于1000元","上市时间是2025年5月的运动鞋",]for query in queries:natural_language_query(query)print("-" * 50)#llm summaryprint("*"*50)sql_query = translate_to_sql_with_llm(queries[0])     print(f"生成的SQL: {sql_query}")# 执行查询result_df = execute_query(sql_query)# 执行查询result_df = execute_query(sql_query)print(summarize_with_llm(result_df, queries[0]))

输出结果:

原始查询: 价格超过3000元的跑鞋
生成的SQL: SELECT * FROM sneakers WHERE 价格 > 3000根据您的查询 '价格超过3000元的跑鞋',查询结果如下:品牌                型号    类型       上市时间   价格  重量                   产品特点Miu Miu           科技织物运动鞋   厚底鞋 2025-05-01 7400 410    动态针织鞋面,奢侈品户外风增高显瘦设计Balenciaga          Hamptons 复古运动鞋 2025-06-01 6500 390 做旧皮革+涂鸦鞋带,Demna遗作限量艺术款
Gucci x NBA             篮球文化鞋   休闲鞋 2025-03-01 8900 380    红蓝编织带,NBA 75周年纪念收藏款Prada Cloudbust Thunder   厚底鞋 2025-04-01 7200 420    锯齿外底+网面,未来主义机能风增高设计
--------------------------------------------------
原始查询: Nike品牌的跑鞋
生成的SQL: SELECT * FROM sneakers WHERE 品牌 = 'Nike' AND 类型 = '跑鞋'
--------------------------------------------------
原始查询: 重量小于180克的跑鞋
生成的SQL: SELECT * FROM sneakers WHERE 重量 < 180根据您的查询 '重量小于180克的跑鞋',查询结果如下:品牌                  型号   类型       上市时间   价格  重量                     产品特点ASICS       MetaSpeed RAY 竞速跑鞋 2025-04-01 1899 129         超临界发泡中底,史上最轻碳板跑鞋
New Balance            RCVRY联名款 恢复拖鞋 2025-06-01  799 150 Fresh Foam X缓震,运动后肌肉放松设计On昂跑 Cloudboom Strike LS 环保竞速 2025-01-01 2199 175     机器人喷涂热塑性鞋面,3分钟成型极轻量化
--------------------------------------------------
原始查询: 李宁品牌的跑鞋,价格高于1000元
生成的SQL: SELECT * FROM sneakers WHERE 品牌 = '李宁' AND 价格 > 1000根据您的查询 '李宁品牌的跑鞋,价格高于1000元',查询结果如下:
品牌               型号    类型       上市时间   价格  重量                   产品特点
李宁        飞电4 Ultra  竞速跑鞋 2025-04-01 1499 185    蹦丝鞋面+全掌碳板,湿地止滑GCU大底
李宁          心流·胡迪联名  复古越野 2025-04-01 1299 285 薄底皮革+弹性网布,玩具总动员30周年限量款
李宁            龙雀Pro  竞速跑鞋 2025-03-01 1899 180 超临界发泡+异构碳板,精英竞速能量回馈85%
李宁              绝影4  弹射跑鞋 2025-06-01 1599 295         双层强结构,高弹缓震能量循环
李宁 飞电4.0 Challenger  训练跑鞋 2025-03-01 1099 200    蹦丝鞋面+3/4碳板,竞训两用高性价比
李宁            龙雀Pro  竞速跑鞋 2025-03-01 1899 180 超临界发泡+异构碳板,精英竞速能量回馈85%
李宁              绝影4  弹射跑鞋 2025-06-01 1599 295       双层强结构,高弹缓震能量循环系统
李宁 飞电4.0 Challenger  训练跑鞋 2025-03-01 1099 200    蹦丝鞋面+3/4碳板,竞训两用高性价比
李宁   飞电4 Challenger 碳板训练鞋 2025-02-01 1099 200 蹦丝鞋面+3/4碳板,500元档国产碳板之光
--------------------------------------------------
原始查询: 上市时间是2025年5月的运动鞋
生成的SQL: SELECT * FROM sneakers WHERE 上市时间 >= '2025-05-01' AND 上市时间 <= '2025-05-31'根据您的查询 '上市时间是2025年5月的运动鞋',查询结果如下:品牌                   型号    类型       上市时间   价格  重量                          产品特点adidas        ADIZERO EVOSL  竞速训练 2025-05-01 1299 225 LIGHTSTRIKE PRO泡棉,蓝白/灰黑/经典三配色鸿星尔克               强噪3微晶白  通勤跑鞋 2025-05-01  499 270              抗菌银离子鞋垫,商务休闲无缝切换安踏                  劲风2   体训鞋 2025-05-01  459 245           A-WEB呼吸网面,学生体测多场景适用鸿星尔克                强噪3正黑  全能跑鞋 2025-05-01  499 275               防泼水处理,雨天通勤+夜跑反光Saucony             TEMPUS 2  支撑跑鞋 2025-05-01  999 290           PWRRUN PB中底,轻量支撑防内翻亚瑟士        MAGIC SPEED 4  竞速训练 2025-05-01 1199 205           FF TURBO中底,前掌碳板提速设计The North Face    Altamesa 500 HYKE  户外徒步 2025-05-01 1799 380     DREAM MID SOLE中底,联名款砂石棕配色Merrell         Moab Speed 2  轻量徒步 2025-05-01  899 310      Vibram Megagrip,湿地防滑平衡支撑Scarpa          Ribelle Run  高山越野 2025-05-01 1899 340       Vibram Litebase,冰雪岩混合地形Salomon         Thundercross  泥地越野 2025-05-01 1199 315               深齿耳齿设计,泥泞地形脱泥强化Adidas   Terrex Speed Ultra  轻量越野 2025-05-01 1299 285      LIGHTSTRIKE PRO,竞速级轻量化设计The North Face    Altamesa 500 HYKE  户外徒步 2025-05-01 1799 380   DREAM MID SOLE中底,联名砂石棕配色山地靴Merrell         Moab Speed 2  轻量徒步 2025-05-01  899 310     Vibram Megagrip,湿地防滑平衡支撑鞋Scarpa          Ribelle Run  高山越野 2025-05-01 1899 340    Vibram Litebase,冰雪岩混合地形专业款Salomon         Thundercross  泥地越野 2025-05-01 1199 315              深齿耳齿设计,泥泞地形脱泥强化款Adidas   Terrex Speed Ultra  轻量越野 2025-05-01 1299 285      LIGHTSTRIKE PRO,竞速级轻量化设计Salomon         Cross Hike 2   徒步鞋 2025-05-01 1399 355     Advanced Chassis,多日重装支撑系统ASICS         Gel-Sonoma 7  入门越野 2025-05-01  799 300             GEL缓震胶,初阶越野训练性价比款CLOT x adidas    SUPERSTAR BREATHE   休闲鞋 2025-05-01 1399 350          海军蓝麂皮+网眼,呼吸主题联名轻量化设计Miu Miu              科技织物运动鞋   厚底鞋 2025-05-01 7400 410           动态针织鞋面,奢侈品户外风增高显瘦设计The North Face x HYKE         Altamesa 500 户外潮流鞋 2025-05-01 1799 370               鞋带盖模块,日系极简风山系穿搭Vans x Van Gogh            星空Slip-On    板鞋 2025-05-01 1299 350             油画印花鞋面,艺术博物馆联名限量款
New Balance x JJJJound                990v6   休闲鞋 2025-05-01 1899 330                 元祖灰麂皮,极简主义联名款UNDERCOVER x Nike             Daybreak  复古跑鞋 2025-05-01 1499 290                  拼色网眼,高桥盾解构美学Salomon x BEAMS     ACS Pro Advanced   机能鞋 2025-05-01 1799 330                金属银涂层,未来感城市通勤款Reebok x Vetements       Instapump Fury   潮流鞋 2025-05-01 1999 370              充气模块+荧光色,颠覆性重构设计Vans x Supreme            Old Skool    板鞋 2025-05-01  899 310           红白Box Logo,街头文化符号经典adidas              4DFWD 3  科技跑鞋 2025-05-01 1699 300             光固化中底,能量推进效率提升23%Salomon             Index.03  可回收鞋 2025-05-01 1299 280                 单一材料结构,环保拆解设计安踏                柏油路霸4  赤足训练 2025-05-01  569 250            分趾压力释放2.0,仿自然步态进阶款New Balance SuperComp Trainer v3  厚底训练 2025-05-01 1299 300           FuelCell+碳板,长距离推进强化Brooks    Adrenaline GTS 23  支撑跑鞋 2025-05-01 1099 320           DNA LOFT v3,平衡支撑防内翻李宁                 吾适6S  休闲跑鞋 2025-05-01  799 310            蹦轻弹+GCU,潮流设计+全天候防滑鸿星尔克                极风2.0  竞速训练 2025-05-01  569 265                银离子抗菌鞋垫,防臭透气设计Under Armour         HOVR Sonic 6  竞速训练 2025-05-01  999 275               HOVR+碳板,轻量化速度反馈adidas              4DFWD 3  科技跑鞋 2025-05-01 1699 300             光固化中底,能量推进效率提升23%Salomon             Index.03  可回收鞋 2025-05-01 1299 280                 单一材料结构,环保拆解设计安踏                柏油路霸4  赤足训练 2025-05-01  569 250            分趾压力释放2.0,仿自然步态进阶款New Balance SuperComp Trainer v3  厚底训练 2025-05-01 1299 300           FuelCell+碳板,长距离推进强化Brooks    Adrenaline GTS 23  支撑跑鞋 2025-05-01 1099 320           DNA LOFT v3,平衡支撑防内翻李宁                 吾适6S  休闲跑鞋 2025-05-01  799 310               蹦轻弹+GCU,全天候防滑设计鸿星尔克                极风2.0  竞速训练 2025-05-01  569 265                银离子抗菌鞋垫,防臭透气设计Under Armour         HOVR Sonic 6  竞速训练 2025-05-01  999 275               HOVR+碳板,轻量化速度反馈安踏              C10 Pro 材料科技鞋 2025-05-01 1299 240           嵌段聚醚酰胺树脂中底,航空材料减震验证鸿星尔克                极风2.0  竞速训练 2025-05-01  569 265                银离子抗菌鞋垫,防臭透气设计
--------------------------------------------------
**************************************************
生成的SQL: SELECT * FROM sneakers WHERE 价格 > 3000
1. **记录总数**:共查询到4款价格超过3000元的跑鞋。  2. **主要特征**- **价格范围**:6500元至8900元,均为高端奢侈品跑鞋。  - **品牌分布**:均为奢侈品牌(Miu Miu、Balenciaga、Gucci x NBA、Prada)。  - **设计风格**:以厚底鞋、复古/限量款为主,强调艺术联名、机能风或收藏价值。  3. **其他亮点**- 重量较轻(380g-420g),但更侧重设计而非运动性能。  - 含特殊款(如Gucci x NBA联名、Balenciaga限量艺术款)。  - 均为2025年新品,定位时尚或收藏市场。  (总结:高价跑鞋均为奢侈品牌限量/联名款,注重设计而非实用性。)
http://www.dtcms.com/a/321964.html

相关文章:

  • 线程组和线程池的基本用法
  • 深入理解 SwiftUI 布局:VStack、HStack 和表单控件全解析
  • 电脑和手机访问网站,自动检测跳转不同网站
  • 将2小时的财报OCR识别录入缩短至5分钟,如何实现财报智能OCR录入
  • 创建一个Vue3项目
  • TLF35584芯片功能总结
  • Python基础语法练习
  • 力扣-56.合并区间
  • ESP32-menuconfig(4) -- Partition Table
  • [优选算法专题一双指针——三数之和]
  • Google再次颠覆自家模型,使用 MoR 模型打破 Transformer 模型壁垒
  • Java选手如何看待Golang
  • webapi项目添加访问IP限制
  • 根据字符出现频率排序
  • 【Bellman负环】Cycle Finding
  • (0️⃣基础)程序控制语句(初学者)(第3天)
  • 调用API接口返回参数缺失是什么原因导致的?
  • [3D数据存储] 对象 | OObject | IObject | 属性 | O<类型>Property | I<类型>Property
  • 安全基础DAY2-等级保护
  • linux-文件系统
  • AD8032ARZ-REEL7 ADI亚德诺 运算放大器 集成电路IC
  • 阿拉伯文识别技术:为连接古老智慧与数字未来铺设了关键道路
  • scratch笔记和练习-第11课:穿越峡谷
  • Cell-cultured meat: The new favorite on the future dining table
  • AR眼镜:能源行业设备维护的“安全守护者”
  • Shell脚本实现自动封禁恶意扫描IP
  • 考研复习-计算机组成原理-第四章-指令系统
  • nvm安装低版本的node失败(The system cannot find the file specified)
  • Mysql 如何使用 binlog 日志回滚操作失误的数据
  • 系统构成与 Shell 核心:从零认识操作系统的心脏与外壳