mirror of
https://github.com/aljazceru/gpt-engineer.git
synced 2025-12-17 12:45:26 +01:00
make pre commit pass in the whole codebase (#149)
This commit is contained in:
@@ -2,9 +2,8 @@ import json
|
||||
import subprocess
|
||||
|
||||
from gpt_engineer.ai import AI
|
||||
from gpt_engineer.chat_to_files import to_files
|
||||
from gpt_engineer.chat_to_files import parse_chat, to_files
|
||||
from gpt_engineer.db import DBs
|
||||
from gpt_engineer.chat_to_files import parse_chat
|
||||
|
||||
|
||||
def setup_sys_prompt(dbs):
|
||||
@@ -54,7 +53,8 @@ def clarify(ai: AI, dbs: DBs):
|
||||
|
||||
def gen_spec(ai: AI, dbs: DBs):
|
||||
"""
|
||||
Generate a spec from the main prompt + clarifications and save the results to the workspace
|
||||
Generate a spec from the main prompt + clarifications and save the results to
|
||||
the workspace
|
||||
"""
|
||||
messages = [
|
||||
ai.fsystem(setup_sys_prompt(dbs)),
|
||||
@@ -67,6 +67,7 @@ def gen_spec(ai: AI, dbs: DBs):
|
||||
|
||||
return messages
|
||||
|
||||
|
||||
def respec(ai: AI, dbs: DBs):
|
||||
messages = dbs.logs[gen_spec.__name__]
|
||||
messages += [ai.fsystem(dbs.identity["respec"])]
|
||||
@@ -75,10 +76,13 @@ def respec(ai: AI, dbs: DBs):
|
||||
messages = ai.next(
|
||||
messages,
|
||||
(
|
||||
'Based on the conversation so far, please reiterate the specification for the program. '
|
||||
'If there are things that can be improved, please incorporate the improvements. '
|
||||
"If you are satisfied with the specification, just write out the specification word by word again."
|
||||
)
|
||||
"Based on the conversation so far, please reiterate the specification for "
|
||||
"the program. "
|
||||
"If there are things that can be improved, please incorporate the "
|
||||
"improvements. "
|
||||
"If you are satisfied with the specification, just write out the "
|
||||
"specification word by word again."
|
||||
),
|
||||
)
|
||||
|
||||
dbs.memory["specification"] = messages[-1]["content"]
|
||||
@@ -116,6 +120,7 @@ def gen_clarified_code(ai: AI, dbs: DBs):
|
||||
to_files(messages[-1]["content"], dbs.workspace)
|
||||
return messages
|
||||
|
||||
|
||||
def gen_code(ai: AI, dbs: DBs):
|
||||
# get the messages from previous step
|
||||
|
||||
@@ -157,8 +162,10 @@ def execute_entrypoint(ai, dbs):
|
||||
def gen_entrypoint(ai, dbs):
|
||||
messages = ai.start(
|
||||
system=(
|
||||
f"You will get information about a codebase that is currently on disk in the folder {dbs.workspace.path}.\n"
|
||||
"From this you will answer with code blocks that includes all the necessary Windows, MacOS, and Linux terminal commands to "
|
||||
"You will get information about a codebase that is currently on disk in "
|
||||
f"the folder {dbs.workspace.path}.\n"
|
||||
"From this you will answer with code blocks that includes all the necessary "
|
||||
"Windows, MacOS, and Linux terminal commands to "
|
||||
"a) install dependencies "
|
||||
"b) run all necessary parts of the codebase (in parallell if necessary).\n"
|
||||
"Do not install globally. Do not use sudo.\n"
|
||||
@@ -170,11 +177,16 @@ def gen_entrypoint(ai, dbs):
|
||||
|
||||
blocks = parse_chat(messages[-1]["content"])
|
||||
for lang, _ in blocks:
|
||||
assert lang in ["", "bash", "sh"], "Generated entrypoint command that was not bash"
|
||||
assert lang in [
|
||||
"",
|
||||
"bash",
|
||||
"sh",
|
||||
], "Generated entrypoint command that was not bash"
|
||||
|
||||
dbs.workspace["run.sh"] = "\n".join(block for lang, block in blocks)
|
||||
return messages
|
||||
|
||||
|
||||
def use_feedback(ai: AI, dbs: DBs):
|
||||
messages = [
|
||||
ai.fsystem(setup_sys_prompt(dbs)),
|
||||
@@ -182,7 +194,7 @@ def use_feedback(ai: AI, dbs: DBs):
|
||||
ai.fassistant(dbs.workspace["all_output.txt"]),
|
||||
ai.fsystem(dbs.identity["use_feedback"]),
|
||||
]
|
||||
messages = ai.next(messages, dbs.memory['feedback'])
|
||||
messages = ai.next(messages, dbs.memory["feedback"])
|
||||
to_files(messages[-1]["content"], dbs.workspace)
|
||||
return messages
|
||||
|
||||
|
||||
Reference in New Issue
Block a user