動(dòng)嘴寫(xiě)代碼指日可待!AI 代碼生成明星項(xiàng)目 GPT-Engineer 一夜爆火,短短幾天狂攬 19k 星。
AutoGPT 之后,又一個(gè)明星項(xiàng)目誕生了!
GPT-Engineer 一夜之間火遍全網(wǎng),GitHub 項(xiàng)目已經(jīng)狂攬 19k 星。
這是一個(gè)根據(jù)指示生成代碼的 AI 工具,你只需要「動(dòng)動(dòng)嘴」,就能直接構(gòu)建整個(gè)代碼庫(kù)。
甚至,它能學(xué)習(xí)你的代碼風(fēng)格,短短幾分鐘就能讓你搞定編碼項(xiàng)目。
網(wǎng)友表示,我們離 AGI 又進(jìn)了一步。
程序猿又要被淘汰一波了。
一句提示創(chuàng)建代碼庫(kù)
短短一周,GPT-Engineer 在 GitHub 熱度狂飆,引眾多開(kāi)發(fā)者圍觀。
究竟有多大的魅力?
項(xiàng)目主要作者 Anton Osika 在 6 月 11 日首次推出 GPT-Engineer,并介紹了這款 AI 工具最大的特點(diǎn):
- 一個(gè)提示就能生成一個(gè)代碼庫(kù)
- 提出需要澄清的問(wèn)題
- 生成技術(shù)規(guī)范
- 編寫(xiě)所有必要代碼
- 易于添加自己的推理步驟、修改和實(shí)驗(yàn)
- 項(xiàng)目開(kāi)源
- 分分鐘讓你完成編碼
暢想下,未來(lái)無(wú)需編寫(xiě)一行代碼,開(kāi)發(fā)者創(chuàng)建一個(gè)項(xiàng)目就像和好友聊天那樣簡(jiǎn)單。
這不僅僅是一個(gè)項(xiàng)目,而是對(duì)未來(lái)的一瞥。
GPT-Engineer 預(yù)示著未來(lái)軟件創(chuàng)造將是一個(gè)人機(jī)共話的時(shí)代。
另外,根據(jù) GitHub 介紹了 GPT-Engineer 主要項(xiàng)目理念:
- 簡(jiǎn)單易用,能夠?yàn)橛脩籼峁﹥r(jià)值;
- 靈活且易于添加新的「AI 步驟」;
- 支持高級(jí)提示,可以記住用戶反饋;
- 能快速在 AI 和人類之間快速切換;
- 所有計(jì)算都是「可恢復(fù)的」,并持久地保存到文件系統(tǒng)。
這個(gè)項(xiàng)目獨(dú)特地方在于,開(kāi)發(fā)者在文本文件中提交需求,GPT-Engineer 不是無(wú)條件接受這些要求,而是提出許多詳細(xì)的問(wèn)題來(lái)讓程序員澄清缺失的細(xì)節(jié)。
整個(gè)過(guò)程分兩個(gè)階段執(zhí)行,即(1)需求細(xì)化促進(jìn)階段和(2)軟件構(gòu)建階段。
第一階段的步驟是:
用戶提供的包含軟件需求的文本文件被提交給 GPT-Engineer,并被放置在 OpenAI 的 GPT 的初始消息中,同時(shí)還包括確定澄清問(wèn)題的指示。
GPT-Engineer 系統(tǒng)接收來(lái)自 OpenAI GPT-4 的反饋,了解哪些需求需要澄清,并回應(yīng)提示用戶澄清的問(wèn)題。
GPT-Engineer 會(huì)將這一過(guò)程循環(huán),直到所有問(wèn)題澄清到 OpenAI GPT-4 滿意為止。
第二階段的步驟是:
前一階段提煉的需求被打包,并與 OpenAI 的 GPT 指令(即系統(tǒng)提示)和另外一套 GPT-Engineer 希望看到的輸出指令(即用戶提示)一起包裝起來(lái)。
GPT-Engineer 收到來(lái)自 OpenAI GPT-4 的響應(yīng),然后…
GPT-Engineer 為用戶提供指令的軟件項(xiàng)目創(chuàng)建源代碼文件。
貪吃蛇上手實(shí)操
說(shuō)了這么多,不如上手試練一番。做一個(gè)多人可玩的貪吃蛇網(wǎng)頁(yè)版游戲。
你只需要輸入一些關(guān)鍵提示:
使用有 MVC 組件的 Python 后端,視圖需要將狀態(tài)流傳輸給所有玩家,用你所生成的代碼直接直接運(yùn)行 html 和 js。
對(duì)于這個(gè)游戲代碼生成,GPT-Engineer 就會(huì)讓你繼續(xù)回答一些細(xì)節(jié)的問(wèn)題。
游戲規(guī)則和機(jī)制:確切給出貪吃蛇如何移動(dòng)、生長(zhǎng),以及與其他玩家如何交互,有沒(méi)有什么 power-ups,或者特殊游戲元素?
玩家互聯(lián):有多少玩家能加入游戲,是否有游戲大廳或者匹配?
游戲狀態(tài)更新:多久更新一次游戲狀態(tài),多久把狀態(tài)流傳輸給玩家,延遲率是?
用戶界面:游戲界面長(zhǎng)什么樣?有任何特別設(shè)計(jì)需求和喜好嗎?
游戲控制:玩家如何控制蛇?是否有其他控制或設(shè)置?
游戲結(jié)束狀況:游戲如何結(jié)束?是否有評(píng)分體系或排行榜?
代碼結(jié)構(gòu):對(duì) Python 后端、HTML 和 JavaScript 代碼的組織有什么具體要求嗎?
當(dāng)你簡(jiǎn)單回答完這些問(wèn)題后,GPT-Engineer 就根據(jù)這些信息,給出了能夠?qū)崿F(xiàn)目標(biāo)所需的文件、類和方法的列表。
具體步驟唰唰唰地來(lái)了。
最后一款完美的貪吃蛇游戲代碼就完成了。
網(wǎng)友熱評(píng)
網(wǎng)友表示,「澄清問(wèn)題」是真正使 GPT-Engineer 脫穎而出的原因,因?yàn)樾迯?fù)生成代碼中的問(wèn)題往往比編寫(xiě)代碼本身需要更多的時(shí)間。這似乎是朝著正確方向邁出的一大步。
真希望我上學(xué)時(shí)候就有這樣利器了。
還有網(wǎng)友對(duì) GPT-Engineer 和 GPT-4 的區(qū)別感到困惑。
然而,這個(gè)項(xiàng)目火雖火,一位網(wǎng)友測(cè)試了 GPT-Engineer,給出了體驗(yàn):
難設(shè)置
實(shí)際上不是創(chuàng)建文件,只是讓你從命令行中運(yùn)行一次(即不能調(diào)試)
與 ChatGPT4 的能力相當(dāng)
最后總結(jié),理想很豐滿,現(xiàn)實(shí)很骨感。
還有網(wǎng)友對(duì)基準(zhǔn)指出了問(wèn)題,
gpt-engineer 做了幾個(gè)簡(jiǎn)單的編程任務(wù),并將它們作為基準(zhǔn)。它可以為你快速開(kāi)發(fā)一個(gè) currency_converter,但不能正確編碼一個(gè) pomodoro_timer(還沒(méi)有?。?/p>
安裝方法
要么選擇穩(wěn)定版(stable),要么選擇開(kāi)發(fā)版(development)。
對(duì)于穩(wěn)定版本:
- pip install gpt-engineer
對(duì)于開(kāi)發(fā)版:
- git clone git@github.com:AntonOsika/gpt-engineer.git
- cd gpt-engineer
- make install
- source venv/bin/activate
設(shè)置
使用 GPT4 訪問(wèn)權(quán)限的 API 密鑰運(yùn)行:
- export OPENAI_API_KEY=[your api key]
運(yùn)行
創(chuàng)建一個(gè)空文件夾。如果在 repo 中,你可以運(yùn)行:
- cp -r projects/example/ projects/my-new-project
- 在新文件夾中填寫(xiě) main_prompt 文件
- 運(yùn)行:gpt-engineer projects / my-new-project
結(jié)果
- 檢查 projects / my-new-project / workspace 中生成的文件
限制
使用額外的思想鏈提示,如 Reaffon,應(yīng)該能夠讓其更可靠,并且不會(huì)錯(cuò)過(guò)主要提示中請(qǐng)求的功能。
特點(diǎn)
你可以通過(guò)編輯 identity 文件夾中的文件來(lái)指定 AI 智能體的「身份」。
編輯「身份」和改進(jìn) main_prompt 是讓智能體記住項(xiàng)目之間的事情的方法。
steps.py 中的每個(gè)步驟都將其與 GPT4 的對(duì)話歷史記錄存儲(chǔ)在 logs 文件夾中,并且可以使用 scripts / rerun_edited_message_logs.py 重新運(yùn)行。
項(xiàng)目主要作者
Anton Osika
Anton Osika 是 Depict.ai 的首席技術(shù)官。這是一家創(chuàng)建機(jī)器學(xué)習(xí)推薦系統(tǒng)的初創(chuàng)公司,通過(guò)尖端的機(jī)器學(xué)習(xí)、計(jì)算機(jī)視覺(jué)和自然語(yǔ)言處理來(lái)理解產(chǎn)品。
就在 4 小時(shí)前,他還發(fā)了一條動(dòng)態(tài)稱,GPT-Engineer 已經(jīng)躍升到 17k 星,一點(diǎn)也沒(méi)有減速跡象。
參考資料:
https://github.com/AntonOsika/gpt-engineer
https://twitter.com/rowancheung/status/1670829363137499137
https://twitter.com/antonosika/status/1667641038104674306
https://twitter.com/antonosika
本文來(lái)自微信公眾號(hào):新智元 (ID:AI_era)
廣告聲明:文內(nèi)含有的對(duì)外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時(shí)間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。