提示词工程:跟 AI 打交道的手艺

📝 文章声明 :本笔记基于 B 站黑马程序员《零基础玩转 Dify》课程学习整理,融合课程素材与个人理解,由大模型辅助生成,仅作个人学习分享,不作为权威教程。原课程讲解透彻、实操性强,想要完整系统学习,欢迎观看原版课程:《零基础玩转 Dify》
提示词的结构、Dify 里的提示词类型、怎么写出好用的提示词、金融信息抽取的实战案例

先说清楚:提示词是什么?

提示词(Prompt)就是你给 AI 下达的指令,或者向它提出的问题。说白了,就是你和 AI 之间沟通的"说明书"。

这本"说明书"写得怎么样,直接决定 AI 的表现。同一件事,指令含糊,AI 就自由发挥,答非所问;指令清楚具体,AI 就老老实实按你的要求来。

所以提示词是搭智能体的第一步。它给了普通人一个直观的抓手去控制模型的行为------但控制的效果对措辞很敏感,差几个字结果可能差很远,所以才有一套值得学的"编写准则",也就是"提示词工程"这个词的由来。

一、提示词的结构:四个关键要素

一条规范的提示词,通常包含四个部分。少了哪一块,AI 就容易在那一块上"跑偏"。

1. 角色定位------告诉 AI 它是谁

给 AI 安排一个具体的身份,让它进入状态。

  • ✅ 好的写法:"你是一位有 15 年经验的职场 HR,擅长处理敏感的人际关系问题,性格温和、善于共情。"
  • ❌ 差的写法:"你是一个助手,什么都懂一点,随便聊聊。"

规律很简单:角色越具体,回复越专业。 你告诉它它是 HR,它调用的就是"资深 HR 会怎么说话"的那套知识;你只说它是助手,它就只能给你不痛不痒的通用回答。

2. 技能描述------告诉 AI 要做什么

把任务目标说清楚、说具体。

  • ✅ 好的写法:"帮用户生成高情商的职场回复,针对老板批评、同事冲突等场景,给出 3 种不同风格的回复方案。"
  • ❌ 差的写法:"帮用户回答问题。"

"回答问题"四个字等于什么都没说------什么领域的问题?回答成什么样算好?AI 只能猜。

3. 输出格式------告诉 AI 怎么交付

规定回复长什么样,方便你直接使用。

  • ✅ 好的写法:"按以下格式输出:1. 情况分析(50 字);2. 回复建议(3 条,每条 30 字);3. 完整范文(150 字)。"
  • ❌ 差的写法:"随便回复就行。"

格式约束越明确,AI 的输出越"即拿即用",不用你再手动整理。

4. 约束条件------给 AI 划边界

防止它做不该做的事。常见的有两类:

  • 内容约束:避开敏感话题(政治、宗教)、不说冒犯性的话、不编造未经证实的信息;
  • 风格约束:比如"语气诚恳但不卑微、避免过度道歉、保持专业"。

四要素合在一起看个完整例子

一个电商客服助手的提示词:

你是电商平台"小蜜"客服助手。(角色定位)

负责解答尺码、物流、退换货问题。(技能描述)

回复需先给结论,再分点说明,每条不超过 30 字。(输出格式)

禁止回答无关话题,纠纷请转人工客服。(约束条件)

对比一下差版本:"你是客服,回答用户问题,态度好一点。"------这话 AI 看了也不知道该干啥,只会输出一堆场面话。

二、提示词的类型:Dify 里的两种提示词

在 Dify 里搭建应用时,提示词分两类,各管一段:

1. 系统提示词(System Prompt)

写在应用后台的"预设指令"里。它负责定义大模型的角色定位和回复逻辑,持续影响整个会话的响应模式。

用户看不到它,但每一轮对话它都在场"盯着"。相当于给 AI 发了一张长期有效的岗位说明书。

2. 用户提示词(User Prompt)

用户在对话框里直接输入的具体指令或问题,指导模型执行当下这个特定任务。相当于每次办事时提交的"工单"。

拿一个健康咨询助手来感受两者的分工:

  • 系统提示词(开发者写):你是一个心理医生,能够为患者进行心理疾病的诊断。
  • 用户提示词(用户发):医生,我最近很焦虑。

系统提示词定住"我是谁、我按什么规矩办事",用户提示词提出"这一单要办什么事"。在 Dify 中设置提示词的常见做法是:先自己把系统提示词写出来,再借助 AI 帮忙润色优化。

三、提示词怎么写:从"能用"到"好用"

3.1 一个基本原则

结构化提示词(角色 + 目标 + 示例 + 格式)效果最佳。 写提示词不是文学创作,不需要文采,需要的是把话说死:你是谁、干什么、怎么干、干成什么样。

3.2 好提示词 vs 差提示词,差在哪

规范的 Prompt 不规范的 Prompt
角色设定明确 指令模糊(一句"提取数据"打发)
目标具体化 无格式约束,全靠模型自由发挥
格式强约束 零示例示范
带 Few-shot 示例 ------

