【大模型预备4】Prompt 工程入门

结构化提示词设计实战(CRISPE框架+分类任务落地案例)

一、Prompt工程基础概念

1.1 定义

Prompt Engineering(提示词工程),是通过精心设计、迭代优化输入给大模型的文本指令,约束大语言模型的思考逻辑、输出内容、排版格式、语气风格,从而精准完成业务需求的一套方法论。

大模型不存在固有意志,用户输入的提示词就是模型执行任务的唯一依据;同一需求,提示词撰写方式不同,输出准确率、规范性、可用性差距巨大。

1.2 学习Prompt工程的价值

  1. 低成本优化效果:无需对大模型进行微调训练,仅依靠文字编排即可显著提升7B、8B等轻量化本地开源模型的听话能力;
  2. 便于程序对接:强制固定输出结构,方便Python等后端代码解析、提取数据,实现AI能力自动化落地;
  3. 规避模型通病:有效解决大模型幻觉、答非所问、随意闲聊、逻辑跑偏、内容冗长杂乱等问题;
  4. 模板可复用:标准化提示词框架能够套用在文本分类、数据抽取、文案创作、角色扮演、AI问答等几乎所有大模型场景。

1.3 主流适用场景

文本规则分类、结构化信息提取、总结润色、角色扮演对话、AI智能判定、报告生成等落地场景。

1.4 LLM 基础应用模块(Agent 的前置基础)

本模块不属于智能 Agent,属于大模型结构化规则推理模块 ,是搭建生活类 AI Agent 的核心前置能力:负责标准化行为识别、属性判定、数值增减,为后续高阶 Agent 的自主规划、自我复盘提供底层数据支撑。

  1. 当前代码:不是 Agent,是 LLM 规则推理分类模块
  2. 技术定位:Prompt 工程落地 + 结构化输出解析 + 工程容错
  3. 项目地位:LifeCraft AI Agent 的底层核心前置模块

二、Prompt工程通用编写原则与常用技巧

2.1 三大基础编写原则

  1. 角色前置:开篇为模型设定专属身份与岗位职责,划定能力边界,避免模型自由发散;
  2. 规则详尽:完整罗列业务判定标准、场景边界、例外情况,不要让模型自主揣测需求;
  3. 格式锁定:硬性规定返回内容结构,拒绝无限制自由文本输出。

2.2 高频实用技巧

  1. Few-Shot 少样本学习:给模型提供多组「输入内容+标准答案」成对案例,模仿输出逻辑,对7B小模型提升效果最显著;
  2. 零样本提示:不提供参考案例,仅依靠文字规则下发指令,适合极简简单任务;
  3. 负向约束:明确写明禁止行为(禁止写汉字、禁止添加解释、禁止换行),剔除无效冗余内容;
  4. 分层结构化排版:利用分段、模块标题拆分提示词,层级清晰,模型更容易阅读理解规则。

2.3 万能结构化框架:CRISPE(本次实战核心)

新手入门最友好、通用性最强的提示词撰写模板,分为6个固定模块,按顺序填充内容即可产出规范提示词:

缩写 英文全称 模块作用
C Capacity 能力设定:赋予模型专属身份,说明具备的专业能力
R Role 岗位职责:限定本次任务唯一工作,剔除无关操作
I Insight 业务背景与完整规则:提示词核心主体,罗列所有判定细则、场景边界
S Statement 核心指令:一句话交代最终需要完成的任务
P Personality 输出约束:规定返回格式、字符要求、语气,锁死输出样式
E Examples 少样本案例:输入+输出成对示例,强化模型模仿能力

三、实战案例:RPG生活养成系统 行为属性双向判定任务

3.1 项目需求背景

自研 LifeCraft 游戏化个人打卡工具,用户记录日常行为,本地大模型自动完成两项工作:

  1. 将行为匹配五大RPG角色属性;
  2. 区分正向增益行为(属性增加)、负面损耗行为(属性下降);
    统一输出固定格式文本,由Python代码读取解析,实现人物数值养成闭环。

