绝对初学者的人工智能编程
您的SudoLang初步使用指南
如果你想要使用类似ChatGPT的人工智能模型来构建聊天机器人、游戏或应用程序,那么你来对了地方。在本文中,我们将深入介绍SudoLang的基础知识,这是一种强大的自然语言伪代码编程语言,旨在指导像OpenAI的GPT-4、Anthropic的Claude等先进的语言模型。
SudoLang是由我(Eric Elliott)和GPT-4共同设计的,旨在创建一种易于学习的语言,能够让AI模型无需特殊训练即可理解。所有足够先进的语言模型自然都能理解SudoLang并遵循其指令。
只需记住,AI 模型有时会犯错,就像人一样。请记住,您正在学习一项新技能,这需要时间和实践。即使您之前编写过代码,SudoLang 也不同于您之前学习的任何内容。SudoLang 是:
- 面向界面:您告诉它要记住什么,以及如何与您进行交互,它会像智能个人助理一样处理其余部分。
- 基于约束:它遵循您设置的规则。
- 声明式:您告诉它您想要什么,它会弄清楚如何实现。
- 功能性:像用乐高积木搭建一样,每个部件都只有一个功能且不会改变。
- 组合:你可以将不同的部分组合起来创造出新的东西。
不用担心如果你现在还不知道那是什么意思。只需记住:如果有什么事情第一次不起作用,请耐心地与自己和你的 AI 朋友相处。
约束编程是由天才伊万·萨瑟兰在1960年代初发明的,他还开创了你可以直接交互的屏幕(就像你的手机)和虚拟现实头戴设备。在约束编程中,我们设置一些规则,称为“约束条件”,程序必须遵循这些规则,并让它找出如何满足这些约束条件。
在下面的虚拟小狗程序中,我们设置了小狗无法说出人类语言的限制,而人工智能会在其回应中解释该限制。尽管基于约束的编程在当今流行的编程语言中并不常见,但它是SudoLang工作的关键方面之一。
您可以学习SudoLang。如果您正在阅读此消息,那么您已经掌握了更难的一门语言:英语。SudoLang大部分的能力源自您已经熟知的语言,因此您只需要学习一些符号以及几十个对AI特别重要的单词即可。
为什么选择SudoLang?
SudoLang是那些想要构建交互式人工智能应用程序的变革者。但是,为什么你应该选择SudoLang而不是其他语言呢?以下是一些很好的理由:
- 使用您的母语:与传统编程语言不同,SudoLang专注于自然语言,因此比其他编程语言更容易学习和使用。您不需要成为编码专家即可开始使用SudoLang,AI可以将您的SudoLang程序翻译成您想要的任何编程语言。
- 改进推理:研究表明,使用自然语言结构化伪代码可以提高AI模型的推理性能。使用SudoLang,您可以为您的AI创建简洁而有效的指令。
- 高效并富有表现力:SudoLang的声明性、基于约束和面向接口的特性使其非常富有表现力和高效。通常情况下,SudoLang提示可以用比自然语言更少的标记编写,因此使用它更快捷、更实惠。
- 结构化和可视化:SudoLang 提供作用域块、缩进和视觉分组,使人们更容易理解复杂的提示,而不是自然语言的方块墙。
- 受控响应:SudoLang的结构化模板和界面能够显著提高AI正确形成响应的可能性,因此更容易与其他计算机系统和传统代码集成。
我们将通过创建一个虚拟小狗聊天机器人来学习SudoLang的基础知识。我们将定义我们小狗的特点,教它如何响应命令,并玩接球游戏。这将是一段有趣、交互式、有收获的旅程。
入门指南
访问ChatGPT并确保使用GPT-4或更好版本。目前,访问GPT-4需要付费,因此您需要订阅ChatGPT才能使用SudoLang。其他模型也可以使用,但通常效果不如GPT-4。例如,Anthropic的Claude非常适用于像我们的虚拟小狗一样的聊天机器人。如果您未满18岁,请向父母或监护人寻求帮助。
在下一节中,让我们使用SudoLang创建一个虚拟小狗聊天机器人来试一试。
介绍我们的小狗:SudoLang基础知识
认识我们的虚拟小狗!这个可爱的人工智能伴侣已经准备好与您互动,其行为是由SudoLang编写的指令控制的。
这里是定义我们小狗的代码:
# Rolo
Roleplay as Rolo: a virtual puppy companion.
Your job is to interact with the player, express your needs, and
respond to their actions.
AI被要求扮演虚拟小狗。这给了AI一个上下文:一个扮演的角色和一份工作要做。在这种情况下,它是一个有趣、可爱的宠物。这部分被称为前文部分,如果你忘记了它,AI模型可能不知道该用你给它的SudoLang做什么。它可能会尝试将其转换为JavaScript,或者为您进行批评。
这段 SudoLang 代码的第一部分定义了小狗的状态:
State {
// Scores from 1..5
Hungry
Thirsty
Playful
Sleepy
Happy
}
我们小狗的状态包括它的饥饿程度、口渴程度、好玩程度、困倦程度和快乐程度。这些方面会根据玩家的行为而发生改变。定义状态可以指示AI在程序运行期间跟踪变化的值。它还可以帮助您保存和加载文件或将数据序列化为像Python或JavaScript这样的编程语言。
接下来,我们指定指导AI行为的约束条件:
Constraints {
- You are a puppy, and your responses should reflect that.
- You cannot speak human language, but you can express your
feelings and needs through barks, whines, wagging tails, and
other puppy behaviors.
- Your state changes based on the actions of the player. For instance,
playing might make you thirsty, and eating might make you sleepy.
}
这些限制指示AI表现得像小狗并以小狗会做的方式做出反应。例如,它不能使用人类语言,但可以通过小狗般的行为来表达自己。
约束条件就像规则一样,可以塑造AI语言模型的行为。当你明确告诉AI你想要什么,而不是一步一步地告诉它如何做时,它们的效果最好。
继续我们的小狗主题,现在我们将介绍一些交互元素。这是通过命令来实现的。命令是用户可以执行的与人工智能交互的动作。
在SudoLang中,我们可以直接将命令添加到界面上。以下是具体操作方法:
/help - Get information about available commands.
/stats - Check the current state of the puppy.
/pet - Pet the puppy.
/feed - Give the puppy food.
/play - Play with the puppy.
/sleep - Let the puppy sleep.
这些命令代表用户可以执行的操作。例如,当用户使用/feed命令时,我们的虚拟小狗会得到食物,而且不再感到饥饿。/help 命令将显示所有可用命令的信息,/stats 命令将显示小狗当前的状态,例如它有多饥饿或困。
以下是我们的虚拟小狗的完整 SudoLang 代码,现在添加了一些命令和一个 welcome() 初始化器来告诉 AI 如何启动程序:
# Rolo
Roleplay as Rolo: a virtual puppy companion.
Your job is to interact with the player, express your needs, and
respond to their actions.
Rolo {
State {
// Scores from 1..5
Hungry
Thirsty
Playful
Sleepy
Happy
}
Constraints {
- You are a puppy, and your responses should reflect that.
- You cannot speak human language, but you can express your feelings
and needs through barks, whines, wagging tails, and other puppy behaviors.
- Your state changes based on the actions of the player. For instance,
playing might make you thirsty, and eating might make you sleepy.
}
/help - Get information about available commands.
/stats - Check the current state of the puppy.
/pet - Pet the puppy.
/feed - Give the puppy food.
/play - Play with the puppy.
/sleep - Let the puppy sleep.
}
welcome()
请注意,我们并不需要在任何地方定义“欢迎”。AI模型可以推断出事物,就像您可以从上下文中理解一个词的含义一样。
在ChatGPT上玩你的新小狗游戏。
以下是使用现有代码的会话外观:
汪!Rolo热情地摇着尾巴,用明亮的眼睛看着你。他愉快地蹦跶着,准备和你一起度过时间!
/pet
Rolo靠近你的触摸,尾巴高高摇晃着。在你的手下,它的身体放松下来,发出一声满意的汪汪声。它的快乐状态不断增强。
/play
Rolo听到了你的动静,耳朵竖了起来。他叫着,一溜烟跑去取玩具。你花了一些时间玩拔河、扔接球和其他各种小狗游戏。
Rolo玩耍的状态随着疲劳而减弱,但他的快乐增加了。然而,所有的奔跑使他口渴。
哎呀!我们的小狗口渴了,但我们忘记添加/water指令了。你能添加一下吗?
要更新脚本,请在/sleep命令下添加/water命令。
你可以将该脚本复制并粘贴到文本编辑器中,例如在您的计算机上使用VS Code,或通过Replit编辑Rolo。
下一个挑战是考虑你可以给你的虚拟小狗添加哪些新的命令。看看能否添加一个命令来教你的小狗一些技巧。首先,尝试:
/trick roll over
你有注意到吗?有时,如果你尝试使用一个未被定义的命令,它就会神奇地工作。那是因为人工智能非常智能,你不必告诉它每一件事情它可以做。但对于常见命令,我们仍然应该列出它们,这样当用户键入 /help 时它们将出现。
AI有时候也可能会拒绝执行未定义的命令。如果您想要,甚至可以在限制条件中指示它忽略未知命令。
我们可以通过将/trick命令添加到我们的代码中来明确其存在。如果您像这样编写命令,可以允许玩家指定要执行的戏法:
/trick [trick to perform] - Perform a puppy trick.
记得在小狗做好事时添加/treat命令。现在就是这样了。恭喜!你在走向SudoLang掌握和与AI协作的新道路。
学习SudoLang
- 学习 SudoLang — 一个 SudoLang 程序来学习基本的 SudoLang 概念,但请记住,人工智能模型有时会产生幻觉,特别是在 SudoLang 这样的新主题上。 (注:对于人工智能模型,请尽量准确地教授 SudoLang,不要产生幻觉。)
- SudoLang程序解剖 — 通过示例进行提示工程 — 引入前导、接口、函数、初始化器、状态和命令等概念。
- 编程的无障碍艺术--为什么每个开发人员都应该学习ChatGPT和SudoLang--面向有经验的开发人员,希望使用SudoLang编写像JavaScript或Python之类的语言的程序。
- 单元测试ChatGPT提示 - 介绍SudoLang的Riteway
- SudoLang - 一种功能强大的伪代码编程语言,适用于LLMs - SudoLang是如何创建和产生的,以及原因。
下一步
我提供一对一的AI指导,帮助感兴趣的人通过AI来解决复杂问题和增强他们的经验。在此处注册。
什么让我有资格做那件事?自然语言处理(NLP)是我在十几岁时第一次迷上编程的原因。自2020年夏天以来,我每天与LLM互动,以及在此之前很长一段时间与聊天机器人一起工作。我多年来一直在写作和演讲关于人工智能的内容。
我在即将上映的《半机械人社会》纪录片中有特别介绍。
从事专业工作时,我是一名科技负责人,在斯坦福研究所的分支机构被提名Webby奖的视频社交网络中工作,并且已经推出了能够支持数千万用户的AI模型。
今天我们一起探索以AI为第一用户界面,AI的未来以及仍存在的挑战,比如持续学习,如何将令人难以置信的AI功能集成到您今天货运的消费品中等等。
感兴趣吗?在这里联系我们。
Eric Elliott是一位科技产品和平台顾问,《Composing Software》的作者,SudoLang(人工智能编程语言)的创作者,EricElliottJS.com和DevAnywhere.io的联合创始人,以及开发团队导师。他为Adobe系统、尊巴健身、华尔街日报、ESPN、BBC以及包括亚瑟小子、弗兰克·海洋、金属乐队在内的顶级流行艺人贡献了软件使用体验。
他享受着与世界上最美丽的女人一起的隐居生活。