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