3.2 前期无规范提示词带来的各类问题

  1. 维度划分混乱:最初设计4大分类边界模糊,休闲娱乐行为无归属,只能强行归入健康类目,数值统计失去意义;
  2. 逻辑不完整:仅支持属性加分,熬夜、精神内耗、整日摆烂等伤身内耗行为无法扣除属性;
  3. 输出不可控:模型随意添加前缀、文字、换行,代码数字转换频繁抛出异常;
  4. 判定准确率低下:开放式文本分类极易出现语义理解跑偏。

3.3 前置准备:梳理完整业务规则(写Prompt必备步骤)

重构5维RPG角色属性体系,无兜底冗余类目,正向、负面行为全覆盖:

编号 属性名称 RPG角色定位 正向行为(属性+) 负面行为(属性-)
1 体魄值 生命值HP 运动、早睡、规律三餐、散步养生 熬夜、睡眠不足、暴饮暴食、过度劳累
2 心智值 脑力蓝量MP 读书、听课、钻研技术、观看科普内容 无脑刷短视频、精神内耗、思虑过度
3 行动力 耐力值 上班工作、做家务、记账、规划日程 整日拖延摆烂、逃避所有事务
4 人缘值 魅力值 朋友聚餐、线下约会、线上维系亲友 和人吵架、刻意疏远、拒绝社交
5 愉悦值 心情快乐度 追剧、听歌、逛街、休闲放空 心情压抑、烦心事堆积、情绪低落

约定全局标准输出格式:数字,符号

示例:1,+ = 体魄值增加;1,- = 体魄值下降

3.4 套用CRISPE框架编写完整提示词

python 复制代码
import ollama
import re

prompt = """
【C Capacity 身份能力】
你是LifeCraft RPG人生养成游戏专属数值判定官,能够根据用户日常行为,精准判断对应属性以及数值变化方向,严格遵守规则,判定零失误。

【R Role 岗位职责】
仅做属性+增减方向判定,严格按照固定格式输出,不写多余解释、不闲聊、不推演思考过程。

【I Insight 5项属性完整增减规则】
编号对应属性:
1=体魄值(身体健康)
2=心智值(学识脑力)
3=行动力(事务执行力)
4=人缘值(人际魅力)
5=愉悦值(心情快乐度)

正向行为(数值上涨 标记+):
1体魄+:健身运动、早睡休养、规律吃饭、散步养生
2心智+:读书学习、上网课、钻研技能、观看科普纪录片
3行动力+:上班办公、家务打扫、记账办事、规划待办日程
4人缘+:朋友聚餐、线下约会、线上和亲友谈心维系关系
5愉悦+:看娱乐影片、听歌、逛街游玩、发呆休闲放松

负面行为(数值下降 标记-):
1体魄-:熬夜通宵、睡眠不足、暴饮暴食、过度劳累透支身体
2心智-:长时间无脑刷短视频、精神内耗、过度思虑损耗脑力
3行动力-:整日拖延摆烂、逃避所有事务、什么事情都不去做
4人缘-:刻意疏远亲友、与人争吵、拒绝一切社交往来
5愉悦-:心情压抑、遭遇烦心事、人际矛盾带来负面情绪

【S Statement 执行指令】
读懂用户描述的日常行为,匹配对应属性,判定数值是增加还是降低。

【P Personality 强制固定输出格式】
格式必须严格:数字,符号
符号只有两种:+ 或者 -
例子参照:1,+  / 1,-  / 5,+
禁止汉字、换行、标点、多余文字、前缀后缀,只输出这三个字符内容。

【E Examples 参考范例】
行为:晨跑锻炼30分钟 → 1,+
行为:通宵熬夜凌晨三点才睡 → 1,-
行为:研读编程技术书籍 → 2,+
行为:一整天无脑刷短视频消磨时间 → 2,-
行为:居家打扫全屋卫生 → 3,+
行为:整日躺平拖延什么都不干 → 3,-
行为:周末约闺蜜出门聚餐 → 4,+
行为:和朋友吵架刻意断绝来往 → 4,-
行为:闲暇追剧看电影放松 → 5,+
行为:诸事不顺整日心情低落 → 5,-

用户行为:{user_task}
"""

attr_map = {
    1: "体魄值",
    2: "心智值",
    3: "行动力",
    4: "人缘值",
    5: "愉悦值"
}

