只要会提需求就可以生成代码 | 讲笑话、贪吃蛇实战 | GPT-engineer

作者:FancyPig | 发布时间: | 更新时间:

相关阅读

视频讲解

本期视频,我们将通过两个案例,讲笑话网页和贪吃蛇游戏,带大家了解下最近Github上非常火爆的开源项目,GPT-engineer,你只需要在main_prompt中输出你的产品需求,之后运行python文件,就可以收到ChatGPT针对你的开发需求提出的几个问题,你需要回答问题来明确开发需求,最终ChatGPT会为你生成相关的代码,非常简单、方便、强大!

图文讲解

如果你想建立一个产品,但不知道如何编程,我有一个好消息给你。在GitHub上有一个叫GPT工程师的项目,目前正在流行,它将让你只用非常简单的提示就能建立软件产品。

这真的像一个人类的工程师一样工作。因此,你将指定你的产品的要求,然后人工智能会问你一些澄清的问题,之后它就开始实施这些问题。在本质上,它与AutoGPT非常相似,但这是专门针对软件工程和编程的,实际上它做得很好。这个项目是由一个社区成员在discord服务器上提请我注意的。在这个视频中,我将告诉你如何在你的本地机器上安装它,然后我们将看看如何在不同的平台和操作系统上正确设置它,最后我们将要求它为我们建立一个非常简单的网站。现在,关于这个项目有几件非常棒的事情,你指定你想要建立的东西,人工智能会要求澄清然后为你建立它。就项目理念而言,它很简单,就是获得价值,然后逐步建立高水平的提示的用户体验,所以用户必须简单地提供高水平的提示词,它让你给人工智能的反馈,它会随着时间的推移记住。默认情况下,这个项目使用GPT-4的API,但是由于我不能访问GPT-4的API,我将向你展示如何使用GPT-3.5 Turbo或ChatGPT的API做同样的事情。作者强调的一个局限性是在这个中缺少思维链提示,他们认为通过增加思维链提示,能够使它更可靠,可能会更紧跟提示。现在首先让我们看看你如何在本地安装这个。因此,为此你实际上需要下载代码库。现在有两个选项,如果你在本地机器上安装了git,你可以简单地复制这个仓库的地址,

然后在上面做一个git clone,在本地克隆这个仓库。如果你没有安装git,你可以简单地将整个repo下载为一个zip文件,然后解压并使用它。现在,因为我在本地机器上安装了git,所以我将使用第一个选项。接下来我们需要克隆仓库,所以为了做到这一点,我们将使用git clone,然后在路径中输入github仓库。然后点击回车,你会看到它创建了一个新的目录或文件夹,在这个文件夹中,仓库的所有内容都存在。让我看看我在哪里,所以我们需要实际移动到这个文件夹,所以我将输入cd gpt-engineer,如果我现在做ls,ls命令基本上是列出所有的文件,所以它显示我所有的仓库内容。

所以,让我们来清除这个。我在ubuntu上使用wsl运行这个,但你也可以在windows或mac上这样做。现在,为了安装所有需要的软件包,这些软件包在requirements.txt文件中列出,我们将创建一个新的虚拟环境,所以我将使用conda create -n,然后让我们称之为gpt-engineer。我已经有一个这样名字的虚拟环境了,所以conda create -n虚拟环境的名字,然后是你想使用的python版本。所以我打算使用3.10.0。为你所有的项目创建独立的虚拟环境总是一个好的做法,这样你就不会把你的Python搞乱了,对吧。好的,它已经告诉我这个虚拟环境是存在的,但在你的情况下,如果你没有设置一个虚拟环境,那么输出结果就会不同。

conda create -n gpt-engineer python=3.10.0

所以接下来我们需要激活它。我将说conda create输入conda activate gpt-engineer这将激活我们的虚拟环境,你在这里可以看到它。

conda activate gpt-engineer

现在我们要安装需求,所以我们要使用pip,所以pip install -r,然后是requirements.txt。

