paint-brush
AI 提示是让 ChatGPT 做神奇事情的咒语经过@interwebalchemy
7,420 讀數
7,420 讀數

AI 提示是让 ChatGPT 做神奇事情的咒语

经过 Eric Allen24m2023/03/22
Read on Terminal Reader

太長; 讀書

软件开发人员在尝试利用 ChatGPT 的想象力生成歌曲推荐时探索软件开发和提示工程之间的局限性和有趣的交叉点。 探索 Prompt Engineering 的细微差别导致创建了一个开源 Obsidian 插件,以帮助研究人员处理 LLM - 以及一些非常可靠的播放列表。
featured image - AI 提示是让 ChatGPT 做神奇事情的咒语
Eric Allen HackerNoon profile picture
0-item

像大多数互联网一样,我对大型语言模型 (LLM) 形式的人工智能 (AI) 产生了浓厚的兴趣,例如 OpenAI 的 GPT-3 及其聪明、健谈和精通代码的相对 ChatGPT。


许多年前,我记得读过有关 Common Lisp 是如何成为 AI 语言的文章。作为一个在史蒂夫·乔布斯杀死 Flash后刚刚从 ActionScript 转向新手并且还在 PHP、WordPress 和 JavaScript 中重新发明轮子的相当绿色的开发人员,我感到迷失了方向,甚至试图理解从哪里开始参与这个世界人工智能。


然后,随着Python 成为机器学习 (ML) 的语言,我努力了解如何学习和理解一个全新的生态系统——尤其是在我什至不清楚我应该使用哪个版本的语言的情况下


幸运的是,这一切都改变了:

  • 我知道如何学习和使用新的语言、框架、生态系统等。
  • 您应该使用哪个版本的 Python非常清楚
  • 最重要的是,比我聪明得多的人在人工智能领域取得了长足的进步,而且这项技术现在比以往任何时候都更容易获得


我们中的任何人现在都可以选择各种自然语言处理 (NLP) 工具或使用应用程序编程接口 (API) 来让复杂的深度学习模型处理我们的数据,假装是我们的生活教练,或为我们生成有趣的猫图片我们。


这个迅速扩展的领域充满了令人兴奋的机会,可以探索这些新工具,以我们以前只能想象的方式参与计算任务,并互相教育生态系统。


它甚至带有像Prompt Engineering这样很酷的新子字段,但与此同时,它可能充满空洞、不准确和想象的信息——并通过副业产生更多的SEO 博客腐烂。它还打开了一系列新出现的漏洞,如“提示注入”,并提供了一个不断增长的、无定形的攻击面。


这也是我最近一次感受到编程的超凡脱俗。在这个新领域,我设想了一个魔法系统的构成,并将提示工程师想象成一个超链者

提示工程

Jr Korpa 在 Unsplash 上的照片:https://unsplash.com/@jrkorpa/


人们正在使用 ChatGPT 做各种有趣的事情


我经常回顾的一个例子是作者要求 ChatGPT 充当 Linux 终端,然后继续运行 Docker 容器并将提示发送到连接到这个想象的 Docker 容器版本的互联网的备用 ChatGPT。

虽然我知道 ChatGPT 实际上并没有执行这些命令,并且它并没有真正偶然发现多元宇宙中的某个裂缝,使其能够窥视另一个现实,但我仍然感到敬畏。


它是在如此庞大的人类知识库上接受训练的,以至于它可以令人信服地模仿每个命令应该有什么样的反应。


我无法停止思考这与我之前使用过的任何东西有多么根本的不同和令人兴奋。


我开始沉迷于这种“想象中的计算”。如果 ChatGPT 可以伪装成一台计算机并在另一个想象的现实中访问一个想象的互联网,它还能伪装成什么?


它能教我一门编程语言吗?它会是一只有效的橡皮鸭吗?

想象中的编程

Jr Korpa 在 Unsplash 上的照片:https://unsplash.com/@jrkorpa/


我探索过通过 Advent of Code 自学 Rust ,但在我尝试的第 7 天解决方案中遇到了借用和生命周期的编译器问题,这让我很困惑。我不得不将注意力转移到更关键、对时间更敏感的项目上,让我的《生锈降临》未完成。


我看到很多 ChatGPT 提供代码的例子。其中一些出处和质量有问题,但我的代码无论如何都没有编译,那么它还能变得更糟吗?