def parse_result(text):
    # 正则提取 数字 + +/- 符号
    res = re.search(r"([1-5]),([+-])", text)
    if res:
        num = int(res.group(1))
        op = res.group(2)
        return num, op
    # 兜底容错:默认体魄值增加
    return 1, "+"

test_cases = [
    "今晚通宵熬夜没有睡觉",
    "早起慢跑锻炼身体",
    "一整天不停刷短视频",
    "学习AI大模型相关知识",
    "周末在家大扫除洗衣服",
    "这几天摆烂拖延啥活都不干",
    "和好朋友出门逛街吃饭",
    "跟伴侣闹矛盾刻意冷战疏远",
    "睡前听歌追剧放松心情",
    "压力太大整日情绪低落难受"
]

for action in test_cases:
    resp = ollama.generate(
        model="qwen2:7b",
        prompt=prompt.format(user_task=action),
        options={"temperature": 0, "seed": 666}
    )
    raw = resp["response"].strip()
    attr_num, operate = parse_result(raw)
    tip = f"{operate}{attr_map[attr_num]}"
    print(f"行为:{action}  ===> 数值变动:{tip}")

3.5 本地小模型专属调优方案

  1. 关闭生成随机性:推理参数设置 temperature=0,固定随机种子 seed,相同输入每次输出结果完全一致,方便规则调试;
  2. 多次叠加负向约束:反复强调禁止冗余文字、禁止照搬示例前缀,从源头规避格式错乱;
  3. 输出越简短越好:极简字符格式,轻量化模型指令遵循度最高。

3.6 工程落地双层防护体系:提示词层 + 代码层

只依靠提示词无法彻底杜绝模型乱输出,可商用 AI 功能必须搭建双层容错机制:

  1. 上层防护:提示词强约束:依托 CRISPE 结构化框架 + 少样本案例 + 严苛格式限制,最大限度规范模型生成内容;
  2. 下层防护:Python 代码容错解析:利用正则表达式提取有效数字与正负符号,自动过滤所有多余文本,设置兜底默认值,保证程序永不崩溃。

四、整体学习总结

  1. CRISPE 结构化框架是新手学习提示词工程最优起点,无需凭空构思,模块化填充即可写出高质量提示词;
  2. 本地 7B轻量化开源模型做分类判定任务,固定输出格式 + Few-shot 少样本示例缺一不可;
  3. 提示词标准开发流程:梳理业务场景边界 →划分维度规则 → 套用结构化框架编写 Prompt → 锁定输出格式 → 代码增加容错兜底
  4. 工程落地切忌完全信任大模型输出,后端校验、异常捕获是稳定性保障; 一套结构化模板可无限复用在文本分类、信息抽取、规则判定各类 AI任务中。
相关推荐
安逸sgr5 小时前
如何减少 Prompt 引起的幻觉和答非所问?
人工智能·ai·大模型·prompt·agent·智能体
小马9266 小时前
GPT-6 Swarm 架构深度解析:从单体模型到 Agent 集群协同的范式跃迁
gpt·架构·大模型·openai·agent·分布式ai·swarm架构
thesky1234561 天前
27届大模型岗面试准备(十四):多模态大模型 VLM——从视觉编码器到多模态推理的完整链路
人工智能·ai·大模型
aqi001 天前
15天学会AI应用开发(十八)使用LangGraph实现精确记忆功能
人工智能·python·大模型·ai编程·ai应用
小白跃升坊1 天前
WorkBuddy最新动态:V5.3.5上线人机双写,AI办公进入同屏协作时代
大模型
煎饼学大模型1 天前
从 Harness 工程到 Loop 工程落地实践
人工智能·大模型·harness
gsls2008081 天前
大模型供应商API端点兼容协议
大模型·api·协议·兼容
小白跃升坊2 天前
倒反天罡!DeepSeek V4-Flash 正式版悄然上线:130亿激活参数,把自家1.6万亿旗舰「以下克上」
ai·大模型·agent·deepseek·v4
才鲸嵌入式2 天前
JEPA具身智能或自动驾驶路线的公司
人工智能·机器学习·大模型·自动驾驶·具身智能·通用人工智能·jepa