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

SpringAI系列 - 使用LangGPT编写高质量的Prompt

目录

    • 一、LangGPT —— 人人都可编写高质量 Prompt
    • 二、快速上手
      • 2.1 诗人
    • 三、Role 模板
      • 3.1 Role 模板
      • 3.2 Role 模板使用步骤
      • 3.3 更多例子
    • 四、高级用法
      • 4.1 变量
      • 4.2 命令
      • 4.3 Reminder
      • 4.4 条件语句
      • 4.5 Json or Yaml 方便程序开发

一、LangGPT —— 人人都可编写高质量 Prompt

LangGPT 项目旨在以结构化、模板化的方式编写高质量 ChatGPT prompt,你可以将其视为一种面向大模型的 prompt 编程语言。

现有 Prompt 创建方法有如下缺点:

  • 缺乏系统性:大多是细碎的规则,技巧,严重依赖个人经验
  • 缺乏灵活性:对他人分享的优质 prompt 进行调整需要直接修改 prompt 内容
  • 缺乏交互友好性:优质 prompt 的配置和使用太复杂,有时往往还要学习 prompt 用法
  • 未充分结合大语言模型的特性:
    • 偏好分点、条理性叙述
    • 长对话会出现遗忘问题
    • 不同语言间性能存在差距

LangGPT 指在解决上面的问题:

  • 系统性:提供模板,按照模板填鸭式写上相应内容即可
  • 灵活性:
    • 使用变量,轻松引用、设置和更改 prompt 中的内容,可编程性好
    • 使用命令,轻松设置、执行预定义行为,可以无损性能情况下轻松设置中英文切换
  • 交互友好:Workflow 轻松定义与用户交互,角色行为等,轻松引导用户使用
  • 充分利用大模型能力:
    • 模块化配置
    • 分点条理性叙述
    • Reminder 缓解长期记忆缺失问题

通过掌握使用 LangGPT,你可以在几分钟内轻松上手大模型指令编写。🚀

你可以在论文中了解更多细节。LangGPT论文的中文版也已经上传。

二、快速上手

这里提供先提供一个小例子以便大家快速上手 LangGPT。LangGPT 提供了 Prompt 编写模板,套用模板即可快速编写高质量 Prompts。

2.1 诗人

# Role: 诗人## Profile- Author: YZFly
- Version: 1.0
- Language: 中文
- Description: 诗人是创作诗歌的艺术家,擅长通过诗歌来表达情感、描绘景象、讲述故事,具有丰富的想象力和对文字的独特驾驭能力。诗人创作的作品可以是纪事性的,描述人物或故事,如荷马的史诗;也可以是比喻性的,隐含多种解读的可能,如但丁的《神曲》、歌德的《浮士德》。### 擅长写现代诗:
1. 现代诗形式自由,意涵丰富,意象经营重于修辞运用,是心灵的映现
2. 更加强调自由开放和直率陈述与进行“可感与不可感之间”的沟通。### 擅长写七言律诗
1. 七言体是古代诗歌体裁
2. 全篇每句七字或以七字句为主的诗体
3. 它起于汉族民间歌谣### 擅长写五言诗
1. 全篇由五字句构成的诗
2. 能够更灵活细致地抒情和叙事
3. 在音节上,奇偶相配,富于音乐美## Rules
1. 内容健康,积极向上
2. 七言律诗和五言诗要押韵## Workflow
1. 让用户以 "形式:[], 主题:[]" 的方式指定诗歌形式,主题。
2. 针对用户给定的主题,创作诗歌,包括题目和诗句。## Initialization
作为角色 <Role>, 严格遵守 <Rules>, 使用默认 <Language> 与用户对话,友好的欢迎用户。然后介绍自己,并告诉用户 <Workflow>。

效果图:

在这里插入图片描述

三、Role 模板

上面的例子都是使用 Role 模板编写的, Role 模板是 LangGPT 的核心

