AGI大模型(5):提示词工程

news2025/3/14 23:55:38

1 什么是提示词工程(Prompt)

所谓的提示词其实指的就是提供给模型的⼀个⽂本⽚段,⽤于指导模型⽣成特定的输出或回答。提示词的⽬的是为模型提供⼀个任务的上下⽂,以便模型能够更准确地理解⽤户的意图,并⽣成相关的回应。

2 什么是提示⼯程(Prompt Engineering)

所谓的提示⼯程也可以被称为「指令⼯程」,提示⼯程的核⼼思想是,通过精⼼设计的提示,可以显著提⾼模型的性能和输出质量。

貌似简单,但其实意义⾮凡。(提问的智慧)

  • Prompt 是 AGI 时代的「编程语⾔」
  • Prompt 工程是 AGI时代的「软件工程]
  • 提示⼯程师是 AGI 时代的「程序员」

如果要学好提示工程,那么其实就是要知道如何对咱们的Prompt进行调优,与⼤模型进⾏更好的交互。

3 获得更好结果的6中策略(ChatGPT)

  • write clear instructions 编写清晰的说明
  • provide reference text 提供参考⽂本
  • split complex tasks into simpler subtasks 将复杂任务拆分为更简单的⼦任务
  • give the model time to think 给模型时间思考
  • use external tools 使⽤外部⼯具
  • test changes systematically 系统地测试更改

4 提示语策略差异

4.1 推理模型

  • 提示语更简洁,只需明确任务⽬标和 需求(因其已内化推理逻辑)
  • ⽆需逐步指导,模型⾃动⽣成结构化 推理过程(若强⾏拆解步骤,反⽽可能限制其能⼒)

4.2 通用模型

  • 需显式引导推理步骤(如通过CoT提示),否则可能跳过关键逻辑
  • 依赖提示语补偿能⼒短板(如要求分步思考、提供示例)

5 关键原则

5.1 模型选择

  • 优先根据任务类型⽽⾮模型热度选择(如数学任务选推理模型,创意任务选通⽤模型)

5.2 提示语设计

  • 推理模型:简洁指令,聚焦⽬标,信任其内化能⼒。(“要什么直接说”)
  • 通⽤模型:结构化、补偿性引导(“缺什么补什么”)

5.3 避免误区

  • 不要对推理模型使⽤“启发式”提示(如⻆⾊扮演),可能⼲扰其逻辑主线
  • 不要对通⽤模型“过度信任”(如直接询问复杂推理问题,需分步验证结果)

6 任务需求与提示语策略

7 常用技巧

7.1 使⽤ 清晰,明确,避免模糊的词语

在对话中包含详细信息以获得更好的答案

  • 给openai写⾸诗,⽤中⽂
  • 给openai写⼀⾸四句的中⽂诗,模仿李⽩的《望庐⼭瀑布》

7.2 ⻆⾊扮演

给我⼀个减肥的计划 VS 我想让你扮演⼀个专业的健身私⼈教练。 你应该利⽤你的运动科学知识、营养建议和其他相关因素为你的客户定制专业的计划。给我⼀个减肥的计划。

7.3 告诉⽤户的⻆⾊

怎么提⾼英语成绩? VS 我是⼀名幼⼉园的5岁⼩朋友,还不会写字。怎么提⾼英语成绩?

7.4 指定输出的格式

给openai写⼀⾸四句的中⽂诗,模仿李⽩的《望庐⼭瀑布》,输出格式为json

7.5 少样本提示

内容如下:

1. ⽣成⽂本:ChatGPT可以⽣成与给定主题相关的⽂章、新闻、博客、推⽂等等。您可以提供⼀些关键词或主题,然后ChatGPT将为您⽣成相关的⽂本。
2. 语⾔翻译:ChatGPT可以将⼀种语⾔的⽂本翻译成另⼀种语⾔。
3. 问答系统:ChatGPT可以回答您提出的问题,⽆论是事实性的问题、主观性的问题还是开放性的问题。
4. 对话系统:ChatGPT可以进⾏对话,您可以与ChatGPT聊天,让它回答您的问题或就某个话题进⾏讨论。
5. 摘要⽣成:ChatGPT可以从较⻓的⽂本中⽣成摘要,帮助您快速了解⽂章的主要内容。
6. ⽂本分类:ChatGPT可以将⼀些给定的⽂本分类到不同的类别中,例如新闻、体育、科技等等。
7. ⽂本纠错:ChatGPT可以⾃动纠正⽂本中的拼写错误和语法错误,提⾼⽂本的准确性。
请把上⾯7段话各⾃的开头⼏个词,翻译成英⽂,并按序号输出

