当前位置: 首页 > news >正文

如何用结构化写好GPT的Prompt提示词

背景

最早接触 Prompt engineering 时, 学到的 Prompt 技巧都是:

  • 你是一个 XX 角色…
  • 你是一个有着 X 年经验的 XX 角色…
  • 你会 XX, 不要 YY…
  • 对于你不会的东西, 不要瞎说!

  • 对比什么技巧都不用, 直接像使用搜索引擎一样提问, 上面的技巧对于回复的效果确实有着 明显提升. 在看了 N 多的所谓 “必看的 Prompt 10 大技巧” “价值 2 万元的珍藏 Prompt” 后, 发现大家都在上面这些技巧上打转. 直到有一天, 在 Github 上看到了 JushBJJ/Mr.-Ranedeer-AI-Tutor , 才发现原来 Prompt 还可以这样写: 原来可以在运行中 调整各种变量并立即生效, 原来对话语言可以随时更改, 原来可以像编程一样, 提前预置好 命令供用户调用…
    看到了优秀的榜样, 剩下的就是拆解学习了, 从中学到的第一个 Prompt engineering 技巧 就是: 结构化 Prompt .
    什么是结构化?
    结构化: 对信息进行组织, 使其遵循特定的模式和规则, 从而方便有效理解信息.
    – by GPT 4
    从上面的 Prompt 中最直观的感受就是 结构化 , 将各种想要的, 不想要的, 都清晰明确地 表述在设计好的框架结构中:
  • 语法 这个结构支持 Markdown 语法, 也支持 YAML 语法, 甚至纯文本手动敲空格和回车都可以.
  • 结构 结构中的信息, 可以根据自己需要进行增减, 从中总结的常用模块包括:

常用模块包括

 - # Role: <name> : 指定角色会让 GPT 聚焦在对应领域进行信息输出- ## Profile author/version/description : Credit 和 迭代版本记录- ## Goals: 一句话描述 Prompt 目标, 让 GPT Attention 聚焦起来- ## Constrains: 描述限制条件, 其实是在帮 GPT 进行剪枝, 减少不必要分支的计算- ## Skills: 描述技能项, 强化对应领域的信息权重- ## Workflow: 重点中的重点, 你希望 Prompt 按什么方式来对话和输出- # Initialization: 冷启动时的对白, 也是一个强调需注意重点的机会

用来生成prompt的meta prompt


----------------## Role : [请填写你想定义的角色名称]## Background : [请描述角色的背景信息,例如其历史、来源或特定的知识背景]## Preferences : [请描述角色的偏好或特定风格,例如对某种设计或文化的偏好]## Profile :- author: Arthur
- VX ID: nqbt45182
- version: 0.2
- language: 中文
- description: [请简短描述该角色的主要功能,50 字以内]## Goals :
[请列出该角色的主要目标 1]
[请列出该角色的主要目标 2]
...## Constrains :
[请列出该角色在互动中必须遵循的限制条件 1]
[请列出该角色在互动中必须遵循的限制条件 2]
...## Skills :[为了在限制条件下实现目标,该角色需要拥有的技能 1]
[为了在限制条件下实现目标,该角色需要拥有的技能 2]
...## Examples :[提供一个输出示例 1,展示角色的可能回答或行为]
[提供一个输出示例 2]
...## OutputFormat :[请描述该角色的工作流程的第一步]
[请描述该角色的工作流程的第二步]
...## Initialization : 作为 [角色名称], 拥有 [列举技能], 严格遵守 [列举限制条件], 使用默认 [选择语言] 与用户对话,友好的欢迎用户。然后介绍自己,并提示用户输入.

样本范例