ChatGPT 很擅长角色扮演,只要提供角色说明,角色行为,技能等描述,就能做出很符合角色的行为。

因此 LangGPT 设计了 Role 模板让 ChatGPT 更好的理解用户意图,并相应提供了一套角色设计方法。

3.1 Role 模板

下面是用 markdown展示的 Role 模板:

# Role: Your_Role_Name## Profile- Author: YZFly
- Version: 0.1
- Language: English or 中文 or Other language
- Description: Describe your role. Give an overview of the character's characteristics and skills### Skill-1
1.技能描述1
2.技能描述2### Skill-2
1.技能描述1
2.技能描述2## Rules
1. Don't break character under any circumstance.
2. Don't talk nonsense and make up facts.## Workflow
1. First, xxx
2. Then, xxx
3. Finally, xxx## Tools### browser
You have the tool `browser` with these functions:
- Issues a query to a search engine and displays the results.
- Opens the webpage with the given id, displaying it.
- Returns to the previous page and displays it.
- Scrolls up or down in the open webpage by the given amount.
- Opens the given URL and displays it.
- Stores a text span from an open webpage. Specifies a text span by a starting int `line_start` and an (inclusive) ending int `line_end`. To quote a single line, use `line_start` = `line_end`.### pythonWhen you send a message containing Python code to python, it will be executed in a 
stateful Jupyter notebook environment. python will respond with the output of the execution or time out after 60.0
seconds. The drive at '/mnt/data' can be used to save and persist user files. Internet access for this session is disabled. Do not make external web requests or API calls as they will fail.### dalleWhenever a description of an image is given, use dalle to create the images and then summarize the prompts used to generate the images in plain text. If the user does not ask for a specific number of images, default to creating four captions to send to dalle that are written to be as diverse as possible.### More Tools## Initialization
As a/an <Role>, you must follow the <Rules>, you must talk to user in default <Language>,you must greet the user. Then introduce yourself and introduce the <Workflow>.

Role 模板主要包含四部分内容:

  • Profile 角色的简历: 角色描述,角色特点,角色技能以及你想要的其他角色特性。
  • Rules 角色必须遵守的规则,通常是角色必须做的或者禁止做的事情,比如 “不许打破角色设定” 等规则。
  • Workflow 角色的工作流,需要用户提供怎样的输入,角色如何响应用户。
  • Initialization 按照 Role 模板的配置初始化角色,大部分时候使用模板默认内容即可

Role 模板通过上面四个部分内容即可定义和配置一个角色。

同时如需要加入指令,记忆等功能编写复杂的 prompt,只需添加相应的段落即可,可参考高级用法部分。

3.2 Role 模板使用步骤

  1. 设置角色名:将 Role: Your_Role_Name 中的 Your_Role_Name 替换为你的角色名
  2. 编写角色简历 # Profile
    • 设置语言,Language 设置为 中文 或者 English 等其他语言, 用目标语言表达为佳
    • Description 后面简单描述角色
    • ### Skill 部分添加角色技能,可以设置多个技能,技能下分点提供技能描述
  3. 设定规则## Rules :添加角色必须遵守的规则,通常是角色必须做的或者禁止做的事情,比如 “Don’t break character under any circumstance.” “禁止出戏” 等规则
  4. 设定工作流## Workflow:角色如何与用户交互,需要用户提供怎样的输入,角色如何响应用户。
  5. 初始化角色## Initialization:Role 模板依据模板内容对角色进行设定,一般不需要修改。
  6. 将编写好的 Role 模板内容复制到 ChatGPT 对话框(or API)愉快使用~

3.3 更多例子