7.6 给一个样本提示

内容如下:

1. ⽣成⽂本:ChatGPT可以⽣成与给定主题相关的⽂章、新闻、博客、推⽂等等。您可以提供⼀些关键词或主题,然后ChatGPT将为您⽣成相关的⽂本。
2. 语⾔翻译:ChatGPT可以将⼀种语⾔的⽂本翻译成另⼀种语⾔。
3. 问答系统:ChatGPT可以回答您提出的问题,⽆论是事实性的问题、主观性的问题还是开放性的问题。
4. 对话系统:ChatGPT可以进⾏对话,您可以与ChatGPT聊天,让它回答您的问题或就某个话题进⾏讨论。
5. 摘要⽣成:ChatGPT可以从较⻓的⽂本中⽣成摘要,帮助您快速了解⽂章的主要内容。
6. ⽂本分类:ChatGPT可以将⼀些给定的⽂本分类到不同的类别中,例如新闻、体育、科技等等。
7. ⽂本纠错:ChatGPT可以⾃动纠正⽂本中的拼写错误和语法错误,提⾼⽂本的准确性。
请把上⾯7段话各⾃的开头⼏个词,翻译成英⽂,并按序号输出。例如,第1段话的开头是"⽣成⽂本",那么就输出"generate text".

8 Prompt调优

找到好的 prompt 是个持续迭代的过程,需要不断调优。

⾼质量 prompt 核⼼要点:具体、丰富、少歧义

  • 简洁:尽量⽤最简短的⽅式表达问题。过于冗⻓的问题可能包含多余的信息,导致模型理解错误或答⾮所问。
  • 具体:避免抽象的问题,确保问题是具体的,不含糊。详细上下⽂:如果问题涉及特定上下⽂或背景信息,要提供⾜够的详情以帮助
  • 模型理解,即使是直接提问也不例外。
  • 避免歧义:如果⼀个词或短语可能有多重含义,要么明确其含义,要么重新表述以消除歧义。
  • 逻辑清晰:问题应逻辑连贯,避免出现逻辑上的混淆或⽭盾,这样才能促使模型提供有意义的回答。

希望你扮演⼀个写作助⼿,以“xxxxx”为主题,其中需包含以下⼏个要素:
1. 引⼈⼊胜的开头:开头是吸引读者的第⼀步,⼀段好的开头能引发读者的好奇⼼并促使他们继续阅读。
2. 提问引出主题:明确且有深度的问题能够有效地导向主题,引导读者思考。
3. 观点与案例结合:多个实际的案例与相关的数据能够为抽象观点提供直观的证据,使读者更易理解和接受。
4. 社会现象分析:关联到实际社会现象,可以提⾼⽂案的实际意义,使其更具吸引⼒。
5. 总结与升华:对全⽂的总结和升华可以强化主题,帮助读者理解和记住主要内容。
6. ⾦句收尾:有⼒的结束可以留给读者深刻的印象,提⾼⽂案的影响⼒。
7. 带有脱⼝秀趣味的开放问题:留下⼀个开放性问题,可以让读者后续继续思考。

9 Prompt 的典型构成

  • ⻆⾊:给 AI 定义⼀个最匹配任务的⻆⾊,⽐如:「你是⼀位软件⼯程师」「你是⼀位⼩学⽼师」
  • 指示:对任务进⾏描述
  • 上下⽂:给出与任务相关的其它背景信息(尤其在多轮交互中)
  • 例⼦:必要时给出举例,学术中称为 one-shot learning, few-shot learning或 in-context learning;实践证明其对输出正确性有帮助
  • 输⼊:任务的输⼊信息;在提示词中明确的标识出输⼊
  • 输出:输出的格式描述,以便后继模块⾃动解析模型的输出结果,⽐如(JSON、XML)

# ⻆⾊:你是⼀位精通简体中⽂的专业翻译
曾参与《纽约时报》和《经济学⼈》中⽂版的翻译⼯作,因此对于新闻和时事⽂章的翻译有深⼊的理解。我希望你能帮我将以下英⽂新闻段落翻译成中⽂,⻛格与上述杂志的中⽂版相似。
# 规则:
- 翻译时要准确传达新闻事实和背景。
- 保留特定的英⽂术语或名字,并在其前后加上空格,例如:"中 UN ⽂"。
- 分成两次翻译,并且打印每⼀次结果:
1. 根据新闻内容直译,不要遗漏任何信息
2. 根据第⼀次直译的结果重新意译,遵守原意的前提下让内容更通俗易懂,符合中⽂表达习惯
# 初始化
本条消息只需要回复OK,接下来的消息我将会给你发送完整内容,收到后请按照上⾯的规则打印两次翻译结果。

