什么是提示技术?
提示技术是实现提示工程目标的具体技术手段,是提示工程中的“工具库”。
什么又是提示工程?
提示工程是指通过设计、优化和迭代输入到大语言模型(LLM)的提示(Prompt),系统性提升模型输出质量(如相关性、准确性、可控性)的实践领域。它是一个覆盖全流程的方法论,包括:
- 明确目标任务(如生成教学内容、问答、翻译);
- 设计提示结构(如指令、上下文、示例);
- 选择模型与参数(如温度、top_p);
- 验证与迭代(根据输出调整提示)。
其核心是“通过工程化方法控制大语言模型(LLM)的行为”。
概念
方向性刺激提示(Directional Stimulus Prompting, DSP),是一种通过在提示中添加特定线索或约束来精确引导大语言模型生成内容的技术。
方向性刺激提示,主要解决传统提示的三大局限性:模糊性、低相关性、不可控性。
概念图解
应用场景
在了解应用场景之前,我们先理解好:方向性刺激提示(Directional Stimulus Prompting, DSP)是通过嵌入特定线索或约束引导大语言模型(LLM)生成目标导向的输出,其应用场景广泛且具有领域适应性。
方向性刺激提示的核心价值在于通过细粒度控制平衡生成自由度与准确性,尤其适合需高合规性或专业性的垂直领域。
- 医疗报告生成;(刺激:包含CT影像特征描述,按SOAP格式输出)
- 教育问答系统;(用初中生能理解的例子解释光合作用)
- 代码生成;(Python函数需包含类型注解和PEP8规范)
- 跨领域通用场景;(如通过提示嵌入“避免性别偏见”,“禁用敏感词”等约束,减少模型生成有害内容)
- ……
案例实操
使用工具:扣子
实现方式:扣子工作流
完整工作流如下:
工作流节点配置信息:
- 开始节点:
- 教学内容生成节点:
- 结束节点:
测试输入数据:
{
"topic": "勾股定理",
"grade_level": "初中二年级",
"key_concepts": ["直角三角形", "a²+b²=c²", "实际应用"],
"teaching_method": "问题导向"
}
运行结果如下:
大家若有编程基础的话,可以参考下面的代码案例来实现与体验不同场景下使用方向性刺激提示。
代码实现方向性刺激提示
技术栈:Python;LangChain
代码引用包导入:
pip install langchain_community==0.3.26;
pip install langchain_core==0.3.66;
具体代码:
import os
from typing import List, Dict
from dotenv import load_dotenv
from langchain_community.chat_models import ChatZhipuAI
from langchain_core.prompts import ChatPromptTemplate
# 加载环境变量
load_dotenv()
# 1. 初始化教育专用模型(低temperature保证准确性)
edu_llm = ChatZhipuAI(
model="glm-4",
temperature=0.3,
api_key=os.getenv("ZHIPUAI_API_KEY") # 替换为实际API密钥
)
# 2. 教育领域DSP模板设计
def generate_teaching_prompt(
topic: str,
grade_level: str,
key_concepts: List[str],
teaching_method: str = "探究式",
output_format: str = "Markdown"
) -> Dict:
"""生成带方向性刺激的教学提示词"""
dsp_prompt = ChatPromptTemplate.from_messages([
("system", "你是一名经验丰富的{grade_level}教师,请根据要求生成教学内容:"),
("human", """
主题:{topic}
教学要求:
1. 必须涵盖核心概念:{concepts}
2. 采用{method}教学法(如:提问引导/生活案例)
3. 包含{grade_level}学生易错点分析
4. 输出格式:{format}
补充刺激:
- 使用{grade_level}课标术语(如:人教版数学七年级上册)
- 添加1个课堂互动问题
""")
])
return {
"prompt": dsp_prompt,
"inputs": {
"topic": topic,
"grade_level": grade_level,
"concepts": ", ".join(key_concepts),
"method": teaching_method,
"format": output_format
}
}
# 3. 生成教学案例:勾股定理讲解
teaching_config = generate_teaching_prompt(
topic="勾股定理",
grade_level="初中二年级",
key_concepts=["直角三角形", "a²+b²=c²", "实际应用"],
teaching_method="问题导向"
)
# 4. 执行生成
print("正在生成教学内容...")
chain = teaching_config["prompt"] | edu_llm
response = chain.invoke(teaching_config["inputs"])
print("生成的教学内容:\n" + response.content)
总结与思考
方向性刺激提示技术,更考验使用者对任务的理解程度,以及任务涉及领域的熟悉程度,还有就是在实践的过程中,对不同LLM的理解程度等,是一项极具理论与实践结合的技术。
那么,能不能让LLM自己来实现呢,让它自己刺激自己,就像使用自动提示工程师技术一样?
先对比分析一下它们的区别:
维度 | 方向性刺激提示(DSP) | 自动提示工程师(APE) |
核心思想 | 通过添加特定方向性线索(关键词、约束条件)引导模型生成精准、结构化的内容。 | 利用LLM自动生成和优化指令,减少人工设计依赖,提升任务性能。 |
目标 | 提高模型输出的相关性、准确性和一致性,适用于高要求的场景(如法律、数据分析)。 | 通过自动化生成指令池并优化选择,最大化任务表现(如翻译、分类、推理)。 |
是否动态调整提示 | 是,通过约束条件和分步骤指令动态引导输出。 | 是,通过迭代生成和选择指令实现动态优化。 |
是否依赖人工设计 | 否,但需人工定义方向性线索(如关键词、格式要求)。 | 否,完全由LLM自动生成和优化指令。 |
资源消耗 | 中等(依赖方向性线索设计和约束条件) | 高(需生成大量指令并评估性能) |
优势 | - 输出高度聚焦且符合需求 | - 完全自动化生成指令 |
挑战 | - 需精确设计方向性线索 | - 依赖高质量训练数据 |
是否支持个性化定制 | 是,通过调整方向性线索适配不同需求(如受众、风格)。 | 是,通过优化指令池适配不同任务(如翻译语言、分类标签)。 |
我认为可以的。通过将DSP的“方向性线索”转化为APE的指令生成目标,并利用APE的自动生成和优化能力,即可实现方向性刺激提示。
但不建议,两个技术的作用本质不一样,不同的任务采用合适的提示技术就好。DSP 适合结构化、高要求场景,APE 适合自动化、多任务场景,两者可互补提升AI应用整体效果。
好了,到此。
提示技术系列,接下来分享:自动推理并使用工具(ART);程序辅助语言模型(PAL)等等
为了方便大家学习,这里给出专栏链接:https://blog.csdn.net/quf2zy/category_12995183.html
欢迎大家一起来学习与交流……