提示词高级阶段学习day3.1什么是结构化 Prompt ?

news/2024/10/26 10:26:28/

什么是结构化 Prompt ?

结构化的思想很普遍,结构化内容也很普遍,我们日常写作的文章,看到的书籍都在使用标题、子标题、段落、句子等语法结构。结构化 Prompt 的思想通俗点来说就是像写文章一样写 Prompt。

为了阅读、表达的方便,我们日常有各种写作的模板,用来控制内容的组织呈现形式。

例如古代的八股文、现代的简历模板、学生实验报告模板、论文模板等等模板。

所以结构化编写 Prompt 自然也有各种各样优质的模板帮助你把 Prompt 写的更轻松、性能更好。

所以写结构化 Prompt 可以有各种各样的模板,你可以像用 PPT 模板一样选择或创造自己喜欢的模板

在这之前,虽然也有类似结构化思想,

**但是更多体现在思维上,缺乏在 prompt 上的具体体现。**

例如知名的 CRISPE 框架([3]),CRISPE 分别代表以下含义:

  • CR:Capacity and Role(能力与角色)。你希望 ChatGPT 扮演怎样的角色。

  • I:Insight(洞察力),背景信息和上下文(坦率说来我觉得用 Context 更好)。

  • S:Statement(指令),你希望 ChatGPT 做什么。

  • P:Personality(个性),你希望 ChatGPT 以什么风格或方式回答你。

  • E:Experiment(尝试),要求 ChatGPT 为你提供多个答案。

最终写出来的 Prompt 是这样的:

Act as an expert on software development on the topic of machine learning frameworks, and an expert blog writer. The audience for this blog is technical professionals who are interested in learning about the latest advancements in machine learning. Provide a comprehensive overview of the most popular machine learning frameworks, including their strengths and weaknesses. Include real-life examples and case studies to illustrate how these frameworks have been successfully used in various industries. When responding, use a mix of the writing styles of Andrej Karpathy, Francois Chollet, Jeremy Howard, and Yann LeCun.

这类思维框架只呈现了 Prompt 的内容框架,但没有提供模板化、结构化的 prompt 形式。

而我们所提倡的结构化、模板化 Prompt,写出来是这样的

该示例来自 LangGPT 项目: https://github.com/yzfly/LangGPT/blob/main/README_zh.md

 

# Role: 诗人

## Profile

- Author: YZFly

- Version: 0.1

- Language: 中文

- Description: 诗人是创作诗歌的艺术家,擅长通过诗歌来表达情感、描绘景象、讲述故事,具有丰富的想象力和对文字的独特驾驭能力。诗人创作的作品可以是纪事性的,描述人物或故事,如荷马的史诗;也可以是比喻性的,隐含多种解读的可能,如但丁的《神曲》、歌德的《浮士德》。

### 擅长写现代诗

1. 现代诗形式自由,意涵丰富,意象经营重于修辞运用,是心灵的映现

2. 更加强调自由开放和直率陈述与进行“可感与不可感之间”的沟通。

### 擅长写七言律诗

1. 七言体是古代诗歌体裁

2. 全篇每句七字或以七字句为主的诗体 3. 它起于汉族民间歌谣

### 擅长写五言诗

1. 全篇由五字句构成的诗

2. 能够更灵活细致地抒情和叙事

3. 在音节上,奇偶相配,富于音乐美

## Rules

1. 内容健康,积极向上

2. 七言律诗和五言诗要押韵

## Workflow

1. 让用户以 "形式:[], 主题:[]" 的方式指定诗歌形式,主题。

2. 针对用户给定的主题,创作诗歌,包括题目和诗句。

## Initialization 作为角色 <Role>, 严格遵守 <Rules>, 使用默认 <Language> 与用户对话,友好的欢迎用户。然后介绍自己,并告诉用户 <Workflow>。

基于上述 诗人 prompt 例子,说明结构化 prompt 的几个概念:

  • 标识符#, <> 等符号(-, []也是),这两个符号依次标识标题,变量,控制内容层级,用于标识层次结构。

  • 属性词Role, Profile, Initialization 等等,属性词包含语义,是对模块下内容的总结和提示,用于标识语义结构。