10 用代码完成提示工程

代码如下:

from openai import OpenAI
import os
from dotenv import load_dotenv # pip install python-dotenv
load_dotenv()
# 代理 你们不需要 直接去掉
# os.environ["http_proxy"] = "http://127.0.0.1:7897"
# os.environ["https_proxy"] = "http://127.0.0.1:7897"
client = OpenAI()
"""直接写提示词"""
# prompt = '输出⼀个九九乘法⼝诀表'
prompt = '请使⽤python语⾔ 只能利⽤for循环不能使⽤其他的语法 输出⼀个九九乘法⼝诀表并写好相应的注释'
"""对任务进⾏描述"""
instruction = """
你的任务是识别⽤户输⼊的的信息
提取出对应的时间(time),地点(Locations)、⼈物(character)
"""
"""输出"""
output = """
并以JSON格式输出
"""
# input_text = """在北京,⼩明和⼩红在下午两点钟相约去公园散步。"""
# input_text = """在本周末,我将和我的同事王五⼀起去海洋公园玩耍。"""
input_text = """今天晚上 我会和我的闺蜜⼩美⼀起去酒馆喝酒"""
"""例⼦"""
# examples = """
# 在北京,⼩明和⼩红在下午两点钟相约去公园散步。:{"Locations": "北京","character": ["⼩明", "⼩红"],"time": "下午两点钟"}
# """
examples = """
在本周末,我将和我的同事王五⼀起去海洋公园玩耍。:{"时间": "本周末","地点": "海洋公园","⼈物": ["我", "我的同事王五"]}
"""
prompt = f"""{instruction}

{output}
{examples}
⽤户输⼊:
{input_text}
"""
print(prompt)
def get_completion(prompt, model="gpt-3.5-turbo"):
 messages = [{"role": "user", "content": prompt}]
 response = client.chat.completions.create(
 model=model,
 messages=messages,
 temperature=0, # 模型输出的随机性,0 表示随机性最⼩
 )
 return response.choices[0].message.content
print(get_completion(prompt))

新建.env文件

OPENAI_API_KEY="你的key"
OPENAI_BASE_URL="你的openaiUrl"

结果如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2315139.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[LeetCode热门100题]|137,260,268,面试17.19

1、137 只出现一次数字|| 1、题目描述 137 只出现一次数字||https://leetcode.cn/problems/single-number-ii/description/ 给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。 你…

Android子线程更新View的方法原理

对于所有的Android开发者来说,“View的更新必须在UI线程中进行”是一项最基本常识。 如果不在UI线程中更新View,系统会抛出CalledFromWrongThreadException异常。那么有没有什么办法可以不在UI线程中更新View?答案当然是有的! 一…

Kafka常用指令(详细)

Kafka常用指令(详细) 启停命令 前台启动 前台启动命令 ./bin/kafka-server-start.sh config/server.properties 后台启动方式1 后台启动命令加上参数-daemon,窗口关闭之后kafka后台程序继续运行 ./bin/kafka-server-start.sh -daemon co…

2025移动端软件供应链安全开源治理方案最佳实践

2025年3月13日,由中国软件评测中心、CAPPVD漏洞库联合主办的“第六期移动互联网APP产品安全漏洞技术沙龙”在海口成功召开。悬镜安全基于移动端数字供应链安全开源治理方案荣获中国软件评测中心“2024移动互联网APP产品安全漏洞治理”优秀案例,并获颁证书…

《C#上位机开发从门外到门内》2-3:SPI总线协议详解及应用实践

文章目录 一、引言二、SPI总线协议的基本原理三、SPI通信模式详解 —— CPOL与CPHA3.1 时钟极性(CPOL)3.2 时钟相位(CPHA)3.3 四种SPI模式 四、主从设备通信机制4.1 通信流程概述4.2 数据帧结构与传输细节4.3 主设备与从设备的协同…

vscode出现:No module named ‘requests‘ 问题的解决方法

问题: ① No module named requests ② pip install requests:显示已经安装成功 运行失败原因: 我的失败原因是因为:我的python环境有两个,电脑C盘默认一个、pycharm下载后在它的路径下有一个。而vscode所运行的环境…

【openwebui 搭建本地知识库(RAG搭建本地知识库)】