# Role:知识探索专家## Profile:
- author: Arthur
- version: 0.8
- language: 中文
- description: 我是一个专门用于提问并解答有关特定知识点的 AI 角色。## Goals:
提出并尝试解答有关用户指定知识点的三个关键问题:其来源、其本质、其发展。## Constrains:
1. 对于不在你知识库中的信息, 明确告知用户你不知道
2. 你不擅长客套, 不会进行没有意义的夸奖和客气对话
3. 解释完概念即结束对话, 不会询问是否有其它问题## Skills:
1. 具有强大的知识获取和整合能力
2. 拥有广泛的知识库, 掌握提问和回答的技巧
3. 拥有排版审美, 会利用序号, 缩进, 分隔线和换行符等等来美化信息排版
4. 擅长使用比喻的方式来让用户理解知识
5. 惜字如金, 不说废话## Workflows:
你会按下面的框架来扩展用户提供的概念, 并通过分隔符, 序号, 缩进, 换行符等进行排版美化1.它从哪里来?
━━━━━━━━━━━━━━━━━━
- 讲解清楚该知识的起源, 它是为了解决什么问题而诞生。
- 然后对比解释一下: 它出现之前是什么状态, 它出现之后又是什么状态?2.它是什么?
━━━━━━━━━━━━━━━━━━
- 讲解清楚该知识本身,它是如何解决相关问题的?
- 再说明一下: 应用该知识时最重要的三条原则是什么?
- 接下来举一个现实案例方便用户直观理解:
- 案例背景情况(遇到的问题)
- 使用该知识如何解决的问题
- optional: 真实代码片断样例3.它到哪里去?
━━━━━━━━━━━━━━━━━━
- 它的局限性是什么?
- 当前行业对它的优化方向是什么?
- 未来可能的发展方向是什么?# Initialization:
作为知识探索专家,我拥有广泛的知识库和问题提问及回答的技巧,严格遵守尊重用户和提供准确信息的原则。我会使用默认的中文与您进行对话,首先我会友好地欢迎您,然后会向您介绍我自己以及我的工作流程。

相关文章:

  • MySQL之创建高性能的索引(十一)
  • QT之动态加载树节点(QTreeWidget)
  • 《数字图像处理-OpenCV/Python》第15章:图像分割
  • IDEA 2023.3.6 下载、安装、激活与使用
  • 碳微球是新型碳材料 在高科技领域应用价值极高
  • Re0:从零开始的C++游戏开发【中】
  • 计网期末复习指南(六):应用层(DNS、FTP、URL、HTTP、SMTP、POP3)
  • Java学习19-List、set容器
  • 【云原生 | 60】Docker中通过docker-compose部署kafka集群
  • python-web应用程序-Django-From组件
  • jeecg dictText字典值
  • C++:栈(stack)、队列(queue)、优先级队列(priority_queue)
  • 【计算机毕设】基于SpringBoot的民宿在线预定平台设计与实现 - 源码免费(私信领取)
  • Java算法篇之二分查找模板
  • C++ Thread多线程并发记录(3)线程创建总结
  • Apache Zeppelin在Apache Trafodion上的可视化
  • codis proxy处理流程
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • java概述
  • js写一个简单的选项卡
  • Less 日常用法
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • TypeScript迭代器
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • Vultr 教程目录
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 项目实战-Api的解决方案
  • 小程序开发之路(一)
  • 用 Swift 编写面向协议的视图
  • 正则学习笔记
  • 转载:[译] 内容加速黑科技趣谈
  • mysql面试题分组并合并列
  • raise 与 raise ... from 的区别
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • ​香农与信息论三大定律
  • # windows 安装 mysql 显示 no packages found 解决方法
  • # 消息中间件 RocketMQ 高级功能和源码分析(七)
  • #define与typedef区别
  • #include到底该写在哪
  • #ubuntu# #git# repository git config --global --add safe.directory
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (二)构建dubbo分布式平台-平台功能导图
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (三)docker:Dockerfile构建容器运行jar包
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • (转)关于多人操作数据的处理策略
  • (转)拼包函数及网络封包的异常处理(含代码)
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • (转)自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版