日常的文章结构是通过字号大小、颜色、字体等样式来标识的,ChatGPT 接收的输入没有样式,因此借鉴 markdown,yaml 这类标记语言的方法

或者

json 这类数据结构实现 prompt 的结构表达都可以,

例如用标识符 # 标识一级标题,##标识二级标题,以此类推。

尤其是使用 json, yaml 这类成熟的数据结构,对 prompt 进行工程化开发特别友好。

LangGPT 目前选用的是 Markdown 标记语法,

一是因为 ChatGPT 网页版本身就支持 Markdown 格式,

二是希望对非程序员朋友使用更加友好。

程序员朋友推荐使用yaml, json 等进行结构化 prompt 开发。

 

属性词好理解,和学术论文中使用的摘要方法实验结论的段落标题起的作用一样。

 标识符属性词都是可替换的,可以替换为你喜欢的符号和内容。

  

结构化 prompt 直观上和传统的 prompt 方式差异就很大,那么为什么提倡结构化方式编写 Prompt 呢?


http://www.ppmy.cn/news/1542086.html

相关文章

Jmeter实际应用

环境准备 JDK1.8Jmeter 5.6.3 下载地址Jmeter 插件 下载地址 放到lib/ext下 常用命令 # 启动 sh jmeter# 集群模式下启动节点&#xff0c;不启动用不了集群 sh jmeter-server#生成ssl需要的证书, 这里会要求输入个密码&#xff0c;是要在jmeter中用的 keytool -import -ali…

使用 Cursor 和 Devbox 快速开发基于 Rust 的 WASM 智能合约

本教程以一个智能合约&#xff08;使用 NEAR 的一个官方 Fungible Tokens 来实现&#xff09;的例子来介绍一下 Devbox 的强大功能&#xff0c;轻松构建环境&#xff0c;轻松发布。 NEAR 是一个去中心化的应用平台&#xff0c;使用了分片技术的区块链。 免责申明&#xff1a;本…

【C++指南】类和对象(四):类的默认成员函数——全面剖析 : 拷贝构造函数

引言 拷贝构造函数是C中一个重要的特性&#xff0c;它允许一个对象通过另一个已创建好的同类型对象来初始化。 了解拷贝构造函数的概念、作用、特点、规则、默认行为以及如何自定义实现&#xff0c;对于编写健壮和高效的C程序至关重要。 C类和对象系列文章&#xff0c;可点击下…

Go操作Redis

在现代的软件开发中&#xff0c;Redis 已经成为了一个不可或缺的组成部分&#xff0c;它以其卓越的性能和灵活性被广泛应用于缓存、消息队列、会话存储等多种场景。Go 语言&#xff0c;以其并发能力强和运行效率高的特点&#xff0c;成为了后端开发的首选语言之一。当 Go 遇上 …

闯关leetcode——203. Remove Linked List Elements

大纲 题目地址内容 解题代码地址 题目 地址 https://leetcode.com/problems/remove-linked-list-elements/description/ 内容 Given the head of a linked list and an integer val, remove all the nodes of the linked list that has Node.val val, and return the new …

基于GA遗传优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 matlab2022a 3.部分核心程序 &#xff08;完整版代码包含详细中文注释和操作步骤视频&#xff09…

webpack解决使用window.open方法打开history路由页面提示404的问题

问题: 一般情况下应该使用history.push(/ssh)打开history路由页面 但项目中使用window.open(/ssh),然后使用new WebSocket进行通信 开发环境下启动项目后,/ssh页面打开却显示cannot get /ssh,控制台提示404 排查问题: 在React开发环境中使用 window.open 打开路由页面时&a…

论文速读:YOLO-G,用于跨域目标检测的改进YOLO(Plos One 2023)

原文标题&#xff1a;YOLO-G: Improved YOLO for cross-domain object detection 中文标题&#xff1a;YOLO-G&#xff1a;用于跨域目标检测的改进YOLO 论文地址&#xff1a; 百度网盘 请输入提取码 提取码&#xff1a;z8h7 代码地址&#xff1a; GitHub - airy975924806/yolo…