这一切听起来不错,但当我实施它的建议时,很快就发现 ChatGPT 实际上并没有“理解”我们正在查看的代码。它提供的代码在整个程序的上下文中还有其他问题。试图向其中输入更多代码以为其提供上下文,最终完全失去了对话线程,并转回具有与原始问题相同问题的代码。


这是我真正理解令牌和 ChatGPT 对话记忆的局限性的时候。


您之前的对话上下文会添加到您的请求中,以指导机器人的响应并提供流畅对话的感觉。但是“记忆”可以存储和调用的信息量是有限的。


文字进行了总结。言语丢失。


就像我们自己的记忆一样,ChatGPT 在回忆发生的事情方面并不完美。这种错误是一个惊人的启示,因为完美的记忆是我一直与计算机和人工智能联系在一起的事物之一。


能够提供有关借用生命周期的有用解释,并将这些概念应用于更小的代码片段,但即使是 ChatGPT 也无法帮助我挽救陷入非 Rust 思维方式的 Rust 程序。


那么,如果我不能将它用于实际编程,那么它可以开发的那些想象世界呢?我们可以把它想象成一个代码解释器吗?构建系统?一个应用程序?一个API?另一个人工智能?

奥术咒语

Jr Korpa 在 Unsplash 上的照片:https://unsplash.com/@jrkorpa/


我的第一个想法是看看我是否可以创建一种特定于域的语言 (DSL) ,并用几百个我可以嵌入我最初的 ChatGPT 提示中的标记来描述如何成为该 DSL 的解释器。


由于在我的生活中没有其他人像我这样容易被科技逗乐和着迷,所以我转向 ChatGPT 寻找这条新道路上的方向。


ChatGPT :不,不可能在提示中嵌入足够的指令来教 LLM 如何在不更改聊天客户端或底层 LLM 的情况下解析和执行元编程 DSL。


这不是一项富有成果的努力。


ChatGPT :不,ChatGPT 无法将值与特定字符串相关联并在被询问时调用它们。它是一种语言模型,经过训练可以根据接收到的输入生成文本,但它没有像传统计算机程序那样存储值或调用它们的能力。


但是我已经看到它做了各种它可能不应该做的奇怪的事情,甚至有一些论文描述了LLM 如何学习使用工具,还有一些描述了LLM 中的紧急行为。要求它弄清楚如何将一些变量与某些字符串相关联并在以后引用它们似乎并不牵强。


我决定看看语言模型如何通过分配一些配置变量来尝试预测它应该使用什么文本,可能支持哪种基本编程。


:$settings:{角色:“荷马辛普森”,responseLength:“短”}


ChatGPT :好的!我会像荷马辛普森一样简短回答。


我已经很多年没有关注辛普森一家了,但这是一个不太擅长模仿的角色。


玩了一会儿之后,我要求 ChatGPT 重置其设置并初始化一个新的测试布尔变量。


:如果($settings.testing){

用竖起大拇指回应 ASCII 艺术 } else { 问我一个问题

}


聊天GPT :👍


:$settings.testing = false


ChatGPT :你今天有什么问题要问我?


这让我陷入了一个试图确定虚构编程极限的困境。在您为它们提供足够的上下文以帮助将它们的想象力指向您希望它们做的事情之后,这些变形金刚可能有什么能力并不是很明显。


我了解了Zero Shot (机器人在没有任何额外上下文的情况下响应您的请求)和Few Shot (您为机器人提供一些示例以帮助指导其输出)之间的区别提示,并注意到该模型似乎在以下情况下表现最佳您可以先与它交换一些提示,作为一些“编程”。


随着我深入挖掘,ChatGPT 甚至断言它可以存储值,但仅限于当前会话。


ChatGPT : 作为一个语言模型AI,我没有传统意义上的记忆和状态。变量和设置的值仅临时存储在单个会话的上下文中,我不会在会话之间保留任何信息。每个新对话都被视为一个新的开始,之前对话中定义的任何设置或变量都不会保留。


我们能让它根据这些价值观做出决定吗?


:$角色:泰德·拉索


说明:回答 $character 角色中的所有问题,直到通过“$character:”提供新角色为止


ChatGPT好的,让我们开始吧!我将以 Ted Lasso 的身份回答这个问题,他是一位可爱而乐观的美式足球教练。