pip install -r requirements.txt

当我们运行这个的时候,因为我已经设置好了一切,所以它告诉我需求已经满足了,但是在你的情况下,输出将看起来有点不同。现在在运行代码之前,我们需要设置我们的openai api key。如果你是在Mac或linux机器上,你将使用这个命令添加OPENAI_API_KEY环境变量,然后等于你的api key。

如果你是在windows系统上,那么你将使用set命令,然后是相同的格式,对吧。所以首先我们需要去抓我们的openai api key。在这里,我在我的openai账户上。我创建了另一个名为gpt-engineer的api密钥。我只是复制了这个。现在这里是你如何设置你的环境变量的。所以输入export环境变量名称,然后是你想设置的属性。正如我所说,这将在linux和mac上工作。如果你要在Windows机器上做这个,那么你就要使用set,然后是openai和我们在这里的一切,对吧。在录制完这段视频后,我将删除这个api key,好了,安装完成了,现在让我们看看我们如何可以运行这个。在这之前,我们实际上需要进入main.py,这里他们已经定义了他们使用的模型。所以默认情况下,它使用的是GPT-4 api。

然而,如果你像我一样,没有访问GPT-4 api,那么我们将使用ChatGPT,即gpt-3.5-turbo,我使用16k版本。

所以有了这个,我们就都准备好了。现在我们如何创建一个新的项目并运行我们的提示。所以他们提供了这个例子(example)文件夹。所以你需要首先创建一个文件夹。你可以把它命名为任何你想要的东西,在这个文件夹中你需要放一个叫做main_prompt的文件。现在这个main_prompt文件将包含你的主提示。所以在这个示例项目中,提示词是我们正在用Python编写分离的文件MVC组件来控制贪吃蛇的键盘。你要尽可能的详细。现在你可以运行这个示例项目,但我想告诉你如何创建你自己的。所以首先你实际上需要创建一个文件夹。让我们称其为网站(website),然后在这个文件夹中我们需要实际创建一个类似的文件。

因此,我将只是复制这个并回去粘贴在这里。好的,现在我们将用我们自己的提示或需求文件替换这个。现在,这是我的示例提示。为一个网站写一个html代码,其中有一个单一的按钮,只用html,不包括java javascript或css。当按钮被按下时,它会从10个笑话的列表中随机显示一个笑话。在网站上以文字形式显示笑话,不要使用弹出式窗口,然后还有一些其他我想要包含的东西。现在,这个网站的想法非常简单。它应该有一个单一的按钮,当按钮被按下时,它将显示一个随机的笑话列表,并改变背景的颜色。

所以,现在让我们假设你提出了要求,那么你需要做的是你需要去终端输入python main.py,这是我们将要运行的文件,然后你需要提供你的项目文件夹的名称。所以在这种情况下,它是网站(website),所以我将输入网站(website),让我们执行这个,但让我把它放在这里,以便我们可以看到所有的执行。

python main.py website

所以它说GPT-4不可用,这就是为什么它实际上恢复到3.5。然后它要求我们提供一些说明,那么按钮的文本内容应该是什么呢?笑话应该按照特定的顺序显示还是随机显示?背景颜色应该变成一组特定的颜色还是任何颜色?这些笑话是否应该硬编码在HTML文件中,还是可以存储在单独的文件中?基本上,就像你正在与一个人类工程师合作,他基于你提供的所有信息向你提出澄清问题。好的,根据我提出的问题,我想到了一些答案。如果你不想提供任何答案,可以简单地输入q,然后它会继续进行。

好的,现在出现了一个问题,每当我提供澄清答案时,它会显示“no”。现在假设没有其他内容要添加,我将输入q,然后单击回车,之后你可以看到它开始创建代码了,对吧。

它在这里显示了代码,创建了一个包含所有笑话的数组。我等待它完成。好的,看起来它已经完成了代码编写。

