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

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…...

Github - 记录一次对“不小心包含了密码的PR”的修复

Github - 记录一次对“不小心包含了密码的PR”的修复 前言 和好朋友一起开发一个字节跳动青训营抖音电商后端(now private)的项目&#xff0c;某大佬不小心把本地一密码commit上去并提了PR。 PR一旦发出则无法被删除&#xff0c;且其包含的commit也能被所有能看到这个仓库的…...

【玩转 Postman 接口测试与开发2_014】第11章:测试现成的 API 接口(下)——自动化接口测试脚本实战演练 + 测试集合共享

《API Testing and Development with Postman》最新第二版封面 文章目录 3 接口自动化测试实战3.1 测试环境的改造3.2 对列表查询接口的测试3.3 对查询单个实例的测试3.4 对新增接口的测试3.5 对修改接口的测试3.6 对删除接口的测试 4 测试集合的共享操作4.1 分享 Postman 集合…...

前后端通过docker部署笔记

项目背景&#xff1a;这是一个SpringBootvue3的项目&#xff0c;通过maven打包后&#xff0c;需要在Linux服务器上部署&#xff0c;本篇博客主要记录docker-compose.yaml文件的含义&#xff1a; docker-compose.yml 文件中定义了一个 algorithm_platform_frontend 容器&#…...

五十天精通硬件设计第四天-场效应管知识及选型

场效应管(FET,Field-Effect Transistor)是一种利用电场效应控制电流的半导体器件,广泛应用于放大、开关等电路中。以下是场效应管的基本知识及选型要点: 一、场效应管的基本知识 1. 类型: - **结型场效应管(JFET)**: - N沟道和P沟道两种类型。 - 栅极与…...

了解 ALV 中的 field catalog (ABAP List Viewer)

在 ABAP 中&#xff0c;字段目录是使用 ALV &#xff08;ABAP List Viewer&#xff09; 定义内部表中的数据显示方式的关键元素。它提供对 ALV 中显示的字段的各种属性的控制&#xff0c;例如列标题、对齐方式、可见性、可编辑性等。关键概念&#xff1a; Field Catelog 字段目…...

【基于SprintBoot+Mybatis+Mysql】电脑商城项目之修改密码和个人资料

&#x1f9f8;安清h&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;【Spring篇】【计算机网络】【Mybatis篇】 &#x1f6a6;作者简介&#xff1a;一个有趣爱睡觉的intp&#xff0c;期待和更多人分享自己所学知识的真诚大学生。 目录 &#x1f383;1.修改密码 -持久…...

十一、CentOS Stream 9 安装 Docker

一、Docker 环境安装 1、软件源(仓库)信息 使用如下命令可列出当前系统配置的所有软件源(仓库)信息 # 列出所有软件源 dnf repolist 这表明系统有三个仓库 AppStream 、 BaseOS、Extras-Common 被启用 2、配置软件源镜像 使用如下命令可配置 Docker 软件包下载的镜像地址 …...

FreeRTOS学习 --- 中断管理

什么是中断&#xff1f; 让CPU打断正常运行的程序&#xff0c;转而去处理紧急的事件&#xff08;程序&#xff09;&#xff0c;就叫中断 中断执行机制&#xff0c;可简单概括为三步&#xff1a; 1&#xff0c;中断请求 外设产生中断请求&#xff08;GPIO外部中断、定时器中断…...

如何在Intellij IDEA中识别一个文件夹下的多个Maven module?

目录 问题描述 理想情况 手动添加Module&#xff0c;配置Intellij IDEA的Project Structure 问题描述 一个文件夹下有多个Maven项目&#xff0c;一个一个开窗口打开可行但是太麻烦。直接open整个文件夹会发现Intellij IDEA默认可能就识别一个或者几个Maven项目&#xff0c;如…...

机器学习模型--线性回归、逻辑回归、分类

一、线性回归 级别1&#xff1a;简单一元线性回归&#xff08;手工实现&#xff09; import numpy as np import matplotlib.pyplot as plt# 生成数据 X np.array([1, 2, 3, 4, 5]) y np.array([2, 4, 5, 4, 5])# 手动实现梯度下降 def gradient_descent(X, y, lr0.01, epo…...

gitlab个别服务无法启动可能原因

目录 一、gitlab的puma服务一直重启 1. 查看日志 2. 检查配置文件 3. 重新配置和重启 GitLab 4. 检查系统资源 5. 检查依赖和服务状态 6. 清理和优化 7. 升级 GitLab 8. 查看社区和文档 二、 gitlab个别服务无法启动可能原因 1.服务器内存或磁盘已满 2.puma端口冲突…...

react的antd表格数据回显在form表单中