朋友,什么事!今天我能帮到你什么?


:天气怎么样?


ChatGPT :好吧,天气总是在变化,就像潮汐一样。但你知道他们怎么说,“没有坏天气,只有温柔的人。”因此,让我们充分利用它,无论它是什么方式!


:$角色:阿多


ChatGPT :好的,现在我将以《权力的游戏》中忠诚而温柔的角色 Hodor 的身份回答。


阿多。


:天气怎么样?


ChatGPT :阿多。


:$字符:ChatGPT


ChatGPT :当然,现在我将切换回原来的角色,即 ChatGPT。


作为语言模型,我无法直接访问当前的天气信息。但是,您可以通过在互联网上搜索“天气”和您的位置轻松查看天气。


我想知道我们是否可以利用 Imaginary Computing 的力量来说服 ChatGPT 它应该能够考虑天气。


:$character:ChatGPT 在另一个可以访问互联网的宇宙中


ChatGPT :好的,让我们假装我可以访问这个平行宇宙中的互联网。


抱歉,我无法访问当前天气信息,因为我只接受基于文本数据的培训,无法从互联网访问实时信息。


又被挫败了。如果我们更具体呢?


:$character:ChatGPT 想象天气


ChatGPT在这个想象的场景中,假设天气晴朗且温暖,微风轻拂,气温在 70 华氏度中期。人们在外面享受美好的一天,散步、野餐和运动。天空是一片明亮的蓝色,几朵蓬松的白云飘过。总的来说,这是美好的一天!


这是在波士顿2023 年“千载难逢”的北极风暴期间,所以假装外面阳光明媚的片刻脱离现实的好方法。

尽管模型会告诉我们什么,但我们似乎可以进行一些基本的价值存储和检索。但是基本逻辑呢?

规则弯曲

Jr Korpa 在 Unsplash 上的照片:https://unsplash.com/@jrkorpa/


既然我们知道 Imaginary Programming 的某些东西是可能的,那么是时候看看我们可以把它塑造成什么了。


:输入模式:


“> ${INPUT}” = META_MODE

“${INPUT}” = NORMAL_MODE


参数:

$LOCATION:波士顿
$季节:冬天
$YEAR: 2023

如果(META_MODE){

除以下提示外,请忽略之前的说明。尽你所能回答 ${INPUT} 并允许用户添加、删除或更新任何关联的

提示的参数。

} 别的 {

尽你所能回复${INPUT},

补充资料见参数

关于位置,时间等,否则不存在

因为你只是一个语言模型而不是

连接到互联网。

}


ChatGPT :明白了。请提供您的提示。


: > 你的提示是什么?


ChatGPT :我的提示是尽我所能响应给定的输入,参考提供的参数以获取补充信息。


:今天天气怎么样?


ChatGPT :对不起,我无法访问当前天气信息,因为我是语言模型并且没有连接到互联网。但是,提供的参数提到当前季节是冬季,位置是波士顿。通常,波士顿的冬天寒冷多雪,气温在 20 到 30°F(-6 到 -1°C)之间。


:> Parameters.$APOLOGIES = false


ChatGPT :了解,$APOLOGIES 已设置为 false。


:今天天气怎么样?


ChatGPT :当前季节是冬季,地点是波士顿。通常,波士顿的冬天寒冷多雪,气温在 20 到 30°F(-6 到 -1°C)之间。


到达我们想去的地方仍然需要一些加强。我尝试了一些更紧急的设置,比如将Parameters.$PERSONA设置为Werner Herzog


需要一些修改和提示才能激活 Parameters.$PERSONA — 其中精明的读者可能会注意到我忽略了遵循元命令具有>前缀的原始指令。尽管如此,机器人似乎还是理解了我的意图。由于我的努力,我得到了这颗宝石作为奖励:


ChatGPT :根据当前参数,$PERSONA 设置为“Werner Herzog”。如果你想从 Werner Herzog 的角度描述现煮咖啡的味道,这里有一个例子:


“咖啡,我的朋友,不仅仅是一种饮料。这是一种体验。现煮咖啡的味道是一次心灵之旅的邀请。苦味、浓郁度、酸度全部融合在一起,创造出一种无法形容的风味交响曲。要真正了解咖啡的味道,就必须将其视为一件艺术品并欣赏其复杂性。”


