prompt工程策略(一:使用 CO-STAR 框架来搭建 prompt 的结构)

2024-05-15 22:12

本文主要是介绍prompt工程策略(一:使用 CO-STAR 框架来搭建 prompt 的结构),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原文:我是如何赢得GPT-4提示工程大赛冠军的
原文的原文: How I Won Singapore’s GPT-4 Prompt Engineering Competition


为了让 LLM 给出最优响应,为 prompt 设置有效的结构至关重要。CO-STAR 框架是一种可以方便用于设计 prompt 结构模板。该模板考虑了会影响 LLM 响应的有效性和相关性的方方面面,从而有助于得到更优的响应。
在这里插入图片描述

  • C) 上下文(Context):提供任务有关背景信息。这有助于 LLM 理解正在讨论的具体场景,从而确保其响应相关的。
  • O) 目标(Objective):定义你希望 LLM 执行的任务。明晰目标有助于 LLM 将自己响应重点放在完成具体任务上。
  • S) 风格(Style):指定你希望 LLM 使用的写作风格。这可能是一位具体名人的写作风格,也可以是某种职业专家(比如商业分析师或 CEO)的风格。这能引导 LLM 使用符合你需求的方式和词语给出响应。
  • T) 语气(Tone):设定响应的态度。这能确保 LLM 的响应符合所需的情感或情绪上下文,比如正式、幽默、善解人意等。
  • A) 受众(Audience):确定响应的目标受众。针对具体受众(比如领域专家、初学者、孩童)定制 LLM 的响应,确保其在你所需的上下文中是适当的和可被理解的。
  • R) 响应(Response):提供响应格式。这能确保 LLM 输出你的下游任务所需的格式,比如列表JSON专业报告等。对于大多数通过程序化方法将 LLM 响应用于下游任务的 LLM 应用而言,理想的输出格式是 JSON。

CO-STAR 的一个实际应用

假设你是一位社交媒体管理者,你需要帮助草拟一篇 Facebook 帖文,其內容是宣传你公司的新产品。

  • 如果不使用 CO-STAR,那么你可能会使用这样的 prompt:

Write a facebook post to advertise my company’s new product. My company’s name is Alpha and the product is called Beta, a new ultra-fast hairdryer.# 写一篇脸书帖子为我公司的新产品做广告。我公司的名字叫阿尔法,产品叫贝塔,一种新型的超快吹风机。

GPT-4 的输出如下:

Introducing the Revolutionary Beta Hairdryer by Alpha!- Say goodbye to long, tedious hair drying sessions! Alpha is proud to unveil the Beta, our latest innovation in haircare technology.- Ultra-Fast Drying: The Beta is designed to cut your drying time in half, thanks to its advanced, powerful motor. Get ready faster and enjoy more time doing what you love!
Shop Now: [Link to product page]'''
Alpha推出革命性的Beta吹风机!
-告别漫长而乏味的吹风会!阿尔法很荣幸推出Beta,这是我们在护发技术方面的最新创新。
-超快干燥:Beta的设计可将干燥时间缩短一半,这要归功于其先进、强大的电机。更快地做好准备,享受更多的时间做你喜欢的事情!
立即购物:[链接到产品页面]
'''

结果只是泛泛而谈,缺乏具体的细节和有针对性的吸引力,而这些是吸引目标受众所必需的。

  • 使用 CO-STAR 模板

CO-STAR 会提醒你将任务涉及的其它方面也整合进 prompt 之中,具体来说就是上面的简单 prompt 中缺失的 STYLE(风格)、TONE(语气)、AUDIENCE(受众) 方面:

# CONTEXT #
I want to advertise my company’s new product. My company’s name is Alpha and the product is called Beta, which is a new ultra-fast hairdryer.
# OBJECTIVE #
Create a Facebook post for me, which aims to get people to click on the product link to purchase it.
# STYLE #
Follow the writing style of successful companies that advertise similar products, such as Dyson.
# TONE #
Persuasive
# AUDIENCE #
My company’s audience profile on Facebook is typically the older generation. Tailor your post to target what this audience typically looks out for in hair products.
# RESPONSE #
The Facebook post, kept concise yet impactful.'''
#上下文#
我想为我公司的新产品做广告。我公司的名字叫阿尔法,产品叫贝塔,是一种新型的超快吹风机。
#目标#
为我创建一个Facebook帖子,旨在让人们点击产品链接进行购买。
#风格#
遵循成功公司为类似产品做广告的写作风格,比如戴森。
#语气#
有说服力的
#受众#
我公司在Facebook上的受众群通常是老一辈。定制你的帖子,以针对这些受众在头发产品中通常想要的东西。
#响应#
脸书上的帖子简洁而有影响力。
'''

