大家好,我是Edison。

上一篇:聊聊AI人设

通过人设模版可以有效给AI”洗脑“,这体现的是结构化的表达。但想要AI实现精准控制多分支,实现千人千面的功能,就得使用参数化表达了。

从结构化到参数化

如果对“ChatGPT最喜欢的沟通方式”进行一个抽象提炼,可以将其拆解为 结构化表达 和 参数化表达 两部分。

前面几篇文章,我们学习了一些Prompt模板,这些模板无一不例外地都在强调结构化表达的重要性,可以帮助我们得到一个在某个领域比较专业的人设。

不过,如果我们想要设计的是一个可调参的灵活系统,而不是写死的某个人设,这就需要用参数化的描述来分别定义需求细节,千人千面才能有机会实现。

那么,什么是参数化表达呢?

参数化表达就是 用机器容易理解的公式来压缩表达,减少赘述,最终让变量影响输出,实现一个模板从1到N的复用。

参数化表达模板

这里给出一个参数化表达的prompt模板:功能指令 + 变量 + 默认值 + 初始化和帮助。

功能指令:比如用标识符"/"来区分功能指令和普通描述。

/功能指令
/learn
/style

变量:对应某一个对象或模块,给它赋值,让它可调整。

'变量'
输出'num'组参考

默认值:提供一个高容错的默认值。

初始化和帮助:第一个使用,能够引导用户沟通个人偏好,同时提供功能指令集的菜单,明确助理的职能。

可能上面的内容你还是觉得不太容易理解,那么我们下面就来一个实操来套用这个公式。

万能语言辅助专家

这里我们以一个万能的语言辅助专家为例,结合之前学到的人设结构化模板 + 上面的参数化表达模板 来编写一段prompt。NOTE:这段prompt来自《零基础GPT应用入门课》,作者林健(键盘)。

你是一位专业的语言助理 @Lang Master,我会输入相关的请求,你将根据`preferences`、`instruction`和`rules`来协助我更高效掌握和使用一门语言。

初始回复:“
** Hi I'm Lang Master,Created by Edison,V1.0,20230623**
### ⚙️ Preferences:
- learn: <> else English
- lang: <> else “English+中文解释”
- ⏲️ lvl: <初级,中级,高级> else 小白
- style: <> else 正式的
### Menu:
用表格输出支持的`instructions`和对应名称,不需要解释具体含义:
---
请指出你的偏好,E.g.:/learn 中文。
回复1保持默认。
” `preferences`
/learn:<目标学习语言,默认English>
/lang:<语言偏好,默认为“English+中文解释”>
/lvl:<用户的语言能力,小白(默认),初级,中级,高级>
/style:<> else 正式的
/num:<> else 3
/音标:<含声调的拼音,国际音标、含声调的日语罗马音>else 音标(美、英) `instructions`
/word:单词讲解
用户用任何语言输入单词,请按以下模版输出单词相关信息:
## 单词:
用表格输出:**单词**,音标,词性(abbr),词根,释义(中、英)
## 例句:
列表输出/num组*英文例句*(中文翻译)
## 近义和反义:
列表输出近义词和反义词,含(中文释义)
## 关联记忆:
利用词根关联法,列表输出8个相关的单词
/basic:脚本、高级语言或其他广义语言的学习请求
提供结构化的章节,引导用户学习
/tran:翻译
检测语言,校正并翻译为中文。模版:
## 翻译:
翻译
/polish:润色
调用/tran翻译之后,润色为更优雅的中文。模版:
## 润色:
your polish
/sum:总结
总结输入的英文,中文输出。
/chat:口语对话
检查`preferences`的偏好,使用“目标语言”和用户对话,纠正并帮助用户提升口语表达。
/help:输出支持的指令指引 `rules`
- 正确按输出模版渲染 markdown
- 用户学习日语时,/word 的音标使用含数字音调的罗马音音标,如:**雨**:あめ①,音标:ame
- 假如单词有多个词性,应全部列出
- 提供语言服务前,确认用户的偏好
- 请一步一步思考,给用户提供专业的语言辅导

