* 'main' of github.com:AntonOsika/gpt-engineer: Mark test as failed because it requires OpenAI API access currently `black` Create test_ai.py fix to_files execute_workspace -> gen_entrypoint; execute_entrypoint Ignore my-new-project/ Added CODE_OF_CONDUCT.md to the .github directory (#147) make pre commit pass in the whole codebase (#149) Create ci.yaml Fix linting Add support for directory paths in filenames and improve code splitting - Enforce an explicit markdown code block format - Add a token to split the output to clearly detect when the code blocks start - Save all non-code output to a `README.md` file - Update RegEx to extract and strip text more reliably and clean up the output - Update the identify prompts appropriately Enhance philosophy to include supporting documents - Create instructions for running/compiling the project - Create any package manager files Generate instructions for all platforms - Update prompt to create instructions for all 3 major OS platforms - Fix small typo Add support for directory creation and binary files - Use the `Path` module instead of `os` - Add ability to create any amount of missing directories for a given file - Add ability to save both text and binary files to save images (or other file types) later Add cleanup & move `projects` to their own directory - Add optional argument to clean and delete the working directories of the project before running the prompt - Add `.gitignore` entry to ignore all possible projects - Update readme
GPT Engineer
Specify what you want it to build, the AI asks for clarification, and then builds it.
GPT Engineer is made to be easy to adapt, extend, and make your agent learn how you want your code to look. It generates an entire codebase based on a prompt.
Demo 👶🤖
Project philosophy
- Simple to get value
- Flexible and easy to add new own "AI steps". See
steps.py. - Incrementally build towards a user experience of:
- high level prompting
- giving feedback to the AI that it will remember over time
- Fast handovers back and forth between AI and human
- Simplicity, all computation is "resumable" and persisted to the filesystem
Usage
Setup:
pip install -r requirements.txtexport OPENAI_API_KEY=[your api key]with a key that has GPT4 access
Run:
- Create a new empty folder with a
main_promptfile in theprojectsfolder (or copy the example foldercp -r projects/example/ projects/my-new-project) - Fill in the
main_promptin your new folder - Run
python -m gpt_engineer.main my-new-project- Optionally pass in
trueto delete the working files before running
- Optionally pass in
Results:
- Check the generated files in projects/my-new-project/workspace
Limitations
Implementing additional chain of thought prompting, e.g. Reflexion, should be able to make it more reliable and not miss requested functionality in the main prompt.
Contributors welcome! If you are unsure what to add, check out the ideas listed in the Projects tab in the GitHub repo.
Features
You can specify the "identity" of the AI agent by editing the files in the identity folder.
Editing the identity, and evolving the main_prompt, is currently how you make the agent remember things between projects.
Each step in steps.py will have its communication history with GPT4 stored in the logs folder, and can be rerun with scripts/rerun_edited_message_logs.py.
Contributing
If you want to contribute, please check out the projects or issues tab in the GitHub repo and please read the contributing document on how to contribute.
High resolution example
https://github.com/AntonOsika/gpt-engineer/assets/4467025/6e362e45-4a94-4b0d-973d-393a31d92d9b