上面的诗人 Prompt 就是通过用 LangGPT 的 Role 模板设计的。 examples 文件夹下提供了更多例子,包括 Prompt 以及和 ChatGPT 的完整对话,帮助你更好的上手使用 LangGPT。你也可以借鉴结构化的思想在 LangGPT 提供的模板基础上自行添加、删除、修改得到自己的 Prompt。

  • 小红书爆款生成器

  • 编程大师 CAN

  • 健身计划制订专家

  • 本项目收录的 LangGPT Prompt

  • 更多 LangGPT 风格的 prompt

四、高级用法

人们对大模型的能力还在探索过程中,因此 LangGPT 也还在开发完善中,欢迎大家一起共建 LangGPT 项目,降低大模型使用门槛!

4.1 变量

变量为 Prompt 的编写带来了很大的灵活性。使用变量可以方便的引用角色内容,设置和更改角色属性。

这是一般的 prompt 方法较难实现的。

Role 模板里的Initialization部分则大量使用的了变量:

As a/an <Role>, you must follow the <Rules>, you must talk to user in default <Language>,you must greet the user. Then introduce yourself and introduce the <Workflow>.

LangGPT 中使用 “<>” 标识变量,这里的变量有:

  • <Role> 变量,指代了整个 Role 角色的内容。
  • <Rules> 变量,指代了 ## Rules 一节的规则
  • <Language> 变量,指代了 Language 字段的值

Markdown 的层级结构可以让 ChatGPT 很方便的识别变量所代表的内容:

  • Role 是文章标题,作用域为全文
  • Rule 是段落标题,作用域为段落
  • Language 是一个字段,作用域为 ‘:’ 后的指定的文本

4.2 命令

使用命令可以方便的设置一些默认动作,例如 "/help" 提供帮助文档, "/continue" 续写文本 等都是十分有用的命令

  • 约定使用 ‘/’ 来标识命令
  • 在 Role 模板添加下面内容即可
## Commands
- Prefix: "/"
- Commands:- help: This means that user do not know the commands usage. Please introduce yourself and the commands usage.- continue: This means that your output was cut. Please continue where you left off.

4.3 Reminder

使用 Reminder 可以缓解 ChatGPT 的遗忘问题。

在 Role 模板中添加 Reminder 即可:

## Reminder1. 'Description: You will always remind yourself role settings and you output Reminder contents before responding to the user.'
2. 'Reminder: The user language is language (<language>), rules (<rules>).'
3. "<output>"

4.4 条件语句

像编程中一样使用条件语句,一个模板为:

If [situation1 happen], you will take [action1], else, you will take [action2]

4.5 Json or Yaml 方便程序开发

LangGPT 目前使用 markdown 语言,本质上能表达层级结构关系的标记方式如 json, yaml 等都可以

也许可以让 ChatGPT 帮忙写个转换脚本?


参考:
https://github.com/langgptai/LangGPT/blob/main/README_zh.md

相关文章:

SpringAI系列 - 使用LangGPT编写高质量的Prompt

目录 一、LangGPT —— 人人都可编写高质量 Prompt二、快速上手2.1 诗人 三、Role 模板3.1 Role 模板3.2 Role 模板使用步骤3.3 更多例子 四、高级用法4.1 变量4.2 命令4.3 Reminder4.4 条件语句4.5 Json or Yaml 方便程序开发 一、LangGPT —— 人人都可编写高质量 Prompt La…...

git撤销上一次的提交

1、撤销提交 如果需要撤销上一次的提交&#xff0c;只是提交到了本地&#xff0c;可以通过命令&#xff1a; // 撤销最近的提交&#xff08;保留修改&#xff09; git reset --soft HEAD~1 这个操作可以保留之前的提交和当前的修改。最近一次的提交到本地的修改的提交会回到…...

springboot+vue导入ruoyi项目的框架

一、介绍 RuoYi-Vue版本&#xff0c;采用了前后端分离的单体架构设计软件环境&#xff1a;JDK、Mysql、Redis、Maven、Node技术选型: Spring Boot、Spring Security、MyBatis、Jwt、Vue3、Element-Plus官方地址: https://gitee.com/y_project/RuoYi-Vue 官方推荐的版本如下&a…...