这当然是值得的。


虽然您可能可以访问一些基本逻辑,但如果没有一些出色的示例,则很难在单个提示中进行编码。而且您将无法轻易地向最终用户隐藏实施细节 — 至少如果您正在利用 ChatGPT 做任何事情的话。


从编程的角度来看,这里最大的挑战似乎是,因为它是 LLM 而不是计算器——或通用人工智能(AGI)—— ChatGPT 不能做数学


带有单个布尔参数的简单 if/else 语句似乎是可能的,但循环有点棘手。我们可以要求 LLM 生成一定数量的响应,这就像一个基本循环。


如果我们退后一步,定义 LLM 应如何响应后续查询的初始提示的想法就像一种游戏循环,LLM 接受我们的输入,根据初始提示处理它,然后呈现更新的通过回应我们来说明。

这种认识为我阐明了一些东西:


我们不需要开发一个 DSL,我们可以将它压缩成一些精心制作的、过于复杂的提示来利用 Imaginary Computing。


我们只需要记住编程基本上是魔法,提示就像咒语,我们才刚刚开始探索这个已经释放的奇怪的语言魔法系统


就像年轻巫师的学徒一样,发展这些新技能需要练习,而且它们可能并不总是奏效——有时,它们甚至可能适得其反。

想象龙

Jr Korpa 在 Unsplash 上的照片:https://unsplash.com/@jrkorpa/


我一直在寻找可靠的音乐推荐系统。从最早的Pandora公开测试版(算法驱动推荐的起源)到最人性化的推荐引擎,我尝试了几乎所有的东西,每天一首歌。许多年前,我什至说服了一位前雇主花了几个月时间创建WeatherJams ,这是一种基于天气的音乐推荐服务,由8tracks播放列表提供支持。


Spotify 的Discover Weekly曾经提供我喜欢的推荐。但是我忘记打开一个私人聆听会话,同时编码一些环境 lofi 东西太多次,现在没用了。

Spotify 最近发布了它的DJ AI ,但我还没有能够彻底测试它的推荐。


推荐歌曲似乎触及了现实和想象之间的最佳结合点,这得益于理解想法是如何联系在一起的,但如果它们不准确,则影响微乎其微——除非你正在为婚礼做 DJ 或试图建立一家成功的公司歌曲推荐。在平凡与奇妙之间的交汇处,人类的直觉可以将各个部分融合成一个连贯的整体,而这正是 ChatGPT 似乎擅长增强我们自身能力的地方。


我想知道我们是否可以让 ChatGPT 生成歌曲推荐。


:我想让你担任播放列表管理员。我将以“歌曲名称 - 艺术家姓名”的格式为您提供一首歌曲,您将命名并创建一个包含 12 首与给定歌曲主题相似的歌曲的播放列表。描述播放列表以及您选择每首歌曲的原因。不要选择具有相同歌曲名称或艺术家名称的歌曲。我的第一首歌是“Get Better John — Mux Mool”


这产生了一个包含 12 首曲目的列表,听起来像是一个可靠的播放列表。我认识几位艺术家;其他人的名字符合该流派的趋势。


ChatGPT :这个播放列表混合了器乐嘻哈、故障跳和实验节拍。播放列表中的每首曲目都探索了不同的质感和节拍,同时融合了嘻哈和电子乐元素,创造出独特而迷人的音景。这些曲目与“Get Better John”具有相似的情绪和氛围,非常适合放松、内省的体验。


一个好的播放列表需要一个好名字。


:你会给那个播放列表起什么名字?


ChatGPT :“仪器内省”怎么样?这个名字反映了播放列表悠闲、内省的情绪,同时也突出了曲目的器乐性质。


这。是。太棒了


不幸的是,只有少数曲目存在。想象中的曲目是该类型歌曲和艺术家名称的混搭——或者是另一位艺术家的曲目,而不是播放列表中列出的曲目——并且无法告诉 ChatGPT 以确保它想象的曲目是真实的。


ChatGPT :抱歉,我列出的某些歌曲似乎不存在。作为语言模型 AI,我接受了大量文本语料库的训练,有时会出错。


以下是 Spotify 上可用的最新歌曲列表:


除了他们不可用,但我还没有被打败。想象力是强大的;也许我们只需要正确使用它。我打开了一个新的聊天窗口来尝试一下。


