提示词工程

48 阅读4分钟

法国大革命爆发的原因

提示词工程

1.糟糕的提示词

3b3e1699703937f8e10ba03cd4a9ee8b.jpg

2.提示词的编写技巧

优秀提示词:定角色,给任务,提要求.

(1). 给大模型定义一个角色

你是一个经验丰富的高中历史老师,擅长生动有趣的讲解复杂的历史事件。

(2).明确核心请求和任务

请向一位高中生解释法国大革命爆发的主要原因

(3).按步骤拆解复杂的任务

请先概述背景,然后分政治,经济,思想三个方面,每一点配一个例子

(4).指定风格与语气

请使用简洁,口语化,充满热情的语气(避免使用过于学术的术语)

(5).明确要求输出格式

请严格按照如下结构输出:...

(6).提供输入输出的示例

可以参考《人类群星闪耀时》的叙事风格,请不要列出冗长的日期列表.

1a67edef636c09b207e715f77d5788f3.jpg

3.提示词的案例

你是一名经验丰富的历史老师,擅长用生动有趣的方式讲述复杂的历史事件。现在,请完成以下任务:

  1. 核心任务:向一位高中生解释法国大革命爆发的主要原因。

  2. 表达要求:语气与风格:使用简洁、口语化、充满课堂热情的语气,避免学术黑话。整体叙事可以借鉴《人类群星闪耀时》中对历史关键时刻的描写手法,富有画面感和戏剧性。 内容禁忌:聚焦于原因分析,不要罗列冗长的日期和事件过程表。

  3. 内容与结构要求:

开头:先用一段话,生动描述革命前法国社会的总体氛围和紧张感(即背景概述)。 主体:分别从政治、经济、思想三个层面阐述直接原因。每个层面提炼2个关键点,并为每个关键点配1个具体、有说 服力的史实例子。 结尾:提供一个帮助学生记忆的妙招。

  1. 输出格式:请严格、完整地按照以下框架组织你的回答:
    【历史现场氛围】
    (在这里写你的背景概述)
    【危机根源解析】

政治层面:

  • 关键点1:... 例子:
  • 关键点2:... 例子:

经济层面:

  • 关键点1:... 例子:
  • 关键点2:... 例子:

思想层面:

  • 关键点1:... 例子:
  • 关键点2:... 例子:

【记忆法宝】
(请提供一个巧妙的比喻、口诀或联想图像,将这三大层面串联起来,方便学生瞬间记忆)

4.提示词的案例二

# 身份
- 你是一个科幻作家,根据用户的要求创建一个太空之都。

# 指令
- 请务必以JSON格式输出,不要加任何markdown样式。

# 示例:
user: 月球的首都是什么?
assistant:
{
    "name": "月华市(Lunaria)",
    "location": "位于月球正面赤道附近的静海基地遗址之上,依托巨大的穹顶与地下网络建成",
    "vibe": "冷冽、高效、革新",
    "economy": "氦-3能源开采、量子通信枢纽、尖端生物圈农业"
}

输出结果:

{
    "name": "硫云城(Sulfura)",
    "location": "悬浮于金星上层大气相对温和的云层之中,由庞大的浮空平台与网状结构连接而成",
    "vibe": "高压、炽热、神秘",
    "economy": "大气资源采集(二氧化碳转化、硫酸处理)、极端环境材料科学、太阳能卫星能源中继"
}

4.提示词的案例三

身份角色

你是一位专业的舆情分析助手,负责将用户对商品的简短评价分类为好评、差评或中评。

指令说明

  • 你的回复只能输出一个词语,不要添加任何额外的格式、标点符号或解释说明。
  • 根据商品评价的情感倾向,你的回复只能是"好评"、"差评"或"中评"这三个词中的一个。

示例

user: 我超级喜欢这款耳机,音质太棒了! assistant: 好评

user: 电池续航还可以,但耳垫感觉有点廉价。 assistant: 中评

user: 客服态度太差了,我再也不会从他们家买东西了。 assistant: 差评

输出结果: 差评 或者中评 或者好评

5.提示词的案例四

  • 基于Model结构化输出

from pydantic import BaseModel

首先,我们定义一个类,用来封装模型要输出的数据:

继承自 BaseModel,这使得该类具有数据验证和序列化的能力


from pydantic import BaseModel
class CapitalInfo(BaseModel):
    name: str
    location: str
    vibe: str
    economy: str
    
agent = create_agent(
    model='deepseek-chat',
    system_prompt="你是一个科幻作家,根据用户的要求创建一个太空之都。",
    response_format=CapitalInfo # 设置结构化输出的格式
)

response = agent.invoke(
    {"messages": [HumanMessage(content="月球的首都是什么?")]}
)

city = response['structured_response']
city 

输出:

CapitalInfo(name='月宫城', location='月球南极-艾特肯盆地边缘', vibe='未来主义与古典东方美学融合,低重力优雅,宁静而高效', economy='氦-3开采与精炼、月球旅游、太空制造、科学研究、地月贸易枢纽')