【第6篇】引入高配大模型

返回目录

【第6篇】引入高配大模型

比赛相关介绍参见 《2025年羊城工匠杯nl2sql比赛介绍》

开发环境配置参见《nl2sql2025开发环境配置》

本文介绍向量、关键字、重排序等方式匹配到问题对应的库表后,构造提示词使用qwen3-235B高配大模型,生成自然语言问题对应的SQL脚本。

一、如何触发高配大模型生成SQL脚本

src/query/get_sql_answer.py 是构造提示词的关键程序,其中触发高配大模型的逻辑在 Line 36 :if table_define is None and llm=="high":

如果通过问题经过模板化处理后,无法匹配到相关库表信息,并且使用高配大模型参数调用(llm=high),那么就调用 query_ddl(question) 提取问题对应的库表ddl信息

首先,我们模拟这是一个新问题,无法正常命中到问题模板,手工删除tmp_question2sql.json文件 Line 4:"各受理渠道工单所占的百分比分别是多少?"

bash 复制代码
$ python ./src/query/get_sql_answer.py --query_text "请问2024年各受理渠道工单所占的百分比分别是多少?" --debug --llm high

使用上面命令行运行程序,如下图,可以看到高配大模型在没有案例、仅通过库表的DDL定义,推理出自然语言问题对应的SQL脚本。

经过评估程序测算,对于逻辑较为简答的level1和level2级问题,高配大模型的准确率可以达到70%以上。

二、寻找问题对应库表的挑战

使用高配对话大模型生成SQL脚本最大的挑战是如何根据自然语言问题,找到对应的库表。

相关程序逻辑:

1. src/query/query_ddl.py: 调用query_vector.py获得的topK 记录,再调用query_rerank.py,返回table_define 给 get_sql_answer.py

2. src/query/query_vector.py: 根据问题question,调用嵌入模型,确定topK最可能的库表集合

3. src/query/hit_keywords.py: 根据手工维护的 data/keywords.txt 关键字表,返回问题与库表业务关键字重叠最多的记录

4. src/query/query_rerank.py: 根据query_vector.py返回的filtered_docs调用重排序模型,确定唯一的一张库表

query_ddl.py query_vector.py hit_keywords.py query_rerank.py retrieve_similar_texts(question) hit_keywords(query_text, filtered_docs) hitIndexs filtered_docs query_reranker(filtered_docs in request_body) table_define query_ddl.py query_vector.py hit_keywords.py query_rerank.py

三、提示词优化的挑战

相关程序逻辑:

1. src/utils.py: 构造提示词的模板程序

这一块逻辑比较简单,把自然问题、库表结构、扩展提示词和案例提示词拼接起来,后续提供给大模型使用。

2. src/query/build_extra_hint.py: 特殊问题question需要提示大模型的约束或者案例说明

这部分代码写得不优雅,逻辑上直接通过问题关键字,增加提示词,如果重构,可以考虑新增 data/hint.txt文件,集中管理。

【本文结束】

相关推荐
算法打盹中2 个月前
基于大型语言模型的自然语言到 SQL 转换研究综述:我们身处何处,又将前往何方?
人工智能·sql·语言模型·text2sql·nl2sql
AlfredZhao3 个月前
AI再强大,也不如人类员工用的爽?
ai·nl2sql
lxsy3 个月前
spring-ai-alibaba 简化版NL2SQL
java·nl2sql·spring-ai·ai-alibaba
張萠飛5 个月前
NL2SQL代表,Vanna
nl2sql·chatbi
wxl7812275 个月前
基于自然语言转SQL的BI准确率如何?
数据库·bi·nl2sql
Hello_WOAIAI10 个月前
大模型时代的NL2SQL初探
自然语言处理·text2sql·nl2sql
shengjk11 年前
解开基于大模型的Text2SQL的神秘面纱
大数据·开发语言·数据库·人工智能·aigc·text2sql·nl2sql
六神就是我1 年前
【LLM之NL2SQL】DIN-SQL论文阅读笔记
论文阅读·笔记·llm·nl2sql
汀、人工智能2 年前
NL2SQL技术方案系列(1):NL2API、NL2SQL技术路径选择;LLM选型与Prompt工程技巧,揭秘项目落地优化之道
nl2sql