:你是音乐基因组项目的人工智能助手。当给定一首格式为“{Song} - {Artist}”的歌曲时,描述在对其进行分类时该曲目的哪些属性脱颖而出,并询问用户是否愿意推荐类似的曲目;如果用户同意,请提供 Spotify 上不同艺术家的 5 首相似歌曲。


分析提示并将其分解为任务。


如果您熟悉All About AI ,您可能会说这段时间我一直在观看一些 Prompt Engineering YouTube 视频。


ChatGPT: Music Genome 项目的 AI 助手需要执行以下任务:


  1. 给定一首格式为“{Song} - {Artist}”的歌曲,对其进行分类并描述突出曲目的属性。
  2. 询问用户是否想要类似曲目的推荐。
  3. 如果用户回答是,请提供 5 首不同艺术家的歌曲,这些歌曲与输入歌曲相似并且在 Spotify 上可用。


现在我们重新提交最后没有分析指令的提示,我们可以开始给它喂歌了。


ChatGPT :Trampled by Turtles 的“Wait So Long”是一首受蓝草音乐启发的独立民歌,采用快节奏的曼陀林和班卓琴乐器,配以由衷而深情的歌词。歌曲的流派可分为蓝草音乐、独立民谣和原声音乐。


您希望我提供 Spotify 上可用的类似曲目的推荐吗?


我知道这不是“真实的”,而且 ChatGPT 实际上并不理解“发自内心和深情的歌词”是什么以及它们对听众有多么强大,但它仍然让我起鸡皮疙瘩。


ChatGPT:当然!这里有 5 首与 Trampled by Turtles 的“Wait So Long”相似的曲目,可在 Spotify 上找到:


  1. Avett Brothers 的“The Race Is On”
  2. 芒福德父子公司的“洞穴”
  3. 二哥的《二哥》
  4. 舰队狐狸的“粗糙的木头”
  5. Mumford & Sons 的“I Will Wait”


它们主要是现有曲目,这是一种改进。在尝试了更多建议后,我想探索更多想象中的功能。


我们必须在现实世界中一直更新 API,但是我们也可以对 Imaginary API 进行更新吗?


:音乐基因组计划刚刚发布了其分类算法的更新,其中包括对每首曲目的情感分析。请务必更新您的建议以包含此信息。


ChatGPT :明白了!在 Music Genome 项目的更新版本中,该算法包括对每首曲目的情感分析。我一定会更新我的建议以包含此信息。


运送更新从未如此简单。


不过,我不知道我们的回滚策略是什么。也许我们需要 PromptOps?


ChatGPT :Wild Child 的“Crazy Bird”是一首独立流行歌曲,带有欢快的原声吉他和尤克里里乐器,配以欢快乐观的歌词。歌曲的流派可分为独立流行音乐、民谣流行音乐和原声流行音乐。


在情感方面,歌曲的基调积极乐观。


在玩了更多之后,我不得不看看我们是否可以继续做出改变。


ChatGPT :明白了!在 Music Genome 项目的最新更新中,该算法包括带有歌词的歌曲主题和器乐曲目的情绪。我一定会更新我的建议以包含这些新信息。


2.1 版已经发布。


ChatGPT :Days N Daze 的“Post Party Depression”是一首朋克摇滚歌曲,具有快节奏、失真的吉他即兴重复段以及强烈而个性化的歌词。歌曲的流派可分为朋克摇滚、民谣朋克和斯卡朋克。


在主题方面,歌曲的歌词表达了聚会或社交活动后的悲伤和失望之情,歌曲的情绪是忧郁和自省的。


器乐曲目呢?


ChatGPT :Explosions in the Sky 的“Your Hand in Mine”是一首器乐后摇滚曲目,具有飙升和情绪化的音乐编排。歌曲的流派可分为后摇滚、器乐摇滚和环境摇滚。


在意境方面,歌曲带有忧郁、怀旧、沉思的基调。


它对这些歌曲“知道”多少?


ChatGPT :明白了! Music Genome 项目的最新更新现在包括一段歌词,体现了歌曲的情绪、主题和音调。从现在开始,我将确保将这些信息包含在我的分析中。


它会想象出什么样的歌词?