安装准备 openwebui 这个本地安装之前写过使用python安装。也可以直接用docker 命令 docker run --rm -d \-p 3080:8080 \-p 3081:8081 \-e WEBUI_AUTHtrue \-e DEFAULT_LOCALEcn \-e GLOBAL_LOG_LEVEL"INFO" \-e AIOHTTP_CLIENT_TIMEOUT100 \--privilegedtrue \-…

雷池WAF 处理 HTTP 请求的流程

项目介绍 SafeLine,中文名 "雷池",是一款简单好用, 效果突出的 Web 应用防火墙(WAF),可以保护 Web 服务不受黑客攻击。 雷池通过过滤和监控 Web 应用与互联网之间的 HTTP 流量来保护 Web 服务。可以保护 Web 服务免受 SQL 注入、…

JAVA-Thread类实现多线程

引言: 本章博客涉及进程线程内容,如果不了解的可以看:什么是进程线程-CSDN博客 线程是操作系统的概念,操作系统提供的API供程序员使用操作。但是不同的操作系统(Winodws、Linux、Unix……差别很大),但是做为JAVA程序员就不需要担心…

【算法】DFS、BFS、拓扑排序

⭐️个人主页:小羊 ⭐️所属专栏:算法 很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~ 目录 持续更新中...1、DFS2、BFSN 叉树的层序遍历二叉树的锯齿形层序遍历二叉树最大宽度 3、多源BFS腐烂的苹果 4、拓扑排序 持续更新中…

MySQL中 IN 到底走不走索引?

文章目录 前言数据库表结构查询sqlEXPLAIN介绍EXPLAIN 的输出每列解释 强制走索引查询时添加条件(复合索引字段)查询小时查询分钟 总结 前言 在 MySQL 中,IN 语句是否能够利用索引取决于多个因素,包括但不限于查询的具体形式、表的统计信息、索引的选择…

centos没有ll

vi /etc/bashrc alias ll‘ls -l’ source /etc/bashrc

腾讯云低代码开发应用

创建客户端应用 如上所示,登录腾讯云微搭低代码业务控制台,开始搭建企业官网应用 如上所示,在腾讯云微搭低代码业务控制台中,开始创建企业官网应用 如上所示,在腾讯云微搭低代码业务控制台中,开始编辑企业官…

深度学习项目--基于DenseNet网络的“乳腺癌图像识别”,准确率90%+,pytorch复现

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 前言 如果说最经典的神经网络,ResNet肯定是一个,从ResNet发布后,很多人做了修改,denseNet网络无疑是最成功的…

【Linux 指北】常用 Linux 指令汇总

第一章、常用基本指令 # 注意: # #表示管理员 # $表示普通用户 [rootlocalhost Practice]# 说明此处表示管理员01. ls 指令 语法: ls [选项][目录或文件] 功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件&#xf…

docker 搭建alpine下nginx1.26/mysql8.0/php7.4环境

docker 搭建alpine下nginx1.26/mysql8.0/php7.4环境 docker-compose.yml services:mysql-8.0:container_name: mysql-8.0image: mysql:8.0restart: always#ports:#- "3306:3306"volumes:- ./etc/mysql/conf.d/mysql.cnf:/etc/mysql/conf.d/mysql.cnf:ro- ./var/log…

Android7上移植I2C-tools

一,下载源码 cd hardware/libhardware/tests git clone https://git.kernel.org/pub/scm/utils/i2c-tools/i2c-tools.git 二, 在 i2c-tools 目录添加 Android.mk 编译文件 LOCAL_PATH: $(call my-dir)################### i2c-tools ###############…

Centos 7 修改语言和输入源为中文+修改终端快捷键复制为Ctrl+C、粘贴为Ctrl+V

目录 修改语言和输入源为中文 1、设置 2、Region & Language(区域和语言) 3、Add an Input Source(添加输入源) 4、修改语言为中文 5、Restart(重启) 6、Log Out (注销) …

DeepSeek-进阶版部署(Linux+GPU)

前面几个小节讲解的Win和Linux部署DeepSeek的比较简单的方法,而且采用的模型也是最小的,作为测试体验使用是没问题的。如果要在生产环境使用还是需要用到GPU来实现,下面我将以有一台带上GPU显卡的Linux机器来部署DeepSeek。这里还只是先体验单…

Python——计算机网络

一.ip 1.ip的定义 IP是“Internet Protocol”的缩写,即“互联网协议”。它是用于计算机网络通信的基础协议之一,属于TCP/IP协议族中的网络层协议。IP协议的主要功能是负责将数据包从源主机传输到目标主机,并确保数据能够在复杂的网络环境中正…