📝 文章声明 :本笔记基于 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 知道自己是谁吗?知道要干什么吗?知道交付成什么样吗?知道哪些事不能干吗?四个都答"是",这条提示词基本就合格了。
本章要点回顾
- 什么是提示词? ------ 与 AI 沟通的"说明书",你给它的指令越清晰具体,它表现越好。
- 提示词核心要素有哪些? ------ 角色定位、技能描述、约束条件、输出格式。
- Dify 中包含几种提示词? ------ 两种:系统提示词(后台定义角色和规则)+ 用户提示词(前台的具体指令)。
- 标准提示词怎么构成? ------ 结构化写法:角色 + 目标 + 示例 + 格式,效果最佳。