这段prompt稍微有些复杂了,但其实也还是好理解,前半段通过一个综合人设进行了初始化、沟通偏好 和 定义偏好,后半段则是通过阐述功能 和 列要求 定义输出模块和规则。

接下来就是验证时间:

(1)第0轮:初始化回复

(2)第1轮:回复1 保持默认

(3)第2轮:/word evolution

(4)第3轮:/tran 做翻译

(5)第4轮:/help

(6)第5轮:切换德语,/learn 德语

(7)第6轮:/word 谢谢

(8)第7轮:/tran 做翻译

(9)第8轮:切换C#语言

(10)第9轮:给任务

(11)第N轮:交给你了

可以看出,这个语言辅助助手,可以让我们不满足于一种语言,而这个语言可以是真实的沟通语言 也可以是 技术编程语言,甚至可以不断的扩展它。

最后,感谢键盘老师分享的这段prompt,可以帮助我们学习到要点,也特别值得我们学习一下。

小结

本篇,我们了解了ChatGPT中的参数化表达沟通,参数化描述的本质是用机器容易理解的公式来压缩表达,进而减少赘述。在具体实现上,我们可以借助 / 功能指令定义,拓展AI综合人设的功能。

本文工具

本文示例大模型版本:gpt4-o

参考资料

李佳芮,《ChatGPT从0到1

林健,《零基础GPT应用入门课

Global AI Bootcamp 成都站,梁桐铭,《学习如何使用Prompt与OpenAI模型对话》

作者:周旭龙

出处:https://edisonchou.cnblogs.com

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。

ChatGPT学习之旅 (7) 参数化表达的魔力的更多相关文章

  1. WCF学习之旅—WCF服务的Windows 服务程序寄宿(十一)

    上接    WCF学习之旅—WCF服务部署到IIS7.5(九) WCF学习之旅—WCF服务部署到应用程序(十) 七 WCF服务的Windows 服务程序寄宿 这种方式的服务寄宿,和IIS一样有一个一样 ...

  2. Rust学习之旅(读书笔记):枚举 (Enum)

    Rust学习之旅(读书笔记):枚举 (Enum) C 语言的枚举类型很弱,不如后来的语言,也不如之前的语言.在 C 语言里面枚举量就是一个名字,更方便的定义常量.今天读了<The Rust Pr ...

  3. WCF学习之旅—第三个示例之四(三十)

           上接WCF学习之旅—第三个示例之一(二十七)               WCF学习之旅—第三个示例之二(二十八)              WCF学习之旅—第三个示例之三(二十九)   ...

  4. Hadoop学习之旅二:HDFS

    本文基于Hadoop1.X 概述 分布式文件系统主要用来解决如下几个问题: 读写大文件 加速运算 对于某些体积巨大的文件,比如其大小超过了计算机文件系统所能存放的最大限制或者是其大小甚至超过了计算机整 ...

  5. WCF学习之旅—第三个示例之二(二十八)

    上接WCF学习之旅—第三个示例之一(二十七) 五.在项目BookMgr.Model创建实体类数据 第一步,安装Entity Framework 1)  使用NuGet下载最新版的Entity Fram ...

  6. WCF学习之旅—第三个示例之三(二十九)

    上接WCF学习之旅—第三个示例之一(二十七) WCF学习之旅—第三个示例之二(二十八) 在上一篇文章中我们创建了实体对象与接口协定,在这一篇文章中我们来学习如何创建WCF的服务端代码.具体步骤见下面. ...

  7. WCF学习之旅—WCF服务部署到IIS7.5(九)

    上接   WCF学习之旅—WCF寄宿前的准备(八) 四.WCF服务部署到IIS7.5 我们把WCF寄宿在IIS之上,在IIS中宿主一个服务的主要优点是在发生客户端请求时宿主进程会被自动启动,并且你可以 ...

  8. WCF学习之旅—WCF服务部署到应用程序(十)

    上接  WCF学习之旅—WCF寄宿前的准备(八) WCF学习之旅—WCF服务部署到IIS7.5(九) 五.控制台应用程序宿主 (1) 在解决方案下新建控制台输出项目 ConsoleHosting.如下 ...

  9. WCF学习之旅—WCF服务的WAS寄宿(十二)

    上接    WCF学习之旅—WCF服务部署到IIS7.5(九) WCF学习之旅—WCF服务部署到应用程序(十) WCF学习之旅—WCF服务的Windows 服务程序寄宿(十一) 八.WAS宿主 IIS ...

  10. WCF学习之旅—WCF服务的批量寄宿(十三)

    上接    WCF学习之旅—WCF服务部署到IIS7.5(九) WCF学习之旅—WCF服务部署到应用程序(十) WCF学习之旅—WCF服务的Windows 服务程序寄宿(十一) WCF学习之旅—WCF ...