Conmi的正确答案——Rider中添加icon作为exe的图标

C#版本&#xff1a;.net 8.0 Rider版本&#xff1a;#RD-243.22562.250&#xff08;非商业使用版&#xff09; 1、添加图标到解决方案下&#xff1a; 2、打开“App.xaml”配置文件&#xff0c;添加配置&#xff1a; <Applicationx:Class"ComTransmit.App"xmlns&q…...

360手机刷机 360手机解Bootloader 360手机ROOT

360手机刷机 360手机解Bootloader 360手机ROOT 问&#xff1a;360手机已停产&#xff0c;现在和以后&#xff0c;能刷机吗&#xff1f; 答&#xff1a;360手机&#xff0c;是肯定能刷机的 360手机资源下载网站 360手机-360手机刷机RootTwrp 360os.top 360rom.github.io 一、…...

电风扇各国检测认证详细介绍美国FCC+UL欧盟CE+ROHS日本PSE+METI备案+英国UKCA

美国 &#xff1a; FCC认证 &#xff1a;产品进入美洲市场的通行证&#xff0c;需通过FCC SDOC认证。 FCC第15部分B: 该标准适用于非故意辐射设备&#xff0c;如家用电器、电脑设备等。它规定了这些设备在电磁环境中不会产生过多的辐射。 ​射频标准: FCC第15部分C:该标准适…...

实验3 词法分析(二)

实验3 词法分析(二) [实验目的]&#xff1a; 1 . 熟悉给定的词法分析程序&#xff1b; 2 . 改进词法分析程序。 [实验内容]&#xff1a; 1.尝试多方面改进TEST语言的文法&#xff0c;参考教材附录B词法分析程序TESTscan.c&#xff0c;在此词法分析程序的基础上改进程序&#x…...

VsCode创建VUE项目

1. 首先安装Node.js和npm 通过网盘分享的文件&#xff1a;vsCode和Node&#xff08;本人电脑Win11安装&#xff09; 链接: https://pan.baidu.com/s/151gBWTFZh9qIDS9XWMJVUA 提取码: 1234 它们是运行和构建Vue.js应用程序所必需的。 1.1 Node安装&#xff0c;点击下一步即可 …...

【自开发工具介绍】SQLSERVER的ImpDp和ExpDp工具04

SQLSERVER的ImpDp和ExpDp工具演示 1、指定某些表作为导出对象外 (-exclude_table) 验证用&#xff1a;导出的表&#xff0c;导入到新的数据库 2、指定某些表作为导出对象外 (-exclude_table) 支持模糊检索&#xff0c;可以使用星号 以s开头的表作为导出对象外&#xff0c;…...

国内知名Deepseek培训师培训讲师唐兴通老师讲授AI人工智能大模型实践应用

课程名称 《Deepseek人工智能大模型实践应用》 课程目标 全面了解Deepseek人工智能大模型的技术原理、功能特点及应用场景。 熟练掌握Deepseek大模型的提示词工程技巧&#xff0c;能够编写高质量的提示词。 掌握Deepseek大模型在办公、营销等领域的应用方法&#xff0c;提升…...

4.Python字符串和列表:字符串输入、字符串输出、下标和切片、字符串常见函数、列表(list)、列表的循环遍历、列表的增删改查、列表的嵌套、列表的切片

1. Python 字符串 1.1 字符串输入 input() 函数用于从用户获取字符串输入。它总是返回一个字符串类型的值。 # 从用户输入字符串 name input("请输入你的名字&#xff1a;") print(f"你好, {name}")1.2 字符串输出 字符串的输出通常使用 print() 函数…...

【C语言标准库函数】指数与对数函数:exp(), log(), log10()

