社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

GPT-Engineer一夜爆火!一个提示生成整个代码库,GitHub狂飙19k星

夕小瑶科技说 • 1 年前 • 312 次点击  
 夕小瑶科技说 分享
 来源 | 新智元

动嘴写代码指日可待!AI代码生成明星项目GPT-Engineer一夜爆火,短短几天狂揽19k星。

AutoGPT之后,又一个明星项目诞生了!

GPT-Engineer一夜之间火遍全网,GitHub项目已经狂揽19k星。

这是一个根据指示生成代码的AI工具,你只需要「动动嘴」,就能直接构建整个代码库。

项目地址:
https://github.com/AntonOsika/gpt-engineer

甚至,它能学习你的代码风格,短短几分钟就能让你搞定编码项目。

网友表示,我们离AGI又进了一步。

程序猿又要被淘汰一波了。

一句提示创建代码库

短短一周,GPT-Engineer在GitHub热度狂飙,引众多开发者围观。

究竟有多大的魅力?

项目主要作者Anton Osika在6月11日首次推出GPT-Engineer,并介绍了这款AI工具最大的特点:

  • 一个提示就能生成一个代码库
  • 提出需要澄清的问题
  • 生成技术规范
  • 编写所有必要代码
  • 易于添加自己的推理步骤、修改和实验
  • 项目开源
  • 分分钟让你完成编码

畅想下,未来无需编写一行代码,开发者创建一个项目就像和好友聊天那样简单。

这不仅仅是一个项目,而是对未来的一瞥。

GPT-Engineer预示着未来软件创造将是一个人机共话的时代。

另外,根据GitHub介绍了GPT-Engineer主要项目理念:

  • 简单易用,能够为用户提供价值;
  • 灵活且易于添加新的「AI步骤」;
  • 支持高级提示,可以记住用户反馈;
  • 能快速在AI和人类之间快速切换;
  • 所有计算都是「可恢复的」,并持久地保存到文件系统。

这个项目独特地方在于,开发者在文本文件中提交需求,GPT-Engineer不是无条件接受这些要求,而是提出许多详细的问题来让程序员澄清缺失的细节。

整个过程分两个阶段执行,即(1)需求细化促进阶段和(2)软件构建阶段。

第一阶段的步骤是:

用户提供的包含软件需求的文本文件被提交给GPT-Engineer,并被放置在OpenAI的GPT的初始消息中,同时还包括确定澄清问题的指示。

GPT-Engineer系统接收来自OpenAI GPT-4的反馈,了解哪些需求需要澄清,并回应提示用户澄清的问题。

GPT-Engineer会将这一过程循环,直到所有问题澄清到OpenAI GPT-4满意为止。

第二阶段的步骤是:

前一阶段提炼的需求被打包,并与OpenAI的GPT指令(即系统提示)和另外一套GPT-Engineer希望看到的输出指令(即用户提示)一起包装起来。

GPT-Engineer收到来自OpenAI GPT-4的响应,然后…

GPT-Engineer为用户提供指令的软件项目创建源代码文件。

贪吃蛇上手实操

说了这么多,不如上手试练一番。做一个多人可玩的贪吃蛇网页版游戏。

你只需要输入一些关键提示:

使用有MVC组件的Python后端,视图需要将状态流传输给所有玩家,用你所生成的代码直接直接运行html和js。

对于这个游戏代码生成,GPT-Engineer就会让你继续回答一些细节的问题。

游戏规则和机制:确切给出贪吃蛇如何移动、生长,以及与其他玩家如何交互,有没有什么power-ups,或者特殊游戏元素?

玩家互联:有多少玩家能加入游戏,是否有游戏大厅或者匹配?

游戏状态更新:多久更新一次游戏状态,多久把状态流传输给玩家,延迟率是?

用户界面:游戏界面长什么样?有任何特别设计需求和喜好吗?

游戏控制:玩家如何控制蛇?是否有其他控制或设置?

游戏结束状况:游戏如何结束?是否有评分体系或排行榜?

代码结构:对Python后端、HTML和JavaScript代码的组织有什么具体要求吗?

当你简单回答完这些问题后,GPT-Engineer就根据这些信息,给出了能够实现目标所需的文件、类和方法的列表。

具体步骤唰唰唰地来了。

最后一款完美的贪吃蛇游戏代码就完成了。

网友热评

网友表示,「澄清问题」是真正使GPT-Engineer脱颖而出的原因,因为修复生成代码中的问题往往比编写代码本身需要更多的时间。这似乎是朝着正确方向迈出的一大步。

真希望我上学时候就有这样利器了。

还有网友对GPT-Engineer和GPT-4的区别感到困惑。

然而,这个项目火虽火,一位网友测试了GPT-Engineer,给出了体验:

难设置

实际上不是创建文件,只是让你从命令行中运行一次(即不能调试)

与ChatGPT4的能力相当

最后总结,理想很丰满,现实很骨感。

还有网友对基准指出了问题,

gpt-engineer做了几个简单的编程任务,并将它们作为基准。它可以为你快速开发一个currency_converter,但不能正确编码一个pomodoro_timer(还没有!)

安装方法

要么选择稳定版(stable),要么选择开发版(development)。

对于稳定版本:

pip install gpt-engineer

对于开发版:

git clone git@github.com:AntonOsika/gpt-engineer.git
cd gpt-engineer
make install
source venv/bin/activate

设置

使用GPT4访问权限的API密钥运行:
export OPENAI_API_KEY=[your api key]

运行

创建一个空文件夹。如果在repo中,你可以运行:

cp -r projects/example/ projects/my-new-project
在新文件夹中填写 main_prompt 文件
运行:gpt-engineer projects/my-new-project

结果

检查 projects/my-new-project/workspace 中生成的文件

限制

使用额外的思想链提示,如Reaffon,应该能够让其更可靠,并且不会错过主要提示中请求的功能。

特点

你可以通过编辑 identity 文件夹中的文件来指定AI智能体的「身份」。

编辑「身份」和改进 main_prompt 是让智能体记住项目之间的事情的方法。

steps.py 中的每个步骤都将其与GPT4的对话历史记录存储在logs文件夹中,并且可以使用 scripts/rerun_edited_message_logs.py 重新运行。

项目主要作者

Anton Osika

Anton Osika是Depict.ai的首席技术官。这是一家创建机器学习推荐系统的初创公司,通过尖端的机器学习、计算机视觉和自然语言处理来理解产品。

就在4小时前,他还发了一条动态称,GPT-Engineer已经跃升到17k星,一点也没有减速迹象。

参考资料

 [1]https://github.com/AntonOsika/gpt-engineer
 [2]https://twitter.com/rowancheung/status/1670829363137499137
 [3]https://twitter.com/antonosika/status/1667641038104674306
 [4]https://twitter.com/antonosika

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/156509
 
312 次点击