通过使用 CO-STAR,GPT-4 的响应会变得明显更有针对性、效果更好:

Embrace Effortless Elegance with Alpha Beta — The Ultra-Fast Hairdryer for the Wise Generation.
Rediscover the joy of simple, effective hair care with Alpha Beta. Our latest innovation is more than just a hairdryer; it’s a promise of swift, gentle, and reliable hair styling for those who appreciate the finer things in life.
- Easy and Intuitive Use: Say goodbye to complicated gadgets. Alpha Beta is
crafted for comfort and simplicity, perfect for those who value straightforward,
hassle-free technology.
- Time-Saving Technology: We understand your time is precious. That’s why Alpha Beta cuts down drying time significantly, giving you more moments to enjoy life’s pleasures.
Make every day a good hair day with Alpha Beta. Experience the blend of sophistication and simplicity today.
[Your Product Link Here]'''
阿尔法贝塔——智慧一代的超快吹风机,让您轻松享受优雅。
用Alpha Beta重新发现简单有效的头发护理的乐趣。我们的最新创新不仅仅是吹风机;它承诺为那些欣赏生活中美好事物的人提供快速、温和、可靠的发型。
-简单直观的使用:告别复杂的小工具。Alpha Beta是
为舒适和简洁而精心打造,非常适合那些重视直率的人,
无障碍技术。
-节省时间技术:我们理解您的时间是宝贵的。这就是为什么阿尔法贝塔大大缩短了干燥时间,让你有更多的时间享受生活的乐趣。
用阿尔法贝塔让每一天都成为一个好发日。今天,体验精致与简洁的融合。
[此处为您的产品链接]
'''

CO-STAR 框架能引导用户以一种结构化的方式向 LLM 提供有关你的任务所有关键信息,从而确保得到完全符合你的需求的定制化的更优的响应。

这篇关于prompt工程策略(一:使用 CO-STAR 框架来搭建 prompt 的结构)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/993062

相关文章

Linux使用fdisk进行磁盘的相关操作

《Linux使用fdisk进行磁盘的相关操作》fdisk命令是Linux中用于管理磁盘分区的强大文本实用程序,这篇文章主要为大家详细介绍了如何使用fdisk进行磁盘的相关操作,需要的可以了解下... 目录简介基本语法示例用法列出所有分区查看指定磁盘的区分管理指定的磁盘进入交互式模式创建一个新的分区删除一个存

C#使用HttpClient进行Post请求出现超时问题的解决及优化

《C#使用HttpClient进行Post请求出现超时问题的解决及优化》最近我的控制台程序发现有时候总是出现请求超时等问题,通常好几分钟最多只有3-4个请求,在使用apipost发现并发10个5分钟也... 目录优化结论单例HttpClient连接池耗尽和并发并发异步最终优化后优化结论我直接上优化结论吧,

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

Linux使用dd命令来复制和转换数据的操作方法

《Linux使用dd命令来复制和转换数据的操作方法》Linux中的dd命令是一个功能强大的数据复制和转换实用程序,它以较低级别运行,通常用于创建可启动的USB驱动器、克隆磁盘和生成随机数据等任务,本文... 目录简介功能和能力语法常用选项示例用法基础用法创建可启动www.chinasem.cn的 USB 驱动

C#使用yield关键字实现提升迭代性能与效率

《C#使用yield关键字实现提升迭代性能与效率》yield关键字在C#中简化了数据迭代的方式,实现了按需生成数据,自动维护迭代状态,本文主要来聊聊如何使用yield关键字实现提升迭代性能与效率,感兴... 目录前言传统迭代和yield迭代方式对比yield延迟加载按需获取数据yield break显式示迭

使用SQL语言查询多个Excel表格的操作方法

《使用SQL语言查询多个Excel表格的操作方法》本文介绍了如何使用SQL语言查询多个Excel表格,通过将所有Excel表格放入一个.xlsx文件中,并使用pandas和pandasql库进行读取和... 目录如何用SQL语言查询多个Excel表格如何使用sql查询excel内容1. 简介2. 实现思路3

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

c# checked和unchecked关键字的使用

《c#checked和unchecked关键字的使用》C#中的checked关键字用于启用整数运算的溢出检查,可以捕获并抛出System.OverflowException异常,而unchecked... 目录在 C# 中,checked 关键字用于启用整数运算的溢出检查。默认情况下,C# 的整数运算不会自

在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码

《在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码》在MyBatis的XML映射文件中,trim元素用于动态添加SQL语句的一部分,处理前缀、后缀及多余的逗号或连接符,示... 在MyBATis的XML映射文件中,<trim>元素用于动态地添加SQL语句的一部分,例如SET或W