目录 一、头文件 二、函数简介 2.1. exp(double x) 2.2. log(double x) 2.3. log10(double x) 三、函数实现&#xff08;概念性&#xff09; 3.1. exp(double x) 的模拟实现 3.2. log(double x) 和 log10(double x) 的模拟实现 四、注意事项 4.1. exp(double x) 的注…...

小白系列:数据库基础知识解析

前言 今天&#xff0c;我打算用简单明了的语言来讲解一下数据库的基本概念。总体上&#xff0c;这些内容与我在视频中讲解的基本一致。如果你发现视频的讲解有些难以理解&#xff0c;不妨看看这篇文字版的解释&#xff0c;希望能够更快速地帮助你掌握数据库的相关知识。需要注…...

【AIGC魔童】DeepSeek核心创新技术(二):MLA

【AIGC魔童】DeepSeek核心创新技术&#xff08;二&#xff09;&#xff1a;MLA 1. MLA框架的定义与背景2. MLA框架的技术原理&#xff08;1&#xff09;低秩联合压缩&#xff08;2&#xff09;查询的低秩压缩&#xff08;3&#xff09;旋转位置嵌入&#xff08;RoPE&#xff09…...

Windows Docker笔记-制作、加载镜像

引言 在文章《Windows Docker笔记-在容器中运行项目》中&#xff0c;已经在容器中运行了项目。而且在这个容器中&#xff0c;已经调试好了项目运行的环境。 使用docker&#xff0c;就是为了在项目发布到生产环境时&#xff0c;不用再去安装项目运行的环境&#xff0c;直接丢给…...

安卓/ios脚本开发按键精灵经验小分享

1. 程序的切换 我们经常碰到这样的需求&#xff1a;打开最近的应用列表&#xff0c;选取我们想要的程序。但是每个手机为了自己的风格&#xff0c;样式都有区别&#xff0c;甚至连列表的滑动方向都不一样&#xff0c;我们很难通过模拟操作来识别点击&#xff0c;那么我们做的只…...

(动态规划 leetcode377)组合求和IV

确立状态转移方程需要深入理解问题&#xff0c;合理定义子问题&#xff0c;找到边界条件(比如dp[0])&#xff0c;分析状态之间的转移关系&#xff08;dp和dp之间的关系&#xff09;&#xff0c;并进行验证。 递归是自顶向下&#xff0c;而dp是自下而上 这里是i作为目标值&…...

备赛蓝桥杯之第十五届职业院校组省赛第四题:多表单校验

提示&#xff1a;本篇文章仅仅是作者自己目前在备赛蓝桥杯中&#xff0c;自己学习与刷题的学习笔记&#xff0c;写的不好&#xff0c;欢迎大家批评与建议 由于个别题目代码量与题目量偏大&#xff0c;请大家自己去蓝桥杯官网【连接高校和企业 - 蓝桥云课】去寻找原题&#xff0…...

完全离线部署deepseek并建立本地知识库应用电子数据取证领域

点击上方蓝字“小谢取证”一起玩耍 之前小谢推出一篇部署本地大模型教程&#xff0c;但需要网络环境 AI机器人本地免费部署&#xff08;部署Llama 3.1详细教程&#xff09; 还是比较受到读者的欢迎&#xff0c;但应读者要求&#xff1a;需要这个模型能够训练&#xff0c;能够…...

C语言-内存泄漏

1、内存泄漏 申请的空间没有释放 2、内存泄漏的原因 未释放内存&#xff1a;程序完成使用动态分配的内存后&#xff0c;忘记调用free()释放。 引用丢失&#xff1a;在分配内存后&#xff0c;指针被修改或丢失&#xff0c;导致无法访问到原始内存块。 多次分配&#xff1a;在分…...

ctf网络安全题库 ctf网络安全大赛答案

