大模型提示工程实战:Text2SQL 与 Text2API 的实现逻辑及代码示例
大模型提示工程实战:Text2SQL 与 Text2API 的实现逻辑及代码示例
大模型的提示工程(Prompt Engineering),简单来说就是通过精心设计输入文本(Prompt),引导大语言模型(LLM)生成符合预期输出的技术。在Text2SQL(自然语言转SQL)和Text2API(自然语言调接口)这两个典型场景中,提示工程的核心在于把自然语言表达的需求,精准转化为可执行的SQL查询语句和具体的API调用参数。
从本质上看,Text2SQL与Text2API场景下的提示工程,都是通过将领域知识“显性化”来实现转化的——即通过明确的角色定义(比如让模型扮演“数据库工程师”或“API调用专家”),结合业务知识注入(如数据库表结构Schema、API文档详情),帮助模型“吃透”自然语言背后的真实意图,最终转化为机器可执行的结构化指令。

一、Text2SQL:让自然语言“对话”数据库
什么是Text2SQL?
Text2SQL(文本转SQL)是一种能将用户用自然语言描述的查询需求,自动转换为结构化查询语言(SQL)的技术。它的价值在于打破了“只有懂SQL才能查数据库”的壁垒,让普通用户也能通过日常语言获取数据库中的信息。

在工具支持方面,LangChain的SQLDatabaseChain是常用的解决方案。它能动态将数据库Schema注入提示词,实现从自然语言输入到SQL生成、执行的端到端流程。更实用的是,它可以自动提取数据库表结构(Schema)作为上下文,还支持多轮对话——比如用户对初次查询结果不满意时,能通过追问让模型修正SQL语句。

以下是一个简单的实现示例:
from langchain.utilities import SQLDatabase
from langchain.chains import SQLDatabaseChain
from langchain_community.llms import OpenAI
# 连接数据库(以销售数据库为例)
db = SQLDatabase.from_uri("sqlite:///product_sales.db")
# 初始化大模型(温度值0表示输出更稳定)
llm = OpenAI(temperature=0)
# 创建SQL生成链
chain = SQLDatabaseChain.from_llm(llm, db, verbose=True)
# 执行查询:用自然语言提问
response = chain.run("2024年销售额超过100万的产品有哪些?")
Text2SQL的实现逻辑
Text2SQL的核心是让模型“理解”用户意图并匹配数据库结构,具体可分为四个步骤,且每个步骤都离不开提示工程的引导:
-
输入解析:精准提取关键信息
用户的自然语言提问往往包含模糊表述,需要通过提示引导模型提取核心实体——包括涉及的表名、字段、查询条件等。
例如:用户问“统计2024年销售额超过100万的产品”,模型需提取出“销售额(sales字段)”“产品(product表)”“时间(year=2024)”“条件(>1,000,000)”。 -
Schema绑定:关联数据库结构
提示词中必须明确提供数据库Schema(表名、字段、数据类型、表关系等),让模型知道“能用哪些数据”。
例如:可在Prompt中注入:
表orders: id (int), product_id (int), sales (float), date (date)
表products: id (int), name (str), category (str)(注:两表通过product_id关联) -
SQL生成:输出符合语法的查询语句
模型结合解析出的用户意图和Schema,生成符合SQL语法的查询语句。比如针对上述问题,生成的语句可能是:
SELECT p.name, SUM(o.sales) AS total_sales
FROM orders o
JOIN products p ON o.product_id = p.id
WHERE YEAR(o.date) = 2024
GROUP BY p.id
HAVING total_sales > 1000000;
- 结果验证与优化:闭环修正
生成SQL后需执行验证:若执行成功,直接返回结果;若失败(如字段名错误、表关联遗漏),则通过提示工程引导模型优化——比如让模型“检查是否遗漏表关系”“确认字段名与Schema是否一致”,必要时还可追问用户补充信息(如“您说的‘销售额’是否指‘实际到账金额’?”)。

二、Text2API:用自然语言驱动接口调用
什么是Text2API?
Text2API(文本转API调用)是一种将用户用自然语言描述的需求,自动转化为对应应用程序接口(API)调用请求的技术。它让用户无需了解API的技术细节(如端点地址、参数格式),只需用日常语言表达需求,就能触发接口调用。

LangChain的APIChain是实现Text2API的实用工具,它支持将API文档(如OpenAPI/Swagger格式)嵌入提示词,引导大模型生成符合要求的请求参数。更强大的是,它能处理多步骤调用——比如“先查用户ID,再用ID调用订单查询API”这类依赖关系的场景。
以下是一个简单示例:
from langchain.chains import APIChain
from langchain_community.llms import OpenAI
# 初始化大模型
llm = OpenAI(temperature=0)
# 定义API文档(包含端点和参数信息)
api_docs = """
API文档(v1版本):
- 发送邮件:POST /send_email
参数:to(收件人邮箱,字符串), subject(邮件主题,字符串), content(邮件内容,字符串)
- 查询天气:GET /weather
参数:city(城市名称,字符串), date(查询日期,格式YYYY-MM-DD)
"""
# 创建API调用链
chain = APIChain.from_llm_and_api_docs(llm, api_docs, verbose=True)
# 执行调用:用自然语言描述需求
response = chain.run("给Allen发邮件,主题是会议提醒,内容为明天下午2点开会。")
Text2API的实现逻辑
Text2API的核心是让模型“匹配”正确的API并生成合规参数,具体步骤如下,每个环节都依赖提示工程的引导:
-
API元数据管理:构建接口“知识库”
需要提前整理API的元数据并嵌入提示词,包括端点地址、请求方法(GET/POST等)、参数(名称、类型、是否必填)、权限要求(如是否需要令牌)、版本信息等。
例如:邮件API元数据可定义为:
POST /send_email(v1)
参数:to (str,必填,收件人邮箱)、subject (str,必填,邮件主题)、content (str,必填,邮件内容)
权限:需用户OAuth2.0令牌 -
意图识别:匹配目标API
通过提示引导模型解析用户指令,判断需要调用哪个API。
例如:用户说“给Allen发邮件,主题是项目开发进度,内容为‘本周完成80%’”,模型需识别出目标是调用“/send_email”接口;若用户说“查下后天上海的天气”,则匹配“/weather”接口。 -
参数填充与校验:确保调用合规
模型从用户指令中提取参数,并根据API文档校验参数的完整性和格式(如邮箱格式是否正确、日期格式是否符合要求)。
例如,针对上述邮件需求,生成的参数可能是:
{
"endpoint": "/send_email",
"method": "POST",
"params": {"to": "allen@company.com", "subject": "项目开发进度", "content": "本周完成80%"}
}
- 执行与反馈:形成闭环
调用API后,需将结果反馈给用户——若成功,返回接口响应(如“邮件已发送”);若失败,返回具体原因(如“收件人邮箱格式错误”“缺少权限令牌”),并通过提示工程引导模型修正(如“请检查收件人邮箱是否正确”)。
对于多步骤API调用,提示工程还需引导模型“规划步骤”——比如用户说“查下明天北京的天气,然后把结果发给经理”,模型需先调用“/weather”获取天气信息,再用结果作为参数调用“/send_email”,这就需要在提示中明确“允许分步骤处理依赖关系”。

无论是Text2SQL还是Text2API,提示工程都是连接自然语言与结构化指令的“翻译官”——通过合理设计Prompt,让大模型既能“听懂”人类语言,又能“输出”机器可执行的指令,最终降低技术使用门槛,提升效率。
那么,如何系统的去学习大模型LLM?
作为一名从业五年的资深大模型算法工程师,我经常会收到一些评论和私信,我是小白,学习大模型该从哪里入手呢?我自学没有方向怎么办?这个地方我不会啊。如果你也有类似的经历,一定要继续看下去!这些问题啊,也不是三言两语啊就能讲明白的。
所以我综合了大模型的所有知识点,给大家带来一套全网最全最细的大模型零基础教程。在做这套教程之前呢,我就曾放空大脑,以一个大模型小白的角度去重新解析它,采用基础知识和实战项目相结合的教学方式,历时3个月,终于完成了这样的课程,让你真正体会到什么是每一秒都在疯狂输出知识点。
由于篇幅有限,⚡️ 朋友们如果有需要全套 《2025全新制作的大模型全套资料》,扫码获取~
为什么要学习大模型?
我国在A大模型领域面临人才短缺,数量与质量均落后于发达国家。2023年,人才缺口已超百万,凸显培养不足。随着AI技术飞速发展,预计到2025年,这一缺口将急剧扩大至400万,严重制约我国AI产业的创新步伐。加强人才培养,优化教育体系,国际合作并进是破解困局、推动AI发展的关键。


👉大模型学习指南+路线汇总👈
我们这套大模型资料呢,会从基础篇、进阶篇和项目实战篇等三大方面来讲解。

👉①.基础篇👈
基础篇里面包括了Python快速入门、AI开发环境搭建及提示词工程,带你学习大模型核心原理、prompt使用技巧、Transformer架构和预训练、SFT、RLHF等一些基础概念,用最易懂的方式带你入门大模型。
👉②.进阶篇👈
接下来是进阶篇,你将掌握RAG、Agent、Langchain、大模型微调和私有化部署,学习如何构建外挂知识库并和自己的企业相结合,学习如何使用langchain框架提高开发效率和代码质量、学习如何选择合适的基座模型并进行数据集的收集预处理以及具体的模型微调等等。
👉③.实战篇👈
实战篇会手把手带着大家练习企业级的落地项目(已脱敏),比如RAG医疗问答系统、Agent智能电商客服系统、数字人项目实战、教育行业智能助教等等,从而帮助大家更好的应对大模型时代的挑战。
👉④.福利篇👈
最后呢,会给大家一个小福利,课程视频中的所有素材,有搭建AI开发环境资料包,还有学习计划表,几十上百G素材、电子书和课件等等,只要你能想到的素材,我这里几乎都有。我已经全部上传到CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
相信我,这套大模型系统教程将会是全网最齐全 最易懂的小白专用课!!
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)