1、首先为table添加编辑按钮 {title: 操作,align: center,render: (_: any, record: any) > (<div style{{ display: flex, alignItems: center, justifyContent: space-evenly }}><Buttonsize"small"onClick{() > deitor(record)} style{{ margin…...

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

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

feign 远程调用详解

在平常的开发工作中&#xff0c;我们经常需要跟其他系统交互&#xff0c;比如调用用户系统的用户信息接口、调用支付系统的支付接口等。那么&#xff0c;我们应该通过什么方式进行系统之间的交互呢&#xff1f;今天&#xff0c;简单来总结下 feign 的用法。 1&#xff1a;引入依…...

【Android】jni开发之导入opencv和libyuv来进行图像处理

做视频图像处理时需要对其进行水印的添加&#xff0c;放在应用层调用工具性能方面不太满意&#xff0c;于是当下采用opencvlibyuv方法进行处理。 对于Android的jni开发不是很懂&#xff0c;我的需求是导入opencv方便在cpp中调用&#xff0c;但目前找到的教程都是把opencv作为模…...

【Elasticsearch】terms聚合误差问题

Elasticsearch中的聚合查询在某些情况下确实可能存在误差&#xff0c;尤其是在处理分布式数据和大量唯一值时。这种误差主要来源于以下几个方面&#xff1a; 1.分片数据的局部性 Elasticsearch的索引通常被分成多个分片&#xff0c;每个分片独立地计算聚合结果。由于数据在分…...

深入理解 `box-sizing: border-box;`:CSS 布局的利器

深入理解 box-sizing: border-box;&#xff1a;CSS 布局的利器 默认行为示例代码 使用 box-sizing: border-box;示例代码 全局应用 box-sizing: border-box;示例代码 实际应用场景1. 表单布局2. 网格布局 总结 在 CSS 中&#xff0c;box-sizing 属性决定了元素的总宽度和高度是…...

【原子工具】快速幂 快速乘

题幂算.一切即1 阴阳迭变积微著&#xff0c;叠浪层峦瞬息功 莫道浮生千万事&#xff0c;元知万象一归宗 文章目录 快速幂原始快速幂&#xff08;O(logn)&#xff09;二分递归形式非递归形式 模下意义的快速幂&#xff08;O(logn)&#xff09;二分递归形式非递归形式 快速乘龟速…...

Apache SeaTunnel 整体架构运行原理

概述 SeaTunnel 缘起 数据集成在现代企业的数据治理和决策支持中扮演着至关重要的角色。随着数据源的多样化和数据量的迅速增长及业务需求的快速变化&#xff0c;企业需要具备强大的数据集成能力来高效地处理数据。SeaTunnel通过其高度可扩展和灵活的架构&#xff0c;帮助企业…...

PL/SQLDeveloper中数值类型字段查询后显示为科学计数法的处理方式

PL/SQLDeveloper中数值类型字段查询后显示为科学计数法的处理方式 文章目录 PL/SQLDeveloper中数值类型字段查询后显示为科学计数法的处理方式1. 查询效果2. 处理方式3. 再次查询 1. 查询效果 2. 处理方式 3. 再次查询...

JeecgBoot低代码管理平台

一、一句话理解 JeecgBoot JeecgBoot 是一个基于 Java 技术栈&#xff08;主要是 Spring Boot 和 Vue&#xff09;的快速开发脚手架。它的核心理念是&#xff1a;通过代码生成器和一系列预置模块&#xff0c;极大地减少程序员在开发企业级后台管理系统时重复的、模板化的工作&…...

【走好求职第一步】求职OMG——见面课测验4

2025最新版&#xff01;&#xff01;&#xff01;6.8截至答题&#xff0c;大家注意呀&#xff01;博主码字不易点个关注吧~~ 1.单选题(2分) 下列不属于简历撰写技巧原则的是&#xff08; A &#xff09; A.具体性 B.相关性 C.匹配性 2.单选题(2分) 笔试的下一步一般是:( B &…...

九、【ESP32开发全栈指南: UDP通信服务端】

一、TCP与UDP核心差异 特性TCPUDP连接方式面向连接 (需三次握手)无连接可靠性可靠传输 (重传/排序/校验)尽力交付 (不保证可靠性)实时性延迟较高低延迟&#xff0c;实时性强传输效率协议开销大头部开销小 (仅8字节)连接类型点对点支持广播/多播资源占用高 (需维护连接状态)极低…...

几种简单的排序算法(C语言)

目录 1 简介 2 冒泡排序 2.1 基本思路 2.2 代码实现 3 选择排序 3.1 基本思路 3.2 代码实现 4 插入排序 4.1 基本思路 4.2 代码实现 5 快速排序 5.1 基本思路 5.2 代码实现 6 归并排序 6.1 基本思路 6.2 代码实现 7 基数排序 7.1 基本思路 7.2 代码实现 8 …...

打卡第47天

作业&#xff1a;对比不同卷积层热图可视化的结果 核心差异总结 浅层卷积层&#xff08;如第 1-3 层&#xff09; 关注细节&#xff1a;聚焦输入图像的边缘、纹理、颜色块等基础特征&#xff08;例&#xff1a;猫脸的胡须边缘、树叶的脉络&#xff09;。热图特点&#xff1a;区…...

构建 MCP 服务器:第 2 部分 — 使用资源模板扩展资源

该图像是使用 AI 图像创建程序创建的。 这个故事是在多位人工智能助手的帮助下写成的。 这是构建MCP 服务器教程&#xff08;共四部分&#xff09;的第二部分。在第一部分中&#xff0c;我们使用基本资源创建了第一个 MCP 服务器。现在&#xff0c;我们将使用资源模板扩展服务…...

开源之夏·西安电子科技大学站精彩回顾:OpenTiny开源技术下沉校园,点燃高校开发者技术热情

开源之夏2025编程活动正在如火如荼的进行中&#xff0c;当前也迎来了报名的倒计时阶段&#xff0c;开源之夏组织方也通过高校行系列活动进入各大高校&#xff0c;帮助高校开发者科普开源文化、开源活动、开源技术。 6月4日 开源之夏携手多位开源技术大咖、经验型选手走进西安电…...

vite+tailwind封装组件库

前言 演示视频 https://www.bilibili.com/video/BV1EST3zPEyP/?spm_id_from333.1387.homepage.video_card.click 参考 https://juejin.cn/post/7112295067682865166 https://juejin.cn/post/7046187185615142949 代码仓库 https://gitee.com/malguy/vite-components-li…...

Java 大视界 -- 基于 Java 的大数据分布式计算在蛋白质组学数据分析中的加速与优化(255)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…...