现在,如果我们回到我们的网站(website)文件夹,你会看到它又创建了几个文件夹,一个是记忆(memory),第二个是工作区(workspace)。

好的,所以我简单地打开文件夹,如果你去工作区,

有一个文本文件,基本上列出了所有显示的东西,所以我们可以直接关闭这个,然后有这个html文件,它实际上创建了一个html文件,所以它不像一个文件格式,所以我们实际上需要给它一个文件格式,所以我只是叫它website.html。

我相信如果你使用的是GPT-4,它可能会更好地遵循说明,但让我们看看网站是什么样子的。

好的,这是我们的简单网站,它在笑话生成器上放了一个标题,然后有个小按钮,请按下我,让我们按一下,很好,

所以它每按一下就显示一个笑话,还可以改变颜色,所以它似乎满足了所有的要求,这很了不起。

现在,这是一个非常简单的例子,我们要求它创建一个单一的文件,但它实际上可以完成很多工作,这很棒。现在你可以用这个建立更复杂的产品,所以作为一个更复杂的项目的例子,让我们看看贪吃蛇的游戏的例子,所以我要做的是我要输入python,然后main.py,现在我们要运行这个例子项目,

python main.py example

所以让我们运行这个项目,现在它问了我一些澄清的问题,你能不能提供更多关于需要分割成独立文件的具体mvc组件的细节,还有是否有任何需要实现的具体键盘控制。我要求ChatGPT写一份需求文件,让工程师用python实现蛇游戏,所以我打算简单地复制所有这些,可以拿给我们的gpt工程师,所以我简单地粘贴了所有内容,现在它开始实现了,所以核心类将是模型视图控制器实用程序,然后有常量,它开始实现main.py函数,然后还有另一个model.py函数,等等,所以当我运行这个例子时,它只创建了这个所有的output.txt文件,其中有所有的代码和相应的文件名,所以我所做的是我继续创建不同的文件,例如controller.py,然后简单地复制了这里的代码,并将其粘贴在那里,然后类似于main.py,我做了同样的事情,所以总共有四个文件是我创建的,现在我们实际上移动到例子工作区文件夹,让我们尝试运行代码,看看我们是否能够真正运行我们的游戏,所以我将说python main.py,

好的,让我们来看看,在这种情况下,它是一个基于文本的它没有创建图形用户界面,但我们说这是蛇头,为了移动它,我将使用这些,所以我们说向上,它正在向上移动,好的,你可以看到它实际上正在移动,这很好,现在我们需要把它向右转。

嘿,这真的有效,这很好。

好的,向左转,现在你也可以看到蛇的长度正在增加,

所以这很棒,也许在需求中我应该告诉它使用图形用户界面来实现,有一个包叫pygame,可以用来在Python中实现游戏,但总的来说,这是很好的,而且我不需要做太多的改动就能让它工作,这本身就很不错。总的来说,GPT工程师(GPT-engineer)是一个很棒的项目,你可以使用它来实现一些非常复杂的软件,我见过一些人用它的帮助构建了一些很酷的东西。如果你遇到了任何问题,请查看我们的Discord服务器,那里有一些伟大的人正在互相帮助,所以请加入我们。我希望你觉得这个视频有用,谢谢观看,我们下次见。

标签:linux, 编程, windows, api, github, 安装, html代码, mac, 网站, 环境变量, key, 项目, ChatGPT, 按钮, GPT-4, 操作系统, GPT-3.5, autogpt, 本地机器, 贪吃蛇, GPT工程师, 软件产品, 提示词, 软件工程, 社区成员, discord服务器, 平台, GPT-4的API, GPT-3.5 Turbo, 思维链提示, 代码库, git clone, zip文件, 虚拟环境, 软件包, requirements.txt, openai api key, set命令, main.py, 模型, 文件夹, 笑话, 笑话列表, 背景颜色, html文件, 贪吃蛇游戏, MVC组件, 需求文件, 键盘控制, 核心类, 模型视图控制器, 常量