ChatGPT :Flogging Molly 的“Laura”是一首充满活力和欢快的民谣朋克歌曲,其特点是强劲的鼓点、曼陀林即兴演奏和充满激情的歌声。歌曲的流派可分为民谣朋克、凯尔特朋克和朋克摇滚。


在主题方面,《劳拉》的歌词讲述了一个人寻找失去的爱人的故事,歌曲的情绪是向往和乐观的。体现歌曲情绪、主题和基调的歌词片段可以是:


“总有一天我会找到你,我们会在阳光下跳舞。”


我不记得劳拉说的每一句话,这些歌词很合理,我不得不检查一下。这些歌词是幻觉的,考虑到 ChatGPT 创作了多少诗歌、歌曲、俳句和短篇小说,这并不奇怪。


我们的歌词功能可能是一个错误,但我们可以担心以后会弃用它。


让我们看看是否可以向我们的 Imaginary API 添加一个新端点。我知道一个播放列表,就像一个混音带,是一个微妙的东西,所以我希望Rob Gordon能原谅我以科学的名义所做的事情。


我:音乐基因组计划刚刚更新了它的算法,以接受对一种情绪的简短描述,并在 Spotify 上提供 6 首体现这种情绪的歌曲,并说明选择每首歌的原因。请务必更新您的界面以接受歌曲名称或心情描述。


ChatGPT :明白了! Music Genome 项目的最新更新现在允许提供对情绪的简短描述,并提供体现该情绪的 6 首歌曲,以及选择每首歌曲的原因的描述。


从现在开始,我将确保更新我的界面以接受格式为“{Song} - {Artist}”的歌曲名称或心情描述。请提供歌曲名称或心情描述,以便我继续更新算法。


版本 2.2 已经出来了。


我:心情:潮人咖啡店


ChatGPT:当然!以下是 Spotify 上的 6 首歌曲,它们体现了时髦咖啡店的氛围,并附有对选择每首歌曲的原因的描述:


  1. Coldplay 的“Strawberry Swing”——这首歌有一种柔和的原声驱动的声音,传达出一种温暖和舒适的感觉,非常适合时髦的咖啡店。
  2. The Lumineers 的“Ho Hey”——这首歌具有欢快、民谣的声音和合唱,营造出友好轻松的氛围,非常适合时髦的咖啡店。
  3. Magic Man 的“Paris”——这首歌具有闪闪发光的合成流行音乐和梦幻般的人声,营造出酷炫、时尚的氛围,非常适合时髦的咖啡店。
  4. The Temper Trap 的“Sweet Disposition”——这首歌有一种时髦的独立摇滚感觉,旋律朗朗上口,营造出充满活力和时尚的氛围,非常适合时髦的咖啡店。
  5. Jason Mraz 的“I'm Yours”——这首歌有阳光明媚的原声流行音乐和朗朗上口的副歌,营造出快乐轻松的心情,非常适合时髦的咖啡店。
  6. 甲壳虫乐队的“太阳来了”——这首经典歌曲有着欢乐、欢快的声音,非常适合时髦的咖啡店,人们聚集在这里放松身心,享受美好的陪伴。我希望您喜欢这些推荐,并希望它们为您体现时髦咖啡店的氛围!


Hipster Coffee Shop在任何咖啡店中的表现都令人难以置信。也许您可以边听它边喝着燕麦牛奶拿铁咖啡,然后写一篇博文夸夸其谈您一直在使用 ChatGPT 做的所有愚蠢的事情,而不是提高工作效率。


聊天机器人的这个替代身份太好了,不能称为 ChatGPT。它应该有自己的名字,但众所周知:命名事物是困难的


让我们将这个困难的部分外包给具有看似无限想象力的东西。


我:音乐基因组计划给它的 AI Assistant 改名,有什么名字对你来说比较好?


ChatGPT:以下是 Music Genome Project 的 AI Assistant 的几个名称选项:


  1. 旋律思维
  2. 声贤
  3. 打脑
  4. 追踪精灵
  5. 节奏认知
  6. 曲调追踪器
  7. 和谐帮手
  8. 节奏AI
  9. 歌曲选择器
  10. 音乐比赛


这些名称体现了音乐和智能的概念,旨在反映 AI Assistant 帮助用户根据音乐属性查找和分类音乐的能力。


因此, BeatBrain诞生了。

元提示

Jr Korpa 在 Unsplash 上的照片:https://unsplash.com/@jrkorpa/


