一文搞懂大模型提示工程(Text2SQL、Text2API)

大模型的提示工程(Prompt Engineering) 是通过精心设计输入文本(Prompt),引导大语言模型(LLM)生成符合预期输出的技术。在Text2SQL(自然语言转SQL)和Text2API(自然语言调接口)场景中,提示工程的核心目标是将自然语言问题转化为准确的 SQL 查询和具体的 API 调用参数。

Text2SQL和Text2API的提示工程本质是是将领域知识显式化,通过角色定义和业务知识注入(如数据库Schema、API文档),让模型“理解”自然语言背后的真实意图,并将其转化为可执行的结构化指令。

WTH is Prompt Engineering? - DEV Community

技术交流

在这里插入图片描述

一、Text2SQL

Text2SQL(文本转SQL)是什么?Text2SQL是一种将自然语言描述的查询需求,自动转换为结构化查询语言(SQL)的技术。

Understanding the Ways for Text-to-SQL with LLMs | by Elmo | Generative AI

LangChain提供SQLDatabaseChain,支持将数据库Schema动态注入提示词,实现端到端的SQL生成与执行。LangChain可以自动提取数据库表结构(Schema)作为上下文。支持多轮对话修正SQL语句。

SQL | 🦜️🔗 LangChain

from langchain.utilities import SQLDatabase
from langchain.chains import SQLDatabaseChain
from langchain_community.llms import OpenAI
db = SQLDatabase.from_uri("sqlite:///sales.db")
llm = OpenAI(temperature=0)
chain = SQLDatabaseChain.from_llm(llm, db, verbose=True)
response = chain.run("2024年销售额超过100万的产品是什么?")

如何实现Text2SQL?通过自然语言处理技术进行语义解析(包括实体识别、关系抽取、意图理解),结合预加载的数据库Schema信息,利用大语言模型(LLM)生成符合语法规范的SQL语句。

1. 输入解析:用户提问 → 提取关键实体(表名、字段、条件)。

  • 例:“统计2024年销售额超过100万的产品” → 提取“销售额(sales)”、“产品(product)”、“年份(year=2024)”、“条件(>1,000,000)”。

2. Schema绑定:结合数据库表结构(Schema),明确字段和表关系。

  • 关键:在Prompt中提供Schema,如:
    表orders: id (int), product_id (int), sales (float), date (date)  
    表products: id (int), name (str), category (str)  

3. SQL生成:模型根据Schema和用户意图生成查询语句。

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) = 2023  
GROUP BY p.id  
HAVING total_sales > 1000000;  

4. 结果验证:执行SQL并返回数据,若失败则优化Prompt或追问用户。

No More Text2SQL, It's Now RAG2SQL! | by Angelina Yang | Medium

二、Text2API

Text2API(文本转API调用)是什么?Text2API(文本转API调用) 是一种将自然语言描述的用户需求自动转换为对应用程序接口(API)的调用请求的技术。

Pseudo Function Calling for Gemini API Through Prompt Engineering | by  Kanshi Tanaike | Google Cloud - Community | Medium

LangChain提供APIChain,支持将API文档(如OpenAPI/Swagger)嵌入提示词,引导大模型生成请求参数,可以支持多步骤调用(如先查询用户ID,再调用订单API)。

from langchain.chains import APIChain
from langchain_community.llms import OpenAI
llm = OpenAI(temperature=0)
api_docs = """
API文档:
- 发送邮件:POST /send_email  
  参数:to(收件人), subject(主题), content(内容)  
- 查询天气:GET /weather  
  参数:city(城市), date(日期)  
"""
chain = APIChain.from_llm_and_api_docs(llm, api_docs, verbose=True)
response = chain.run("给Allen发邮件,主题是会议提醒,内容为明天下午2点开会。")

如何实现Text2API?通过自然语言处理技术进行语义解析(含意图识别、实体抽取、上下文理解),结合预加载的API文档信息,利用大语言模型(LLM)生成符合语法规范的API调用请求。

1. API目录管理:维护API文档(端点、参数、权限)。

  • 例:邮件API文档:
    POST /send_email  参数:to (str), subject (str), content (str)  权限:需用户OAuth令牌  
  1. 意图识别:模型解析用户指令,匹配目标API。
  • 例:“给Allen发邮件,主题是项目开发进度,内容为‘本周完成80%’” → 调用 /send_email

3. 参数填充:提取并验证参数(如邮箱、内容)。

{  
  "endpoint": "/send_email",  
  "params": {"to": "zhangsan@company.com", "subject": "项目进度", "content": "本周完成80%"}  
}  

4. 执行与反馈:调用API并返回结果(成功/失败原因)。

NL2SQL技术方案系列(1):NL2API、NL2SQL技术路径选择;LLM选型与Prompt工程技巧,揭秘项目落地优化之道- 汀、人工智能- 博客园

为了构建一个新闻评论舆情热点分析平台,你需要掌握如何结合Python编程语言、HTML5、MySQL数据库以及数据挖掘技术进行数据的自动化抓取、处理和可视化。以下是一些具体步骤和推荐方法: 参考资源链接:[PYTHON驱动的网易新闻舆情热点分析平台](https://wenku.csdn.net/doc/331yccjn09) 首先,使用Python的requests库进行网页数据的抓取。你可以创建一个爬虫脚本,定时从新闻网站抓取新闻内容和用户评论。为了提高效率和灵活性,可以利用BeautifulSoup或lxml库解析HTML数据。 其次,对于数据的清洗和预处理,可以使用pandas库,它提供了强大的数据结构化功能,可以方便地对抓取的数据进行清洗、转换和分析。这一阶段的目的是将非结构化的网页数据转化为结构化的表格数据,便于后续分析。 对于数据分析和热点发现,你需要运用自然语言处理(NLP)技术和机器学习算法。例如,可以使用nltk或spaCy等库进行文本的分词、去除停用词、词性标注等处理。情感分析可以通过训练一个分类器来实现,如使用TextBlob库或构建基于规则的系统。关键词提取和话题聚类可以使用TF-IDF模型或LDA算法进行分析。 数据可视化是舆情分析中不可忽视的一环。可以使用matplotlib、seaborn或Plotly等库来创建图表和图形,直观展示数据和分析结果。例如,使用词云可视化关键词,或者用柱状图、折线图展示不同时间段内的舆情变化。 最后,将处理后的数据存储到MySQL数据库中,使用SQL语句进行高效的数据检索和更新。为了支持大规模数据处理,MySQL数据库应配置合理,并且针对舆情分析的需求优化查询。 在整个过程中,平台的可扩展性和通用性也非常重要,确保能够适应不同的数据源和分析需求。为此,可以设计合理的数据模型和接口,允许其他系统或应用通过API接入。 推荐进一步深入了解《PYTHON驱动的网易新闻舆情热点分析平台》一文,它详细记录了平台设计与实现的全过程,包括具体的技术选型、系统架构、功能实现以及优化策略等,能够为你的平台构建提供宝贵的参考和实践指南。 参考资源链接:[PYTHON驱动的网易新闻舆情热点分析平台](https://wenku.csdn.net/doc/331yccjn09)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值