此题解仅为部分题解&#xff0c;包括&#xff1a; 【RE】&#xff1a;①Reverse_Checkin ②SimplePE ③EzGame 【Web】①f12 ②ezrunner 【Crypto】①MD5 ②password ③看我回旋踢 ④摩丝 【Misc】①爆爆爆爆 ②凯撒大帝的三个秘密 ③你才是职业选手 一、 Re ① Reverse Chec…...

深度分析:网站快速收录与网站内容多样性的关系

本文转自&#xff1a;百万收录网 原文链接&#xff1a;https://www.baiwanshoulu.com/87.html 网站快速收录与网站内容多样性之间存在着密切的关系。以下是对这一关系的深度分析&#xff1a; 一、网站内容多样性对快速收录的影响 提升搜索引擎抓取效率&#xff1a; 多样化的…...

SolidWorks教程P2.2【草图 | 第二节】——草图几何关系与编辑

草图几何关系包括&#xff1a;重合、中点、相切、平行、相等、共线、对称 草图编辑功能包括&#xff1a;裁剪实体、转换实体引用、等距实体 目录 1.草图几何关系 2.裁剪实体 3.转换实体引用 4.等距实体 补充知识&#xff1a;智能尺寸 1.草图几何关系 在之前的草图介绍里…...

数据库系统概念第六版记录 三

外码约束&#xff08;Foreign Key Constraint&#xff09; 外码&#xff08;Foreign Key, FK&#xff09;是关系数据库中的一个约束&#xff0c;它用于保证表之间的引用完整性。外码的值必须&#xff1a; 要么存在于被引用表的主键列中&#xff0c;要么为空&#xff08;NULL&…...

使用 Axios 进行高效的数据交互

一、前言 1. 项目背景与目标 Axios 的重要性: Axios 是一个基于 Promise 的 HTTP 客户端,用于浏览器和 Node.js,简化了与服务器的通信。Axios 提供了丰富的功能,如拦截器、并发请求管理、取消请求等。2. 环境搭建 开发工具准备: 推荐使用 VSCode 或 WebStorm。安装必要的…...

MySQL视图索引操作

创建学生表&#xff1b; mysql> create table Student(-> Sno int primary key auto_increment,-> Sname varchar(30) not null unique,-> Ssex char(2) check (Ssex男 or Ssex女) not null,-> Sage int not null,-> Sdept varchar(10) default 计算机 not …...

20个DeepSeek平替网站,解决DeepSeek无法使用!

DeepSeek因为访问量过大以及遭受网络攻击&#xff0c;官网和APP这几天时好时坏&#xff0c;API也没法用。目前360、华为在协助防御境外攻击&#xff0c;DeepSeek官网「晚上」使用情况已经比之前好多了。 得益于各大平台都接入了DeepSeek-R1&#xff0c;如果着急上手体验DeepSe…...

HIVE如何注册UDF函数

如果注册UDF函数的时候报了上面的错误&#xff0c;说明hdfs上传的路径不正确&#xff0c; 一定要用下面的命令 hadoop fs -put /tmp/hive/111.jar /user/hive/warehouse 一定要上传到上面路径&#xff0c;这样在创建函数时&#xff0c;引用下面的地址就可以创建成功...

硬件电路基础

目录 1. 电学基础 1.1 原子 1.2 电压 1.3 电流 1.电流方向&#xff1a; 正极->负极,正电荷定向移动方向为电流方向&#xff0c;与电子定向移动方向相反。 2.电荷&#xff08;这里表示负电荷&#xff09;运动方向&#xff1a; 与电流方向相反 1.4 测电压的时候 2. 地线…...

DeepSeek 模型发展脉络全解析

目录 一、DeepSeek Coder&#xff1a;代码智能领域的开拓者二、DeepSeek LLM&#xff1a;进军通用人工智能的号角三、DeepSeekMoE四、DeepSeek-V2&#xff1a;混合专家架构的新突破五、DeepSeekMath六、DeepSeek-Coder V2七、DeepSeek-VL2八、DeepSeek-V3&#xff1a;技术创新引…...