
該項目是為了失敗的
(直到沒有)
重新啟動直到起作用
該項目旨在以進化方式使用OpenAI API生成代碼。這意味著每一代都將基於上一代以使代碼更好,將其擴展,重構或修復錯誤。
該項目“ Fail2”是第二版,它源自其前身“ Fail1”,並結合了改進和其他功能。
生成的代碼將在帆布元素上的瀏覽器中執行,並旨在使用JavaScript創建2D應用程序。
本指南將引導您完成使用由OpenAI的GPT-3.5語言模型供電的生成過程的過程,以創建創新的JavaScript Canvas2D項目。您將學習如何安裝依賴項,添加API密鑰,運行第一代並探索結果。
確保系統上安裝了以下內容:
將存儲庫克隆到您的本地計算機:
git clone [email protected]:failfa-st/fail2.git導航到項目目錄:
cd fail2通過運行安裝所需的依賴項:
npm install在https://platform.openai.com/signup上創建一個帳戶,並獲取您的API密鑰。
將.env.example文件複製到.env :
cp .env.example .env打開.env文件並添加您的OpenAI API密鑰:
OPENAI_API_KEY=your_api_key_here生成的代碼將在本地開發服務器中運行,因此讓我們先開始此此操作
npm run dev這將在您的瀏覽器中打開http:// localhost:8080。如果沒有,請自己打開並保持打開狀態。
要啟動代碼生成過程,請運行以下命令:
node base-default.js -p "<prompt>" -g <generations> -P "<persona>" -t <temperature> -c -m "<model>" -n "<negative_prompt>" -s <seed>
或使用一個基本示例之一:
node base-default.js -p "matrix code" -g 3
node base-art.js -p "flow field" -g 10 -c -s 123456789
node base-game.js -p "arcade game asteroids" -g 5 -n "audio files, images, alert" -P "JavaScript expert, game developer, retro lover"
| 選項 | 別名 | 類型 | 預設 | 描述 |
|---|---|---|---|---|
--prompt | -p | string | "extend the code" | 為生成的代碼設置提示 |
--negativePrompt | -n | string | "" | 為生成的代碼設置負面提示 |
--generations | -g | number | 1 | 設置生成代碼的世代數 |
--persona | -P | string | "JavaScript expert, performance expert" | 設置生成代碼的角色 |
--temperature | -t | number | 0.2 | 設置生成代碼的溫度 |
--seed | -s | number | -1 | 設置生成代碼的種子( -1創建隨機種子) |
--model | -m | string | "gpt-3.5-turbo" | 設置用於生成代碼的模型 |
--clean | -c | boolean | false | 如果要刪除任何先前生成的代碼,請設置為true |
--temperature標誌控制生成的代碼中的創造力水平,範圍為0到2。更高的值會導致更具創新的代碼,但也增加了錯誤或無效的JavaScript的風險。為了獲得最佳結果,請使用低於0.5的值來平衡創造力和可靠性。默認值為0.2。
--negativePrompt標誌以“ no”為止,以防止生成的代碼中的不良行為否定了提示的每個分隔部分。例如, --negativePrompt "audio, images"變為"no audio, no images" 。此功能有助於創建更安全,更好的代碼,但可能無法消除所有不希望的行為。
--model標誌可用於指定用於生成代碼的模型。默認模型為"gpt-3.5-turbo" 。但是,您還可以選擇使用"gpt-4"模型,該模型提供更多的令牌,但可能導致不希望的行為。
使用
"gpt-4"模型將顯著增加生成代碼所需的時間,因為它比默認的"gpt-3.5-turbo"模型慢。
要了解有關可用模型及其各自功能的更多信息,請參考OpenAI文檔。
--seed標誌為代碼生成中使用的隨機數生成器設置種子。默認情況下,種子設置為0到100000000之間的隨機數。如果將自定義種子帶有--seed標誌,則將使用該值。
種子是一個偽隨機數,可以產生唯一的結果,但每次都不會相同。
該項目帶有三個入門文件, base-default.js (無導入), base-art.js (noingsjs and color)和base-game.js (noingsjs,color and color and tone),這提供了一個基本的起點和添加依賴項的示例。
配x 入門文件必須始終從base-開始 -
為避免額外的令牌成本,請創建一個自定義基本文件,例如
base-no-changelog.js而無需ChangElog評論。
該項目使用OpenAI API生成代碼,並遵循一組指令和約束,以產生可以擴展,重構或固定的代碼。每一代代碼都基於上一個代碼,並旨在改進代碼。該項目使用不同的角色來生成代碼,並可以創建指定的代碼數量。生成的代碼使用更漂亮的格式進行格式,並保存在單獨的文件中。該項目還跟踪更改並提供更改。此外,它可以刪除先前生成的代碼。該項目可以處理錯誤。
生成的代碼寫入文件, project/src/index.js ,該文件由WebPack編譯。 WebPack開發服務器運行,使您可以隨著代碼生成過程的發展查看實時更改。
該項目使用兩個主要文件:
base.js :此文件使用OpenAI API管理代碼生成過程,將生成的代碼寫入文件(包括project/src/index.js ),並處理代碼生成期間可能發生的錯誤。base-*.js :此文件是代碼生成過程的起點。它包含初始代碼段,並通過調用base.js的必要函數來設置所有動態以生成代碼的動態。 要繼續一代,要么是因為您對此感到滿意,要么需要糾正問題,請使用以下格式: node generation-xxxx.js -g <generation + 1> -p "<prompt>"
1。在第4代固定故障
在此示例中,第四代程序一代存在問題,導致背景太黑,遊戲玩家是看不見的。要解決此問題,用戶運行以下命令:
node generation-0004.js -g 5 -p "fix: dark background, player invisible" -c
該命令始於第4代( generation-0004.js ),並轉移到下一代(第5代),同時提供了提示,以解決背景黑暗和播放器可見性問題。
2。在第3代添加評分系統
在這種情況下,用戶對遊戲在第三代的進度感到滿意,並希望添加評分系統。為此,他們運行以下命令:
node generation-0003.js -g 4 -p "feat: implement scoring" -c
該命令從第3代( generation-0003.js )啟動,並運行到下一代(第4代),並將提示結合到遊戲中。
3。從第5代保留流場,但無視後代
在這種情況下,用戶欣賞第五代產生的流場,但對後代的結果不滿意。為了達到所需的結果,他們執行以下命令:
node generation-0005.js -g 10 -p "flow field" -c
該命令始於5代( generation-0005.js ),一直持續到第10代,從第5代維持流場,並忽略了兩者之間的不希望的結果。