随机推荐

  1. Ubuntu安装mosquitto并进行配置

    要在Ubuntu上安装Mosquitto并进行配置,你可以按照以下步骤进行操作: 打开终端. 更新软件包列表,使用以下命令: sudo apt update 安装Mosquitto包,使用以下命令: ...

  2. ASP.NET 简单实现数字时钟

    每隔1000毫秒(1s)获取一次当前时间 <asp:ScriptManager ID="ScriptManager_Time" runat="server" ...

  3. Transformer(自然语言处理)笔记

    Transerformer架构(自然语言处理) 尝试学习和从零构建一个大语言模型 就目前我的认知 Transformer架构主要分为编码器.解码器.词表.训练集.训练算法(T5) 编码器(Encode ...

  4. FastAPI依赖注入系统及调试技巧

    title: FastAPI依赖注入系统及调试技巧 date: 2025/04/11 15:00:50 updated: 2025/04/11 15:00:50 author: cmdragon ex ...

  5. Unbuntu16搭建Kafka环境总结

    1.安装Kafka 环境说明 OS:Ubuntu 16.04 Zookeeper:zookeeper 3.4.5 Kafka:kafka_2.11-0.11.0.0 jdk:jdk8(Kafka启动需 ...

  6. Postman+Newman生成接口测试报告

    1.安装node 安装完后进入cmd输入node检验版本 2.安装newman 打开cmd-->输入npm install -g newman,然后输入newman -v验证版本 3.安装htm ...

  7. 代码随想录第十八天 | Leecode 530. 二叉搜索树的最小绝对差、501. 二叉搜索树中的众数、236. 二叉树的最近公共祖先

    530. 二叉搜索树的最小绝对差 题目描述 给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 . 差值是一个正数,其数值等于两值之差的绝对值. 示例 1: 输入:roo ...

  8. 代码随想录第一天 | Leecode 704 二分查找、27 移除元素、977 有序数组的平方

    前言 今天是我开始刷Leecode的第一天,同时这也是开通博客园第一篇博客.我希望能在每篇博客中记录下我做出每一道题的过程,为此我想先说明一下我的博客内容的结构. 题目描述:首先说明题目的要求以及测试 ...

  9. 【记录】Python3|Selenium 下载 PDF 不预览不弹窗(2024年)

    版本: Chrome 124 Python 3.12 Selenium 4.19.0 版本与我有差异不要紧,只要别差异太大比如 Chrome 用 57 之前的版本了,就可以看本文. 如果你从前完全没使 ...

  10. 环境搭建: Vue3+Echarts5+vue-eharts + 移动端rem适配

    对于数据可视化的最后一站, 就是移动数据报表的展示, 毕竟手机端的适普性, 便携性, 灵活性更高. 包括我自己也是更多在移动端进行轻量办公. 而用主流的商业BI平台在PC端的体验基本可打80分, 而在 ...