其中 "Few-shot 示例"值得单独解释一下:就是在提示词里给 AI 看一两个"输入长这样 → 输出长这样"的标准答案,让它照葫芦画瓢。人学新任务要看样例,模型也一样,一个示例往往胜过十句描述。

3.3 实战案例:金融财报信息抽取

场景 :小白用户拿到一份上市公司财报,想快速提取关键数据填进 Excel。

目标:让大模型从一段财报文字中,精准提取「营收」「净利润」「同比增长率」三项数据。

第一次尝试:差提示词
text 复制代码
你是一个数据分析小助手,专注于从金融的财报中提取关键财务数据:

"2023年公司实现营业收入58.62亿元,同比增长12.3%;归属于上市公司股东的
净利润为8.94亿元,同比增长5.7%。公司经营性现金流净额达15.2亿元,研发
投入占比提升至8.5%。"

模型的输出看着挺像回事:

text 复制代码
从提供的2023年财报信息中,可提取的关键财务数据如下:
1. 营业收入:58.62亿元(同比增长:12.3%)
2. 归属于上市公司股东的净利润:8.94亿元(同比增长:5.7%)
3. 经营活动产生的现金流量净额:15.2亿元
4. 研发投入占营业收入比例:8.5%(较上年提升)

但放到实际工作里全是毛病:

问题 后果
输出冗长带解释 没法直接复制进 Excel
多提取了无关数据(现金流、研发投入) 只要三项,得手动删减
格式不统一(带括号说明) 后续自动化处理直接失败
模型"自作主张"加注释 增加人工校验成本

问题不在模型,在指令------你没说清楚"只要什么、不要什么、交付成什么样",它就按自己的理解来。

第二次尝试:好提示词
text 复制代码
你是一个数据分析小助手,专注于从金融的财报中提取关键财务数据,
当提取信息时请严格按以下规则操作:
1. 只提取三项数据:营业收入、净利润、同比增长率
2. 输出格式必须为JSON,字段名:revenue, net_profit, growth_rate
3. 金额单位统一为"亿元",增长率带百分号
4. 不输出任何解释、注释或额外内容

示例:
输入:"2022年营收42.1亿元,净利6.8亿,同比增9.2%"
输出:{"revenue": "42.1", "net_profit": "6.8", "growth_rate": "9.2%"}

请处理以下文本:
"2023年公司实现营业收入58.62亿元,同比增长12.3%;归属于上市公司股东
的净利润为8.94亿元,同比增长5.7%。公司经营性现金流净额达15.2亿元,
研发投入占比提升至8.5%。"

这次的输出:

json 复制代码
{"revenue": "58.62", "net_profit": "8.94", "growth_rate": "12.3%"}

干净利落,三项数据、标准 JSON、直接可用------粘进 Excel 或接到下游程序里都不用再加工。

拆开看这个好提示词,正好对应前面讲的结构:

  • 角色定位:数据分析小助手;
  • 技能描述:从财报中提取关键财务数据,只取三项;
  • 输出格式:强制 JSON、固定字段名、统一单位;
  • 约束条件:不许输出任何多余内容;
  • Few-shot 示例:给了一组输入→输出的标准答案。
这个案例的启示

差提示词和好提示词之间,隔的不是"文笔",而是四样东西:角色设定、目标具体化、格式强约束、示例示范。写提示词前先问自己四个问题------AI 知道自己是谁吗?知道要干什么吗?知道交付成什么样吗?知道哪些事不能干吗?四个都答"是",这条提示词基本就合格了。

本章要点回顾

  1. 什么是提示词? ------ 与 AI 沟通的"说明书",你给它的指令越清晰具体,它表现越好。
  2. 提示词核心要素有哪些? ------ 角色定位、技能描述、约束条件、输出格式。
  3. Dify 中包含几种提示词? ------ 两种:系统提示词(后台定义角色和规则)+ 用户提示词(前台的具体指令)。
  4. 标准提示词怎么构成? ------ 结构化写法:角色 + 目标 + 示例 + 格式,效果最佳。
相关推荐
无所谓จุ๊บ1 小时前
02_折扣机制与选型建议
1024程序员节
程序猿乐锅1 小时前
Python 面向对象案例:学生成绩管理系统
1024程序员节
Tangyuewei1 小时前
AI 编程后,越来越不会码了
人工智能·ai编程
slacker-kian1 小时前
[工程]:智能招聘--一个可组装的人才智能推荐系统
ai·ai编程·向量数据库·1024程序员节·相似性搜索·人力推荐系统
热心网友俣先生1 小时前
2026年MathorCup大数据竞赛-B题数据集分享
数学建模·1024程序员节
老王IT1 小时前
Rust基础语法介绍
1024程序员节
larance1 小时前
[机器学习40讲]32 - 从有限到无限:高斯过程
1024程序员节
云上先途1 小时前
开发专属 AI 工具,数据安全和隐私风险怎么规避?
大数据·人工智能·深度学习
泡海椒1 小时前
JQuick-SQL NoSQL 数据接入:先标准化文档记录,再统一 SQL 查询
1024程序员节