前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ChatGPT学习之旅 (7) 参数化表达的魔力

ChatGPT学习之旅 (7) 参数化表达的魔力

作者头像
Edison Zhou
发布2024-06-27 09:20:32
580
发布2024-06-27 09:20:32
举报
文章被收录于专栏:EdisonTalkEdisonTalk

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

从结构化到参数化

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

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

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

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

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

参数化表达模板

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

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

代码语言:javascript
复制
/功能指令
/learn
/style

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

代码语言:javascript
复制
'变量'
输出'num'组参考

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

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

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

万能语言辅助专家

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

代码语言:javascript
复制
你是一位专业的语言助理 @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,可以帮助我们学习到要点,也特别值得我们学习一下。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-06-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 从结构化到参数化
  • 参数化表达模板
  • 万能语言辅助专家
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档