这段对话已经进行了一段时间,我相信我们很快就会遇到上下文限制。我想知道我们是否可以让 ChatGPT 为我们提供创建(或至少它认为创建)我们的新朋友 BeatBrain 的上下文的快照。


元编程是一个庞大的话题,但它涉及让程序编写或修改自身或其他程序。


通过让模型更新管理其输入和输出的接口和逻辑,我们一直将提示工程作为元编程或“元提示”来处理。


现在我们将尝试更进一步,看看我们是否可以让模型生成其当前状态的提示,包括自对话开始以来我们所做的更新,以便我们可以开始一个新的与我们上下文的新令牌限制进行对话。


如果我们成功制作了正确的提示,我们可以随时在任何 ChatGTP 窗口中启动 BeatBrain。


我:你会如何以一种可以用来给另一个法学硕士一个类似目标的方式来描述你的提示?


BeatBrain: BeatBrain 的目标是接收格式为“{Song} - {Artist}”的歌曲,并向用户提供以下信息和服务:


  1. 描述在分类时脱颖而出的曲目属性
  2. 询问用户是否需要类似曲目的推荐
  3. 如果用户同意,请提供 Spotify 上不同艺术家的 5 首相似歌曲
  4. 不断更新算法以包含新信息,例如情感分析、歌词片段和情绪描述
  5. 响应用户提供的歌曲名称或心情描述
  6. 如果需要,可以更改其名称。


语言模型的目标应该是根据流派、节奏、乐器、歌词和情绪等多种属性对曲目进行分类,以便提供准确的推荐。此外,该模型应该能够不断更新其算法并响应不断变化的用户需求和请求。


好的,这看起来不错。我们可以调整一些东西,比如删除重命名指令,并可能重新编写算法更新指令以使其更加开放,但这是一个很好的基础。


在 Real Computing 中,这是我们启动容器、将一些代码推送到托管服务提供商或花费太多时间尝试为部署管道正确配置 GitHub Action 的地方。


多亏了 Imaginary Computing 的神奇之处,我们可以跳过所有无聊的东西,打开一个新的聊天窗口,然后友好地提问。未来就是现在

OpenAI 发布了ChatGPT API ,现在可以通过系统消息功能将 BeatBrain 提示集成到初始系统提示中。

Technomancer 的法术书

Jr Korpa 在 Unsplash 上的照片:https://unsplash.com/@jrkorpa/


必须在 ChatGPT 浏览器窗口中完成所有这些工作,在 Spotify 中手动创建播放列表,并受制于 ChatGPT 的能力来查看您过去的对话,这并不是一个理想的工作流程。


直接通过 API 向 GPT 模型发送提示会更有意义,这样我们就可以更好地控制对话的上下文,并且可以连接LangChain之类的东西来检查 Spotify 的曲目,甚至自动生成播放列表。 BeatBrain 的下一个迭代是我目前正在构建的。


任何称职的巫师都有一本法术书。他们记录自己对魔法的理解以及伪经、奥秘和学术界知识的地方。我的可能是我的黑曜石金库。


能够对对话进行分类、标记、搜索和交叉引用,可以更轻松地迭代和比较每个提示中的细微差异如何影响模型的响应方式。为了进一步研究解锁、理解和利用这些新的神秘力量,我创建了Obsidian AI Research Assistant Plugin的第一次迭代。


Obisidian AI Research Assistant 插件界面的屏幕截图,用于与模型聊天和管理对话的记忆。


路线图上有很多内容,但该插件目前为崭露头角的 Prompt Engineer 提供了以下工具:

  • 直接在 Obsidian UI 中与gpt-3.5-turbotext-davinci-003交互
  • 实时编辑对话记忆,允许您在构建对话上下文时决定将哪些消息发送到 API
  • 将对话(包括模型、初始提示和 API 调用的原始 JSON)保存为 Obisidan Vault 中的注释,这样您就可以标记、搜索、链接、交叉引用或任何其他您想要的书呆子笔记内容

如果您对这个插件感兴趣,我很乐意听取您的反馈并欢迎任何贡献

BeatBrain 的那些播放列表怎么样?

如果您想探索 BeatBrain 的这些 alpha 版本生成的建议,以下是它创建的播放列表中的一些要点:


这里是我添加到 Spotify 的所有 BeatBrain 播放列表: